@ngrdt/core 0.0.2 → 0.0.3

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.
Files changed (42) hide show
  1. package/esm2022/index.mjs +4 -0
  2. package/esm2022/lib/rdt-autofocus/index.mjs +4 -0
  3. package/esm2022/lib/rdt-autofocus/models.mjs +3 -0
  4. package/esm2022/lib/rdt-autofocus/rdt-autofocusable.directive.mjs +27 -0
  5. package/esm2022/lib/rdt-autofocus/utils.mjs +9 -0
  6. package/esm2022/lib/rdt-component-guard/directives/rdt-child.directive.mjs +85 -0
  7. package/esm2022/lib/rdt-component-guard/directives/rdt-container.directive.mjs +93 -0
  8. package/esm2022/lib/rdt-component-guard/index.mjs +4 -0
  9. package/esm2022/lib/rdt-component-guard/models.mjs +21 -0
  10. package/esm2022/lib/utils/index.mjs +2 -0
  11. package/esm2022/lib/utils/rdt-boolean-result.mjs +25 -0
  12. package/esm2022/ngrdt-core.mjs +5 -0
  13. package/fesm2022/ngrdt-core.mjs +257 -0
  14. package/fesm2022/ngrdt-core.mjs.map +1 -0
  15. package/lib/rdt-autofocus/models.d.ts +8 -0
  16. package/lib/rdt-autofocus/rdt-autofocusable.directive.d.ts +8 -0
  17. package/lib/rdt-autofocus/utils.d.ts +3 -0
  18. package/lib/rdt-component-guard/directives/rdt-child.directive.d.ts +23 -0
  19. package/lib/rdt-component-guard/directives/rdt-container.directive.d.ts +18 -0
  20. package/lib/rdt-component-guard/models.d.ts +19 -0
  21. package/lib/utils/rdt-boolean-result.d.ts +4 -0
  22. package/package.json +20 -4
  23. package/eslint.config.js +0 -44
  24. package/jest.config.ts +0 -21
  25. package/ng-package.json +0 -7
  26. package/project.json +0 -36
  27. package/src/lib/rdt-autofocus/models.ts +0 -12
  28. package/src/lib/rdt-autofocus/rdt-autofocusable.directive.ts +0 -22
  29. package/src/lib/rdt-autofocus/utils.ts +0 -13
  30. package/src/lib/rdt-component-guard/directives/rdt-child.directive.ts +0 -103
  31. package/src/lib/rdt-component-guard/directives/rdt-container.directive.ts +0 -90
  32. package/src/lib/rdt-component-guard/models.ts +0 -47
  33. package/src/lib/utils/rdt-boolean-result.ts +0 -38
  34. package/src/test-setup.ts +0 -8
  35. package/tsconfig.json +0 -28
  36. package/tsconfig.lib.json +0 -17
  37. package/tsconfig.lib.prod.json +0 -9
  38. package/tsconfig.spec.json +0 -16
  39. /package/{src/index.ts → index.d.ts} +0 -0
  40. /package/{src/lib/rdt-autofocus/index.ts → lib/rdt-autofocus/index.d.ts} +0 -0
  41. /package/{src/lib/rdt-component-guard/index.ts → lib/rdt-component-guard/index.d.ts} +0 -0
  42. /package/{src/lib/utils/index.ts → lib/utils/index.d.ts} +0 -0
