@ng-doc/ui-kit 22.0.0-beta.2 → 22.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 +20 -29
- package/fesm2022/ng-doc-ui-kit-cdk-combobox-host.mjs +43 -22
- package/fesm2022/ng-doc-ui-kit-cdk-combobox-host.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-classes-base-input.mjs +24 -13
- package/fesm2022/ng-doc-ui-kit-classes-base-input.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-classes-overlay-ref.mjs +62 -22
- package/fesm2022/ng-doc-ui-kit-classes-overlay-ref.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-blockquote.mjs +39 -14
- package/fesm2022/ng-doc-ui-kit-components-blockquote.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-button-icon.mjs +30 -18
- package/fesm2022/ng-doc-ui-kit-components-button-icon.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-button-toggle.mjs +12 -9
- package/fesm2022/ng-doc-ui-kit-components-button-toggle.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-button.mjs +15 -24
- package/fesm2022/ng-doc-ui-kit-components-button.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-checkbox.mjs +13 -13
- package/fesm2022/ng-doc-ui-kit-components-checkbox.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-clear-control.mjs +14 -9
- package/fesm2022/ng-doc-ui-kit-components-clear-control.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-combobox.mjs +30 -26
- package/fesm2022/ng-doc-ui-kit-components-combobox.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-data-list-group.mjs +37 -38
- package/fesm2022/ng-doc-ui-kit-components-data-list-group.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-data-list.mjs +32 -39
- package/fesm2022/ng-doc-ui-kit-components-data-list.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-dialog-outlet.mjs +23 -20
- package/fesm2022/ng-doc-ui-kit-components-dialog-outlet.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-dot.mjs +20 -16
- package/fesm2022/ng-doc-ui-kit-components-dot.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-dropdown.mjs +120 -125
- package/fesm2022/ng-doc-ui-kit-components-dropdown.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-expander.mjs +17 -17
- package/fesm2022/ng-doc-ui-kit-components-expander.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-floated-border.mjs +4 -4
- package/fesm2022/ng-doc-ui-kit-components-floated-border.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-floated-content.mjs +16 -17
- package/fesm2022/ng-doc-ui-kit-components-floated-content.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-focus-control.mjs +20 -12
- package/fesm2022/ng-doc-ui-kit-components-focus-control.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-icon.mjs +175 -54
- package/fesm2022/ng-doc-ui-kit-components-icon.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-input-wrapper.mjs +43 -46
- package/fesm2022/ng-doc-ui-kit-components-input-wrapper.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-label.mjs +14 -16
- package/fesm2022/ng-doc-ui-kit-components-label.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-line.mjs +7 -4
- package/fesm2022/ng-doc-ui-kit-components-line.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-list.mjs +24 -8
- package/fesm2022/ng-doc-ui-kit-components-list.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-magnifier-controller.mjs +7 -3
- package/fesm2022/ng-doc-ui-kit-components-magnifier-controller.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-magnifier.mjs +31 -15
- package/fesm2022/ng-doc-ui-kit-components-magnifier.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-option-group.mjs +22 -27
- package/fesm2022/ng-doc-ui-kit-components-option-group.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-option.mjs +28 -22
- package/fesm2022/ng-doc-ui-kit-components-option.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-overlay-container.mjs +56 -52
- package/fesm2022/ng-doc-ui-kit-components-overlay-container.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-overlay-pointer.mjs +19 -21
- package/fesm2022/ng-doc-ui-kit-components-overlay-pointer.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-pane.mjs +91 -69
- package/fesm2022/ng-doc-ui-kit-components-pane.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-selection.mjs +173 -76
- package/fesm2022/ng-doc-ui-kit-components-selection.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-sidenav.mjs +23 -22
- package/fesm2022/ng-doc-ui-kit-components-sidenav.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-spinner.mjs +14 -12
- package/fesm2022/ng-doc-ui-kit-components-spinner.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-tab-group.mjs +86 -61
- package/fesm2022/ng-doc-ui-kit-components-tab-group.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-tab-routes-group.mjs +16 -13
- package/fesm2022/ng-doc-ui-kit-components-tab-routes-group.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-tag.mjs +23 -24
- package/fesm2022/ng-doc-ui-kit-components-tag.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-text.mjs +37 -52
- package/fesm2022/ng-doc-ui-kit-components-text.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-toggle.mjs +82 -57
- package/fesm2022/ng-doc-ui-kit-components-toggle.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-components-wrapper.mjs +7 -4
- package/fesm2022/ng-doc-ui-kit-components-wrapper.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-directives-autofocus.mjs +13 -10
- package/fesm2022/ng-doc-ui-kit-directives-autofocus.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-directives-checked-change.mjs +30 -26
- package/fesm2022/ng-doc-ui-kit-directives-checked-change.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-directives-data.mjs +8 -5
- package/fesm2022/ng-doc-ui-kit-directives-data.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-directives-dropdown-handler.mjs +19 -18
- package/fesm2022/ng-doc-ui-kit-directives-dropdown-handler.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-directives-dropdown-origin.mjs +3 -4
- package/fesm2022/ng-doc-ui-kit-directives-dropdown-origin.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-directives-event-switcher.mjs +22 -19
- package/fesm2022/ng-doc-ui-kit-directives-event-switcher.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-directives-focus-catcher.mjs +30 -25
- package/fesm2022/ng-doc-ui-kit-directives-focus-catcher.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-directives-focusable.mjs +13 -16
- package/fesm2022/ng-doc-ui-kit-directives-focusable.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-directives-fullscreen.mjs +90 -0
- package/fesm2022/ng-doc-ui-kit-directives-fullscreen.mjs.map +1 -0
- package/fesm2022/ng-doc-ui-kit-directives-hotkey.mjs +34 -28
- package/fesm2022/ng-doc-ui-kit-directives-hotkey.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-directives-input-number.mjs +10 -12
- package/fesm2022/ng-doc-ui-kit-directives-input-number.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-directives-input-string.mjs +9 -12
- package/fesm2022/ng-doc-ui-kit-directives-input-string.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-directives-radio-group.mjs +7 -4
- package/fesm2022/ng-doc-ui-kit-directives-radio-group.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-directives-rotator.mjs +16 -22
- package/fesm2022/ng-doc-ui-kit-directives-rotator.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-directives-tooltip.mjs +105 -101
- package/fesm2022/ng-doc-ui-kit-directives-tooltip.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-directives.mjs +1 -1
- package/fesm2022/ng-doc-ui-kit-interceptors.mjs +24 -21
- package/fesm2022/ng-doc-ui-kit-interceptors.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-observables.mjs +2 -58
- package/fesm2022/ng-doc-ui-kit-observables.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-pipes-as-array.mjs +3 -4
- package/fesm2022/ng-doc-ui-kit-pipes-as-array.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-pipes-bind.mjs +3 -4
- package/fesm2022/ng-doc-ui-kit-pipes-bind.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-pipes-execute.mjs +3 -4
- package/fesm2022/ng-doc-ui-kit-pipes-execute.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-pipes-highlighter.mjs +3 -4
- package/fesm2022/ng-doc-ui-kit-pipes-highlighter.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-services-dialog.mjs +14 -8
- package/fesm2022/ng-doc-ui-kit-services-dialog.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-services-notify.mjs +13 -8
- package/fesm2022/ng-doc-ui-kit-services-notify.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-services-overlay-strategy.mjs +15 -11
- package/fesm2022/ng-doc-ui-kit-services-overlay-strategy.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-services-overlay.mjs +20 -9
- package/fesm2022/ng-doc-ui-kit-services-overlay.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-services-scroll.mjs +11 -13
- package/fesm2022/ng-doc-ui-kit-services-scroll.mjs.map +1 -1
- package/fesm2022/ng-doc-ui-kit-tokens.mjs +29 -3
- package/fesm2022/ng-doc-ui-kit-tokens.mjs.map +1 -1
- package/package.json +27 -30
- package/styles/main.css +271 -34
- package/types/ng-doc-ui-kit-cdk-combobox-host.d.ts +16 -8
- package/types/ng-doc-ui-kit-classes-base-input.d.ts +12 -1
- package/types/ng-doc-ui-kit-classes-overlay-ref.d.ts +27 -4
- package/types/ng-doc-ui-kit-components-blockquote.d.ts +22 -5
- package/types/ng-doc-ui-kit-components-button-icon.d.ts +23 -5
- package/types/ng-doc-ui-kit-components-button-toggle.d.ts +5 -1
- package/types/ng-doc-ui-kit-components-button.d.ts +6 -6
- package/types/ng-doc-ui-kit-components-checkbox.d.ts +5 -3
- package/types/ng-doc-ui-kit-components-clear-control.d.ts +7 -0
- package/types/ng-doc-ui-kit-components-combobox.d.ts +19 -9
- package/types/ng-doc-ui-kit-components-data-list-group.d.ts +16 -11
- package/types/ng-doc-ui-kit-components-data-list.d.ts +21 -11
- package/types/ng-doc-ui-kit-components-dialog-outlet.d.ts +11 -6
- package/types/ng-doc-ui-kit-components-dot.d.ts +10 -5
- package/types/ng-doc-ui-kit-components-dropdown.d.ts +39 -27
- package/types/ng-doc-ui-kit-components-expander.d.ts +9 -7
- package/types/ng-doc-ui-kit-components-floated-content.d.ts +8 -6
- package/types/ng-doc-ui-kit-components-focus-control.d.ts +10 -4
- package/types/ng-doc-ui-kit-components-icon.d.ts +49 -14
- package/types/ng-doc-ui-kit-components-input-wrapper.d.ts +31 -17
- package/types/ng-doc-ui-kit-components-label.d.ts +8 -5
- package/types/ng-doc-ui-kit-components-line.d.ts +3 -0
- package/types/ng-doc-ui-kit-components-list.d.ts +14 -3
- package/types/ng-doc-ui-kit-components-magnifier-controller.d.ts +5 -1
- package/types/ng-doc-ui-kit-components-magnifier.d.ts +19 -4
- package/types/ng-doc-ui-kit-components-option-group.d.ts +12 -8
- package/types/ng-doc-ui-kit-components-option.d.ts +9 -2
- package/types/ng-doc-ui-kit-components-overlay-container.d.ts +18 -15
- package/types/ng-doc-ui-kit-components-overlay-pointer.d.ts +10 -6
- package/types/ng-doc-ui-kit-components-pane.d.ts +25 -9
- package/types/ng-doc-ui-kit-components-selection.d.ts +59 -21
- package/types/ng-doc-ui-kit-components-sidenav.d.ts +17 -8
- package/types/ng-doc-ui-kit-components-spinner.d.ts +7 -3
- package/types/ng-doc-ui-kit-components-tab-group.d.ts +43 -22
- package/types/ng-doc-ui-kit-components-tab-routes-group.d.ts +4 -2
- package/types/ng-doc-ui-kit-components-tag.d.ts +13 -6
- package/types/ng-doc-ui-kit-components-text.d.ts +21 -19
- package/types/ng-doc-ui-kit-components-toggle.d.ts +13 -7
- package/types/ng-doc-ui-kit-components-wrapper.d.ts +3 -0
- package/types/ng-doc-ui-kit-directives-autofocus.d.ts +7 -5
- package/types/ng-doc-ui-kit-directives-checked-change.d.ts +15 -11
- package/types/ng-doc-ui-kit-directives-data.d.ts +6 -4
- package/types/ng-doc-ui-kit-directives-dropdown-handler.d.ts +5 -3
- package/types/ng-doc-ui-kit-directives-event-switcher.d.ts +11 -6
- package/types/ng-doc-ui-kit-directives-focus-catcher.d.ts +11 -8
- package/types/ng-doc-ui-kit-directives-focusable.d.ts +6 -3
- package/types/ng-doc-ui-kit-directives-fullscreen.d.ts +39 -0
- package/types/ng-doc-ui-kit-directives-hotkey.d.ts +14 -7
- package/types/ng-doc-ui-kit-directives-input-number.d.ts +3 -2
- package/types/ng-doc-ui-kit-directives-input-string.d.ts +2 -2
- package/types/ng-doc-ui-kit-directives-radio-group.d.ts +4 -0
- package/types/ng-doc-ui-kit-directives-rotator.d.ts +8 -8
- package/types/ng-doc-ui-kit-directives-tooltip.d.ts +35 -23
- package/types/ng-doc-ui-kit-directives.d.ts +1 -1
- package/types/ng-doc-ui-kit-interceptors.d.ts +18 -2
- package/types/ng-doc-ui-kit-interfaces.d.ts +20 -4
- package/types/ng-doc-ui-kit-observables.d.ts +2 -19
- package/types/ng-doc-ui-kit-services-dialog.d.ts +10 -1
- package/types/ng-doc-ui-kit-services-notify.d.ts +9 -1
- package/types/ng-doc-ui-kit-services-overlay-strategy.d.ts +5 -3
- package/types/ng-doc-ui-kit-services-overlay.d.ts +14 -3
- package/types/ng-doc-ui-kit-services-scroll.d.ts +4 -5
- package/fesm2022/ng-doc-ui-kit-decorators.mjs +0 -53
- package/fesm2022/ng-doc-ui-kit-decorators.mjs.map +0 -1
- package/fesm2022/ng-doc-ui-kit-directives-let.mjs +0 -43
- package/fesm2022/ng-doc-ui-kit-directives-let.mjs.map +0 -1
- package/types/ng-doc-ui-kit-decorators.d.ts +0 -12
- package/types/ng-doc-ui-kit-directives-let.d.ts +0 -22
|
@@ -1,47 +1,50 @@
|
|
|
1
|
-
import { HttpResponse } from '@angular/common/http';
|
|
2
1
|
import * as i0 from '@angular/core';
|
|
3
2
|
import { Injectable } from '@angular/core';
|
|
4
3
|
import { tap, shareReplay } from 'rxjs/operators';
|
|
5
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Caches `GET` responses of requests that opt in with the `NgDocCacheInterceptor.TOKEN` query
|
|
7
|
+
* parameter. The parameter is removed before the request is sent, and every later request for the
|
|
8
|
+
* same URL shares the first response. A failed request is not cached.
|
|
9
|
+
*
|
|
10
|
+
* It only runs when the application's `HttpClient` uses interceptors from DI
|
|
11
|
+
* (`withInterceptorsFromDi()`). NgDoc's icons no longer depend on it: they are cached by
|
|
12
|
+
* `NgDocIconRegistry`.
|
|
13
|
+
*/
|
|
6
14
|
class NgDocCacheInterceptor {
|
|
7
15
|
constructor() {
|
|
8
16
|
this.cache = new Map();
|
|
9
17
|
}
|
|
18
|
+
/** Name of the query parameter that marks a request as cacheable. */
|
|
10
19
|
static { this.TOKEN = Math.random().toString(36).slice(-8); }
|
|
20
|
+
/**
|
|
21
|
+
* Returns the cached response for opted-in `GET` requests and passes every other request on.
|
|
22
|
+
* @param request - The outgoing request.
|
|
23
|
+
* @param next - The next handler in the chain.
|
|
24
|
+
* @returns The response stream.
|
|
25
|
+
*/
|
|
11
26
|
intercept(request, next) {
|
|
12
|
-
|
|
13
|
-
if (request.method !== 'GET') {
|
|
14
|
-
return next.handle(request);
|
|
15
|
-
}
|
|
16
|
-
// Do not cache request when the token is not provided
|
|
17
|
-
if (!request.params.has(NgDocCacheInterceptor.TOKEN)) {
|
|
27
|
+
if (request.method !== 'GET' || !request.params.has(NgDocCacheInterceptor.TOKEN)) {
|
|
18
28
|
return next.handle(request);
|
|
19
29
|
}
|
|
20
|
-
// Return cached response
|
|
21
30
|
const cachedRequest = this.cache.get(request.url);
|
|
22
31
|
if (cachedRequest) {
|
|
23
32
|
return cachedRequest;
|
|
24
33
|
}
|
|
25
|
-
// Clone the request, delete the TOKEN from the params
|
|
26
34
|
const newRequest = request.clone({
|
|
27
35
|
params: request.params.delete(NgDocCacheInterceptor.TOKEN),
|
|
28
36
|
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
this.cache.delete(event.url || '');
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
}), shareReplay(1));
|
|
37
|
-
// Cache the request and return the new handler
|
|
37
|
+
const newHandler = next.handle(newRequest).pipe(
|
|
38
|
+
// An error arrives as an `HttpErrorResponse`, so the entry is removed by the request URL:
|
|
39
|
+
// the next request for it goes to the network again.
|
|
40
|
+
tap({ error: () => this.cache.delete(request.url) }), shareReplay(1));
|
|
38
41
|
this.cache.set(request.url, newHandler);
|
|
39
42
|
return newHandler;
|
|
40
43
|
}
|
|
41
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
42
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocCacheInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
45
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocCacheInterceptor }); }
|
|
43
46
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocCacheInterceptor, decorators: [{
|
|
45
48
|
type: Injectable
|
|
46
49
|
}] });
|
|
47
50
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-ui-kit-interceptors.mjs","sources":["../../../../libs/ui-kit/interceptors/cache.interceptor.ts","../../../../libs/ui-kit/interceptors/ng-doc-ui-kit-interceptors.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ng-doc-ui-kit-interceptors.mjs","sources":["../../../../libs/ui-kit/interceptors/cache.interceptor.ts","../../../../libs/ui-kit/interceptors/ng-doc-ui-kit-interceptors.ts"],"sourcesContent":["import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { shareReplay, tap } from 'rxjs/operators';\n\n/**\n * Caches `GET` responses of requests that opt in with the `NgDocCacheInterceptor.TOKEN` query\n * parameter. The parameter is removed before the request is sent, and every later request for the\n * same URL shares the first response. A failed request is not cached.\n *\n * It only runs when the application's `HttpClient` uses interceptors from DI\n * (`withInterceptorsFromDi()`). NgDoc's icons no longer depend on it: they are cached by\n * `NgDocIconRegistry`.\n */\n@Injectable()\nexport class NgDocCacheInterceptor implements HttpInterceptor {\n /** Name of the query parameter that marks a request as cacheable. */\n static readonly TOKEN: string = Math.random().toString(36).slice(-8);\n\n private readonly cache: Map<string, Observable<HttpEvent<unknown>>> = new Map();\n\n /**\n * Returns the cached response for opted-in `GET` requests and passes every other request on.\n * @param request - The outgoing request.\n * @param next - The next handler in the chain.\n * @returns The response stream.\n */\n intercept<T>(request: HttpRequest<T>, next: HttpHandler): Observable<HttpEvent<T>> {\n if (request.method !== 'GET' || !request.params.has(NgDocCacheInterceptor.TOKEN)) {\n return next.handle(request);\n }\n\n const cachedRequest = this.cache.get(request.url) as Observable<HttpEvent<T>> | undefined;\n\n if (cachedRequest) {\n return cachedRequest;\n }\n\n const newRequest: HttpRequest<T> = request.clone({\n params: request.params.delete(NgDocCacheInterceptor.TOKEN),\n });\n const newHandler: Observable<HttpEvent<T>> = next.handle(newRequest).pipe(\n // An error arrives as an `HttpErrorResponse`, so the entry is removed by the request URL:\n // the next request for it goes to the network again.\n tap({ error: () => this.cache.delete(request.url) }),\n shareReplay(1),\n );\n\n this.cache.set(request.url, newHandler);\n\n return newHandler;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAKA;;;;;;;;AAQG;MAEU,qBAAqB,CAAA;AADlC,IAAA,WAAA,GAAA;AAKmB,QAAA,IAAA,CAAA,KAAK,GAAgD,IAAI,GAAG,EAAE;AAiChF,IAAA;;AAnCiB,IAAA,SAAA,IAAA,CAAA,KAAK,GAAW,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAIrE;;;;;AAKG;IACH,SAAS,CAAI,OAAuB,EAAE,IAAiB,EAAA;AACrD,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE;AAChF,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7B;AAEA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAyC;QAEzF,IAAI,aAAa,EAAE;AACjB,YAAA,OAAO,aAAa;QACtB;AAEA,QAAA,MAAM,UAAU,GAAmB,OAAO,CAAC,KAAK,CAAC;YAC/C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC;AAC3D,SAAA,CAAC;QACF,MAAM,UAAU,GAA6B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI;;;QAGvE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EACpD,WAAW,CAAC,CAAC,CAAC,CACf;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC;AAEvC,QAAA,OAAO,UAAU;IACnB;8GApCW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAArB,qBAAqB,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;;ACdD;;AAEG;;;;"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { Observable, of
|
|
1
|
+
import { Observable, of } from 'rxjs';
|
|
2
2
|
import { startWith, switchMap, map, catchError, tap } from 'rxjs/operators';
|
|
3
|
-
import { inject, NgZone } from '@angular/core';
|
|
4
3
|
|
|
5
4
|
/**
|
|
6
5
|
* @param subscribable
|
|
@@ -35,64 +34,9 @@ function observableState(retry) {
|
|
|
35
34
|
};
|
|
36
35
|
}
|
|
37
36
|
|
|
38
|
-
class NgDocZoneDetachSourceOperator {
|
|
39
|
-
constructor(ngZone) {
|
|
40
|
-
this.ngZone = ngZone;
|
|
41
|
-
}
|
|
42
|
-
call(observer, source) {
|
|
43
|
-
return this.ngZone.runOutsideAngular(() => source.subscribe(observer));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
*
|
|
48
|
-
* @param ngZone
|
|
49
|
-
*/
|
|
50
|
-
function zoneDetachSource(ngZone) {
|
|
51
|
-
return (source) => source.lift(new NgDocZoneDetachSourceOperator(ngZone));
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
*
|
|
55
|
-
* @param ngZone
|
|
56
|
-
*/
|
|
57
|
-
function zoneDetach(ngZone) {
|
|
58
|
-
return (source) => new Observable((subscriber) => source.subscribe({
|
|
59
|
-
next: (value) => ngZone.runOutsideAngular(() => subscriber.next(value)),
|
|
60
|
-
error: (error) => ngZone.runOutsideAngular(() => subscriber.error(error)),
|
|
61
|
-
complete: () => ngZone.runOutsideAngular(() => subscriber.complete()),
|
|
62
|
-
}));
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
*
|
|
66
|
-
* @param ngZone
|
|
67
|
-
*/
|
|
68
|
-
function ngDocZoneAttach(ngZone) {
|
|
69
|
-
ngZone = ngZone || inject(NgZone);
|
|
70
|
-
return (source) => new Observable((subscriber) => source.subscribe({
|
|
71
|
-
next: (value) => ngZone.run(() => subscriber.next(value)),
|
|
72
|
-
error: (error) => ngZone.run(() => subscriber.error(error)),
|
|
73
|
-
complete: () => ngZone.run(() => subscriber.complete()),
|
|
74
|
-
}));
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
*
|
|
78
|
-
* @param ngZone
|
|
79
|
-
*/
|
|
80
|
-
function ngDocZoneDetach(ngZone) {
|
|
81
|
-
ngZone = ngZone || inject(NgZone);
|
|
82
|
-
return pipe(zoneDetach(ngZone), zoneDetachSource(ngZone));
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
*
|
|
86
|
-
* @param ngZone
|
|
87
|
-
*/
|
|
88
|
-
function ngDocZoneOptimize(ngZone) {
|
|
89
|
-
ngZone = ngZone || inject(NgZone);
|
|
90
|
-
return pipe(zoneDetach(ngZone), zoneDetachSource(ngZone), ngDocZoneAttach(ngZone));
|
|
91
|
-
}
|
|
92
|
-
|
|
93
37
|
/**
|
|
94
38
|
* Generated bundle index. Do not edit.
|
|
95
39
|
*/
|
|
96
40
|
|
|
97
|
-
export { fromSubscribe,
|
|
41
|
+
export { fromSubscribe, observableState };
|
|
98
42
|
//# sourceMappingURL=ng-doc-ui-kit-observables.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-ui-kit-observables.mjs","sources":["../../../../libs/ui-kit/observables/from-subscribe.ts","../../../../libs/ui-kit/observables/observable-state.ts","../../../../libs/ui-kit/observables/
|
|
1
|
+
{"version":3,"file":"ng-doc-ui-kit-observables.mjs","sources":["../../../../libs/ui-kit/observables/from-subscribe.ts","../../../../libs/ui-kit/observables/observable-state.ts","../../../../libs/ui-kit/observables/ng-doc-ui-kit-observables.ts"],"sourcesContent":["import { NgDocSubscribable } from '@ng-doc/ui-kit/types';\nimport { Observable, Subscriber, Unsubscribable } from 'rxjs';\n\n/**\n * @param subscribable\n */\nexport function fromSubscribe<T>(subscribable: NgDocSubscribable<T>): Observable<T> {\n return new Observable<T>((observer: Subscriber<T>) => {\n const subscription: Unsubscribable = subscribable.subscribe(\n (next: T) => observer.next(next),\n (error: unknown) => observer.error(error),\n () => observer.complete(),\n );\n return () => subscription.unsubscribe();\n });\n}\n","import type { Observable, OperatorFunction } from 'rxjs';\nimport { of } from 'rxjs';\nimport { catchError, map, startWith, switchMap, tap } from 'rxjs/operators';\n\nexport type StatedObservable<T, E = Error> = Observable<ObservableState<T, E>>;\n\nexport interface ObservableState<T, E = Error> {\n\tresult: T | null;\n\terror: E | null;\n\tpending: boolean;\n}\n\n/**\n *\n * @param retry\n */\nexport function observableState<T, E = Error>(\n\tretry?: Observable<unknown>,\n): OperatorFunction<T, ObservableState<T, E>> {\n\treturn (source: Observable<T>) => {\n\t\tlet state: ObservableState<T, E> = {\n\t\t\tresult: null,\n\t\t\terror: null,\n\t\t\tpending: false,\n\t\t};\n\n\t\treturn (retry ? retry.pipe(startWith(null)) : of(null)).pipe(\n\t\t\tswitchMap(() =>\n\t\t\t\tsource.pipe(\n\t\t\t\t\t// Map result of observable\n\t\t\t\t\tmap((result: T) => ({ result, pending: false })),\n\t\t\t\t\t// Map error of observable\n\t\t\t\t\tcatchError((error: E) => of({ result: null, error, pending: false })),\n\t\t\t\t\t// Start from pending state and clear error\n\t\t\t\t\tstartWith({ error: null, pending: true }),\n\t\t\t\t\t// Merge the current state with new state\n\t\t\t\t\ttap(\n\t\t\t\t\t\t(updatedState: Partial<ObservableState<T, E>>) =>\n\t\t\t\t\t\t\t(state = { ...state, ...updatedState }),\n\t\t\t\t\t),\n\t\t\t\t\tmap(() => state),\n\t\t\t\t),\n\t\t\t),\n\t\t);\n\t};\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAGA;;AAEG;AACG,SAAU,aAAa,CAAI,YAAkC,EAAA;AACjE,IAAA,OAAO,IAAI,UAAU,CAAI,CAAC,QAAuB,KAAI;AACnD,QAAA,MAAM,YAAY,GAAmB,YAAY,CAAC,SAAS,CACzD,CAAC,IAAO,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAChC,CAAC,KAAc,KAAK,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EACzC,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAC1B;AACD,QAAA,OAAO,MAAM,YAAY,CAAC,WAAW,EAAE;AACzC,IAAA,CAAC,CAAC;AACJ;;ACHA;;;AAGG;AACG,SAAU,eAAe,CAC9B,KAA2B,EAAA;IAE3B,OAAO,CAAC,MAAqB,KAAI;AAChC,QAAA,IAAI,KAAK,GAA0B;AAClC,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,OAAO,EAAE,KAAK;SACd;AAED,QAAA,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAC3D,SAAS,CAAC,MACT,MAAM,CAAC,IAAI;;AAEV,QAAA,GAAG,CAAC,CAAC,MAAS,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;;QAEhD,UAAU,CAAC,CAAC,KAAQ,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;;QAErE,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;AAEzC,QAAA,GAAG,CACF,CAAC,YAA4C,MAC3C,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC,CACxC,EACD,GAAG,CAAC,MAAM,KAAK,CAAC,CAChB,CACD,CACD;AACF,IAAA,CAAC;AACF;;AC7CA;;AAEG;;;;"}
|
|
@@ -6,14 +6,13 @@ class NgDocAsArrayPipe {
|
|
|
6
6
|
transform(value) {
|
|
7
7
|
return asArray(value);
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
10
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocAsArrayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
10
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.2.1", ngImport: i0, type: NgDocAsArrayPipe, isStandalone: true, name: "asArray" }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocAsArrayPipe, decorators: [{
|
|
13
13
|
type: Pipe,
|
|
14
14
|
args: [{
|
|
15
15
|
name: 'asArray',
|
|
16
|
-
standalone: true,
|
|
17
16
|
}]
|
|
18
17
|
}] });
|
|
19
18
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-ui-kit-pipes-as-array.mjs","sources":["../../../../libs/ui-kit/pipes/as-array/as-array.pipe.ts","../../../../libs/ui-kit/pipes/as-array/ng-doc-ui-kit-pipes-as-array.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\n\n@Pipe({\n
|
|
1
|
+
{"version":3,"file":"ng-doc-ui-kit-pipes-as-array.mjs","sources":["../../../../libs/ui-kit/pipes/as-array/as-array.pipe.ts","../../../../libs/ui-kit/pipes/as-array/ng-doc-ui-kit-pipes-as-array.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\n\n@Pipe({\n name: 'asArray',\n})\nexport class NgDocAsArrayPipe implements PipeTransform {\n transform<T>(value: T | T[] | Iterable<T> | null | undefined): T[] {\n return asArray(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAMa,gBAAgB,CAAA;AAC3B,IAAA,SAAS,CAAI,KAA+C,EAAA;AAC1D,QAAA,OAAO,OAAO,CAAC,KAAK,CAAC;IACvB;8GAHW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,SAAS;AAChB,iBAAA;;;ACLD;;AAEG;;;;"}
|
|
@@ -5,14 +5,13 @@ class NgDocBindPipe {
|
|
|
5
5
|
transform(fn, _this) {
|
|
6
6
|
return fn.bind(_this);
|
|
7
7
|
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
9
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocBindPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
9
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.2.1", ngImport: i0, type: NgDocBindPipe, isStandalone: true, name: "bind" }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocBindPipe, decorators: [{
|
|
12
12
|
type: Pipe,
|
|
13
13
|
args: [{
|
|
14
14
|
name: 'bind',
|
|
15
|
-
standalone: true,
|
|
16
15
|
}]
|
|
17
16
|
}] });
|
|
18
17
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-ui-kit-pipes-bind.mjs","sources":["../../../../libs/ui-kit/pipes/bind/bind.pipe.ts","../../../../libs/ui-kit/pipes/bind/ng-doc-ui-kit-pipes-bind.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { FunctionType } from '@ng-doc/core';\n\n@Pipe({\n name: 'bind',\n
|
|
1
|
+
{"version":3,"file":"ng-doc-ui-kit-pipes-bind.mjs","sources":["../../../../libs/ui-kit/pipes/bind/bind.pipe.ts","../../../../libs/ui-kit/pipes/bind/ng-doc-ui-kit-pipes-bind.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { FunctionType } from '@ng-doc/core';\n\n@Pipe({\n name: 'bind',\n})\nexport class NgDocBindPipe implements PipeTransform {\n transform<R>(fn: FunctionType<R>, _this: unknown): FunctionType<R> {\n return fn.bind(_this);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAMa,aAAa,CAAA;IACxB,SAAS,CAAI,EAAmB,EAAE,KAAc,EAAA;AAC9C,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;IACvB;8GAHW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,MAAM;AACb,iBAAA;;;ACLD;;AAEG;;;;"}
|
|
@@ -5,14 +5,13 @@ class NgDocExecutePipe {
|
|
|
5
5
|
transform(fn, ...args) {
|
|
6
6
|
return fn(...args);
|
|
7
7
|
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
9
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocExecutePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
9
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.2.1", ngImport: i0, type: NgDocExecutePipe, isStandalone: true, name: "execute" }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocExecutePipe, decorators: [{
|
|
12
12
|
type: Pipe,
|
|
13
13
|
args: [{
|
|
14
14
|
name: 'execute',
|
|
15
|
-
standalone: true,
|
|
16
15
|
}]
|
|
17
16
|
}] });
|
|
18
17
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-ui-kit-pipes-execute.mjs","sources":["../../../../libs/ui-kit/pipes/execute/execute.pipe.ts","../../../../libs/ui-kit/pipes/execute/ng-doc-ui-kit-pipes-execute.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { FunctionType } from '@ng-doc/core';\n\n@Pipe({\n
|
|
1
|
+
{"version":3,"file":"ng-doc-ui-kit-pipes-execute.mjs","sources":["../../../../libs/ui-kit/pipes/execute/execute.pipe.ts","../../../../libs/ui-kit/pipes/execute/ng-doc-ui-kit-pipes-execute.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { FunctionType } from '@ng-doc/core';\n\n@Pipe({\n name: 'execute',\n})\nexport class NgDocExecutePipe implements PipeTransform {\n transform<F extends FunctionType>(fn: F, ...args: Parameters<F>): ReturnType<F> {\n return fn(...args);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAMa,gBAAgB,CAAA;AAC3B,IAAA,SAAS,CAAyB,EAAK,EAAE,GAAG,IAAmB,EAAA;AAC7D,QAAA,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IACpB;8GAHW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,SAAS;AAChB,iBAAA;;;ACLD;;AAEG;;;;"}
|
|
@@ -12,14 +12,13 @@ class NgDocHighlighterPipe {
|
|
|
12
12
|
});
|
|
13
13
|
return input;
|
|
14
14
|
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
16
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocHighlighterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
16
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.2.1", ngImport: i0, type: NgDocHighlighterPipe, isStandalone: true, name: "ngDocHighlighterPipe" }); }
|
|
17
17
|
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocHighlighterPipe, decorators: [{
|
|
19
19
|
type: Pipe,
|
|
20
20
|
args: [{
|
|
21
21
|
name: 'ngDocHighlighterPipe',
|
|
22
|
-
standalone: true,
|
|
23
22
|
}]
|
|
24
23
|
}] });
|
|
25
24
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-ui-kit-pipes-highlighter.mjs","sources":["../../../../libs/ui-kit/pipes/highlighter/highlighter.pipe.ts","../../../../libs/ui-kit/pipes/highlighter/ng-doc-ui-kit-pipes-highlighter.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\nexport interface NgDocHighlightPosition {\n
|
|
1
|
+
{"version":3,"file":"ng-doc-ui-kit-pipes-highlighter.mjs","sources":["../../../../libs/ui-kit/pipes/highlighter/highlighter.pipe.ts","../../../../libs/ui-kit/pipes/highlighter/ng-doc-ui-kit-pipes-highlighter.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\nexport interface NgDocHighlightPosition {\n start: number;\n length: number;\n}\n\n@Pipe({\n name: 'ngDocHighlighterPipe',\n})\nexport class NgDocHighlighterPipe implements PipeTransform {\n transform(input: string, positions: NgDocHighlightPosition[]): string {\n positions\n .sort((a: NgDocHighlightPosition, b: NgDocHighlightPosition) => b.start - a.start)\n .forEach((position: NgDocHighlightPosition) => {\n const { start, length } = position;\n const end = start + length;\n\n input = `${input.slice(0, start)}<mark class=\"ng-doc-mark\">${input.slice(\n start,\n end,\n )}</mark>${input.slice(end)}`;\n });\n\n return input;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAUa,oBAAoB,CAAA;IAC/B,SAAS,CAAC,KAAa,EAAE,SAAmC,EAAA;QAC1D;AACG,aAAA,IAAI,CAAC,CAAC,CAAyB,EAAE,CAAyB,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;AAChF,aAAA,OAAO,CAAC,CAAC,QAAgC,KAAI;AAC5C,YAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ;AAClC,YAAA,MAAM,GAAG,GAAG,KAAK,GAAG,MAAM;YAE1B,KAAK,GAAG,CAAA,EAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA,0BAAA,EAA6B,KAAK,CAAC,KAAK,CACtE,KAAK,EACL,GAAG,CACJ,CAAA,OAAA,EAAU,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,CAAE;AAC/B,QAAA,CAAC,CAAC;AAEJ,QAAA,OAAO,KAAK;IACd;8GAfW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,sBAAsB;AAC7B,iBAAA;;;ACTD;;AAEG;;;;"}
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject,
|
|
2
|
+
import { InjectionToken, inject, Service } from '@angular/core';
|
|
3
3
|
import { asArray } from '@ng-doc/core/helpers/as-array';
|
|
4
4
|
import { NgDocOverlayContainerComponent } from '@ng-doc/ui-kit/components/overlay-container';
|
|
5
5
|
import { NgDocOverlayService } from '@ng-doc/ui-kit/services/overlay';
|
|
6
6
|
|
|
7
|
+
/** The `data` of the dialog config, for the dialog content to inject. */
|
|
7
8
|
const NG_DOC_DIALOG_DATA = new InjectionToken('NG_DOC_DIALOG_DATA');
|
|
9
|
+
/** Opens dialogs: overlays centered in the viewport that block page scrolling. */
|
|
8
10
|
class NgDocDialogService {
|
|
9
11
|
constructor() {
|
|
10
12
|
this.overlayService = inject(NgDocOverlayService);
|
|
11
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Opens a dialog.
|
|
16
|
+
* @param content - What the dialog renders: a string, a template or a component.
|
|
17
|
+
* @param config - Overlay options; `data` is provided to the content as `NG_DOC_DIALOG_DATA`.
|
|
18
|
+
* @returns The handle of the opened dialog.
|
|
19
|
+
*/
|
|
12
20
|
open(content, config) {
|
|
13
21
|
return this.overlayService.open(content, {
|
|
14
22
|
overlayContainer: NgDocOverlayContainerComponent,
|
|
@@ -19,17 +27,15 @@ class NgDocDialogService {
|
|
|
19
27
|
panelClass: ['ng-doc-dialog', ...asArray(config?.panelClass)],
|
|
20
28
|
}, [{ provide: NG_DOC_DIALOG_DATA, useValue: config?.data }]);
|
|
21
29
|
}
|
|
30
|
+
/** @returns A new global position strategy, to position a dialog through its config. */
|
|
22
31
|
positionStrategy() {
|
|
23
32
|
return this.overlayService.globalPositionStrategy();
|
|
24
33
|
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
26
|
-
static { this.ɵprov = i0.ɵɵ
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocDialogService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
|
|
35
|
+
static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.2.1", ngImport: i0, type: NgDocDialogService }); }
|
|
27
36
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
29
|
-
type:
|
|
30
|
-
args: [{
|
|
31
|
-
providedIn: 'root',
|
|
32
|
-
}]
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocDialogService, decorators: [{
|
|
38
|
+
type: Service
|
|
33
39
|
}] });
|
|
34
40
|
|
|
35
41
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-ui-kit-services-dialog.mjs","sources":["../../../../libs/ui-kit/services/dialog/dialog.service.ts","../../../../libs/ui-kit/services/dialog/ng-doc-ui-kit-services-dialog.ts"],"sourcesContent":["import { GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { inject,
|
|
1
|
+
{"version":3,"file":"ng-doc-ui-kit-services-dialog.mjs","sources":["../../../../libs/ui-kit/services/dialog/dialog.service.ts","../../../../libs/ui-kit/services/dialog/ng-doc-ui-kit-services-dialog.ts"],"sourcesContent":["import { GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { inject, InjectionToken, Service } from '@angular/core';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { NgDocOverlayRef } from '@ng-doc/ui-kit/classes';\nimport { NgDocOverlayContainerComponent } from '@ng-doc/ui-kit/components/overlay-container';\nimport { NgDocOverlayService } from '@ng-doc/ui-kit/services/overlay';\nimport { NgDocContent } from '@ng-doc/ui-kit/types';\n\nimport { NgDocDialogConfig } from './dialog.config';\n\n/** The `data` of the dialog config, for the dialog content to inject. */\nexport const NG_DOC_DIALOG_DATA = new InjectionToken<unknown>('NG_DOC_DIALOG_DATA');\n\n/** Opens dialogs: overlays centered in the viewport that block page scrolling. */\n@Service()\nexport class NgDocDialogService {\n protected overlayService: NgDocOverlayService = inject(NgDocOverlayService);\n\n /**\n * Opens a dialog.\n * @param content - What the dialog renders: a string, a template or a component.\n * @param config - Overlay options; `data` is provided to the content as `NG_DOC_DIALOG_DATA`.\n * @returns The handle of the opened dialog.\n */\n open<R = unknown>(content: NgDocContent, config?: NgDocDialogConfig): NgDocOverlayRef<R> {\n return this.overlayService.open(\n content,\n {\n overlayContainer: NgDocOverlayContainerComponent,\n positionStrategy:\n config?.positionStrategy ??\n this.overlayService.globalPositionStrategy().centerHorizontally().centerVertically(),\n scrollStrategy: config?.scrollStrategy ?? this.overlayService.scrollStrategy().block(),\n ...config,\n panelClass: ['ng-doc-dialog', ...asArray(config?.panelClass)],\n },\n [{ provide: NG_DOC_DIALOG_DATA, useValue: config?.data }],\n );\n }\n\n /** @returns A new global position strategy, to position a dialog through its config. */\n positionStrategy(): GlobalPositionStrategy {\n return this.overlayService.globalPositionStrategy();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAUA;MACa,kBAAkB,GAAG,IAAI,cAAc,CAAU,oBAAoB;AAElF;MAEa,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,cAAc,GAAwB,MAAM,CAAC,mBAAmB,CAAC;AA4B5E,IAAA;AA1BC;;;;;AAKG;IACH,IAAI,CAAc,OAAqB,EAAE,MAA0B,EAAA;AACjE,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,OAAO,EACP;AACE,YAAA,gBAAgB,EAAE,8BAA8B;YAChD,gBAAgB,EACd,MAAM,EAAE,gBAAgB;gBACxB,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAE,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,EAAE;AACtF,YAAA,cAAc,EAAE,MAAM,EAAE,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE;AACtF,YAAA,GAAG,MAAM;YACT,UAAU,EAAE,CAAC,eAAe,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC9D,SAAA,EACD,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAC1D;IACH;;IAGA,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAE;IACrD;8GA5BW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,OAAA,EAAA,CAAA,CAAA;+GAAlB,kBAAkB,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;ACdD;;AAEG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject,
|
|
2
|
+
import { inject, Service } from '@angular/core';
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { notificationCloseAnimation, notificationOpenAnimation } from '@ng-doc/ui-kit/animations';
|
|
5
5
|
import { NgDocOverlayContainerComponent } from '@ng-doc/ui-kit/components/overlay-container';
|
|
@@ -7,6 +7,10 @@ import { NgDocOverlayService } from '@ng-doc/ui-kit/services/overlay';
|
|
|
7
7
|
import { Subject, timer } from 'rxjs';
|
|
8
8
|
import { tap, switchMap } from 'rxjs/operators';
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Shows short notifications at the bottom of the viewport. A new notification replaces the
|
|
12
|
+
* current one, and each closes after two seconds.
|
|
13
|
+
*/
|
|
10
14
|
class NgDocNotifyService {
|
|
11
15
|
constructor() {
|
|
12
16
|
this.overlayService = inject(NgDocOverlayService);
|
|
@@ -15,6 +19,10 @@ class NgDocNotifyService {
|
|
|
15
19
|
.pipe(tap(() => this.overlayRef?.close()), tap((content) => this.openOverlay(content)), switchMap(() => timer(2000)), takeUntilDestroyed())
|
|
16
20
|
.subscribe(() => this.overlayRef?.close());
|
|
17
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Shows a notification.
|
|
24
|
+
* @param content - Content of the notification.
|
|
25
|
+
*/
|
|
18
26
|
notify(content) {
|
|
19
27
|
this.notify$.next(content);
|
|
20
28
|
}
|
|
@@ -30,14 +38,11 @@ class NgDocNotifyService {
|
|
|
30
38
|
closeAnimation: notificationCloseAnimation,
|
|
31
39
|
});
|
|
32
40
|
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
34
|
-
static { this.ɵprov = i0.ɵɵ
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocNotifyService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
|
|
42
|
+
static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.2.1", ngImport: i0, type: NgDocNotifyService }); }
|
|
35
43
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
37
|
-
type:
|
|
38
|
-
args: [{
|
|
39
|
-
providedIn: 'root',
|
|
40
|
-
}]
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocNotifyService, decorators: [{
|
|
45
|
+
type: Service
|
|
41
46
|
}], ctorParameters: () => [] });
|
|
42
47
|
|
|
43
48
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-ui-kit-services-notify.mjs","sources":["../../../../libs/ui-kit/services/notify/notify.service.ts","../../../../libs/ui-kit/services/notify/ng-doc-ui-kit-services-notify.ts"],"sourcesContent":["import { inject,
|
|
1
|
+
{"version":3,"file":"ng-doc-ui-kit-services-notify.mjs","sources":["../../../../libs/ui-kit/services/notify/notify.service.ts","../../../../libs/ui-kit/services/notify/ng-doc-ui-kit-services-notify.ts"],"sourcesContent":["import { inject, Service } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { notificationCloseAnimation, notificationOpenAnimation } from '@ng-doc/ui-kit/animations';\nimport { NgDocOverlayRef } from '@ng-doc/ui-kit/classes';\nimport { NgDocOverlayContainerComponent } from '@ng-doc/ui-kit/components/overlay-container';\nimport { NgDocOverlayService } from '@ng-doc/ui-kit/services/overlay';\nimport { NgDocContent } from '@ng-doc/ui-kit/types';\nimport { Subject, timer } from 'rxjs';\nimport { switchMap, tap } from 'rxjs/operators';\n\n/**\n * Shows short notifications at the bottom of the viewport. A new notification replaces the\n * current one, and each closes after two seconds.\n */\n@Service()\nexport class NgDocNotifyService {\n private readonly overlayService = inject(NgDocOverlayService);\n\n private overlayRef?: NgDocOverlayRef;\n private readonly notify$: Subject<NgDocContent> = new Subject<NgDocContent>();\n\n constructor() {\n this.notify$\n .pipe(\n tap(() => this.overlayRef?.close()),\n tap((content: NgDocContent) => this.openOverlay(content)),\n switchMap(() => timer(2000)),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.overlayRef?.close());\n }\n\n /**\n * Shows a notification.\n * @param content - Content of the notification.\n */\n notify(content: NgDocContent): void {\n this.notify$.next(content);\n }\n\n private openOverlay(content: NgDocContent): void {\n this.overlayRef = this.overlayService.open(content, {\n overlayContainer: NgDocOverlayContainerComponent,\n panelClass: 'ng-doc-notify',\n positionStrategy: this.overlayService\n .globalPositionStrategy()\n .bottom('10px')\n .centerHorizontally(),\n openAnimation: notificationOpenAnimation,\n closeAnimation: notificationCloseAnimation,\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAUA;;;AAGG;MAEU,kBAAkB,CAAA;AAM7B,IAAA,WAAA,GAAA;AALiB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAG5C,QAAA,IAAA,CAAA,OAAO,GAA0B,IAAI,OAAO,EAAgB;AAG3E,QAAA,IAAI,CAAC;AACF,aAAA,IAAI,CACH,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EACnC,GAAG,CAAC,CAAC,OAAqB,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EACzD,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,EAC5B,kBAAkB,EAAE;aAErB,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;IAC9C;AAEA;;;AAGG;AACH,IAAA,MAAM,CAAC,OAAqB,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;IAC5B;AAEQ,IAAA,WAAW,CAAC,OAAqB,EAAA;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE;AAClD,YAAA,gBAAgB,EAAE,8BAA8B;AAChD,YAAA,UAAU,EAAE,eAAe;YAC3B,gBAAgB,EAAE,IAAI,CAAC;AACpB,iBAAA,sBAAsB;iBACtB,MAAM,CAAC,MAAM;AACb,iBAAA,kBAAkB,EAAE;AACvB,YAAA,aAAa,EAAE,yBAAyB;AACxC,YAAA,cAAc,EAAE,0BAA0B;AAC3C,SAAA,CAAC;IACJ;8GApCW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,OAAA,EAAA,CAAA,CAAA;+GAAlB,kBAAkB,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;ACdD;;AAEG;;;;"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, DOCUMENT, NgZone,
|
|
2
|
+
import { inject, DOCUMENT, NgZone, Service } from '@angular/core';
|
|
3
3
|
import { toElement } from '@ng-doc/ui-kit/helpers';
|
|
4
|
-
import { ngDocZoneDetach } from '@ng-doc/ui-kit/observables';
|
|
5
4
|
import { Subject, fromEvent } from 'rxjs';
|
|
6
5
|
import { throttleTime, map, filter, takeUntil } from 'rxjs/operators';
|
|
7
6
|
|
|
7
|
+
/**
|
|
8
|
+
* A scroll strategy that closes the overlay when an element that contains its origin scrolls.
|
|
9
|
+
* Tooltips use it.
|
|
10
|
+
*/
|
|
8
11
|
class NgDocOverlayStrategy {
|
|
9
12
|
constructor() {
|
|
10
13
|
this.documentRef = inject(DOCUMENT);
|
|
@@ -16,11 +19,13 @@ class NgDocOverlayStrategy {
|
|
|
16
19
|
this.overlayRef = overlayRef;
|
|
17
20
|
}
|
|
18
21
|
enable() {
|
|
19
|
-
|
|
20
|
-
|
|
22
|
+
// Scroll events are frequent: listen outside the Angular zone so that they do not trigger
|
|
23
|
+
// change detection in a zone.js application. Only the detachment re-enters it.
|
|
24
|
+
this.ngZone.runOutsideAngular(() => fromEvent(this.documentRef, 'scroll', { capture: true })
|
|
25
|
+
.pipe(throttleTime(10), map((scrollEvent) => scrollEvent.target instanceof Document
|
|
21
26
|
? scrollEvent.target.scrollingElement
|
|
22
27
|
: scrollEvent.target), filter((target) => target instanceof Node ? target.contains(this.origin) || !this.origin : false), takeUntil(this.destroy$))
|
|
23
|
-
.subscribe(() => this.detach());
|
|
28
|
+
.subscribe(() => this.detach()));
|
|
24
29
|
}
|
|
25
30
|
get origin() {
|
|
26
31
|
const config = this.overlayRef?.getConfig();
|
|
@@ -39,13 +44,12 @@ class NgDocOverlayStrategy {
|
|
|
39
44
|
});
|
|
40
45
|
}
|
|
41
46
|
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
43
|
-
static { this.ɵprov = i0.ɵɵ
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocOverlayStrategy, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
|
|
48
|
+
static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.2.1", ngImport: i0, type: NgDocOverlayStrategy }); }
|
|
44
49
|
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
46
|
-
type:
|
|
47
|
-
|
|
48
|
-
}], ctorParameters: () => [] });
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocOverlayStrategy, decorators: [{
|
|
51
|
+
type: Service
|
|
52
|
+
}] });
|
|
49
53
|
|
|
50
54
|
/**
|
|
51
55
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-ui-kit-services-overlay-strategy.mjs","sources":["../../../../libs/ui-kit/services/overlay-strategy/overlay-strategy.ts","../../../../libs/ui-kit/services/overlay-strategy/ng-doc-ui-kit-services-overlay-strategy.ts"],"sourcesContent":["import { OverlayRef, ScrollStrategy } from '@angular/cdk/overlay';\nimport { DOCUMENT, inject,
|
|
1
|
+
{"version":3,"file":"ng-doc-ui-kit-services-overlay-strategy.mjs","sources":["../../../../libs/ui-kit/services/overlay-strategy/overlay-strategy.ts","../../../../libs/ui-kit/services/overlay-strategy/ng-doc-ui-kit-services-overlay-strategy.ts"],"sourcesContent":["import { OverlayRef, ScrollStrategy } from '@angular/cdk/overlay';\nimport { DOCUMENT, inject, NgZone, Service } from '@angular/core';\nimport { toElement } from '@ng-doc/ui-kit/helpers';\nimport { NgDocOverlayConfig } from '@ng-doc/ui-kit/interfaces';\nimport { fromEvent, Subject } from 'rxjs';\nimport { filter, map, takeUntil, throttleTime } from 'rxjs/operators';\n\n/**\n * A scroll strategy that closes the overlay when an element that contains its origin scrolls.\n * Tooltips use it.\n */\n@Service()\nexport class NgDocOverlayStrategy implements ScrollStrategy {\n private documentRef = inject<Document>(DOCUMENT);\n private ngZone = inject(NgZone);\n\n private overlayRef: OverlayRef | null = null;\n private destroy$: Subject<void> = new Subject<void>();\n\n attach(overlayRef: OverlayRef): void {\n this.overlayRef = overlayRef;\n }\n\n enable(): void {\n // Scroll events are frequent: listen outside the Angular zone so that they do not trigger\n // change detection in a zone.js application. Only the detachment re-enters it.\n this.ngZone.runOutsideAngular(() =>\n fromEvent(this.documentRef, 'scroll', { capture: true })\n .pipe(\n throttleTime(10),\n map((scrollEvent: Event) =>\n scrollEvent.target instanceof Document\n ? scrollEvent.target.scrollingElement\n : scrollEvent.target,\n ),\n filter((target: EventTarget | null) =>\n target instanceof Node ? target.contains(this.origin) || !this.origin : false,\n ),\n takeUntil(this.destroy$),\n )\n .subscribe(() => this.detach()),\n );\n }\n\n private get origin(): HTMLElement | null {\n const config: NgDocOverlayConfig | undefined =\n this.overlayRef?.getConfig() as NgDocOverlayConfig;\n return config?.viewContainerRef\n ? (toElement(config.viewContainerRef.element) as HTMLElement)\n : null;\n }\n\n disable(): void {\n this.destroy$.next();\n }\n\n detach(): void {\n this.disable();\n if (this.overlayRef?.hasAttached()) {\n this.ngZone.run(() => {\n this.overlayRef?.detach();\n });\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAOA;;;AAGG;MAEU,oBAAoB,CAAA;AADjC,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAW,QAAQ,CAAC;AACxC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAEvB,IAAA,CAAA,UAAU,GAAsB,IAAI;AACpC,QAAA,IAAA,CAAA,QAAQ,GAAkB,IAAI,OAAO,EAAQ;AA+CtD,IAAA;AA7CC,IAAA,MAAM,CAAC,UAAsB,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;IAC9B;IAEA,MAAM,GAAA;;;QAGJ,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAC5B,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AACpD,aAAA,IAAI,CACH,YAAY,CAAC,EAAE,CAAC,EAChB,GAAG,CAAC,CAAC,WAAkB,KACrB,WAAW,CAAC,MAAM,YAAY;AAC5B,cAAE,WAAW,CAAC,MAAM,CAAC;cACnB,WAAW,CAAC,MAAM,CACvB,EACD,MAAM,CAAC,CAAC,MAA0B,KAChC,MAAM,YAAY,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAC9E,EACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;aAEzB,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAClC;IACH;AAEA,IAAA,IAAY,MAAM,GAAA;QAChB,MAAM,MAAM,GACV,IAAI,CAAC,UAAU,EAAE,SAAS,EAAwB;QACpD,OAAO,MAAM,EAAE;cACV,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO;cAC1C,IAAI;IACV;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;IACtB;IAEA,MAAM,GAAA;QACJ,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE;AAClC,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACnB,gBAAA,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;AAC3B,YAAA,CAAC,CAAC;QACJ;IACF;8GAnDW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,OAAA,EAAA,CAAA,CAAA;+GAApB,oBAAoB,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC;;;ACXD;;AAEG;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Overlay } from '@angular/cdk/overlay';
|
|
2
2
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { inject,
|
|
4
|
+
import { inject, Injector, Service } from '@angular/core';
|
|
5
5
|
import { Router } from '@angular/router';
|
|
6
6
|
import { asArray } from '@ng-doc/core/helpers/as-array';
|
|
7
7
|
import { NgDocOverlayRef } from '@ng-doc/ui-kit/classes';
|
|
@@ -9,13 +9,25 @@ import { NgDocOverlayUtils } from '@ng-doc/ui-kit/utils';
|
|
|
9
9
|
import { PolymorpheusComponent } from '@taiga-ui/polymorpheus';
|
|
10
10
|
import { take } from 'rxjs/operators';
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Opens NgDoc overlays: a container component inside a CDK overlay.
|
|
14
|
+
*
|
|
15
|
+
* It is provided in the root injector. A component can also list it in its `providers`, so the
|
|
16
|
+
* overlays it opens use that component's injector (the dropdown does).
|
|
17
|
+
*/
|
|
12
18
|
class NgDocOverlayService {
|
|
13
19
|
constructor() {
|
|
14
20
|
this.overlay = inject(Overlay);
|
|
15
|
-
this.ngZone = inject(NgZone);
|
|
16
21
|
this.injector = inject(Injector);
|
|
17
22
|
this.router = inject(Router);
|
|
18
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Opens an overlay.
|
|
26
|
+
* @param content - What the container renders: a string, a template or a component.
|
|
27
|
+
* @param config - The overlay configuration, including the container component.
|
|
28
|
+
* @param providers - Extra providers for a component content; `NgDocOverlayRef` is always added.
|
|
29
|
+
* @returns The handle of the opened overlay.
|
|
30
|
+
*/
|
|
19
31
|
open(content, config, providers = []) {
|
|
20
32
|
const overlayRef = this.createOverlay(config);
|
|
21
33
|
return this.attachTooltipContainer(content, overlayRef, config, providers);
|
|
@@ -23,7 +35,7 @@ class NgDocOverlayService {
|
|
|
23
35
|
attachTooltipContainer(content, overlay, config, providers) {
|
|
24
36
|
const containerPortal = new ComponentPortal(config.overlayContainer, config.viewContainerRef, config.viewContainerRef?.injector);
|
|
25
37
|
const containerRef = overlay.attach(containerPortal);
|
|
26
|
-
const overlayRef = new NgDocOverlayRef(overlay, config, containerRef.instance, this.
|
|
38
|
+
const overlayRef = new NgDocOverlayRef(overlay, config, containerRef.instance, this.injector, this.router);
|
|
27
39
|
if (content instanceof PolymorpheusComponent) {
|
|
28
40
|
content = new PolymorpheusComponent(content.component, this.createInjector(overlayRef, providers, config.viewContainerRef?.injector));
|
|
29
41
|
}
|
|
@@ -67,13 +79,12 @@ class NgDocOverlayService {
|
|
|
67
79
|
parent: injector || this.injector,
|
|
68
80
|
});
|
|
69
81
|
}
|
|
70
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
71
|
-
static { this.ɵprov = i0.ɵɵ
|
|
82
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocOverlayService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
|
|
83
|
+
static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.2.1", ngImport: i0, type: NgDocOverlayService }); }
|
|
72
84
|
}
|
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
74
|
-
type:
|
|
75
|
-
|
|
76
|
-
}], ctorParameters: () => [] });
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: NgDocOverlayService, decorators: [{
|
|
86
|
+
type: Service
|
|
87
|
+
}] });
|
|
77
88
|
|
|
78
89
|
/**
|
|
79
90
|
* Generated bundle index. Do not edit.
|