@tanstack/angular-query-experimental 5.59.17 → 5.60.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 +6 -6
- package/build/README.md +6 -6
- package/build/esm2022/index.mjs +3 -3
- package/build/esm2022/inject-query-client.mjs +3 -2
- package/build/esm2022/providers.mjs +159 -9
- package/build/esm2022/util/is-dev-mode/is-dev-mode.mjs +3 -0
- package/build/fesm2022/tanstack-angular-query-experimental.mjs +161 -10
- package/build/fesm2022/tanstack-angular-query-experimental.mjs.map +1 -1
- package/build/rollup.d.ts +167 -14
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ Visit https://tanstack.com/query/latest/docs/framework/angular/overview
|
|
|
29
29
|
|
|
30
30
|
# Quick Start
|
|
31
31
|
|
|
32
|
-
> Angular Query requires Angular 16 or higher.
|
|
32
|
+
> The Angular adapter for TanStack Query requires Angular 16 or higher.
|
|
33
33
|
|
|
34
34
|
1. Install `angular-query`
|
|
35
35
|
|
|
@@ -55,14 +55,14 @@ or
|
|
|
55
55
|
$ bun add @tanstack/angular-query-experimental
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
2. Initialize **
|
|
58
|
+
2. Initialize **TanStack Query** by adding **provideTanStackQuery** to your application
|
|
59
59
|
|
|
60
60
|
```ts
|
|
61
|
-
import {
|
|
61
|
+
import { provideTanStackQuery } from '@tanstack/angular-query-experimental'
|
|
62
62
|
import { QueryClient } from '@tanstack/angular-query-experimental'
|
|
63
63
|
|
|
64
64
|
bootstrapApplication(AppComponent, {
|
|
65
|
-
providers: [
|
|
65
|
+
providers: [provideTanStackQuery(new QueryClient())],
|
|
66
66
|
})
|
|
67
67
|
```
|
|
68
68
|
|
|
@@ -71,14 +71,14 @@ or in a NgModule-based app
|
|
|
71
71
|
```ts
|
|
72
72
|
import { provideHttpClient } from '@angular/common/http'
|
|
73
73
|
import {
|
|
74
|
-
|
|
74
|
+
provideTanStackQuery,
|
|
75
75
|
QueryClient,
|
|
76
76
|
} from '@tanstack/angular-query-experimental'
|
|
77
77
|
|
|
78
78
|
@NgModule({
|
|
79
79
|
declarations: [AppComponent],
|
|
80
80
|
imports: [BrowserModule],
|
|
81
|
-
providers: [
|
|
81
|
+
providers: [provideTanStackQuery(new QueryClient())],
|
|
82
82
|
bootstrap: [AppComponent],
|
|
83
83
|
})
|
|
84
84
|
```
|
package/build/README.md
CHANGED
|
@@ -29,7 +29,7 @@ Visit https://tanstack.com/query/latest/docs/framework/angular/overview
|
|
|
29
29
|
|
|
30
30
|
# Quick Start
|
|
31
31
|
|
|
32
|
-
> Angular Query requires Angular 16 or higher.
|
|
32
|
+
> The Angular adapter for TanStack Query requires Angular 16 or higher.
|
|
33
33
|
|
|
34
34
|
1. Install `angular-query`
|
|
35
35
|
|
|
@@ -55,14 +55,14 @@ or
|
|
|
55
55
|
$ bun add @tanstack/angular-query-experimental
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
2. Initialize **
|
|
58
|
+
2. Initialize **TanStack Query** by adding **provideTanStackQuery** to your application
|
|
59
59
|
|
|
60
60
|
```ts
|
|
61
|
-
import {
|
|
61
|
+
import { provideTanStackQuery } from '@tanstack/angular-query-experimental'
|
|
62
62
|
import { QueryClient } from '@tanstack/angular-query-experimental'
|
|
63
63
|
|
|
64
64
|
bootstrapApplication(AppComponent, {
|
|
65
|
-
providers: [
|
|
65
|
+
providers: [provideTanStackQuery(new QueryClient())],
|
|
66
66
|
})
|
|
67
67
|
```
|
|
68
68
|
|
|
@@ -71,14 +71,14 @@ or in a NgModule-based app
|
|
|
71
71
|
```ts
|
|
72
72
|
import { provideHttpClient } from '@angular/common/http'
|
|
73
73
|
import {
|
|
74
|
-
|
|
74
|
+
provideTanStackQuery,
|
|
75
75
|
QueryClient,
|
|
76
76
|
} from '@tanstack/angular-query-experimental'
|
|
77
77
|
|
|
78
78
|
@NgModule({
|
|
79
79
|
declarations: [AppComponent],
|
|
80
80
|
imports: [BrowserModule],
|
|
81
|
-
providers: [
|
|
81
|
+
providers: [provideTanStackQuery(new QueryClient())],
|
|
82
82
|
bootstrap: [AppComponent],
|
|
83
83
|
})
|
|
84
84
|
```
|
package/build/esm2022/index.mjs
CHANGED
|
@@ -11,6 +11,6 @@ export * from './inject-mutation';
|
|
|
11
11
|
export * from './inject-mutation-state';
|
|
12
12
|
export * from './inject-queries';
|
|
13
13
|
export * from './inject-query';
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
export * from './inject-query-client';
|
|
15
|
+
export * from './providers';
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEJBQTBCO0FBRTFCLGlCQUFpQjtBQUNqQixjQUFjLHNCQUFzQixDQUFBO0FBRXBDLGNBQWMsU0FBUyxDQUFBO0FBTXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQU05QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUUvRCxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyxzQkFBc0IsQ0FBQTtBQUNwQyxjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyxrQkFBa0IsQ0FBQTtBQUNoQyxjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyxhQUFhLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuXG4vLyBSZS1leHBvcnQgY29yZVxuZXhwb3J0ICogZnJvbSAnQHRhbnN0YWNrL3F1ZXJ5LWNvcmUnXG5cbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCB0eXBlIHtcbiAgRGVmaW5lZEluaXRpYWxEYXRhT3B0aW9ucyxcbiAgVW5kZWZpbmVkSW5pdGlhbERhdGFPcHRpb25zLFxufSBmcm9tICcuL3F1ZXJ5LW9wdGlvbnMnXG5leHBvcnQgeyBxdWVyeU9wdGlvbnMgfSBmcm9tICcuL3F1ZXJ5LW9wdGlvbnMnXG5cbmV4cG9ydCB0eXBlIHtcbiAgRGVmaW5lZEluaXRpYWxEYXRhSW5maW5pdGVPcHRpb25zLFxuICBVbmRlZmluZWRJbml0aWFsRGF0YUluZmluaXRlT3B0aW9ucyxcbn0gZnJvbSAnLi9pbmZpbml0ZS1xdWVyeS1vcHRpb25zJ1xuZXhwb3J0IHsgaW5maW5pdGVRdWVyeU9wdGlvbnMgfSBmcm9tICcuL2luZmluaXRlLXF1ZXJ5LW9wdGlvbnMnXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5qZWN0LWluZmluaXRlLXF1ZXJ5J1xuZXhwb3J0ICogZnJvbSAnLi9pbmplY3QtaXMtZmV0Y2hpbmcnXG5leHBvcnQgKiBmcm9tICcuL2luamVjdC1pcy1tdXRhdGluZydcbmV4cG9ydCAqIGZyb20gJy4vaW5qZWN0LW11dGF0aW9uJ1xuZXhwb3J0ICogZnJvbSAnLi9pbmplY3QtbXV0YXRpb24tc3RhdGUnXG5leHBvcnQgKiBmcm9tICcuL2luamVjdC1xdWVyaWVzJ1xuZXhwb3J0ICogZnJvbSAnLi9pbmplY3QtcXVlcnknXG5leHBvcnQgKiBmcm9tICcuL2luamVjdC1xdWVyeS1jbGllbnQnXG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycydcbiJdfQ==
|
|
@@ -12,11 +12,12 @@ const tokens = createNoopInjectionToken('QueryClientToken');
|
|
|
12
12
|
*/
|
|
13
13
|
export const injectQueryClient = tokens[0];
|
|
14
14
|
/**
|
|
15
|
-
* Usually {@link
|
|
15
|
+
* Usually {@link provideTanStackQuery} is used once to set up TanStack Query and the
|
|
16
16
|
* {@link https://tanstack.com/query/latest/docs/reference/QueryClient|QueryClient}
|
|
17
17
|
* for the entire application. You can use `provideQueryClient` to provide a
|
|
18
18
|
* different `QueryClient` instance for a part of the application.
|
|
19
19
|
* @public
|
|
20
20
|
*/
|
|
21
21
|
export const provideQueryClient = tokens[1];
|
|
22
|
-
|
|
22
|
+
export const QUERY_CLIENT = tokens[2];
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LXF1ZXJ5LWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmplY3QtcXVlcnktY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFBO0FBRy9GLE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFjLGtCQUFrQixDQUFDLENBQUE7QUFFeEU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRTFDOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUUzQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTm9vcEluamVjdGlvblRva2VuIH0gZnJvbSAnLi91dGlsL2NyZWF0ZS1pbmplY3Rpb24tdG9rZW4vY3JlYXRlLWluamVjdGlvbi10b2tlbidcbmltcG9ydCB0eXBlIHsgUXVlcnlDbGllbnQgfSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcblxuY29uc3QgdG9rZW5zID0gY3JlYXRlTm9vcEluamVjdGlvblRva2VuPFF1ZXJ5Q2xpZW50PignUXVlcnlDbGllbnRUb2tlbicpXG5cbi8qKlxuICogSW5qZWN0cyB0aGUgYFF1ZXJ5Q2xpZW50YCBpbnN0YW5jZSBpbnRvIHRoZSBjb21wb25lbnQgb3Igc2VydmljZS5cbiAqXG4gKiAqKkV4YW1wbGUqKlxuICogYGBgdHNcbiAqIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gaW5qZWN0UXVlcnlDbGllbnQoKTtcbiAqIGBgYFxuICogQHJldHVybnMgVGhlIGBRdWVyeUNsaWVudGAgaW5zdGFuY2UuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBpbmplY3RRdWVyeUNsaWVudCA9IHRva2Vuc1swXVxuXG4vKipcbiAqIFVzdWFsbHkge0BsaW5rIHByb3ZpZGVUYW5TdGFja1F1ZXJ5fSBpcyB1c2VkIG9uY2UgdG8gc2V0IHVwIFRhblN0YWNrIFF1ZXJ5IGFuZCB0aGVcbiAqIHtAbGluayBodHRwczovL3RhbnN0YWNrLmNvbS9xdWVyeS9sYXRlc3QvZG9jcy9yZWZlcmVuY2UvUXVlcnlDbGllbnR8UXVlcnlDbGllbnR9XG4gKiBmb3IgdGhlIGVudGlyZSBhcHBsaWNhdGlvbi4gWW91IGNhbiB1c2UgYHByb3ZpZGVRdWVyeUNsaWVudGAgdG8gcHJvdmlkZSBhXG4gKiBkaWZmZXJlbnQgYFF1ZXJ5Q2xpZW50YCBpbnN0YW5jZSBmb3IgYSBwYXJ0IG9mIHRoZSBhcHBsaWNhdGlvbi5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHByb3ZpZGVRdWVyeUNsaWVudCA9IHRva2Vuc1sxXVxuXG5leHBvcnQgY29uc3QgUVVFUllfQ0xJRU5UID0gdG9rZW5zWzJdXG4iXX0=
|
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
import { DestroyRef, ENVIRONMENT_INITIALIZER, inject, makeEnvironmentProviders, } from '@angular/core';
|
|
2
|
-
import {
|
|
1
|
+
import { DestroyRef, ENVIRONMENT_INITIALIZER, Injector, PLATFORM_ID, computed, effect, inject, makeEnvironmentProviders, runInInjectionContext, } from '@angular/core';
|
|
2
|
+
import { onlineManager } from '@tanstack/query-core';
|
|
3
|
+
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
4
|
+
import { injectQueryClient, provideQueryClient } from './inject-query-client';
|
|
5
|
+
import { isDevMode } from './util/is-dev-mode/is-dev-mode';
|
|
3
6
|
/**
|
|
4
7
|
* Sets up providers necessary to enable TanStack Query functionality for Angular applications.
|
|
5
8
|
*
|
|
6
|
-
* Allows to configure a `QueryClient
|
|
9
|
+
* Allows to configure a `QueryClient` and optional features such as developer tools.
|
|
7
10
|
*
|
|
8
11
|
* **Example - standalone**
|
|
9
12
|
*
|
|
10
13
|
* ```ts
|
|
11
14
|
* import {
|
|
12
|
-
*
|
|
15
|
+
* provideTanStackQuery,
|
|
13
16
|
* QueryClient,
|
|
14
17
|
* } from '@tanstack/angular-query-experimental'
|
|
15
18
|
*
|
|
16
19
|
* bootstrapApplication(AppComponent, {
|
|
17
|
-
* providers: [
|
|
20
|
+
* providers: [provideTanStackQuery(new QueryClient())],
|
|
18
21
|
* })
|
|
19
22
|
* ```
|
|
20
23
|
*
|
|
@@ -22,24 +25,44 @@ import { provideQueryClient } from './inject-query-client';
|
|
|
22
25
|
*
|
|
23
26
|
* ```ts
|
|
24
27
|
* import {
|
|
25
|
-
*
|
|
28
|
+
* provideTanStackQuery,
|
|
26
29
|
* QueryClient,
|
|
27
30
|
* } from '@tanstack/angular-query-experimental'
|
|
28
31
|
*
|
|
29
32
|
* @NgModule({
|
|
30
33
|
* declarations: [AppComponent],
|
|
31
34
|
* imports: [BrowserModule],
|
|
32
|
-
* providers: [
|
|
35
|
+
* providers: [provideTanStackQuery(new QueryClient())],
|
|
33
36
|
* bootstrap: [AppComponent],
|
|
34
37
|
* })
|
|
35
38
|
* export class AppModule {}
|
|
36
39
|
* ```
|
|
40
|
+
*
|
|
41
|
+
* You can also enable optional developer tools by adding `withDevtools`. By
|
|
42
|
+
* default the tools will then be loaded when your app is in development mode.
|
|
43
|
+
* ```ts
|
|
44
|
+
* import {
|
|
45
|
+
* provideTanStackQuery,
|
|
46
|
+
* withDevtools
|
|
47
|
+
* QueryClient,
|
|
48
|
+
* } from '@tanstack/angular-query-experimental'
|
|
49
|
+
*
|
|
50
|
+
* bootstrapApplication(AppComponent,
|
|
51
|
+
* {
|
|
52
|
+
* providers: [
|
|
53
|
+
* provideTanStackQuery(new QueryClient(), withDevtools())
|
|
54
|
+
* ]
|
|
55
|
+
* }
|
|
56
|
+
* )
|
|
57
|
+
* ```
|
|
37
58
|
* @param queryClient - A `QueryClient` instance.
|
|
59
|
+
* @param features - Optional features to configure additional Query functionality.
|
|
38
60
|
* @returns A set of providers to set up TanStack Query.
|
|
39
61
|
* @public
|
|
40
62
|
* @see https://tanstack.com/query/v5/docs/framework/angular/quick-start
|
|
63
|
+
* @see withDevtools
|
|
41
64
|
*/
|
|
42
|
-
export function
|
|
65
|
+
export function provideTanStackQuery(queryClient, ...features) {
|
|
43
66
|
return makeEnvironmentProviders([
|
|
44
67
|
provideQueryClient(queryClient),
|
|
45
68
|
{
|
|
@@ -51,6 +74,133 @@ export function provideAngularQuery(queryClient) {
|
|
|
51
74
|
inject(DestroyRef).onDestroy(() => queryClient.unmount());
|
|
52
75
|
},
|
|
53
76
|
},
|
|
77
|
+
features.map((feature) => feature.ɵproviders),
|
|
54
78
|
]);
|
|
55
79
|
}
|
|
56
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Sets up providers necessary to enable TanStack Query functionality for Angular applications.
|
|
82
|
+
*
|
|
83
|
+
* Allows to configure a `QueryClient`.
|
|
84
|
+
* @param queryClient - A `QueryClient` instance.
|
|
85
|
+
* @returns A set of providers to set up TanStack Query.
|
|
86
|
+
* @public
|
|
87
|
+
* @see https://tanstack.com/query/v5/docs/framework/angular/quick-start
|
|
88
|
+
* @deprecated Use `provideTanStackQuery` instead.
|
|
89
|
+
*/
|
|
90
|
+
export function provideAngularQuery(queryClient) {
|
|
91
|
+
return provideTanStackQuery(queryClient);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Helper function to create an object that represents a Query feature.
|
|
95
|
+
* @param kind -
|
|
96
|
+
* @param providers -
|
|
97
|
+
* @returns A Query feature.
|
|
98
|
+
*/
|
|
99
|
+
function queryFeature(kind, providers) {
|
|
100
|
+
return { ɵkind: kind, ɵproviders: providers };
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Enables developer tools.
|
|
104
|
+
*
|
|
105
|
+
* **Example**
|
|
106
|
+
*
|
|
107
|
+
* ```ts
|
|
108
|
+
* export const appConfig: ApplicationConfig = {
|
|
109
|
+
* providers: [
|
|
110
|
+
* provideTanStackQuery(new QueryClient(), withDevtools())
|
|
111
|
+
* ]
|
|
112
|
+
* }
|
|
113
|
+
* ```
|
|
114
|
+
* By default the devtools will be loaded when Angular runs in development mode and rendered in `<body>`.
|
|
115
|
+
*
|
|
116
|
+
* If you need more control over when devtools are loaded, you can use the `loadDevtools` option. This is particularly useful if you want to load devtools based on environment configurations. For instance, you might have a test environment running in production mode but still require devtools to be available.
|
|
117
|
+
*
|
|
118
|
+
* If you need more control over where devtools are rendered, consider `injectDevtoolsPanel`. This allows rendering devtools inside your own devtools for example.
|
|
119
|
+
* @param optionsFn - A function that returns `DevtoolsOptions`.
|
|
120
|
+
* @returns A set of providers for use with `provideTanStackQuery`.
|
|
121
|
+
* @public
|
|
122
|
+
* @see {@link provideTanStackQuery}
|
|
123
|
+
* @see {@link DevtoolsOptions}
|
|
124
|
+
*/
|
|
125
|
+
export function withDevtools(optionsFn) {
|
|
126
|
+
let providers = [];
|
|
127
|
+
if (!isDevMode() && !optionsFn) {
|
|
128
|
+
providers = [];
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
providers = [
|
|
132
|
+
{
|
|
133
|
+
provide: ENVIRONMENT_INITIALIZER,
|
|
134
|
+
multi: true,
|
|
135
|
+
useFactory: () => {
|
|
136
|
+
if (!isPlatformBrowser(inject(PLATFORM_ID)))
|
|
137
|
+
return () => { };
|
|
138
|
+
const injector = inject(Injector);
|
|
139
|
+
const options = computed(() => runInInjectionContext(injector, () => optionsFn?.() ?? {}));
|
|
140
|
+
let devtools = null;
|
|
141
|
+
let el = null;
|
|
142
|
+
const shouldLoadToolsSignal = computed(() => {
|
|
143
|
+
const { loadDevtools } = options();
|
|
144
|
+
return typeof loadDevtools === 'boolean'
|
|
145
|
+
? loadDevtools
|
|
146
|
+
: isDevMode();
|
|
147
|
+
});
|
|
148
|
+
const doc = inject(DOCUMENT);
|
|
149
|
+
const destroyRef = inject(DestroyRef);
|
|
150
|
+
const getResolvedQueryClient = () => {
|
|
151
|
+
const injectedClient = injectQueryClient({
|
|
152
|
+
optional: true,
|
|
153
|
+
injector,
|
|
154
|
+
});
|
|
155
|
+
const client = options().client ?? injectedClient;
|
|
156
|
+
if (!client) {
|
|
157
|
+
throw new Error('No QueryClient found');
|
|
158
|
+
}
|
|
159
|
+
return client;
|
|
160
|
+
};
|
|
161
|
+
const destroyDevtools = () => {
|
|
162
|
+
devtools?.unmount();
|
|
163
|
+
el?.remove();
|
|
164
|
+
devtools = null;
|
|
165
|
+
};
|
|
166
|
+
return () => effect(() => {
|
|
167
|
+
const shouldLoadTools = shouldLoadToolsSignal();
|
|
168
|
+
const { client, position, errorTypes, buttonPosition, initialIsOpen, } = options();
|
|
169
|
+
if (devtools && !shouldLoadTools) {
|
|
170
|
+
destroyDevtools();
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
else if (devtools && shouldLoadTools) {
|
|
174
|
+
client && devtools.setClient(client);
|
|
175
|
+
position && devtools.setPosition(position);
|
|
176
|
+
errorTypes && devtools.setErrorTypes(errorTypes);
|
|
177
|
+
buttonPosition && devtools.setButtonPosition(buttonPosition);
|
|
178
|
+
initialIsOpen && devtools.setInitialIsOpen(initialIsOpen);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
else if (!shouldLoadTools) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
el = doc.body.appendChild(document.createElement('div'));
|
|
185
|
+
el.classList.add('tsqd-parent-container');
|
|
186
|
+
import('@tanstack/query-devtools').then((queryDevtools) => runInInjectionContext(injector, () => {
|
|
187
|
+
devtools = new queryDevtools.TanstackQueryDevtools({
|
|
188
|
+
...options(),
|
|
189
|
+
client: getResolvedQueryClient(),
|
|
190
|
+
queryFlavor: 'Angular Query',
|
|
191
|
+
version: '5',
|
|
192
|
+
onlineManager,
|
|
193
|
+
});
|
|
194
|
+
el && devtools.mount(el);
|
|
195
|
+
// Unmount the devtools on application destroy
|
|
196
|
+
destroyRef.onDestroy(destroyDevtools);
|
|
197
|
+
}));
|
|
198
|
+
});
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
];
|
|
202
|
+
}
|
|
203
|
+
return queryFeature('DeveloperTools', providers);
|
|
204
|
+
}
|
|
205
|
+
export const queryFeatures = ['DeveloperTools'];
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLHVCQUF1QixFQUN2QixRQUFRLEVBQ1IsV0FBVyxFQUNYLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLHdCQUF3QixFQUN4QixxQkFBcUIsR0FDdEIsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFVMUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwREc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLFdBQXdCLEVBQ3hCLEdBQUcsUUFBOEI7SUFFakMsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QixrQkFBa0IsQ0FBQyxXQUFXLENBQUM7UUFDL0I7WUFDRSxPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLEtBQUssRUFBRSxJQUFJO1lBQ1gsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixXQUFXLENBQUMsS0FBSyxFQUFFLENBQUE7Z0JBQ25CLGtEQUFrRDtnQkFDbEQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUMzRCxDQUFDO1NBQ0Y7UUFDRCxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFD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QUM5QyxVQUFVLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFBO3dCQUN2QyxDQUFDLENBQUMsQ0FDSCxDQUFBO29CQUNILENBQUMsQ0FBQyxDQUFBO2dCQUNOLENBQUM7YUFDRjtTQUNGLENBQUE7SUFDSCxDQUFDO0lBQ0QsT0FBTyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLENBQUE7QUFDbEQsQ0FBQztBQVlELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLGdCQUFnQixDQUFVLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZXN0cm95UmVmLFxuICBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcbiAgSW5qZWN0b3IsXG4gIFBMQVRGT1JNX0lELFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgcnVuSW5JbmplY3Rpb25Db250ZXh0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgb25saW5lTWFuYWdlciB9IGZyb20gJ0B0YW5zdGFjay9xdWVyeS1jb3JlJ1xuaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgaW5qZWN0UXVlcnlDbGllbnQsIHByb3ZpZGVRdWVyeUNsaWVudCB9IGZyb20gJy4vaW5qZWN0LXF1ZXJ5LWNsaWVudCdcbmltcG9ydCB7IGlzRGV2TW9kZSB9IGZyb20gJy4vdXRpbC9pcy1kZXYtbW9kZS9pcy1kZXYtbW9kZSdcbmltcG9ydCB0eXBlIHsgUXVlcnlDbGllbnQgfSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcbmltcG9ydCB0eXBlIHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB0eXBlIHtcbiAgRGV2dG9vbHNCdXR0b25Qb3NpdGlvbixcbiAgRGV2dG9vbHNFcnJvclR5cGUsXG4gIERldnRvb2xzUG9zaXRpb24sXG4gIFRhbnN0YWNrUXVlcnlEZXZ0b29scyxcbn0gZnJvbSAnQHRhbnN0YWNrL3F1ZXJ5LWRldnRvb2xzJ1xuXG4vKipcbiAqIFNldHMgdXAgcHJvdmlkZXJzIG5lY2Vzc2FyeSB0byBlbmFibGUgVGFuU3RhY2sgUXVlcnkgZnVuY3Rpb25hbGl0eSBmb3IgQW5ndWxhciBhcHBsaWNhdGlvbnMuXG4gKlxuICogQWxsb3dzIHRvIGNvbmZpZ3VyZSBhIGBRdWVyeUNsaWVudGAgYW5kIG9wdGlvbmFsIGZlYXR1cmVzIHN1Y2ggYXMgZGV2ZWxvcGVyIHRvb2xzLlxuICpcbiAqICoqRXhhbXBsZSAtIHN0YW5kYWxvbmUqKlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQge1xuICogICBwcm92aWRlVGFuU3RhY2tRdWVyeSxcbiAqICAgUXVlcnlDbGllbnQsXG4gKiB9IGZyb20gJ0B0YW5zdGFjay9hbmd1bGFyLXF1ZXJ5LWV4cGVyaW1lbnRhbCdcbiAqXG4gKiBib290c3RyYXBBcHBsaWNhdGlvbihBcHBDb21wb25lbnQsIHtcbiAqICAgcHJvdmlkZXJzOiBbcHJvdmlkZVRhblN0YWNrUXVlcnkobmV3IFF1ZXJ5Q2xpZW50KCkpXSxcbiAqIH0pXG4gKiBgYGBcbiAqXG4gKiAqKkV4YW1wbGUgLSBOZ01vZHVsZS1iYXNlZCoqXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7XG4gKiAgIHByb3ZpZGVUYW5TdGFja1F1ZXJ5LFxuICogICBRdWVyeUNsaWVudCxcbiAqIH0gZnJvbSAnQHRhbnN0YWNrL2FuZ3VsYXItcXVlcnktZXhwZXJpbWVudGFsJ1xuICpcbiAqIEBOZ01vZHVsZSh7XG4gKiAgIGRlY2xhcmF0aW9uczogW0FwcENvbXBvbmVudF0sXG4gKiAgIGltcG9ydHM6IFtCcm93c2VyTW9kdWxlXSxcbiAqICAgcHJvdmlkZXJzOiBbcHJvdmlkZVRhblN0YWNrUXVlcnkobmV3IFF1ZXJ5Q2xpZW50KCkpXSxcbiAqICAgYm9vdHN0cmFwOiBbQXBwQ29tcG9uZW50XSxcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHt9XG4gKiBgYGBcbiAqXG4gKiBZb3UgY2FuIGFsc28gZW5hYmxlIG9wdGlvbmFsIGRldmVsb3BlciB0b29scyBieSBhZGRpbmcgYHdpdGhEZXZ0b29sc2AuIEJ5XG4gKiBkZWZhdWx0IHRoZSB0b29scyB3aWxsIHRoZW4gYmUgbG9hZGVkIHdoZW4geW91ciBhcHAgaXMgaW4gZGV2ZWxvcG1lbnQgbW9kZS5cbiAqIGBgYHRzXG4gKiBpbXBvcnQge1xuICogICBwcm92aWRlVGFuU3RhY2tRdWVyeSxcbiAqICAgd2l0aERldnRvb2xzXG4gKiAgIFF1ZXJ5Q2xpZW50LFxuICogfSBmcm9tICdAdGFuc3RhY2svYW5ndWxhci1xdWVyeS1leHBlcmltZW50YWwnXG4gKlxuICogYm9vdHN0cmFwQXBwbGljYXRpb24oQXBwQ29tcG9uZW50LFxuICogICB7XG4gKiAgICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgICBwcm92aWRlVGFuU3RhY2tRdWVyeShuZXcgUXVlcnlDbGllbnQoKSwgd2l0aERldnRvb2xzKCkpXG4gKiAgICAgXVxuICogICB9XG4gKiApXG4gKiBgYGBcbiAqIEBwYXJhbSBxdWVyeUNsaWVudCAtIEEgYFF1ZXJ5Q2xpZW50YCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBmZWF0dXJlcyAtIE9wdGlvbmFsIGZlYXR1cmVzIHRvIGNvbmZpZ3VyZSBhZGRpdGlvbmFsIFF1ZXJ5IGZ1bmN0aW9uYWxpdHkuXG4gKiBAcmV0dXJucyBBIHNldCBvZiBwcm92aWRlcnMgdG8gc2V0IHVwIFRhblN0YWNrIFF1ZXJ5LlxuICogQHB1YmxpY1xuICogQHNlZSBodHRwczovL3RhbnN0YWNrLmNvbS9xdWVyeS92NS9kb2NzL2ZyYW1ld29yay9hbmd1bGFyL3F1aWNrLXN0YXJ0XG4gKiBAc2VlIHdpdGhEZXZ0b29sc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVRhblN0YWNrUXVlcnkoXG4gIHF1ZXJ5Q2xpZW50OiBRdWVyeUNsaWVudCxcbiAgLi4uZmVhdHVyZXM6IEFycmF5PFF1ZXJ5RmVhdHVyZXM+XG4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHByb3ZpZGVRdWVyeUNsaWVudChxdWVyeUNsaWVudCksXG4gICAge1xuICAgICAgcHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZVZhbHVlOiAoKSA9PiB7XG4gICAgICAgIHF1ZXJ5Q2xpZW50Lm1vdW50KClcbiAgICAgICAgLy8gVW5tb3VudCB0aGUgcXVlcnkgY2xpZW50IG9uIGFwcGxpY2F0aW9uIGRlc3Ryb3lcbiAgICAgICAgaW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiBxdWVyeUNsaWVudC51bm1vdW50KCkpXG4gICAgICB9LFxuICAgIH0sXG4gICAgZmVhdHVyZXMubWFwKChmZWF0dXJlKSA9PiBmZWF0dXJlLsm1cHJvdmlkZXJzKSxcbiAgXSlcbn1cblxuLyoqXG4gKiBTZXRzIHVwIHByb3ZpZGVycyBuZWNlc3NhcnkgdG8gZW5hYmxlIFRhblN0YWNrIFF1ZXJ5IGZ1bmN0aW9uYWxpdHkgZm9yIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxuICpcbiAqIEFsbG93cyB0byBjb25maWd1cmUgYSBgUXVlcnlDbGllbnRgLlxuICogQHBhcmFtIHF1ZXJ5Q2xpZW50IC0gQSBgUXVlcnlDbGllbnRgIGluc3RhbmNlLlxuICogQHJldHVybnMgQSBzZXQgb2YgcHJvdmlkZXJzIHRvIHNldCB1cCBUYW5TdGFjayBRdWVyeS5cbiAqIEBwdWJsaWNcbiAqIEBzZWUgaHR0cHM6Ly90YW5zdGFjay5jb20vcXVlcnkvdjUvZG9jcy9mcmFtZXdvcmsvYW5ndWxhci9xdWljay1zdGFydFxuICogQGRlcHJlY2F0ZWQgVXNlIGBwcm92aWRlVGFuU3RhY2tRdWVyeWAgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBbmd1bGFyUXVlcnkoXG4gIHF1ZXJ5Q2xpZW50OiBRdWVyeUNsaWVudCxcbik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgcmV0dXJuIHByb3ZpZGVUYW5TdGFja1F1ZXJ5KHF1ZXJ5Q2xpZW50KVxufVxuXG4vKipcbiAqIEhlbHBlciB0eXBlIHRvIHJlcHJlc2VudCBhIFF1ZXJ5IGZlYXR1cmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlGZWF0dXJlPFRGZWF0dXJlS2luZCBleHRlbmRzIFF1ZXJ5RmVhdHVyZUtpbmQ+IHtcbiAgybVraW5kOiBURmVhdHVyZUtpbmRcbiAgybVwcm92aWRlcnM6IEFycmF5PFByb3ZpZGVyPlxufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYW4gb2JqZWN0IHRoYXQgcmVwcmVzZW50cyBhIFF1ZXJ5IGZlYXR1cmUuXG4gKiBAcGFyYW0ga2luZCAtXG4gKiBAcGFyYW0gcHJvdmlkZXJzIC1cbiAqIEByZXR1cm5zIEEgUXVlcnkgZmVhdHVyZS5cbiAqL1xuZnVuY3Rpb24gcXVlcnlGZWF0dXJlPFRGZWF0dXJlS2luZCBleHRlbmRzIFF1ZXJ5RmVhdHVyZUtpbmQ+KFxuICBraW5kOiBURmVhdHVyZUtpbmQsXG4gIHByb3ZpZGVyczogQXJyYXk8UHJvdmlkZXI+LFxuKTogUXVlcnlGZWF0dXJlPFRGZWF0dXJlS2luZD4ge1xuICByZXR1cm4geyDJtWtpbmQ6IGtpbmQsIMm1cHJvdmlkZXJzOiBwcm92aWRlcnMgfVxufVxuXG4vKipcbiAqIEEgdHlwZSBhbGlhcyB0aGF0IHJlcHJlc2VudHMgYSBmZWF0dXJlIHdoaWNoIGVuYWJsZXMgZGV2ZWxvcGVyIHRvb2xzLlxuICogVGhlIHR5cGUgaXMgdXNlZCB0byBkZXNjcmliZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBgd2l0aERldnRvb2xzYCBmdW5jdGlvbi5cbiAqIEBwdWJsaWNcbiAqIEBzZWUge0BsaW5rIHdpdGhEZXZ0b29sc31cbiAqL1xuZXhwb3J0IHR5cGUgRGV2ZWxvcGVyVG9vbHNGZWF0dXJlID0gUXVlcnlGZWF0dXJlPCdEZXZlbG9wZXJUb29scyc+XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIFRhblN0YWNrIFF1ZXJ5IGRldnRvb2xzLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERldnRvb2xzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0cnVlIGlmIHlvdSB3YW50IHRoZSBkZXZ0b29scyB0byBkZWZhdWx0IHRvIGJlaW5nIG9wZW5cbiAgICovXG4gIGluaXRpYWxJc09wZW4/OiBib29sZWFuXG4gIC8qKlxuICAgKiBUaGUgcG9zaXRpb24gb2YgdGhlIFRhblN0YWNrIGxvZ28gdG8gb3BlbiBhbmQgY2xvc2UgdGhlIGRldnRvb2xzIHBhbmVsLlxuICAgKiBgdG9wLWxlZnRgIHwgYHRvcC1yaWdodGAgfCBgYm90dG9tLWxlZnRgIHwgYGJvdHRvbS1yaWdodGAgfCBgcmVsYXRpdmVgXG4gICAqIERlZmF1bHRzIHRvIGBib3R0b20tcmlnaHRgLlxuICAgKi9cbiAgYnV0dG9uUG9zaXRpb24/OiBEZXZ0b29sc0J1dHRvblBvc2l0aW9uXG4gIC8qKlxuICAgKiBUaGUgcG9zaXRpb24gb2YgdGhlIFRhblN0YWNrIFF1ZXJ5IGRldnRvb2xzIHBhbmVsLlxuICAgKiBgdG9wYCB8IGBib3R0b21gIHwgYGxlZnRgIHwgYHJpZ2h0YFxuICAgKiBEZWZhdWx0cyB0byBgYm90dG9tYC5cbiAgICovXG4gIHBvc2l0aW9uPzogRGV2dG9vbHNQb3NpdGlvblxuICAvKipcbiAgICogQ3VzdG9tIGluc3RhbmNlIG9mIFF1ZXJ5Q2xpZW50XG4gICAqL1xuICBjbGllbnQ/OiBRdWVyeUNsaWVudFxuICAvKipcbiAgICogVXNlIHRoaXMgc28geW91IGNhbiBkZWZpbmUgY3VzdG9tIGVycm9ycyB0aGF0IGNhbiBiZSBzaG93biBpbiB0aGUgZGV2dG9vbHMuXG4gICAqL1xuICBlcnJvclR5cGVzPzogQXJyYXk8RGV2dG9vbHNFcnJvclR5cGU+XG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBwYXNzIGEgbm9uY2UgdG8gdGhlIHN0eWxlIHRhZyB0aGF0IGlzIGFkZGVkIHRvIHRoZSBkb2N1bWVudCBoZWFkLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgYXJlIHVzaW5nIGEgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgKENTUCkgbm9uY2UgdG8gYWxsb3cgaW5saW5lIHN0eWxlcy5cbiAgICovXG4gIHN0eWxlTm9uY2U/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHNvIHlvdSBjYW4gYXR0YWNoIHRoZSBkZXZ0b29sJ3Mgc3R5bGVzIHRvIGEgc3BlY2lmaWMgZWxlbWVudCBpbiB0aGUgRE9NLlxuICAgKi9cbiAgc2hhZG93RE9NVGFyZ2V0PzogU2hhZG93Um9vdFxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBkZXZlbG9wZXIgdG9vbHMgc2hvdWxkIGxvYWQuXG4gICAqIC0gYGF1dG9gLSAoRGVmYXVsdCkgTGF6aWx5IGxvYWRzIGRldnRvb2xzIHdoZW4gaW4gZGV2ZWxvcG1lbnQgbW9kZS4gU2tpcHMgbG9hZGluZyBpbiBwcm9kdWN0aW9uIG1vZGUuXG4gICAqIC0gYHRydWVgLSBBbHdheXMgbG9hZCB0aGUgZGV2dG9vbHMsIHJlZ2FyZGxlc3Mgb2YgdGhlIGVudmlyb25tZW50LlxuICAgKiAtIGBmYWxzZWAtIE5ldmVyIGxvYWQgdGhlIGRldnRvb2xzLCByZWdhcmRsZXNzIG9mIHRoZSBlbnZpcm9ubWVudC5cbiAgICpcbiAgICogWW91IGNhbiB1c2UgYHRydWVgIGFuZCBgZmFsc2VgIHRvIG92ZXJyaWRlIGxvYWRpbmcgZGV2ZWxvcGVyIHRvb2xzIGZyb20gYW4gZW52aXJvbm1lbnQgZmlsZS5cbiAgICogRm9yIGV4YW1wbGUsIGEgdGVzdCBlbnZpcm9ubWVudCBtaWdodCBydW4gaW4gcHJvZHVjdGlvbiBtb2RlIGJ1dCB5b3UgbWF5IHdhbnQgdG8gbG9hZCBkZXZlbG9wZXIgdG9vbHMuXG4gICAqXG4gICAqIEFkZGl0aW9uYWxseSwgeW91IGNhbiB1c2UgYSBzaWduYWwgaW4gdGhlIGNhbGxiYWNrIHRvIGR5bmFtaWNhbGx5IGxvYWQgdGhlIGRldnRvb2xzIGJhc2VkIG9uIGEgY29uZGl0aW9uLiBGb3IgZXhhbXBsZSxcbiAgICogYSBzaWduYWwgY3JlYXRlZCBmcm9tIGEgUnhKUyBvYnNlcnZhYmxlIHRoYXQgbGlzdGVucyBmb3IgYSBrZXlib2FyZCBzaG9ydGN1dC5cbiAgICpcbiAgICogKipFeGFtcGxlKipcbiAgICogYGBgdHNcbiAgICogICAgd2l0aERldnRvb2xzKCgpID0+ICh7XG4gICAqICAgICAgaW5pdGlhbElzT3BlbjogdHJ1ZSxcbiAgICogICAgICBsb2FkRGV2dG9vbHM6IGluamVjdChFeGFtcGxlU2VydmljZSkubG9hZERldnRvb2xzKClcbiAgICogICAgfSkpXG4gICAqICBgYGBcbiAgICovXG4gIGxvYWREZXZ0b29scz86ICdhdXRvJyB8IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBFbmFibGVzIGRldmVsb3BlciB0b29scy5cbiAqXG4gKiAqKkV4YW1wbGUqKlxuICpcbiAqIGBgYHRzXG4gKiBleHBvcnQgY29uc3QgYXBwQ29uZmlnOiBBcHBsaWNhdGlvbkNvbmZpZyA9IHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZVRhblN0YWNrUXVlcnkobmV3IFF1ZXJ5Q2xpZW50KCksIHdpdGhEZXZ0b29scygpKVxuICogICBdXG4gKiB9XG4gKiBgYGBcbiAqIEJ5IGRlZmF1bHQgdGhlIGRldnRvb2xzIHdpbGwgYmUgbG9hZGVkIHdoZW4gQW5ndWxhciBydW5zIGluIGRldmVsb3BtZW50IG1vZGUgYW5kIHJlbmRlcmVkIGluIGA8Ym9keT5gLlxuICpcbiAqIElmIHlvdSBuZWVkIG1vcmUgY29udHJvbCBvdmVyIHdoZW4gZGV2dG9vbHMgYXJlIGxvYWRlZCwgeW91IGNhbiB1c2UgdGhlIGBsb2FkRGV2dG9vbHNgIG9wdGlvbi4gVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGlmIHlvdSB3YW50IHRvIGxvYWQgZGV2dG9vbHMgYmFzZWQgb24gZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbnMuIEZvciBpbnN0YW5jZSwgeW91IG1pZ2h0IGhhdmUgYSB0ZXN0IGVudmlyb25tZW50IHJ1bm5pbmcgaW4gcHJvZHVjdGlvbiBtb2RlIGJ1dCBzdGlsbCByZXF1aXJlIGRldnRvb2xzIHRvIGJlIGF2YWlsYWJsZS5cbiAqXG4gKiBJZiB5b3UgbmVlZCBtb3JlIGNvbnRyb2wgb3ZlciB3aGVyZSBkZXZ0b29scyBhcmUgcmVuZGVyZWQsIGNvbnNpZGVyIGBpbmplY3REZXZ0b29sc1BhbmVsYC4gVGhpcyBhbGxvd3MgcmVuZGVyaW5nIGRldnRvb2xzIGluc2lkZSB5b3VyIG93biBkZXZ0b29scyBmb3IgZXhhbXBsZS5cbiAqIEBwYXJhbSBvcHRpb25zRm4gLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBgRGV2dG9vbHNPcHRpb25zYC5cbiAqIEByZXR1cm5zIEEgc2V0IG9mIHByb3ZpZGVycyBmb3IgdXNlIHdpdGggYHByb3ZpZGVUYW5TdGFja1F1ZXJ5YC5cbiAqIEBwdWJsaWNcbiAqIEBzZWUge0BsaW5rIHByb3ZpZGVUYW5TdGFja1F1ZXJ5fVxuICogQHNlZSB7QGxpbmsgRGV2dG9vbHNPcHRpb25zfVxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aERldnRvb2xzKFxuICBvcHRpb25zRm4/OiAoKSA9PiBEZXZ0b29sc09wdGlvbnMsXG4pOiBEZXZlbG9wZXJUb29sc0ZlYXR1cmUge1xuICBsZXQgcHJvdmlkZXJzOiBBcnJheTxQcm92aWRlcj4gPSBbXVxuICBpZiAoIWlzRGV2TW9kZSgpICYmICFvcHRpb25zRm4pIHtcbiAgICBwcm92aWRlcnMgPSBbXVxuICB9IGVsc2Uge1xuICAgIHByb3ZpZGVycyA9IFtcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3NlcihpbmplY3QoUExBVEZPUk1fSUQpKSkgcmV0dXJuICgpID0+IHt9XG4gICAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpXG4gICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IG9wdGlvbnNGbj8uKCkgPz8ge30pLFxuICAgICAgICAgIClcblxuICAgICAgICAgIGxldCBkZXZ0b29sczogVGFuc3RhY2tRdWVyeURldnRvb2xzIHwgbnVsbCA9IG51bGxcbiAgICAgICAgICBsZXQgZWw6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGxcblxuICAgICAgICAgIGNvbnN0IHNob3VsZExvYWRUb29sc1NpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgbG9hZERldnRvb2xzIH0gPSBvcHRpb25zKClcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgbG9hZERldnRvb2xzID09PSAnYm9vbGVhbidcbiAgICAgICAgICAgICAgPyBsb2FkRGV2dG9vbHNcbiAgICAgICAgICAgICAgOiBpc0Rldk1vZGUoKVxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBjb25zdCBkb2MgPSBpbmplY3QoRE9DVU1FTlQpXG4gICAgICAgICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKVxuXG4gICAgICAgICAgY29uc3QgZ2V0UmVzb2x2ZWRRdWVyeUNsaWVudCA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluamVjdGVkQ2xpZW50ID0gaW5qZWN0UXVlcnlDbGllbnQoe1xuICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgICAgICAgaW5qZWN0b3IsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgY29uc3QgY2xpZW50ID0gb3B0aW9ucygpLmNsaWVudCA/PyBpbmplY3RlZENsaWVudFxuICAgICAgICAgICAgaWYgKCFjbGllbnQpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBRdWVyeUNsaWVudCBmb3VuZCcpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY2xpZW50XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZGVzdHJveURldnRvb2xzID0gKCkgPT4ge1xuICAgICAgICAgICAgZGV2dG9vbHM/LnVubW91bnQoKVxuICAgICAgICAgICAgZWw/LnJlbW92ZSgpXG4gICAgICAgICAgICBkZXZ0b29scyA9IG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gKCkgPT5cbiAgICAgICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHNob3VsZExvYWRUb29scyA9IHNob3VsZExvYWRUb29sc1NpZ25hbCgpXG4gICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICAgICAgZXJyb3JUeXBlcyxcbiAgICAgICAgICAgICAgICBidXR0b25Qb3NpdGlvbixcbiAgICAgICAgICAgICAgICBpbml0aWFsSXNPcGVuLFxuICAgICAgICAgICAgICB9ID0gb3B0aW9ucygpXG5cbiAgICAgICAgICAgICAgaWYgKGRldnRvb2xzICYmICFzaG91bGRMb2FkVG9vbHMpIHtcbiAgICAgICAgICAgICAgICBkZXN0cm95RGV2dG9vbHMoKVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRldnRvb2xzICYmIHNob3VsZExvYWRUb29scykge1xuICAgICAgICAgICAgICAgIGNsaWVudCAmJiBkZXZ0b29scy5zZXRDbGllbnQoY2xpZW50KVxuICAgICAgICAgICAgICAgIHBvc2l0aW9uICYmIGRldnRvb2xzLnNldFBvc2l0aW9uKHBvc2l0aW9uKVxuICAgICAgICAgICAgICAgIGVycm9yVHlwZXMgJiYgZGV2dG9vbHMuc2V0RXJyb3JUeXBlcyhlcnJvclR5cGVzKVxuICAgICAgICAgICAgICAgIGJ1dHRvblBvc2l0aW9uICYmIGRldnRvb2xzLnNldEJ1dHRvblBvc2l0aW9uKGJ1dHRvblBvc2l0aW9uKVxuICAgICAgICAgICAgICAgIGluaXRpYWxJc09wZW4gJiYgZGV2dG9vbHMuc2V0SW5pdGlhbElzT3Blbihpbml0aWFsSXNPcGVuKVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRMb2FkVG9vbHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGVsID0gZG9jLmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpXG4gICAgICAgICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoJ3RzcWQtcGFyZW50LWNvbnRhaW5lcicpXG5cbiAgICAgICAgICAgICAgaW1wb3J0KCdAdGFuc3RhY2svcXVlcnktZGV2dG9vbHMnKS50aGVuKChxdWVyeURldnRvb2xzKSA9PlxuICAgICAgICAgICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dChpbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgZGV2dG9vbHMgPSBuZXcgcXVlcnlEZXZ0b29scy5UYW5zdGFja1F1ZXJ5RGV2dG9vbHMoe1xuICAgICAgICAgICAgICAgICAgICAuLi5vcHRpb25zKCksXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudDogZ2V0UmVzb2x2ZWRRdWVyeUNsaWVudCgpLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeUZsYXZvcjogJ0FuZ3VsYXIgUXVlcnknLFxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOiAnNScsXG4gICAgICAgICAgICAgICAgICAgIG9ubGluZU1hbmFnZXIsXG4gICAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgICBlbCAmJiBkZXZ0b29scy5tb3VudChlbClcblxuICAgICAgICAgICAgICAgICAgLy8gVW5tb3VudCB0aGUgZGV2dG9vbHMgb24gYXBwbGljYXRpb24gZGVzdHJveVxuICAgICAgICAgICAgICAgICAgZGVzdHJveVJlZi5vbkRlc3Ryb3koZGVzdHJveURldnRvb2xzKVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdXG4gIH1cbiAgcmV0dXJuIHF1ZXJ5RmVhdHVyZSgnRGV2ZWxvcGVyVG9vbHMnLCBwcm92aWRlcnMpXG59XG5cbi8qKlxuICogQSB0eXBlIGFsaWFzIHRoYXQgcmVwcmVzZW50cyBhbGwgUXVlcnkgZmVhdHVyZXMgYXZhaWxhYmxlIGZvciB1c2Ugd2l0aCBgcHJvdmlkZVRhblN0YWNrUXVlcnlgLlxuICogRmVhdHVyZXMgY2FuIGJlIGVuYWJsZWQgYnkgYWRkaW5nIHNwZWNpYWwgZnVuY3Rpb25zIHRvIHRoZSBgcHJvdmlkZVRhblN0YWNrUXVlcnlgIGNhbGwuXG4gKiBTZWUgZG9jdW1lbnRhdGlvbiBmb3IgZWFjaCBzeW1ib2wgdG8gZmluZCBjb3JyZXNwb25kaW5nIGZ1bmN0aW9uIG5hbWUuIFNlZSBhbHNvIGBwcm92aWRlVGFuU3RhY2tRdWVyeWBcbiAqIGRvY3VtZW50YXRpb24gb24gaG93IHRvIHVzZSB0aG9zZSBmdW5jdGlvbnMuXG4gKiBAcHVibGljXG4gKiBAc2VlIHtAbGluayBwcm92aWRlVGFuU3RhY2tRdWVyeX1cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlGZWF0dXJlcyA9IERldmVsb3BlclRvb2xzRmVhdHVyZSAvLyBVbmlvbiB0eXBlIG9mIGZlYXR1cmVzIGJ1dCBqdXN0IG9uZSBub3dcblxuZXhwb3J0IGNvbnN0IHF1ZXJ5RmVhdHVyZXMgPSBbJ0RldmVsb3BlclRvb2xzJ10gYXMgY29uc3RcblxuZXhwb3J0IHR5cGUgUXVlcnlGZWF0dXJlS2luZCA9ICh0eXBlb2YgcXVlcnlGZWF0dXJlcylbbnVtYmVyXVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// Re-export for mocking in tests
|
|
2
|
+
export { isDevMode } from '@angular/core';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZGV2LW1vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbC9pcy1kZXYtbW9kZS9pcy1kZXYtbW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUM7QUFFakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIFJlLWV4cG9ydCBmb3IgbW9ja2luZyBpbiB0ZXN0c1xuXG5leHBvcnQgeyBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuIl19
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { notifyManager, InfiniteQueryObserver, MutationObserver, replaceEqualDeep, QueriesObserver, QueryObserver } from '@tanstack/query-core';
|
|
1
|
+
import { notifyManager, InfiniteQueryObserver, MutationObserver, replaceEqualDeep, QueriesObserver, QueryObserver, onlineManager } from '@tanstack/query-core';
|
|
2
2
|
export * from '@tanstack/query-core';
|
|
3
|
-
import { untracked, computed, assertInInjectionContext, inject, Injector, runInInjectionContext, InjectionToken, NgZone, DestroyRef, signal, effect, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER } from '@angular/core';
|
|
3
|
+
import { untracked, computed, assertInInjectionContext, inject, Injector, runInInjectionContext, InjectionToken, NgZone, DestroyRef, signal, effect, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER, isDevMode, PLATFORM_ID } from '@angular/core';
|
|
4
|
+
import { isPlatformBrowser, DOCUMENT } from '@angular/common';
|
|
4
5
|
|
|
5
6
|
/* istanbul ignore file */
|
|
6
7
|
|
|
@@ -210,13 +211,14 @@ const tokens = createNoopInjectionToken('QueryClientToken');
|
|
|
210
211
|
*/
|
|
211
212
|
const injectQueryClient = tokens[0];
|
|
212
213
|
/**
|
|
213
|
-
* Usually {@link
|
|
214
|
+
* Usually {@link provideTanStackQuery} is used once to set up TanStack Query and the
|
|
214
215
|
* {@link https://tanstack.com/query/latest/docs/reference/QueryClient|QueryClient}
|
|
215
216
|
* for the entire application. You can use `provideQueryClient` to provide a
|
|
216
217
|
* different `QueryClient` instance for a part of the application.
|
|
217
218
|
* @public
|
|
218
219
|
*/
|
|
219
220
|
const provideQueryClient = tokens[1];
|
|
221
|
+
const QUERY_CLIENT = tokens[2];
|
|
220
222
|
|
|
221
223
|
/**
|
|
222
224
|
* Base implementation for `injectQuery` and `injectInfiniteQuery`.
|
|
@@ -522,21 +524,23 @@ function injectQuery(optionsFn, injector) {
|
|
|
522
524
|
return assertInjector(injectQuery, injector, () => createBaseQuery(optionsFn, QueryObserver));
|
|
523
525
|
}
|
|
524
526
|
|
|
527
|
+
// Re-export for mocking in tests
|
|
528
|
+
|
|
525
529
|
/**
|
|
526
530
|
* Sets up providers necessary to enable TanStack Query functionality for Angular applications.
|
|
527
531
|
*
|
|
528
|
-
* Allows to configure a `QueryClient
|
|
532
|
+
* Allows to configure a `QueryClient` and optional features such as developer tools.
|
|
529
533
|
*
|
|
530
534
|
* **Example - standalone**
|
|
531
535
|
*
|
|
532
536
|
* ```ts
|
|
533
537
|
* import {
|
|
534
|
-
*
|
|
538
|
+
* provideTanStackQuery,
|
|
535
539
|
* QueryClient,
|
|
536
540
|
* } from '@tanstack/angular-query-experimental'
|
|
537
541
|
*
|
|
538
542
|
* bootstrapApplication(AppComponent, {
|
|
539
|
-
* providers: [
|
|
543
|
+
* providers: [provideTanStackQuery(new QueryClient())],
|
|
540
544
|
* })
|
|
541
545
|
* ```
|
|
542
546
|
*
|
|
@@ -544,24 +548,44 @@ function injectQuery(optionsFn, injector) {
|
|
|
544
548
|
*
|
|
545
549
|
* ```ts
|
|
546
550
|
* import {
|
|
547
|
-
*
|
|
551
|
+
* provideTanStackQuery,
|
|
548
552
|
* QueryClient,
|
|
549
553
|
* } from '@tanstack/angular-query-experimental'
|
|
550
554
|
*
|
|
551
555
|
* @NgModule({
|
|
552
556
|
* declarations: [AppComponent],
|
|
553
557
|
* imports: [BrowserModule],
|
|
554
|
-
* providers: [
|
|
558
|
+
* providers: [provideTanStackQuery(new QueryClient())],
|
|
555
559
|
* bootstrap: [AppComponent],
|
|
556
560
|
* })
|
|
557
561
|
* export class AppModule {}
|
|
558
562
|
* ```
|
|
563
|
+
*
|
|
564
|
+
* You can also enable optional developer tools by adding `withDevtools`. By
|
|
565
|
+
* default the tools will then be loaded when your app is in development mode.
|
|
566
|
+
* ```ts
|
|
567
|
+
* import {
|
|
568
|
+
* provideTanStackQuery,
|
|
569
|
+
* withDevtools
|
|
570
|
+
* QueryClient,
|
|
571
|
+
* } from '@tanstack/angular-query-experimental'
|
|
572
|
+
*
|
|
573
|
+
* bootstrapApplication(AppComponent,
|
|
574
|
+
* {
|
|
575
|
+
* providers: [
|
|
576
|
+
* provideTanStackQuery(new QueryClient(), withDevtools())
|
|
577
|
+
* ]
|
|
578
|
+
* }
|
|
579
|
+
* )
|
|
580
|
+
* ```
|
|
559
581
|
* @param queryClient - A `QueryClient` instance.
|
|
582
|
+
* @param features - Optional features to configure additional Query functionality.
|
|
560
583
|
* @returns A set of providers to set up TanStack Query.
|
|
561
584
|
* @public
|
|
562
585
|
* @see https://tanstack.com/query/v5/docs/framework/angular/quick-start
|
|
586
|
+
* @see withDevtools
|
|
563
587
|
*/
|
|
564
|
-
function
|
|
588
|
+
function provideTanStackQuery(queryClient, ...features) {
|
|
565
589
|
return makeEnvironmentProviders([
|
|
566
590
|
provideQueryClient(queryClient),
|
|
567
591
|
{
|
|
@@ -573,8 +597,135 @@ function provideAngularQuery(queryClient) {
|
|
|
573
597
|
inject(DestroyRef).onDestroy(() => queryClient.unmount());
|
|
574
598
|
},
|
|
575
599
|
},
|
|
600
|
+
features.map((feature) => feature.ɵproviders),
|
|
576
601
|
]);
|
|
577
602
|
}
|
|
603
|
+
/**
|
|
604
|
+
* Sets up providers necessary to enable TanStack Query functionality for Angular applications.
|
|
605
|
+
*
|
|
606
|
+
* Allows to configure a `QueryClient`.
|
|
607
|
+
* @param queryClient - A `QueryClient` instance.
|
|
608
|
+
* @returns A set of providers to set up TanStack Query.
|
|
609
|
+
* @public
|
|
610
|
+
* @see https://tanstack.com/query/v5/docs/framework/angular/quick-start
|
|
611
|
+
* @deprecated Use `provideTanStackQuery` instead.
|
|
612
|
+
*/
|
|
613
|
+
function provideAngularQuery(queryClient) {
|
|
614
|
+
return provideTanStackQuery(queryClient);
|
|
615
|
+
}
|
|
616
|
+
/**
|
|
617
|
+
* Helper function to create an object that represents a Query feature.
|
|
618
|
+
* @param kind -
|
|
619
|
+
* @param providers -
|
|
620
|
+
* @returns A Query feature.
|
|
621
|
+
*/
|
|
622
|
+
function queryFeature(kind, providers) {
|
|
623
|
+
return { ɵkind: kind, ɵproviders: providers };
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* Enables developer tools.
|
|
627
|
+
*
|
|
628
|
+
* **Example**
|
|
629
|
+
*
|
|
630
|
+
* ```ts
|
|
631
|
+
* export const appConfig: ApplicationConfig = {
|
|
632
|
+
* providers: [
|
|
633
|
+
* provideTanStackQuery(new QueryClient(), withDevtools())
|
|
634
|
+
* ]
|
|
635
|
+
* }
|
|
636
|
+
* ```
|
|
637
|
+
* By default the devtools will be loaded when Angular runs in development mode and rendered in `<body>`.
|
|
638
|
+
*
|
|
639
|
+
* If you need more control over when devtools are loaded, you can use the `loadDevtools` option. This is particularly useful if you want to load devtools based on environment configurations. For instance, you might have a test environment running in production mode but still require devtools to be available.
|
|
640
|
+
*
|
|
641
|
+
* If you need more control over where devtools are rendered, consider `injectDevtoolsPanel`. This allows rendering devtools inside your own devtools for example.
|
|
642
|
+
* @param optionsFn - A function that returns `DevtoolsOptions`.
|
|
643
|
+
* @returns A set of providers for use with `provideTanStackQuery`.
|
|
644
|
+
* @public
|
|
645
|
+
* @see {@link provideTanStackQuery}
|
|
646
|
+
* @see {@link DevtoolsOptions}
|
|
647
|
+
*/
|
|
648
|
+
function withDevtools(optionsFn) {
|
|
649
|
+
let providers = [];
|
|
650
|
+
if (!isDevMode() && !optionsFn) {
|
|
651
|
+
providers = [];
|
|
652
|
+
}
|
|
653
|
+
else {
|
|
654
|
+
providers = [
|
|
655
|
+
{
|
|
656
|
+
provide: ENVIRONMENT_INITIALIZER,
|
|
657
|
+
multi: true,
|
|
658
|
+
useFactory: () => {
|
|
659
|
+
if (!isPlatformBrowser(inject(PLATFORM_ID)))
|
|
660
|
+
return () => { };
|
|
661
|
+
const injector = inject(Injector);
|
|
662
|
+
const options = computed(() => runInInjectionContext(injector, () => optionsFn?.() ?? {}));
|
|
663
|
+
let devtools = null;
|
|
664
|
+
let el = null;
|
|
665
|
+
const shouldLoadToolsSignal = computed(() => {
|
|
666
|
+
const { loadDevtools } = options();
|
|
667
|
+
return typeof loadDevtools === 'boolean'
|
|
668
|
+
? loadDevtools
|
|
669
|
+
: isDevMode();
|
|
670
|
+
});
|
|
671
|
+
const doc = inject(DOCUMENT);
|
|
672
|
+
const destroyRef = inject(DestroyRef);
|
|
673
|
+
const getResolvedQueryClient = () => {
|
|
674
|
+
const injectedClient = injectQueryClient({
|
|
675
|
+
optional: true,
|
|
676
|
+
injector,
|
|
677
|
+
});
|
|
678
|
+
const client = options().client ?? injectedClient;
|
|
679
|
+
if (!client) {
|
|
680
|
+
throw new Error('No QueryClient found');
|
|
681
|
+
}
|
|
682
|
+
return client;
|
|
683
|
+
};
|
|
684
|
+
const destroyDevtools = () => {
|
|
685
|
+
devtools?.unmount();
|
|
686
|
+
el?.remove();
|
|
687
|
+
devtools = null;
|
|
688
|
+
};
|
|
689
|
+
return () => effect(() => {
|
|
690
|
+
const shouldLoadTools = shouldLoadToolsSignal();
|
|
691
|
+
const { client, position, errorTypes, buttonPosition, initialIsOpen, } = options();
|
|
692
|
+
if (devtools && !shouldLoadTools) {
|
|
693
|
+
destroyDevtools();
|
|
694
|
+
return;
|
|
695
|
+
}
|
|
696
|
+
else if (devtools && shouldLoadTools) {
|
|
697
|
+
client && devtools.setClient(client);
|
|
698
|
+
position && devtools.setPosition(position);
|
|
699
|
+
errorTypes && devtools.setErrorTypes(errorTypes);
|
|
700
|
+
buttonPosition && devtools.setButtonPosition(buttonPosition);
|
|
701
|
+
initialIsOpen && devtools.setInitialIsOpen(initialIsOpen);
|
|
702
|
+
return;
|
|
703
|
+
}
|
|
704
|
+
else if (!shouldLoadTools) {
|
|
705
|
+
return;
|
|
706
|
+
}
|
|
707
|
+
el = doc.body.appendChild(document.createElement('div'));
|
|
708
|
+
el.classList.add('tsqd-parent-container');
|
|
709
|
+
import('@tanstack/query-devtools').then((queryDevtools) => runInInjectionContext(injector, () => {
|
|
710
|
+
devtools = new queryDevtools.TanstackQueryDevtools({
|
|
711
|
+
...options(),
|
|
712
|
+
client: getResolvedQueryClient(),
|
|
713
|
+
queryFlavor: 'Angular Query',
|
|
714
|
+
version: '5',
|
|
715
|
+
onlineManager,
|
|
716
|
+
});
|
|
717
|
+
el && devtools.mount(el);
|
|
718
|
+
// Unmount the devtools on application destroy
|
|
719
|
+
destroyRef.onDestroy(destroyDevtools);
|
|
720
|
+
}));
|
|
721
|
+
});
|
|
722
|
+
},
|
|
723
|
+
},
|
|
724
|
+
];
|
|
725
|
+
}
|
|
726
|
+
return queryFeature('DeveloperTools', providers);
|
|
727
|
+
}
|
|
728
|
+
const queryFeatures = ['DeveloperTools'];
|
|
578
729
|
|
|
579
730
|
/* istanbul ignore file */
|
|
580
731
|
// Re-export core
|
|
@@ -583,5 +734,5 @@ function provideAngularQuery(queryClient) {
|
|
|
583
734
|
* Generated bundle index. Do not edit.
|
|
584
735
|
*/
|
|
585
736
|
|
|
586
|
-
export { infiniteQueryOptions, injectInfiniteQuery, injectIsFetching, injectIsMutating, injectMutation, injectMutationState, injectQueries, injectQuery, injectQueryClient, provideAngularQuery, provideQueryClient, queryOptions };
|
|
737
|
+
export { QUERY_CLIENT, infiniteQueryOptions, injectInfiniteQuery, injectIsFetching, injectIsMutating, injectMutation, injectMutationState, injectQueries, injectQuery, injectQueryClient, provideAngularQuery, provideQueryClient, provideTanStackQuery, queryFeatures, queryOptions, withDevtools };
|
|
587
738
|
//# sourceMappingURL=tanstack-angular-query-experimental.mjs.map
|