@@ -0,0 +1,4 @@
1
+ export * from './lib/rdt-autofocus';
2
+ export * from './lib/rdt-component-guard';
3
+ export * from './lib/utils';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9AbmdyZHQvY29yZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvcmR0LWF1dG9mb2N1cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZHQtY29tcG9uZW50LWd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzJztcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './models';
2
+ export * from './rdt-autofocusable.directive';
3
+ export * from './utils';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvY29yZS9zcmMvbGliL3JkdC1hdXRvZm9jdXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vcmR0LWF1dG9mb2N1c2FibGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuIl19
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const RDT_AUTOFOCUSABLE_COMPONENT = new InjectionToken('');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2NvcmUvc3JjL2xpYi9yZHQtYXV0b2ZvY3VzL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUy9DLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLElBQUksY0FBYyxDQUMzRCxFQUFFLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZHRCb29sZWFuUmVzdWx0IH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJkdEF1dG9jdXNhYmxlIHtcbiAgcmR0Rm9jdXMoKTogdm9pZDtcbiAgcmR0Q2FuRm9jdXMoKTogUmR0Qm9vbGVhblJlc3VsdDtcbiAgcmR0R2V0QXV0b2ZvY3VzUHJpb3JpdHk/KCk6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFJEVF9BVVRPRk9DVVNBQkxFX0NPTVBPTkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZHRBdXRvY3VzYWJsZT4oXG4gICcnXG4pO1xuIl19
@@ -0,0 +1,27 @@
1
+ import { Directive, inject } from '@angular/core';
2
+ import { RDT_AUTOFOCUSABLE_COMPONENT } from './models';
3
+ import * as i0 from "@angular/core";
4
+ export class RdtAutofocusableDirective {
5
+ component = inject(RDT_AUTOFOCUSABLE_COMPONENT, {
6
+ host: true,
7
+ optional: true,
8
+ self: true,
9
+ });
10
+ ngOnInit() {
11
+ if (!this.component) {
12
+ throw new Error(`
13
+ RdtAutofocusableDirective usage:
14
+ Apply directive directly on component and provide the same component as RDT_AUTOFOCUSABLE_COMPONENT.
15
+ The component must then implement RdtAutocusable.`);
16
+ }
17
+ }
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtAutofocusableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
19
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: RdtAutofocusableDirective, selector: "[rdtAutofocusable]", ngImport: i0 });
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtAutofocusableDirective, decorators: [{
22
+ type: Directive,
23
+ args: [{
24
+ selector: '[rdtAutofocusable]',
25
+ }]
26
+ }] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWF1dG9mb2N1c2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2NvcmUvc3JjL2xpYi9yZHQtYXV0b2ZvY3VzL3JkdC1hdXRvZm9jdXNhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBS3ZELE1BQU0sT0FBTyx5QkFBeUI7SUFDM0IsU0FBUyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsRUFBRTtRQUN2RCxJQUFJLEVBQUUsSUFBSTtRQUNWLFFBQVEsRUFBRSxJQUFJO1FBQ2QsSUFBSSxFQUFFLElBQUk7S0FDWCxDQUFDLENBQUM7SUFFSCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDOzs7MERBR29DLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQzt1R0FkVSx5QkFBeUI7MkZBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFIckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJEVF9BVVRPRk9DVVNBQkxFX0NPTVBPTkVOVCB9IGZyb20gJy4vbW9kZWxzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3JkdEF1dG9mb2N1c2FibGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgUmR0QXV0b2ZvY3VzYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJlYWRvbmx5IGNvbXBvbmVudCA9IGluamVjdChSRFRfQVVUT0ZPQ1VTQUJMRV9DT01QT05FTlQsIHtcbiAgICBob3N0OiB0cnVlLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHNlbGY6IHRydWUsXG4gIH0pO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5jb21wb25lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgXG4gICAgICAgIFJkdEF1dG9mb2N1c2FibGVEaXJlY3RpdmUgdXNhZ2U6XG4gICAgICAgIEFwcGx5IGRpcmVjdGl2ZSBkaXJlY3RseSBvbiBjb21wb25lbnQgYW5kIHByb3ZpZGUgdGhlIHNhbWUgY29tcG9uZW50IGFzIFJEVF9BVVRPRk9DVVNBQkxFX0NPTVBPTkVOVC5cbiAgICAgICAgVGhlIGNvbXBvbmVudCBtdXN0IHRoZW4gaW1wbGVtZW50IFJkdEF1dG9jdXNhYmxlLmApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ export function getRdtAutofocusable(src) {
2
+ const withPrios = Array.from(src).map((dir) => ({
3
+ cmp: dir.component,
4
+ prio: dir.component?.rdtGetAutofocusPriority?.() ?? 0,
5
+ }));
6
+ withPrios.sort((a, b) => b.prio - a.prio);
7
+ return withPrios[0]?.cmp;
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvY29yZS9zcmMvbGliL3JkdC1hdXRvZm9jdXMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxHQUF3QztJQUV4QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxHQUFHLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDbEIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLENBQUM7S0FDdEQsQ0FBQyxDQUFDLENBQUM7SUFDSixTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZHRBdXRvY3VzYWJsZSB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IFJkdEF1dG9mb2N1c2FibGVEaXJlY3RpdmUgfSBmcm9tICcuL3JkdC1hdXRvZm9jdXNhYmxlLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZHRBdXRvZm9jdXNhYmxlKFxuICBzcmM6IEl0ZXJhYmxlPFJkdEF1dG9mb2N1c2FibGVEaXJlY3RpdmU+XG4pOiBSZHRBdXRvY3VzYWJsZSB8IG51bGwge1xuICBjb25zdCB3aXRoUHJpb3MgPSBBcnJheS5mcm9tKHNyYykubWFwKChkaXIpID0+ICh7XG4gICAgY21wOiBkaXIuY29tcG9uZW50LFxuICAgIHByaW86IGRpci5jb21wb25lbnQ/LnJkdEdldEF1dG9mb2N1c1ByaW9yaXR5Py4oKSA/PyAwLFxuICB9KSk7XG4gIHdpdGhQcmlvcy5zb3J0KChhLCBiKSA9PiBiLnByaW8gLSBhLnByaW8pO1xuICByZXR1cm4gd2l0aFByaW9zWzBdPy5jbXA7XG59XG4iXX0=
@@ -0,0 +1,85 @@
1
+ import { DestroyRef, Directive, inject, } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { RDT_CONTAINER, RDT_GUARDED_COMPONENT, } from '../models';
4
+ import * as i0 from "@angular/core";
5
+ export class RdtChildDirective {
6
+ destroyRef = inject(DestroyRef);
7
+ container = inject(RDT_CONTAINER, {
8
+ optional: true,
9
+ skipSelf: true,
10
+ });
11
+ guardedComponent = inject(RDT_GUARDED_COMPONENT, {
12
+ optional: true,
13
+ self: true,
14
+ host: true,
15
+ });
16
+ willLeaveSubj$ = new Subject();
17
+ willEnterSubj$ = new Subject();
18
+ willLeave$ = this.willLeaveSubj$.asObservable();
19
+ willEnter$ = this.willEnterSubj$.asObservable();
20
+ ngOnInit() {
21
+ if (!this.guardedComponent) {
22
+ throw new Error(`
23
+ RdtChildDirective usage:
24
+ Apply directive directly on component and provide the same component as RDT_GUARDED_COMPONENT.
25
+ The component can then implement RdtCanLeaveView or RdtCanEnterView.
26
+ This applies to both Child and Container directives.
27
+ `);
28
+ }
29
+ this.container?.registerChild(this);
30
+ }
31
+ ngOnDestroy() {
32
+ this.willLeaveSubj$.complete();
33
+ this.willEnterSubj$.complete();
34
+ this.container?.removeChild(this);
35
+ }
36
+ canEnterView() {
37
+ const comp = this.guardedComponent;
38
+ if (typeof comp?.rdtCanEnterView === 'function') {
39
+ return comp.rdtCanEnterView();
40
+ }
41
+ else {
42
+ return true;
43
+ }
44
+ }
45
+ canLeaveView() {
46
+ const comp = this.guardedComponent;
47
+ if (typeof comp?.rdtCanLeaveView === 'function') {
48
+ return comp.rdtCanLeaveView();
49
+ }
50
+ else {
51
+ return true;
52
+ }
53
+ }
54
+ onViewWillEnter() {
55
+ this.willEnterSubj$.next();
56
+ const comp = this.guardedComponent;
57
+ comp?.rdtOnViewWillEnter();
58
+ }
59
+ onViewWillLeave() {
60
+ this.willLeaveSubj$.next();
61
+ const comp = this.guardedComponent;
62
+ comp?.rdtOnViewWillLeave();
63
+ }
64
+ getParentByClass(parentClass) {
65
+ if (!this.container) {
66
+ return null;
67
+ }
68
+ else if (this.container instanceof parentClass) {
69
+ return this.container;
70
+ }
71
+ else {
72
+ return this.container.getParentByClass(parentClass);
73
+ }
74
+ }
75
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtChildDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
76
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: RdtChildDirective, isStandalone: true, selector: "[rdtChild]", ngImport: i0 });
77
+ }
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtChildDirective, decorators: [{
79
+ type: Directive,
80
+ args: [{
81
+ selector: '[rdtChild]',
82
+ standalone: true,
83
+ }]
84
+ }] });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNoaWxkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9jb3JlL3NyYy9saWIvcmR0LWNvbXBvbmVudC1ndWFyZC9kaXJlY3RpdmVzL3JkdC1jaGlsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxHQUlQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUNMLGFBQWEsRUFDYixxQkFBcUIsR0FLdEIsTUFBTSxXQUFXLENBQUM7O0FBT25CLE1BQU0sT0FBTyxpQkFBaUI7SUFDbkIsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoQyxTQUFTLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRTtRQUN6QyxRQUFRLEVBQUUsSUFBSTtRQUNkLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQyxDQUFDO0lBQ00sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixFQUFFO1FBQ3hELFFBQVEsRUFBRSxJQUFJO1FBQ2QsSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUUsSUFBSTtLQUNYLENBQUMsQ0FBQztJQUVjLGNBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQ3JDLGNBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRTdDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2hELFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRXpELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQzs7Ozs7U0FLYixDQUFDLENBQUM7UUFDUCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQStDLENBQUM7UUFDbEUsSUFBSSxPQUFPLElBQUksRUFBRSxlQUFlLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDaEQsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBK0MsQ0FBQztRQUNsRSxJQUFJLE9BQU8sSUFBSSxFQUFFLGVBQWUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNoRCxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNoQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWtELENBQUM7UUFDckUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBa0QsQ0FBQztRQUNyRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCLENBQ2QsV0FBb0I7UUFFcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLFlBQVksV0FBVyxFQUFFLENBQUM7WUFDakQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDO3VHQTdFVSxpQkFBaUI7MkZBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVzdHJveVJlZixcbiAgRGlyZWN0aXZlLFxuICBpbmplY3QsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBUeXBlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdEJvb2xlYW5SZXN1bHQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQge1xuICBSRFRfQ09OVEFJTkVSLFxuICBSRFRfR1VBUkRFRF9DT01QT05FTlQsXG4gIFJkdENhbkVudGVyVmlldyxcbiAgUmR0Q2FuTGVhdmVWaWV3LFxuICBSZHRPblZpZXdXaWxsRW50ZXIsXG4gIFJkdE9uVmlld1dpbGxMZWF2ZSxcbn0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IFJkdENvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gJy4vcmR0LWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcmR0Q2hpbGRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgUmR0Q2hpbGREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHJlYWRvbmx5IGNvbnRhaW5lciA9IGluamVjdChSRFRfQ09OVEFJTkVSLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgc2tpcFNlbGY6IHRydWUsXG4gIH0pO1xuICByZWFkb25seSBndWFyZGVkQ29tcG9uZW50ID0gaW5qZWN0KFJEVF9HVUFSREVEX0NPTVBPTkVOVCwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHNlbGY6IHRydWUsXG4gICAgaG9zdDogdHJ1ZSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB3aWxsTGVhdmVTdWJqJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2lsbEVudGVyU3ViaiQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IHdpbGxMZWF2ZSQgPSB0aGlzLndpbGxMZWF2ZVN1YmokLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSB3aWxsRW50ZXIkID0gdGhpcy53aWxsRW50ZXJTdWJqJC5hc09ic2VydmFibGUoKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuZ3VhcmRlZENvbXBvbmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBcbiAgICAgICAgUmR0Q2hpbGREaXJlY3RpdmUgdXNhZ2U6XG4gICAgICAgIEFwcGx5IGRpcmVjdGl2ZSBkaXJlY3RseSBvbiBjb21wb25lbnQgYW5kIHByb3ZpZGUgdGhlIHNhbWUgY29tcG9uZW50IGFzIFJEVF9HVUFSREVEX0NPTVBPTkVOVC5cbiAgICAgICAgVGhlIGNvbXBvbmVudCBjYW4gdGhlbiBpbXBsZW1lbnQgUmR0Q2FuTGVhdmVWaWV3IG9yIFJkdENhbkVudGVyVmlldy5cbiAgICAgICAgVGhpcyBhcHBsaWVzIHRvIGJvdGggQ2hpbGQgYW5kIENvbnRhaW5lciBkaXJlY3RpdmVzLlxuICAgICAgICBgKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnRhaW5lcj8ucmVnaXN0ZXJDaGlsZCh0aGlzKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMud2lsbExlYXZlU3ViaiQuY29tcGxldGUoKTtcbiAgICB0aGlzLndpbGxFbnRlclN1YmokLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5jb250YWluZXI/LnJlbW92ZUNoaWxkKHRoaXMpO1xuICB9XG5cbiAgY2FuRW50ZXJWaWV3KCk6IFJkdEJvb2xlYW5SZXN1bHQge1xuICAgIGNvbnN0IGNvbXAgPSB0aGlzLmd1YXJkZWRDb21wb25lbnQgYXMgUmR0Q2FuRW50ZXJWaWV3IHwgdW5kZWZpbmVkO1xuICAgIGlmICh0eXBlb2YgY29tcD8ucmR0Q2FuRW50ZXJWaWV3ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gY29tcC5yZHRDYW5FbnRlclZpZXcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgY2FuTGVhdmVWaWV3KCk6IFJkdEJvb2xlYW5SZXN1bHQge1xuICAgIGNvbnN0IGNvbXAgPSB0aGlzLmd1YXJkZWRDb21wb25lbnQgYXMgUmR0Q2FuTGVhdmVWaWV3IHwgdW5kZWZpbmVkO1xuICAgIGlmICh0eXBlb2YgY29tcD8ucmR0Q2FuTGVhdmVWaWV3ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gY29tcC5yZHRDYW5MZWF2ZVZpZXcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgb25WaWV3V2lsbEVudGVyKCk6IHZvaWQge1xuICAgIHRoaXMud2lsbEVudGVyU3ViaiQubmV4dCgpO1xuICAgIGNvbnN0IGNvbXAgPSB0aGlzLmd1YXJkZWRDb21wb25lbnQgYXMgUmR0T25WaWV3V2lsbEVudGVyIHwgdW5kZWZpbmVkO1xuICAgIGNvbXA/LnJkdE9uVmlld1dpbGxFbnRlcigpO1xuICB9XG5cbiAgb25WaWV3V2lsbExlYXZlKCk6IHZvaWQge1xuICAgIHRoaXMud2lsbExlYXZlU3ViaiQubmV4dCgpO1xuICAgIGNvbnN0IGNvbXAgPSB0aGlzLmd1YXJkZWRDb21wb25lbnQgYXMgUmR0T25WaWV3V2lsbExlYXZlIHwgdW5kZWZpbmVkO1xuICAgIGNvbXA/LnJkdE9uVmlld1dpbGxMZWF2ZSgpO1xuICB9XG5cbiAgZ2V0UGFyZW50QnlDbGFzczxUIGV4dGVuZHMgUmR0Q29udGFpbmVyRGlyZWN0aXZlPihcbiAgICBwYXJlbnRDbGFzczogVHlwZTxUPlxuICApOiBUIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRhaW5lciBpbnN0YW5jZW9mIHBhcmVudENsYXNzKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb250YWluZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lci5nZXRQYXJlbnRCeUNsYXNzKHBhcmVudENsYXNzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,93 @@
1
+ import { Directive } from '@angular/core';
2
+ import { rdtGetAllResultsTrue$ } from '../../utils';
3
+ import { RDT_CONTAINER } from '../models';
4
+ import { RdtChildDirective } from './rdt-child.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class RdtContainerDirective extends RdtChildDirective {
7
+ rdtChildren = new Set();
8
+ registerChild(child) {
9
+ this.rdtChildren.add(child);
10
+ }
11
+ removeChild(child) {
12
+ this.rdtChildren.delete(child);
13
+ }
14
+ checkCanLeave$() {
15
+ return rdtGetAllResultsTrue$([this, ...this.getActiveChildren()].map((ch) => () => ch.canLeaveView()));
16
+ }
17
+ /* TODO
18
+ checkCanEnter$() {
19
+ return getCan$(
20
+ [this, ...this.getActiveChildren()].map((ch) => () => ch.canEnterView())
21
+ );
22
+ }
23
+ */
24
+ onViewWillEnter() {
25
+ super.onViewWillEnter();
26
+ this.rdtChildren.forEach((ch) => ch.onViewWillEnter());
27
+ }
28
+ onViewWillLeave() {
29
+ super.onViewWillLeave();
30
+ this.rdtChildren.forEach((ch) => ch.onViewWillLeave());
31
+ }
32
+ getChildrenRecursive() {
33
+ const res = [];
34
+ this._getChildrenRecursive(res);
35
+ return res;
36
+ }
37
+ getActiveChildren() {
38
+ return this.getChildrenRecursive();
39
+ }
40
+ getChildrenByClass(childClass) {
41
+ const res = [];
42
+ this._getChildrenByClassRecursive(childClass, res);
43
+ return res;
44
+ }
45
+ _getChildrenRecursive(res) {
46
+ res.push(...this.rdtChildren);
47
+ this.rdtChildren.forEach((child) => {
48
+ if (child instanceof RdtContainerDirective) {
49
+ child._getChildrenRecursive(res);
50
+ }
51
+ });
52
+ }
53
+ _getChildrenByClassRecursive(childClass, res) {
54
+ this.rdtChildren.forEach((child) => {
55
+ const comp = child.guardedComponent;
56
+ if (comp instanceof childClass) {
57
+ res.push(comp);
58
+ }
59
+ else if (child instanceof RdtContainerDirective) {
60
+ child._getChildrenByClassRecursive(childClass, res);
61
+ }
62
+ });
63
+ }
64
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtContainerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
65
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: RdtContainerDirective, isStandalone: true, selector: "[rdtContainer]", providers: [
66
+ {
67
+ provide: RdtChildDirective,
68
+ useExisting: RdtContainerDirective,
69
+ },
70
+ {
71
+ provide: RDT_CONTAINER,
72
+ useExisting: RdtContainerDirective,
73
+ },
74
+ ], usesInheritance: true, ngImport: i0 });
75
+ }
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtContainerDirective, decorators: [{
77
+ type: Directive,
78
+ args: [{
79
+ selector: '[rdtContainer]',
80
+ standalone: true,
81
+ providers: [
82
+ {
83
+ provide: RdtChildDirective,
84
+ useExisting: RdtContainerDirective,
85
+ },
86
+ {
87
+ provide: RDT_CONTAINER,
88
+ useExisting: RdtContainerDirective,
89
+ },
90
+ ],
91
+ }]
92
+ }] });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNvbnRhaW5lci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvY29yZS9zcmMvbGliL3JkdC1jb21wb25lbnQtZ3VhcmQvZGlyZWN0aXZlcy9yZHQtY29udGFpbmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQWdCMUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGlCQUFpQjtJQUNqRCxXQUFXLEdBQTJCLElBQUksR0FBRyxFQUFxQixDQUFDO0lBRTVFLGFBQWEsQ0FBQyxLQUF3QjtRQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQXdCO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxxQkFBcUIsQ0FDMUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQ3pFLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztNQU1FO0lBRU8sZUFBZTtRQUN0QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFUSxlQUFlO1FBQ3RCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixNQUFNLEdBQUcsR0FBd0IsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFUyxpQkFBaUI7UUFDekIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsa0JBQWtCLENBQUksVUFBbUI7UUFDdkMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU8scUJBQXFCLENBQUMsR0FBd0I7UUFDcEQsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2pDLElBQUksS0FBSyxZQUFZLHFCQUFxQixFQUFFLENBQUM7Z0JBQzNDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sNEJBQTRCLENBQUksVUFBbUIsRUFBRSxHQUFRO1FBQ25FLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakMsTUFBTSxJQUFJLEdBQUksS0FBMkIsQ0FBQyxnQkFBZ0IsQ0FBQztZQUMzRCxJQUFJLElBQUksWUFBWSxVQUFVLEVBQUUsQ0FBQztnQkFDL0IsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQixDQUFDO2lCQUFNLElBQUksS0FBSyxZQUFZLHFCQUFxQixFQUFFLENBQUM7Z0JBQ2xELEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdEQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FyRVUscUJBQXFCOzJGQUFyQixxQkFBcUIsNkRBWHJCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLHFCQUFxQjthQUNuQztZQUNEO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUscUJBQXFCO2FBQ25DO1NBQ0Y7OzJGQUVVLHFCQUFxQjtrQkFkakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsdUJBQXVCO3lCQUNuQzt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyx1QkFBdUI7eUJBQ25DO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByZHRHZXRBbGxSZXN1bHRzVHJ1ZSQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBSRFRfQ09OVEFJTkVSIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IFJkdENoaWxkRGlyZWN0aXZlIH0gZnJvbSAnLi9yZHQtY2hpbGQuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3JkdENvbnRhaW5lcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBSZHRDaGlsZERpcmVjdGl2ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBSZHRDb250YWluZXJEaXJlY3RpdmUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBSRFRfQ09OVEFJTkVSLFxuICAgICAgdXNlRXhpc3Rpbmc6IFJkdENvbnRhaW5lckRpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSZHRDb250YWluZXJEaXJlY3RpdmUgZXh0ZW5kcyBSZHRDaGlsZERpcmVjdGl2ZSB7XG4gIHJlYWRvbmx5IHJkdENoaWxkcmVuOiBTZXQ8UmR0Q2hpbGREaXJlY3RpdmU+ID0gbmV3IFNldDxSZHRDaGlsZERpcmVjdGl2ZT4oKTtcblxuICByZWdpc3RlckNoaWxkKGNoaWxkOiBSZHRDaGlsZERpcmVjdGl2ZSkge1xuICAgIHRoaXMucmR0Q2hpbGRyZW4uYWRkKGNoaWxkKTtcbiAgfVxuXG4gIHJlbW92ZUNoaWxkKGNoaWxkOiBSZHRDaGlsZERpcmVjdGl2ZSkge1xuICAgIHRoaXMucmR0Q2hpbGRyZW4uZGVsZXRlKGNoaWxkKTtcbiAgfVxuXG4gIGNoZWNrQ2FuTGVhdmUkKCkge1xuICAgIHJldHVybiByZHRHZXRBbGxSZXN1bHRzVHJ1ZSQoXG4gICAgICBbdGhpcywgLi4udGhpcy5nZXRBY3RpdmVDaGlsZHJlbigpXS5tYXAoKGNoKSA9PiAoKSA9PiBjaC5jYW5MZWF2ZVZpZXcoKSlcbiAgICApO1xuICB9XG5cbiAgLyogVE9ET1xuICBjaGVja0NhbkVudGVyJCgpIHtcbiAgICByZXR1cm4gZ2V0Q2FuJChcbiAgICAgIFt0aGlzLCAuLi50aGlzLmdldEFjdGl2ZUNoaWxkcmVuKCldLm1hcCgoY2gpID0+ICgpID0+IGNoLmNhbkVudGVyVmlldygpKVxuICAgICk7XG4gIH1cbiAgKi9cblxuICBvdmVycmlkZSBvblZpZXdXaWxsRW50ZXIoKSB7XG4gICAgc3VwZXIub25WaWV3V2lsbEVudGVyKCk7XG4gICAgdGhpcy5yZHRDaGlsZHJlbi5mb3JFYWNoKChjaCkgPT4gY2gub25WaWV3V2lsbEVudGVyKCkpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25WaWV3V2lsbExlYXZlKCkge1xuICAgIHN1cGVyLm9uVmlld1dpbGxMZWF2ZSgpO1xuICAgIHRoaXMucmR0Q2hpbGRyZW4uZm9yRWFjaCgoY2gpID0+IGNoLm9uVmlld1dpbGxMZWF2ZSgpKTtcbiAgfVxuXG4gIGdldENoaWxkcmVuUmVjdXJzaXZlKCkge1xuICAgIGNvbnN0IHJlczogUmR0Q2hpbGREaXJlY3RpdmVbXSA9IFtdO1xuICAgIHRoaXMuX2dldENoaWxkcmVuUmVjdXJzaXZlKHJlcyk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRBY3RpdmVDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDaGlsZHJlblJlY3Vyc2l2ZSgpO1xuICB9XG5cbiAgZ2V0Q2hpbGRyZW5CeUNsYXNzPFQ+KGNoaWxkQ2xhc3M6IFR5cGU8VD4pIHtcbiAgICBjb25zdCByZXM6IFRbXSA9IFtdO1xuICAgIHRoaXMuX2dldENoaWxkcmVuQnlDbGFzc1JlY3Vyc2l2ZShjaGlsZENsYXNzLCByZXMpO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDaGlsZHJlblJlY3Vyc2l2ZShyZXM6IFJkdENoaWxkRGlyZWN0aXZlW10pIHtcbiAgICByZXMucHVzaCguLi50aGlzLnJkdENoaWxkcmVuKTtcbiAgICB0aGlzLnJkdENoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICBpZiAoY2hpbGQgaW5zdGFuY2VvZiBSZHRDb250YWluZXJEaXJlY3RpdmUpIHtcbiAgICAgICAgY2hpbGQuX2dldENoaWxkcmVuUmVjdXJzaXZlKHJlcyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDaGlsZHJlbkJ5Q2xhc3NSZWN1cnNpdmU8VD4oY2hpbGRDbGFzczogVHlwZTxUPiwgcmVzOiBUW10pIHtcbiAgICB0aGlzLnJkdENoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICBjb25zdCBjb21wID0gKGNoaWxkIGFzIFJkdENoaWxkRGlyZWN0aXZlKS5ndWFyZGVkQ29tcG9uZW50O1xuICAgICAgaWYgKGNvbXAgaW5zdGFuY2VvZiBjaGlsZENsYXNzKSB7XG4gICAgICAgIHJlcy5wdXNoKGNvbXApO1xuICAgICAgfSBlbHNlIGlmIChjaGlsZCBpbnN0YW5jZW9mIFJkdENvbnRhaW5lckRpcmVjdGl2ZSkge1xuICAgICAgICBjaGlsZC5fZ2V0Q2hpbGRyZW5CeUNsYXNzUmVjdXJzaXZlKGNoaWxkQ2xhc3MsIHJlcyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './directives/rdt-child.directive';
2
+ export * from './directives/rdt-container.directive';
3
+ export * from './models';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvY29yZS9zcmMvbGliL3JkdC1jb21wb25lbnQtZ3VhcmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3JkdC1jaGlsZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3JkdC1jb250YWluZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ export const RDT_GUARDED_COMPONENT = new InjectionToken('');
4
+ export const RDT_CONTAINER = new InjectionToken('');
5
+ export function canTransition$(from, to) {
6
+ const canLeave$ = from ? from.checkCanLeave$() : of(true);
7
+ return canLeave$;
8
+ /*
9
+ const canEnter$ = to ? to.checkCanEnter$() : of(true);
10
+
11
+ return canLeave$.pipe(
12
+ switchMap((res) => {
13
+ if (res) {
14
+ return canEnter$;
15
+ } else {
16
+ return of(res);
17
+ }
18
+ })
19
+ );*/
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2NvcmUvc3JjL2xpYi9yZHQtY29tcG9uZW50LWd1YXJkL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFvQjFCLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUVyRCxFQUFFLENBQUMsQ0FBQztBQUVOLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBd0IsRUFBRSxDQUFDLENBQUM7QUFFM0UsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsSUFBcUMsRUFDckMsRUFBbUM7SUFFbkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxPQUFPLFNBQVMsQ0FBQztJQUNqQjs7Ozs7Ozs7Ozs7UUFXSTtBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdEJvb2xlYW5SZXN1bHQgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBSZHRDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcmR0LWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJkdENhbkxlYXZlVmlldyB7XG4gIHJkdENhbkxlYXZlVmlldygpOiBSZHRCb29sZWFuUmVzdWx0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJkdENhbkVudGVyVmlldyB7XG4gIHJkdENhbkVudGVyVmlldygpOiBSZHRCb29sZWFuUmVzdWx0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJkdE9uVmlld1dpbGxMZWF2ZSB7XG4gIHJkdE9uVmlld1dpbGxMZWF2ZSgpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJkdE9uVmlld1dpbGxFbnRlciB7XG4gIHJkdE9uVmlld1dpbGxFbnRlcigpOiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgUkRUX0dVQVJERURfQ09NUE9ORU5UID0gbmV3IEluamVjdGlvblRva2VuPFxuICBSZHRDYW5MZWF2ZVZpZXcgfCBSZHRDYW5FbnRlclZpZXcgfCBSZHRPblZpZXdXaWxsRW50ZXIgfCBSZHRPblZpZXdXaWxsTGVhdmVcbj4oJycpO1xuXG5leHBvcnQgY29uc3QgUkRUX0NPTlRBSU5FUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZHRDb250YWluZXJEaXJlY3RpdmU+KCcnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNhblRyYW5zaXRpb24kKFxuICBmcm9tOiBOdWxsYWJsZTxSZHRDb250YWluZXJEaXJlY3RpdmU+LFxuICB0bzogTnVsbGFibGU8UmR0Q29udGFpbmVyRGlyZWN0aXZlPlxuKSB7XG4gIGNvbnN0IGNhbkxlYXZlJCA9IGZyb20gPyBmcm9tLmNoZWNrQ2FuTGVhdmUkKCkgOiBvZih0cnVlKTtcbiAgcmV0dXJuIGNhbkxlYXZlJDtcbiAgLypcbiAgY29uc3QgY2FuRW50ZXIkID0gdG8gPyB0by5jaGVja0NhbkVudGVyJCgpIDogb2YodHJ1ZSk7XG5cbiAgcmV0dXJuIGNhbkxlYXZlJC5waXBlKFxuICAgIHN3aXRjaE1hcCgocmVzKSA9PiB7XG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIHJldHVybiBjYW5FbnRlciQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gb2YocmVzKTtcbiAgICAgIH1cbiAgICB9KVxuICApOyovXG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './rdt-boolean-result';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvY29yZS9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3JkdC1ib29sZWFuLXJlc3VsdCc7XG4iXX0=
@@ -0,0 +1,25 @@
1
+ import { catchError, concat, defer, filter, map, of } from 'rxjs';
2
+ import { fromPromise } from 'rxjs/internal/observable/innerFrom';
3
+ export function rdtGetAllResultsTrue$(inputFactories) {
4
+ const can$ = inputFactories.map((fn) => rdtGetResult$(fn));
5
+ const last = Symbol('last');
6
+ return concat(...can$, of(last)).pipe(filter((res) => res === last), map(() => true), catchError(() => of(false)));
7
+ }
8
+ export function rdtGetResult$(inputFactory) {
9
+ return defer(() => {
10
+ const input = inputFactory();
11
+ if (typeof input === 'boolean') {
12
+ return of(input);
13
+ }
14
+ if (input instanceof Promise) {
15
+ return fromPromise(input);
16
+ }
17
+ return input;
18
+ }).pipe(map((res) => {
19
+ if (res) {
20
+ return res;
21
+ }
22
+ throw res;
23
+ }));
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJvb2xlYW4tcmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2NvcmUvc3JjL2xpYi91dGlscy9yZHQtYm9vbGVhbi1yZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUlqRSxNQUFNLFVBQVUscUJBQXFCLENBQ25DLGNBQTBDO0lBRTFDLE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU1QixPQUFPLE1BQU0sQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ25DLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxFQUM3QixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQ2YsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUM1QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsWUFBb0M7SUFDaEUsT0FBTyxLQUFLLENBQUMsR0FBRyxFQUFFO1FBQ2hCLE1BQU0sS0FBSyxHQUFHLFlBQVksRUFBRSxDQUFDO1FBRTdCLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDL0IsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsQ0FBQztRQUNELElBQUksS0FBSyxZQUFZLE9BQU8sRUFBRSxDQUFDO1lBQzdCLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNWLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFDRCxNQUFNLEdBQUcsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2F0Y2hFcnJvciwgY29uY2F0LCBkZWZlciwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmcm9tUHJvbWlzZSB9IGZyb20gJ3J4anMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9pbm5lckZyb20nO1xuXG5leHBvcnQgdHlwZSBSZHRCb29sZWFuUmVzdWx0ID0gT2JzZXJ2YWJsZTxib29sZWFuPiB8IFByb21pc2U8Ym9vbGVhbj4gfCBib29sZWFuO1xuXG5leHBvcnQgZnVuY3Rpb24gcmR0R2V0QWxsUmVzdWx0c1RydWUkKFxuICBpbnB1dEZhY3RvcmllczogKCgpID0+IFJkdEJvb2xlYW5SZXN1bHQpW11cbikge1xuICBjb25zdCBjYW4kID0gaW5wdXRGYWN0b3JpZXMubWFwKChmbikgPT4gcmR0R2V0UmVzdWx0JChmbikpO1xuICBjb25zdCBsYXN0ID0gU3ltYm9sKCdsYXN0Jyk7XG5cbiAgcmV0dXJuIGNvbmNhdCguLi5jYW4kLCBvZihsYXN0KSkucGlwZShcbiAgICBmaWx0ZXIoKHJlcykgPT4gcmVzID09PSBsYXN0KSxcbiAgICBtYXAoKCkgPT4gdHJ1ZSksXG4gICAgY2F0Y2hFcnJvcigoKSA9PiBvZihmYWxzZSkpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZHRHZXRSZXN1bHQkKGlucHV0RmFjdG9yeTogKCkgPT4gUmR0Qm9vbGVhblJlc3VsdCkge1xuICByZXR1cm4gZGVmZXIoKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0ID0gaW5wdXRGYWN0b3J5KCk7XG5cbiAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiBvZihpbnB1dCk7XG4gICAgfVxuICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIHJldHVybiBmcm9tUHJvbWlzZShpbnB1dCk7XG4gICAgfVxuICAgIHJldHVybiBpbnB1dDtcbiAgfSkucGlwZShcbiAgICBtYXAoKHJlcykgPT4ge1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfVxuICAgICAgdGhyb3cgcmVzO1xuICAgIH0pXG4gICk7XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyZHQtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0BuZ3JkdC9jb3JlL3NyYy9uZ3JkdC1jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,257 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, Directive, DestroyRef } from '@angular/core';
3
+ import { of, Subject, concat, filter, map, catchError, defer } from 'rxjs';
4
+ import { fromPromise } from 'rxjs/internal/observable/innerFrom';
5
+
6
+ const RDT_AUTOFOCUSABLE_COMPONENT = new InjectionToken('');
7
+
8
+ class RdtAutofocusableDirective {
9
+ component = inject(RDT_AUTOFOCUSABLE_COMPONENT, {
10
+ host: true,
11
+ optional: true,
12
+ self: true,
13
+ });
14
+ ngOnInit() {
15
+ if (!this.component) {
16
+ throw new Error(`
17
+ RdtAutofocusableDirective usage:
18
+ Apply directive directly on component and provide the same component as RDT_AUTOFOCUSABLE_COMPONENT.
19
+ The component must then implement RdtAutocusable.`);
20
+ }
21
+ }
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtAutofocusableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
23
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: RdtAutofocusableDirective, selector: "[rdtAutofocusable]", ngImport: i0 });
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtAutofocusableDirective, decorators: [{
26
+ type: Directive,
27
+ args: [{
28
+ selector: '[rdtAutofocusable]',
29
+ }]
30
+ }] });
31
+
32
+ function getRdtAutofocusable(src) {
33
+ const withPrios = Array.from(src).map((dir) => ({
34
+ cmp: dir.component,
35
+ prio: dir.component?.rdtGetAutofocusPriority?.() ?? 0,
36
+ }));
37
+ withPrios.sort((a, b) => b.prio - a.prio);
38
+ return withPrios[0]?.cmp;
39
+ }
40
+
41
+ const RDT_GUARDED_COMPONENT = new InjectionToken('');
42
+ const RDT_CONTAINER = new InjectionToken('');
43
+ function canTransition$(from, to) {
44
+ const canLeave$ = from ? from.checkCanLeave$() : of(true);
45
+ return canLeave$;
46
+ /*
47
+ const canEnter$ = to ? to.checkCanEnter$() : of(true);
48
+
49
+ return canLeave$.pipe(
50
+ switchMap((res) => {
51
+ if (res) {
52
+ return canEnter$;
53
+ } else {
54
+ return of(res);
55
+ }
56
+ })
57
+ );*/
58
+ }
59
+
60
+ class RdtChildDirective {
61
+ destroyRef = inject(DestroyRef);
62
+ container = inject(RDT_CONTAINER, {
63
+ optional: true,
64
+ skipSelf: true,
65
+ });
66
+ guardedComponent = inject(RDT_GUARDED_COMPONENT, {
67
+ optional: true,
68
+ self: true,
69
+ host: true,
70
+ });
71
+ willLeaveSubj$ = new Subject();
72
+ willEnterSubj$ = new Subject();
73
+ willLeave$ = this.willLeaveSubj$.asObservable();
74
+ willEnter$ = this.willEnterSubj$.asObservable();
75
+ ngOnInit() {
76
+ if (!this.guardedComponent) {
77
+ throw new Error(`
78
+ RdtChildDirective usage:
79
+ Apply directive directly on component and provide the same component as RDT_GUARDED_COMPONENT.
80
+ The component can then implement RdtCanLeaveView or RdtCanEnterView.
81
+ This applies to both Child and Container directives.
82
+ `);
83
+ }
84
+ this.container?.registerChild(this);
85
+ }
86
+ ngOnDestroy() {
87
+ this.willLeaveSubj$.complete();
88
+ this.willEnterSubj$.complete();
89
+ this.container?.removeChild(this);
90
+ }
91
+ canEnterView() {
92
+ const comp = this.guardedComponent;
93
+ if (typeof comp?.rdtCanEnterView === 'function') {
94
+ return comp.rdtCanEnterView();
95
+ }
96
+ else {
97
+ return true;
98
+ }
99
+ }
100
+ canLeaveView() {
101
+ const comp = this.guardedComponent;
102
+ if (typeof comp?.rdtCanLeaveView === 'function') {
103
+ return comp.rdtCanLeaveView();
104
+ }
105
+ else {
106
+ return true;
107
+ }
108
+ }
109
+ onViewWillEnter() {
110
+ this.willEnterSubj$.next();
111
+ const comp = this.guardedComponent;
112
+ comp?.rdtOnViewWillEnter();
113
+ }
114
+ onViewWillLeave() {
115
+ this.willLeaveSubj$.next();
116
+ const comp = this.guardedComponent;
117
+ comp?.rdtOnViewWillLeave();
118
+ }
119
+ getParentByClass(parentClass) {
120
+ if (!this.container) {
121
+ return null;
122
+ }
123
+ else if (this.container instanceof parentClass) {
124
+ return this.container;
125
+ }
126
+ else {
127
+ return this.container.getParentByClass(parentClass);
128
+ }
129
+ }
130
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtChildDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
131
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: RdtChildDirective, isStandalone: true, selector: "[rdtChild]", ngImport: i0 });
132
+ }
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtChildDirective, decorators: [{
134
+ type: Directive,
135
+ args: [{
136
+ selector: '[rdtChild]',
137
+ standalone: true,
138
+ }]
139
+ }] });
140
+
141
+ function rdtGetAllResultsTrue$(inputFactories) {
142
+ const can$ = inputFactories.map((fn) => rdtGetResult$(fn));
143
+ const last = Symbol('last');
144
+ return concat(...can$, of(last)).pipe(filter((res) => res === last), map(() => true), catchError(() => of(false)));
145
+ }
146
+ function rdtGetResult$(inputFactory) {
147
+ return defer(() => {
148
+ const input = inputFactory();
149
+ if (typeof input === 'boolean') {
150
+ return of(input);
151
+ }
152
+ if (input instanceof Promise) {
153
+ return fromPromise(input);
154
+ }
155
+ return input;
156
+ }).pipe(map((res) => {
157
+ if (res) {
158
+ return res;
159
+ }
160
+ throw res;
161
+ }));
162
+ }
163
+
164
+ class RdtContainerDirective extends RdtChildDirective {
165
+ rdtChildren = new Set();
166
+ registerChild(child) {
167
+ this.rdtChildren.add(child);
168
+ }
169
+ removeChild(child) {
170
+ this.rdtChildren.delete(child);
171
+ }
172
+ checkCanLeave$() {
173
+ return rdtGetAllResultsTrue$([this, ...this.getActiveChildren()].map((ch) => () => ch.canLeaveView()));
174
+ }
175
+ /* TODO
176
+ checkCanEnter$() {
177
+ return getCan$(
178
+ [this, ...this.getActiveChildren()].map((ch) => () => ch.canEnterView())
179
+ );
180
+ }
181
+ */
182
+ onViewWillEnter() {
183
+ super.onViewWillEnter();
184
+ this.rdtChildren.forEach((ch) => ch.onViewWillEnter());
185
+ }
186
+ onViewWillLeave() {
187
+ super.onViewWillLeave();
188
+ this.rdtChildren.forEach((ch) => ch.onViewWillLeave());
189
+ }
190
+ getChildrenRecursive() {
191
+ const res = [];
192
+ this._getChildrenRecursive(res);
193
+ return res;
194
+ }
195
+ getActiveChildren() {
196
+ return this.getChildrenRecursive();
197
+ }
198
+ getChildrenByClass(childClass) {
199
+ const res = [];
200
+ this._getChildrenByClassRecursive(childClass, res);
201
+ return res;
202
+ }
203
+ _getChildrenRecursive(res) {
204
+ res.push(...this.rdtChildren);
205
+ this.rdtChildren.forEach((child) => {
206
+ if (child instanceof RdtContainerDirective) {
207
+ child._getChildrenRecursive(res);
208
+ }
209
+ });
210
+ }
211
+ _getChildrenByClassRecursive(childClass, res) {
212
+ this.rdtChildren.forEach((child) => {
213
+ const comp = child.guardedComponent;
214
+ if (comp instanceof childClass) {
215
+ res.push(comp);
216
+ }
217
+ else if (child instanceof RdtContainerDirective) {
218
+ child._getChildrenByClassRecursive(childClass, res);
219
+ }
220
+ });
221
+ }
222
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtContainerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
223
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: RdtContainerDirective, isStandalone: true, selector: "[rdtContainer]", providers: [
224
+ {
225
+ provide: RdtChildDirective,
226
+ useExisting: RdtContainerDirective,
227
+ },
228
+ {
229
+ provide: RDT_CONTAINER,
230
+ useExisting: RdtContainerDirective,
231
+ },
232
+ ], usesInheritance: true, ngImport: i0 });
233
+ }
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtContainerDirective, decorators: [{
235
+ type: Directive,
236
+ args: [{
237
+ selector: '[rdtContainer]',
238
+ standalone: true,
239
+ providers: [
240
+ {
241
+ provide: RdtChildDirective,
242
+ useExisting: RdtContainerDirective,
243
+ },
244
+ {
245
+ provide: RDT_CONTAINER,
246
+ useExisting: RdtContainerDirective,
247
+ },
248
+ ],
249
+ }]
250
+ }] });
251
+
252
+ /**
253
+ * Generated bundle index. Do not edit.
254
+ */
255
+
256
+ export { RDT_AUTOFOCUSABLE_COMPONENT, RDT_CONTAINER, RDT_GUARDED_COMPONENT, RdtAutofocusableDirective, RdtChildDirective, RdtContainerDirective, canTransition$, getRdtAutofocusable, rdtGetAllResultsTrue$, rdtGetResult$ };
257
+ //# sourceMappingURL=ngrdt-core.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngrdt-core.mjs","sources":["../../../../@ngrdt/core/src/lib/rdt-autofocus/models.ts","../../../../@ngrdt/core/src/lib/rdt-autofocus/rdt-autofocusable.directive.ts","../../../../@ngrdt/core/src/lib/rdt-autofocus/utils.ts","../../../../@ngrdt/core/src/lib/rdt-component-guard/models.ts","../../../../@ngrdt/core/src/lib/rdt-component-guard/directives/rdt-child.directive.ts","../../../../@ngrdt/core/src/lib/utils/rdt-boolean-result.ts","../../../../@ngrdt/core/src/lib/rdt-component-guard/directives/rdt-container.directive.ts","../../../../@ngrdt/core/src/ngrdt-core.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { RdtBooleanResult } from '../utils';\n\nexport interface RdtAutocusable {\n rdtFocus(): void;\n rdtCanFocus(): RdtBooleanResult;\n rdtGetAutofocusPriority?(): number;\n}\n\nexport const RDT_AUTOFOCUSABLE_COMPONENT = new InjectionToken<RdtAutocusable>(\n ''\n);\n","import { Directive, inject, OnInit } from '@angular/core';\nimport { RDT_AUTOFOCUSABLE_COMPONENT } from './models';\n\n@Directive({\n selector: '[rdtAutofocusable]',\n})\nexport class RdtAutofocusableDirective implements OnInit {\n readonly component = inject(RDT_AUTOFOCUSABLE_COMPONENT, {\n host: true,\n optional: true,\n self: true,\n });\n\n ngOnInit() {\n if (!this.component) {\n throw new Error(`\n RdtAutofocusableDirective usage:\n Apply directive directly on component and provide the same component as RDT_AUTOFOCUSABLE_COMPONENT.\n The component must then implement RdtAutocusable.`);\n }\n }\n}\n","import { RdtAutocusable } from './models';\nimport { RdtAutofocusableDirective } from './rdt-autofocusable.directive';\n\nexport function getRdtAutofocusable(\n src: Iterable<RdtAutofocusableDirective>\n): RdtAutocusable | null {\n const withPrios = Array.from(src).map((dir) => ({\n cmp: dir.component,\n prio: dir.component?.rdtGetAutofocusPriority?.() ?? 0,\n }));\n withPrios.sort((a, b) => b.prio - a.prio);\n return withPrios[0]?.cmp;\n}\n","import { InjectionToken } from '@angular/core';\nimport { Nullable } from '@ngrdt/utils';\nimport { of } from 'rxjs';\nimport { RdtBooleanResult } from '../utils';\nimport { RdtContainerDirective } from './directives/rdt-container.directive';\n\nexport interface RdtCanLeaveView {\n rdtCanLeaveView(): RdtBooleanResult;\n}\n\nexport interface RdtCanEnterView {\n rdtCanEnterView(): RdtBooleanResult;\n}\n\nexport interface RdtOnViewWillLeave {\n rdtOnViewWillLeave(): void;\n}\n\nexport interface RdtOnViewWillEnter {\n rdtOnViewWillEnter(): void;\n}\n\nexport const RDT_GUARDED_COMPONENT = new InjectionToken<\n RdtCanLeaveView | RdtCanEnterView | RdtOnViewWillEnter | RdtOnViewWillLeave\n>('');\n\nexport const RDT_CONTAINER = new InjectionToken<RdtContainerDirective>('');\n\nexport function canTransition$(\n from: Nullable<RdtContainerDirective>,\n to: Nullable<RdtContainerDirective>\n) {\n const canLeave$ = from ? from.checkCanLeave$() : of(true);\n return canLeave$;\n /*\n const canEnter$ = to ? to.checkCanEnter$() : of(true);\n\n return canLeave$.pipe(\n switchMap((res) => {\n if (res) {\n return canEnter$;\n } else {\n return of(res);\n }\n })\n );*/\n}\n","import {\n DestroyRef,\n Directive,\n inject,\n OnDestroy,\n OnInit,\n Type,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { RdtBooleanResult } from '../../utils';\nimport {\n RDT_CONTAINER,\n RDT_GUARDED_COMPONENT,\n RdtCanEnterView,\n RdtCanLeaveView,\n RdtOnViewWillEnter,\n RdtOnViewWillLeave,\n} from '../models';\nimport { RdtContainerDirective } from './rdt-container.directive';\n\n@Directive({\n selector: '[rdtChild]',\n standalone: true,\n})\nexport class RdtChildDirective implements OnInit, OnDestroy {\n readonly destroyRef = inject(DestroyRef);\n readonly container = inject(RDT_CONTAINER, {\n optional: true,\n skipSelf: true,\n });\n readonly guardedComponent = inject(RDT_GUARDED_COMPONENT, {\n optional: true,\n self: true,\n host: true,\n });\n\n private readonly willLeaveSubj$ = new Subject<void>();\n private readonly willEnterSubj$ = new Subject<void>();\n\n readonly willLeave$ = this.willLeaveSubj$.asObservable();\n readonly willEnter$ = this.willEnterSubj$.asObservable();\n\n ngOnInit() {\n if (!this.guardedComponent) {\n throw new Error(`\n RdtChildDirective usage:\n Apply directive directly on component and provide the same component as RDT_GUARDED_COMPONENT.\n The component can then implement RdtCanLeaveView or RdtCanEnterView.\n This applies to both Child and Container directives.\n `);\n }\n\n this.container?.registerChild(this);\n }\n\n ngOnDestroy() {\n this.willLeaveSubj$.complete();\n this.willEnterSubj$.complete();\n this.container?.removeChild(this);\n }\n\n canEnterView(): RdtBooleanResult {\n const comp = this.guardedComponent as RdtCanEnterView | undefined;\n if (typeof comp?.rdtCanEnterView === 'function') {\n return comp.rdtCanEnterView();\n } else {\n return true;\n }\n }\n\n canLeaveView(): RdtBooleanResult {\n const comp = this.guardedComponent as RdtCanLeaveView | undefined;\n if (typeof comp?.rdtCanLeaveView === 'function') {\n return comp.rdtCanLeaveView();\n } else {\n return true;\n }\n }\n\n onViewWillEnter(): void {\n this.willEnterSubj$.next();\n const comp = this.guardedComponent as RdtOnViewWillEnter | undefined;\n comp?.rdtOnViewWillEnter();\n }\n\n onViewWillLeave(): void {\n this.willLeaveSubj$.next();\n const comp = this.guardedComponent as RdtOnViewWillLeave | undefined;\n comp?.rdtOnViewWillLeave();\n }\n\n getParentByClass<T extends RdtContainerDirective>(\n parentClass: Type<T>\n ): T | null {\n if (!this.container) {\n return null;\n } else if (this.container instanceof parentClass) {\n return this.container;\n } else {\n return this.container.getParentByClass(parentClass);\n }\n }\n}\n","import { catchError, concat, defer, filter, map, Observable, of } from 'rxjs';\nimport { fromPromise } from 'rxjs/internal/observable/innerFrom';\n\nexport type RdtBooleanResult = Observable<boolean> | Promise<boolean> | boolean;\n\nexport function rdtGetAllResultsTrue$(\n inputFactories: (() => RdtBooleanResult)[]\n) {\n const can$ = inputFactories.map((fn) => rdtGetResult$(fn));\n const last = Symbol('last');\n\n return concat(...can$, of(last)).pipe(\n filter((res) => res === last),\n map(() => true),\n catchError(() => of(false))\n );\n}\n\nexport function rdtGetResult$(inputFactory: () => RdtBooleanResult) {\n return defer(() => {\n const input = inputFactory();\n\n if (typeof input === 'boolean') {\n return of(input);\n }\n if (input instanceof Promise) {\n return fromPromise(input);\n }\n return input;\n }).pipe(\n map((res) => {\n if (res) {\n return res;\n }\n throw res;\n })\n );\n}\n","import { Directive, Type } from '@angular/core';\nimport { rdtGetAllResultsTrue$ } from '../../utils';\nimport { RDT_CONTAINER } from '../models';\nimport { RdtChildDirective } from './rdt-child.directive';\n\n@Directive({\n selector: '[rdtContainer]',\n standalone: true,\n providers: [\n {\n provide: RdtChildDirective,\n useExisting: RdtContainerDirective,\n },\n {\n provide: RDT_CONTAINER,\n useExisting: RdtContainerDirective,\n },\n ],\n})\nexport class RdtContainerDirective extends RdtChildDirective {\n readonly rdtChildren: Set<RdtChildDirective> = new Set<RdtChildDirective>();\n\n registerChild(child: RdtChildDirective) {\n this.rdtChildren.add(child);\n }\n\n removeChild(child: RdtChildDirective) {\n this.rdtChildren.delete(child);\n }\n\n checkCanLeave$() {\n return rdtGetAllResultsTrue$(\n [this, ...this.getActiveChildren()].map((ch) => () => ch.canLeaveView())\n );\n }\n\n /* TODO\n checkCanEnter$() {\n return getCan$(\n [this, ...this.getActiveChildren()].map((ch) => () => ch.canEnterView())\n );\n }\n */\n\n override onViewWillEnter() {\n super.onViewWillEnter();\n this.rdtChildren.forEach((ch) => ch.onViewWillEnter());\n }\n\n override onViewWillLeave() {\n super.onViewWillLeave();\n this.rdtChildren.forEach((ch) => ch.onViewWillLeave());\n }\n\n getChildrenRecursive() {\n const res: RdtChildDirective[] = [];\n this._getChildrenRecursive(res);\n return res;\n }\n\n protected getActiveChildren() {\n return this.getChildrenRecursive();\n }\n\n getChildrenByClass<T>(childClass: Type<T>) {\n const res: T[] = [];\n this._getChildrenByClassRecursive(childClass, res);\n return res;\n }\n\n private _getChildrenRecursive(res: RdtChildDirective[]) {\n res.push(...this.rdtChildren);\n this.rdtChildren.forEach((child) => {\n if (child instanceof RdtContainerDirective) {\n child._getChildrenRecursive(res);\n }\n });\n }\n\n private _getChildrenByClassRecursive<T>(childClass: Type<T>, res: T[]) {\n this.rdtChildren.forEach((child) => {\n const comp = (child as RdtChildDirective).guardedComponent;\n if (comp instanceof childClass) {\n res.push(comp);\n } else if (child instanceof RdtContainerDirective) {\n child._getChildrenByClassRecursive(childClass, res);\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { RdtBooleanResult } from '../utils';
3
+ export interface RdtAutocusable {
4
+ rdtFocus(): void;
5
+ rdtCanFocus(): RdtBooleanResult;
6
+ rdtGetAutofocusPriority?(): number;
7
+ }
8
+ export declare const RDT_AUTOFOCUSABLE_COMPONENT: InjectionToken<RdtAutocusable>;