@ngrdt/core 0.0.17 → 0.0.19

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 (29) hide show
  1. package/README.md +7 -7
  2. package/fesm2022/ngrdt-core.mjs +157 -28
  3. package/fesm2022/ngrdt-core.mjs.map +1 -1
  4. package/index.d.ts +139 -3
  5. package/package.json +3 -4
  6. package/esm2022/index.mjs +0 -4
  7. package/esm2022/lib/rdt-autofocus/index.mjs +0 -4
  8. package/esm2022/lib/rdt-autofocus/models.mjs +0 -3
  9. package/esm2022/lib/rdt-autofocus/rdt-autofocusable.directive.mjs +0 -27
  10. package/esm2022/lib/rdt-autofocus/utils.mjs +0 -9
  11. package/esm2022/lib/rdt-component-guard/directives/rdt-child.directive.mjs +0 -88
  12. package/esm2022/lib/rdt-component-guard/directives/rdt-container.directive.mjs +0 -95
  13. package/esm2022/lib/rdt-component-guard/index.mjs +0 -5
  14. package/esm2022/lib/rdt-component-guard/models.mjs +0 -25
  15. package/esm2022/lib/rdt-component-guard/services/rdt-component-guard-store.service.mjs +0 -36
  16. package/esm2022/lib/utils/index.mjs +0 -2
  17. package/esm2022/lib/utils/rdt-boolean-result.mjs +0 -25
  18. package/esm2022/ngrdt-core.mjs +0 -5
  19. package/lib/rdt-autofocus/index.d.ts +0 -3
  20. package/lib/rdt-autofocus/models.d.ts +0 -8
  21. package/lib/rdt-autofocus/rdt-autofocusable.directive.d.ts +0 -8
  22. package/lib/rdt-autofocus/utils.d.ts +0 -3
  23. package/lib/rdt-component-guard/directives/rdt-child.directive.d.ts +0 -22
  24. package/lib/rdt-component-guard/directives/rdt-container.directive.d.ts +0 -18
  25. package/lib/rdt-component-guard/index.d.ts +0 -4
  26. package/lib/rdt-component-guard/models.d.ts +0 -22
  27. package/lib/rdt-component-guard/services/rdt-component-guard-store.service.d.ts +0 -11
  28. package/lib/utils/index.d.ts +0 -1
  29. package/lib/utils/rdt-boolean-result.d.ts +0 -4
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
- # @ngrdt/core
2
-
3
- This library was generated with [Nx](https://nx.dev).
4
-
5
- ## Running unit tests
6
-
7
- Run `nx test @ngrdt/core` to execute the unit tests.
1
+ # @ngrdt/core
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Running unit tests
6
+
7
+ Run `nx test @ngrdt/core` to execute the unit tests.
@@ -1,10 +1,46 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Directive, Injectable, DestroyRef } from '@angular/core';
3
- import { of, concat, filter, map, catchError, defer } from 'rxjs';
4
- import { fromPromise } from 'rxjs/internal/observable/innerFrom';
2
+ import { InjectionToken, inject, ElementRef, Directive, Injectable, DestroyRef, ChangeDetectorRef, input, booleanAttribute, signal, computed, effect, untracked, linkedSignal, isSignal } from '@angular/core';
3
+ import { DOCUMENT } from '@angular/common';
4
+ import { of, concat, filter, map, catchError, defer, from } from 'rxjs';
5
+ import { RdtObjectUtils } from '@ngrdt/utils';
5
6
 
6
7
  const RDT_AUTOFOCUSABLE_COMPONENT = new InjectionToken('');
7
8
 
9
+ class RdtAutoFocusOnInitDirective {
10
+ previousActiveElement = null;
11
+ document = inject(DOCUMENT);
12
+ elementRef = inject((ElementRef));
13
+ autofocusable = inject(RDT_AUTOFOCUSABLE_COMPONENT, {
14
+ host: true,
15
+ optional: true,
16
+ self: true,
17
+ });
18
+ ngOnDestroy() {
19
+ if (this.previousActiveElement instanceof HTMLElement) {
20
+ this.previousActiveElement.focus();
21
+ }
22
+ }
23
+ ngAfterViewInit() {
24
+ this.previousActiveElement = this.document.activeElement;
25
+ if (this.autofocusable) {
26
+ if (this.autofocusable.canFocus()) {
27
+ this.autofocusable.focus();
28
+ }
29
+ }
30
+ else {
31
+ this.elementRef.nativeElement.focus();
32
+ }
33
+ }
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtAutoFocusOnInitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
35
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: RdtAutoFocusOnInitDirective, isStandalone: true, selector: "[rdtAutofocusOnInit]", ngImport: i0 });
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtAutoFocusOnInitDirective, decorators: [{
38
+ type: Directive,
39
+ args: [{
40
+ selector: '[rdtAutofocusOnInit]',
41
+ }]
42
+ }] });
43
+
8
44
  class RdtAutofocusableDirective {
9
45
  component = inject(RDT_AUTOFOCUSABLE_COMPONENT, {
10
46
  host: true,
@@ -13,16 +49,16 @@ class RdtAutofocusableDirective {
13
49
  });
14
50
  ngOnInit() {
15
51
  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.`);
52
+ throw new Error(`
53
+ RdtAutofocusableDirective usage:
54
+ Apply directive directly on component and provide the same component as RDT_AUTOFOCUSABLE_COMPONENT.
55
+ The component must then implement RdtAutofocusable.`);
20
56
  }
21
57
  }
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 });
58
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtAutofocusableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
59
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: RdtAutofocusableDirective, isStandalone: true, selector: "[rdtAutofocusable]", ngImport: i0 });
24
60
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtAutofocusableDirective, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtAutofocusableDirective, decorators: [{
26
62
  type: Directive,
27
63
  args: [{
28
64
  selector: '[rdtAutofocusable]',
@@ -32,7 +68,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
32
68
  function getRdtAutofocusable(src) {
33
69
  const withPrios = Array.from(src).map((dir) => ({
34
70
  cmp: dir.component,
35
- prio: dir.component?.rdtGetAutofocusPriority?.() ?? 0,
71
+ prio: dir.component?.getAutofocusPriority?.() ?? 0,
36
72
  }));
37
73
  withPrios.sort((a, b) => b.prio - a.prio);
38
74
  return withPrios[0]?.cmp;
@@ -41,7 +77,6 @@ function getRdtAutofocusable(src) {
41
77
  const RDT_GUARDED_COMPONENT = new InjectionToken('');
42
78
  const RDT_CONTAINER = new InjectionToken('');
43
79
  function canTransition$(from, to) {
44
- console.log('canTransition$', from, to);
45
80
  if (to === from) {
46
81
  return of(true);
47
82
  }
@@ -73,7 +108,7 @@ function rdtGetResult$(inputFactory) {
73
108
  return of(input);
74
109
  }
75
110
  if (input instanceof Promise) {
76
- return fromPromise(input);
111
+ return from(input);
77
112
  }
78
113
  return input;
79
114
  }).pipe(map((res) => {
@@ -107,10 +142,10 @@ class RdtComponentGuardStoreService {
107
142
  }
108
143
  }));
109
144
  }
110
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtComponentGuardStoreService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
111
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtComponentGuardStoreService, providedIn: 'root' });
145
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtComponentGuardStoreService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
146
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtComponentGuardStoreService, providedIn: 'root' });
112
147
  }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtComponentGuardStoreService, decorators: [{
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtComponentGuardStoreService, decorators: [{
114
149
  type: Injectable,
115
150
  args: [{
116
151
  providedIn: 'root',
@@ -131,11 +166,11 @@ class RdtChildDirective {
131
166
  });
132
167
  ngOnInit() {
133
168
  if (!this.guardedComponent) {
134
- throw new Error(`
135
- RdtChildDirective usage:
136
- Apply directive directly on component and provide the same component as RDT_GUARDED_COMPONENT.
137
- The component can then implement RdtCanLeaveView or RdtCanEnterView.
138
- This applies to both Child and Container directives.
169
+ throw new Error(`
170
+ RdtChildDirective usage:
171
+ Apply directive directly on component and provide the same component as RDT_GUARDED_COMPONENT.
172
+ The component can then implement RdtCanLeaveView or RdtCanEnterView.
173
+ This applies to both Child and Container directives.
139
174
  `);
140
175
  }
141
176
  if (!this.container) {
@@ -190,10 +225,10 @@ class RdtChildDirective {
190
225
  return this.container.getParentByClass(parentClass);
191
226
  }
192
227
  }
193
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtChildDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
194
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: RdtChildDirective, isStandalone: true, selector: "[rdtChild]", ngImport: i0 });
228
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtChildDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
229
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: RdtChildDirective, isStandalone: true, selector: "[rdtChild]", ngImport: i0 });
195
230
  }
196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtChildDirective, decorators: [{
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtChildDirective, decorators: [{
197
232
  type: Directive,
198
233
  args: [{
199
234
  selector: '[rdtChild]',
@@ -261,8 +296,8 @@ class RdtContainerDirective extends RdtChildDirective {
261
296
  }
262
297
  });
263
298
  }
264
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtContainerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
265
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: RdtContainerDirective, isStandalone: true, selector: "[rdtContainer]", providers: [
299
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtContainerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
300
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: RdtContainerDirective, isStandalone: true, selector: "[rdtContainer]", providers: [
266
301
  {
267
302
  provide: RdtChildDirective,
268
303
  useExisting: RdtContainerDirective,
@@ -273,7 +308,7 @@ class RdtContainerDirective extends RdtChildDirective {
273
308
  },
274
309
  ], usesInheritance: true, ngImport: i0 });
275
310
  }
276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtContainerDirective, decorators: [{
311
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtContainerDirective, decorators: [{
277
312
  type: Directive,
278
313
  args: [{
279
314
  selector: '[rdtContainer]',
@@ -291,9 +326,103 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
291
326
  }]
292
327
  }] });
293
328
 
329
+ const RDT_DEFAULT_DISABLED_KEY = Symbol('RDT_DEFAULT_DISABLED_KEY');
330
+ const RDT_DEFAULT_LOADING_KEY = Symbol('RDT_DEFAULT_LOADING_KEY');
331
+ // eslint-disable-next-line @angular-eslint/component-class-suffix
332
+ class RdtInteractiveElementComponent {
333
+ cd = inject(ChangeDetectorRef);
334
+ destroyRef = inject(DestroyRef);
335
+ // Input for the disabled state
336
+ // Used only from outside using disabled="true" construct.
337
+ disabledInput = input(false, ...(ngDevMode ? [{ debugName: "disabledInput", alias: 'rdtDisabled',
338
+ transform: booleanAttribute }] : [{
339
+ alias: 'rdtDisabled',
340
+ transform: booleanAttribute,
341
+ }]));
342
+ // Map to track disabled state keys
343
+ disabledMap = signal({}, ...(ngDevMode ? [{ debugName: "disabledMap" }] : []));
344
+ // Computed disabled state
345
+ disabled = computed(() => this.disabledInput() || RdtObjectUtils.someValuesTrue(this.disabledMap()), ...(ngDevMode ? [{ debugName: "disabled" }] : []));
346
+ // In case component is focused and disabled
347
+ disabledEffect = effect(() => {
348
+ if (untracked(this.focused) && this.disabled()) {
349
+ this.focused.set(false);
350
+ }
351
+ }, ...(ngDevMode ? [{ debugName: "disabledEffect" }] : []));
352
+ loadingInput = input(false, ...(ngDevMode ? [{ debugName: "loadingInput", alias: 'loading',
353
+ transform: booleanAttribute }] : [{
354
+ alias: 'loading',
355
+ transform: booleanAttribute,
356
+ }]));
357
+ loadingMap = signal({}, ...(ngDevMode ? [{ debugName: "loadingMap" }] : []));
358
+ loading = computed(() => this.loadingInput() || RdtObjectUtils.someValuesTrue(this.loadingMap()), ...(ngDevMode ? [{ debugName: "loading" }] : []));
359
+ idInput = input('', ...(ngDevMode ? [{ debugName: "idInput", alias: 'id',
360
+ transform: (value) => value || this._uid }] : [{
361
+ alias: 'id',
362
+ transform: (value) => value || this._uid,
363
+ }]));
364
+ id = linkedSignal(() => this.idInput());
365
+ get uid() {
366
+ return this._uid;
367
+ }
368
+ _uid = (Math.random() + 1).toString(36).substring(7);
369
+ focused = signal(false, ...(ngDevMode ? [{ debugName: "focused" }] : []));
370
+ getAutofocusPriority() {
371
+ return 0;
372
+ }
373
+ setDisabledState(isDisabled, key = RDT_DEFAULT_DISABLED_KEY) {
374
+ const map = { ...untracked(this.disabledMap) };
375
+ if (isDisabled) {
376
+ map[key] = true;
377
+ }
378
+ else {
379
+ delete map[key];
380
+ }
381
+ this.disabledMap.set(map);
382
+ }
383
+ setLoadingState(isLoading, key = RDT_DEFAULT_LOADING_KEY) {
384
+ const map = { ...untracked(this.loadingMap) };
385
+ if (isLoading) {
386
+ map[key] = true;
387
+ }
388
+ else {
389
+ delete map[key];
390
+ }
391
+ this.loadingMap.set(map);
392
+ }
393
+ onFocus() {
394
+ this.focused.set(true);
395
+ }
396
+ onBlur() {
397
+ this.focused.set(false);
398
+ }
399
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtInteractiveElementComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
400
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.7", type: RdtInteractiveElementComponent, isStandalone: true, inputs: { disabledInput: { classPropertyName: "disabledInput", publicName: "rdtDisabled", isSignal: true, isRequired: false, transformFunction: null }, loadingInput: { classPropertyName: "loadingInput", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, idInput: { classPropertyName: "idInput", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
401
+ }
402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtInteractiveElementComponent, decorators: [{
403
+ type: Directive,
404
+ args: [{
405
+ standalone: true,
406
+ }]
407
+ }] });
408
+
409
+ function rdtCreateLinkedState(params) {
410
+ const state = {};
411
+ for (const key in params) {
412
+ const value = params[key];
413
+ if (isSignal(value)) {
414
+ state[key] = linkedSignal(() => value);
415
+ }
416
+ else {
417
+ state[key] = signal(value);
418
+ }
419
+ }
420
+ return state;
421
+ }
422
+
294
423
  /**
295
424
  * Generated bundle index. Do not edit.
296
425
  */
297
426
 
298
- export { RDT_AUTOFOCUSABLE_COMPONENT, RDT_CONTAINER, RDT_GUARDED_COMPONENT, RdtAutofocusableDirective, RdtChildDirective, RdtComponentGuardStoreService, RdtContainerDirective, canTransition$, getRdtAutofocusable, rdtGetAllResultsTrue$, rdtGetResult$ };
427
+ export { RDT_AUTOFOCUSABLE_COMPONENT, RDT_CONTAINER, RDT_DEFAULT_DISABLED_KEY, RDT_DEFAULT_LOADING_KEY, RDT_GUARDED_COMPONENT, RdtAutoFocusOnInitDirective, RdtAutofocusableDirective, RdtChildDirective, RdtComponentGuardStoreService, RdtContainerDirective, RdtInteractiveElementComponent, canTransition$, getRdtAutofocusable, rdtCreateLinkedState, rdtGetAllResultsTrue$, rdtGetResult$ };
299
428
  //# sourceMappingURL=ngrdt-core.mjs.map
@@ -1 +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/utils/rdt-boolean-result.ts","../../../../@ngrdt/core/src/lib/rdt-component-guard/services/rdt-component-guard-store.service.ts","../../../../@ngrdt/core/src/lib/rdt-component-guard/directives/rdt-child.directive.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';\r\nimport { RdtBooleanResult } from '../utils';\r\n\r\nexport interface RdtAutocusable {\r\n rdtFocus(): void;\r\n rdtCanFocus(): RdtBooleanResult;\r\n rdtGetAutofocusPriority?(): number;\r\n}\r\n\r\nexport const RDT_AUTOFOCUSABLE_COMPONENT = new InjectionToken<RdtAutocusable>(\r\n ''\r\n);\r\n","import { Directive, inject, OnInit } from '@angular/core';\r\nimport { RDT_AUTOFOCUSABLE_COMPONENT } from './models';\r\n\r\n@Directive({\r\n selector: '[rdtAutofocusable]',\r\n})\r\nexport class RdtAutofocusableDirective implements OnInit {\r\n readonly component = inject(RDT_AUTOFOCUSABLE_COMPONENT, {\r\n host: true,\r\n optional: true,\r\n self: true,\r\n });\r\n\r\n ngOnInit() {\r\n if (!this.component) {\r\n throw new Error(`\r\n RdtAutofocusableDirective usage:\r\n Apply directive directly on component and provide the same component as RDT_AUTOFOCUSABLE_COMPONENT.\r\n The component must then implement RdtAutocusable.`);\r\n }\r\n }\r\n}\r\n","import { RdtAutocusable } from './models';\r\nimport { RdtAutofocusableDirective } from './rdt-autofocusable.directive';\r\n\r\nexport function getRdtAutofocusable(\r\n src: Iterable<RdtAutofocusableDirective>\r\n): RdtAutocusable | null {\r\n const withPrios = Array.from(src).map((dir) => ({\r\n cmp: dir.component,\r\n prio: dir.component?.rdtGetAutofocusPriority?.() ?? 0,\r\n }));\r\n withPrios.sort((a, b) => b.prio - a.prio);\r\n return withPrios[0]?.cmp;\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { Nullable } from '@ngrdt/utils';\r\nimport { of } from 'rxjs';\r\nimport { RdtBooleanResult } from '../utils';\r\nimport { RdtContainerDirective } from './directives/rdt-container.directive';\r\n\r\nexport interface RdtIsActive {\r\n rdtIsActive(): boolean;\r\n}\r\n\r\nexport interface RdtCanLeaveView {\r\n rdtCanLeaveView(): RdtBooleanResult;\r\n}\r\n\r\nexport interface RdtCanEnterView {\r\n rdtCanEnterView(): RdtBooleanResult;\r\n}\r\n\r\nexport interface RdtOnViewWillLeave {\r\n rdtOnViewWillLeave(): void;\r\n}\r\n\r\nexport interface RdtOnViewWillEnter {\r\n rdtOnViewWillEnter(): void;\r\n}\r\n\r\nexport const RDT_GUARDED_COMPONENT = new InjectionToken<\r\n | RdtCanLeaveView\r\n | RdtCanEnterView\r\n | RdtOnViewWillEnter\r\n | RdtOnViewWillLeave\r\n | RdtIsActive\r\n>('');\r\n\r\nexport const RDT_CONTAINER = new InjectionToken<RdtContainerDirective>('');\r\n\r\nexport function canTransition$(\r\n from: Nullable<RdtContainerDirective>,\r\n to: Nullable<RdtContainerDirective>\r\n) {\r\n console.log('canTransition$', from, to);\r\n if (to === from) {\r\n return of(true);\r\n }\r\n const canLeave$ = from ? from.checkCanLeave$() : of(true);\r\n return canLeave$;\r\n /*\r\n const canEnter$ = to ? to.checkCanEnter$() : of(true);\r\n\r\n return canLeave$.pipe(\r\n switchMap((res) => {\r\n if (res) {\r\n return canEnter$;\r\n } else {\r\n return of(res);\r\n }\r\n })\r\n );*/\r\n}\r\n","import { catchError, concat, defer, filter, map, Observable, of } from 'rxjs';\r\nimport { fromPromise } from 'rxjs/internal/observable/innerFrom';\r\n\r\nexport type RdtBooleanResult = Observable<boolean> | Promise<boolean> | boolean;\r\n\r\nexport function rdtGetAllResultsTrue$(\r\n inputFactories: (() => RdtBooleanResult)[]\r\n) {\r\n const can$ = inputFactories.map((fn) => rdtGetResult$(fn));\r\n const last = Symbol('last');\r\n\r\n return concat(...can$, of(last)).pipe(\r\n filter((res) => res === last),\r\n map(() => true),\r\n catchError(() => of(false))\r\n );\r\n}\r\n\r\nexport function rdtGetResult$(inputFactory: () => RdtBooleanResult) {\r\n return defer(() => {\r\n const input = inputFactory();\r\n\r\n if (typeof input === 'boolean') {\r\n return of(input);\r\n }\r\n if (input instanceof Promise) {\r\n return fromPromise(input);\r\n }\r\n return input;\r\n }).pipe(\r\n map((res) => {\r\n if (res) {\r\n return res;\r\n }\r\n throw res;\r\n })\r\n );\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { rdtGetAllResultsTrue$ } from '../../utils';\r\nimport { RdtChildDirective } from '../directives/rdt-child.directive';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RdtComponentGuardStoreService {\r\n private readonly guards = new Set<RdtChildDirective>();\r\n\r\n registerGuard(guard: RdtChildDirective) {\r\n this.guards.add(guard);\r\n }\r\n\r\n removeGuard(guard: RdtChildDirective) {\r\n this.guards.delete(guard);\r\n }\r\n\r\n getGuards() {\r\n return Array.from(this.guards);\r\n }\r\n\r\n checkCanLeaveGlobal$() {\r\n return rdtGetAllResultsTrue$(\r\n this.getGuards().map((ch) => () => {\r\n // @ts-ignore\r\n if (typeof ch.checkCanLeave$ === 'function') {\r\n // @ts-ignore\r\n return ch.checkCanLeave$();\r\n } else {\r\n return ch.canLeaveView();\r\n }\r\n })\r\n );\r\n }\r\n}\r\n","import {\r\n DestroyRef,\r\n Directive,\r\n inject,\r\n OnDestroy,\r\n OnInit,\r\n Type,\r\n} from '@angular/core';\r\nimport { RdtBooleanResult } from '../../utils';\r\nimport {\r\n RDT_CONTAINER,\r\n RDT_GUARDED_COMPONENT,\r\n RdtCanEnterView,\r\n RdtCanLeaveView,\r\n RdtIsActive,\r\n RdtOnViewWillEnter,\r\n RdtOnViewWillLeave,\r\n} from '../models';\r\nimport { RdtComponentGuardStoreService } from '../services/rdt-component-guard-store.service';\r\nimport { RdtContainerDirective } from './rdt-container.directive';\r\n\r\n@Directive({\r\n selector: '[rdtChild]',\r\n standalone: true,\r\n})\r\nexport class RdtChildDirective implements OnInit, OnDestroy {\r\n readonly guardStore = inject(RdtComponentGuardStoreService);\r\n readonly destroyRef = inject(DestroyRef);\r\n readonly container = inject(RDT_CONTAINER, {\r\n optional: true,\r\n skipSelf: true,\r\n });\r\n readonly guardedComponent = inject(RDT_GUARDED_COMPONENT, {\r\n optional: true,\r\n self: true,\r\n host: true,\r\n });\r\n\r\n ngOnInit() {\r\n if (!this.guardedComponent) {\r\n throw new Error(`\r\n RdtChildDirective usage:\r\n Apply directive directly on component and provide the same component as RDT_GUARDED_COMPONENT.\r\n The component can then implement RdtCanLeaveView or RdtCanEnterView.\r\n This applies to both Child and Container directives.\r\n `);\r\n }\r\n if (!this.container) {\r\n this.guardStore.registerGuard(this);\r\n } else {\r\n this.container?.registerChild(this);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.guardStore.removeGuard(this);\r\n this.container?.removeChild(this);\r\n }\r\n\r\n isActive() {\r\n const comp = this.guardedComponent as RdtIsActive | undefined;\r\n return comp?.rdtIsActive?.() ?? true;\r\n }\r\n\r\n canEnterView(): RdtBooleanResult {\r\n const comp = this.guardedComponent as RdtCanEnterView | undefined;\r\n if (typeof comp?.rdtCanEnterView === 'function') {\r\n return comp.rdtCanEnterView();\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n canLeaveView(): RdtBooleanResult {\r\n const comp = this.guardedComponent as RdtCanLeaveView | undefined;\r\n if (typeof comp?.rdtCanLeaveView === 'function') {\r\n return comp.rdtCanLeaveView();\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n onViewWillEnter(): void {\r\n const comp = this.guardedComponent as RdtOnViewWillEnter | undefined;\r\n comp?.rdtOnViewWillEnter();\r\n }\r\n\r\n onViewWillLeave(): void {\r\n const comp = this.guardedComponent as RdtOnViewWillLeave | undefined;\r\n comp?.rdtOnViewWillLeave();\r\n }\r\n\r\n getParentByClass<T extends RdtContainerDirective>(\r\n parentClass: Type<T>\r\n ): T | null {\r\n if (!this.container) {\r\n return null;\r\n } else if (this.container instanceof parentClass) {\r\n return this.container;\r\n } else {\r\n return this.container.getParentByClass(parentClass);\r\n }\r\n }\r\n}\r\n","import { Directive, Type } from '@angular/core';\r\nimport { rdtGetAllResultsTrue$ } from '../../utils';\r\nimport { RDT_CONTAINER } from '../models';\r\nimport { RdtChildDirective } from './rdt-child.directive';\r\n\r\n@Directive({\r\n selector: '[rdtContainer]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: RdtChildDirective,\r\n useExisting: RdtContainerDirective,\r\n },\r\n {\r\n provide: RDT_CONTAINER,\r\n useExisting: RdtContainerDirective,\r\n },\r\n ],\r\n})\r\nexport class RdtContainerDirective extends RdtChildDirective {\r\n readonly rdtChildren: Set<RdtChildDirective> = new Set<RdtChildDirective>();\r\n\r\n registerChild(child: RdtChildDirective) {\r\n this.rdtChildren.add(child);\r\n }\r\n\r\n removeChild(child: RdtChildDirective) {\r\n this.rdtChildren.delete(child);\r\n }\r\n\r\n checkCanLeave$() {\r\n return rdtGetAllResultsTrue$(\r\n [this, ...this.getActiveChildren()].map((ch) => () => ch.canLeaveView())\r\n );\r\n }\r\n\r\n /* TODO\r\n checkCanEnter$() {\r\n return getCan$(\r\n [this, ...this.getActiveChildren()].map((ch) => () => ch.canEnterView())\r\n );\r\n }\r\n */\r\n\r\n override onViewWillEnter() {\r\n super.onViewWillEnter();\r\n this.rdtChildren.forEach((ch) => ch.onViewWillEnter());\r\n }\r\n\r\n override onViewWillLeave() {\r\n super.onViewWillLeave();\r\n this.rdtChildren.forEach((ch) => ch.onViewWillLeave());\r\n }\r\n\r\n getChildrenRecursive(filter?: (ch: RdtChildDirective) => boolean) {\r\n const res: RdtChildDirective[] = [];\r\n this._getChildrenRecursive(res, filter);\r\n return res;\r\n }\r\n\r\n protected getActiveChildren() {\r\n return this.getChildrenRecursive((ch) => ch.isActive());\r\n }\r\n\r\n getChildrenByClass<T>(childClass: Type<T>) {\r\n const res: T[] = [];\r\n this._getChildrenByClassRecursive(childClass, res);\r\n return res;\r\n }\r\n\r\n private _getChildrenRecursive(\r\n res: RdtChildDirective[],\r\n filter?: (ch: RdtChildDirective) => boolean\r\n ) {\r\n const children = Array.from(this.rdtChildren);\r\n const filteredChildren = filter ? children.filter(filter) : children;\r\n res.push(...filteredChildren);\r\n filteredChildren.forEach((child) => {\r\n if (child instanceof RdtContainerDirective) {\r\n child._getChildrenRecursive(res, filter);\r\n }\r\n });\r\n }\r\n\r\n private _getChildrenByClassRecursive<T>(childClass: Type<T>, res: T[]) {\r\n this.rdtChildren.forEach((child) => {\r\n const comp = (child as RdtChildDirective).guardedComponent;\r\n if (comp instanceof childClass) {\r\n res.push(comp);\r\n } else if (child instanceof RdtContainerDirective) {\r\n child._getChildrenByClassRecursive(childClass, res);\r\n }\r\n });\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngrdt-core.mjs","sources":["../tmp-esm2022/lib/autofocus/models.js","../tmp-esm2022/lib/autofocus/rdt-autofocus-on-init.directive.js","../tmp-esm2022/lib/autofocus/rdt-autofocusable.directive.js","../tmp-esm2022/lib/autofocus/utils.js","../tmp-esm2022/lib/component-guard/models.js","../tmp-esm2022/lib/utils/rdt-boolean-result.js","../tmp-esm2022/lib/component-guard/services/rdt-component-guard-store.service.js","../tmp-esm2022/lib/component-guard/directives/rdt-child.directive.js","../tmp-esm2022/lib/component-guard/directives/rdt-container.directive.js","../tmp-esm2022/lib/interactive-element/rdt-interactive-element.component.js","../tmp-esm2022/lib/linked-state/rdt-create-linked-state.js","../tmp-esm2022/ngrdt-core.js"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nexport const RDT_AUTOFOCUSABLE_COMPONENT = new InjectionToken('');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2NvcmUvc3JjL2xpYi9hdXRvZm9jdXMvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTL0MsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxjQUFjLENBQzNELEVBQUUsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdEJvb2xlYW5SZXN1bHQgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmR0QXV0b2ZvY3VzYWJsZSB7XG4gIGZvY3VzKCk6IHZvaWQ7XG4gIGNhbkZvY3VzKCk6IFJkdEJvb2xlYW5SZXN1bHQ7XG4gIGdldEF1dG9mb2N1c1ByaW9yaXR5PygpOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBSRFRfQVVUT0ZPQ1VTQUJMRV9DT01QT05FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48UmR0QXV0b2ZvY3VzYWJsZT4oXG4gICcnXG4pO1xuIl19","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, inject, } from '@angular/core';\nimport { RDT_AUTOFOCUSABLE_COMPONENT } from './models';\nimport * as i0 from \"@angular/core\";\nexport class RdtAutoFocusOnInitDirective {\n previousActiveElement = null;\n document = inject(DOCUMENT);\n elementRef = inject((ElementRef));\n autofocusable = inject(RDT_AUTOFOCUSABLE_COMPONENT, {\n host: true,\n optional: true,\n self: true,\n });\n ngOnDestroy() {\n if (this.previousActiveElement instanceof HTMLElement) {\n this.previousActiveElement.focus();\n }\n }\n ngAfterViewInit() {\n this.previousActiveElement = this.document.activeElement;\n if (this.autofocusable) {\n if (this.autofocusable.canFocus()) {\n this.autofocusable.focus();\n }\n }\n else {\n this.elementRef.nativeElement.focus();\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtAutoFocusOnInitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.7\", type: RdtAutoFocusOnInitDirective, isStandalone: true, selector: \"[rdtAutofocusOnInit]\", ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtAutoFocusOnInitDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdtAutofocusOnInit]',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWF1dG9mb2N1cy1vbi1pbml0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9jb3JlL3NyYy9saWIvYXV0b2ZvY3VzL3JkdC1hdXRvZm9jdXMtb24taW5pdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBS3ZELE1BQU0sT0FBTywyQkFBMkI7SUFDOUIscUJBQXFCLEdBQW1CLElBQUksQ0FBQztJQUNwQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVCLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztJQUM3QyxhQUFhLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixFQUFFO1FBQ25FLElBQUksRUFBRSxJQUFJO1FBQ1YsUUFBUSxFQUFFLElBQUk7UUFDZCxJQUFJLEVBQUUsSUFBSTtLQUNYLENBQUMsQ0FBQztJQUVILFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsWUFBWSxXQUFXLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBQ3pELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO3VHQXpCVSwyQkFBMkI7MkZBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgT25EZXN0cm95LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUkRUX0FVVE9GT0NVU0FCTEVfQ09NUE9ORU5UIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcmR0QXV0b2ZvY3VzT25Jbml0XScsXG59KVxuZXhwb3J0IGNsYXNzIFJkdEF1dG9Gb2N1c09uSW5pdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcHJldmlvdXNBY3RpdmVFbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dG9mb2N1c2FibGUgPSBpbmplY3QoUkRUX0FVVE9GT0NVU0FCTEVfQ09NUE9ORU5ULCB7XG4gICAgaG9zdDogdHJ1ZSxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBzZWxmOiB0cnVlLFxuICB9KTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcmV2aW91c0FjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgdGhpcy5wcmV2aW91c0FjdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wcmV2aW91c0FjdGl2ZUVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKHRoaXMuYXV0b2ZvY3VzYWJsZSkge1xuICAgICAgaWYgKHRoaXMuYXV0b2ZvY3VzYWJsZS5jYW5Gb2N1cygpKSB7XG4gICAgICAgIHRoaXMuYXV0b2ZvY3VzYWJsZS5mb2N1cygpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuIl19","import { Directive, inject } from '@angular/core';\nimport { RDT_AUTOFOCUSABLE_COMPONENT } from './models';\nimport * as i0 from \"@angular/core\";\nexport class RdtAutofocusableDirective {\n component = inject(RDT_AUTOFOCUSABLE_COMPONENT, {\n host: true,\n optional: true,\n self: true,\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 RdtAutofocusable.`);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtAutofocusableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.7\", type: RdtAutofocusableDirective, isStandalone: true, selector: \"[rdtAutofocusable]\", ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtAutofocusableDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdtAutofocusable]',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWF1dG9mb2N1c2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2NvcmUvc3JjL2xpYi9hdXRvZm9jdXMvcmR0LWF1dG9mb2N1c2FibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFLdkQsTUFBTSxPQUFPLHlCQUF5QjtJQUMzQixTQUFTLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixFQUFFO1FBQ3ZELElBQUksRUFBRSxJQUFJO1FBQ1YsUUFBUSxFQUFFLElBQUk7UUFDZCxJQUFJLEVBQUUsSUFBSTtLQUNYLENBQUMsQ0FBQztJQUVILFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUM7Ozs0REFHc0MsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO3VHQWRVLHlCQUF5QjsyRkFBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUkRUX0FVVE9GT0NVU0FCTEVfQ09NUE9ORU5UIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcmR0QXV0b2ZvY3VzYWJsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBSZHRBdXRvZm9jdXNhYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcmVhZG9ubHkgY29tcG9uZW50ID0gaW5qZWN0KFJEVF9BVVRPRk9DVVNBQkxFX0NPTVBPTkVOVCwge1xuICAgIGhvc3Q6IHRydWUsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgc2VsZjogdHJ1ZSxcbiAgfSk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBcbiAgICAgICAgUmR0QXV0b2ZvY3VzYWJsZURpcmVjdGl2ZSB1c2FnZTpcbiAgICAgICAgQXBwbHkgZGlyZWN0aXZlIGRpcmVjdGx5IG9uIGNvbXBvbmVudCBhbmQgcHJvdmlkZSB0aGUgc2FtZSBjb21wb25lbnQgYXMgUkRUX0FVVE9GT0NVU0FCTEVfQ09NUE9ORU5ULlxuICAgICAgICBUaGUgY29tcG9uZW50IG11c3QgdGhlbiBpbXBsZW1lbnQgUmR0QXV0b2ZvY3VzYWJsZS5gKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","export function getRdtAutofocusable(src) {\n const withPrios = Array.from(src).map((dir) => ({\n cmp: dir.component,\n prio: dir.component?.getAutofocusPriority?.() ?? 0,\n }));\n withPrios.sort((a, b) => b.prio - a.prio);\n return withPrios[0]?.cmp;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvY29yZS9zcmMvbGliL2F1dG9mb2N1cy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEdBQXdDO0lBRXhDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLEdBQUcsRUFBRSxHQUFHLENBQUMsU0FBUztRQUNsQixJQUFJLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxFQUFFLElBQUksQ0FBQztLQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNKLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJkdEF1dG9mb2N1c2FibGUgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBSZHRBdXRvZm9jdXNhYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9yZHQtYXV0b2ZvY3VzYWJsZS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmR0QXV0b2ZvY3VzYWJsZShcbiAgc3JjOiBJdGVyYWJsZTxSZHRBdXRvZm9jdXNhYmxlRGlyZWN0aXZlPlxuKTogUmR0QXV0b2ZvY3VzYWJsZSB8IG51bGwge1xuICBjb25zdCB3aXRoUHJpb3MgPSBBcnJheS5mcm9tKHNyYykubWFwKChkaXIpID0+ICh7XG4gICAgY21wOiBkaXIuY29tcG9uZW50LFxuICAgIHByaW86IGRpci5jb21wb25lbnQ/LmdldEF1dG9mb2N1c1ByaW9yaXR5Py4oKSA/PyAwLFxuICB9KSk7XG4gIHdpdGhQcmlvcy5zb3J0KChhLCBiKSA9PiBiLnByaW8gLSBhLnByaW8pO1xuICByZXR1cm4gd2l0aFByaW9zWzBdPy5jbXA7XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\nimport { of } from 'rxjs';\nexport const RDT_GUARDED_COMPONENT = new InjectionToken('');\nexport const RDT_CONTAINER = new InjectionToken('');\nexport function canTransition$(from, to) {\n if (to === from) {\n return of(true);\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//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2NvcmUvc3JjL2xpYi9jb21wb25lbnQtZ3VhcmQvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQXdCMUIsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBTXJELEVBQUUsQ0FBQyxDQUFDO0FBRU4sTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUF3QixFQUFFLENBQUMsQ0FBQztBQUUzRSxNQUFNLFVBQVUsY0FBYyxDQUM1QixJQUFxQyxFQUNyQyxFQUFtQztJQUVuQyxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNoQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxPQUFPLFNBQVMsQ0FBQztJQUNqQjs7Ozs7Ozs7Ozs7UUFXSTtBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdEJvb2xlYW5SZXN1bHQgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBSZHRDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcmR0LWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJkdElzQWN0aXZlIHtcbiAgcmR0SXNBY3RpdmUoKTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZHRDYW5MZWF2ZVZpZXcge1xuICByZHRDYW5MZWF2ZVZpZXcoKTogUmR0Qm9vbGVhblJlc3VsdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZHRDYW5FbnRlclZpZXcge1xuICByZHRDYW5FbnRlclZpZXcoKTogUmR0Qm9vbGVhblJlc3VsdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZHRPblZpZXdXaWxsTGVhdmUge1xuICByZHRPblZpZXdXaWxsTGVhdmUoKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZHRPblZpZXdXaWxsRW50ZXIge1xuICByZHRPblZpZXdXaWxsRW50ZXIoKTogdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IFJEVF9HVUFSREVEX0NPTVBPTkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgfCBSZHRDYW5MZWF2ZVZpZXdcbiAgfCBSZHRDYW5FbnRlclZpZXdcbiAgfCBSZHRPblZpZXdXaWxsRW50ZXJcbiAgfCBSZHRPblZpZXdXaWxsTGVhdmVcbiAgfCBSZHRJc0FjdGl2ZVxuPignJyk7XG5cbmV4cG9ydCBjb25zdCBSRFRfQ09OVEFJTkVSID0gbmV3IEluamVjdGlvblRva2VuPFJkdENvbnRhaW5lckRpcmVjdGl2ZT4oJycpO1xuXG5leHBvcnQgZnVuY3Rpb24gY2FuVHJhbnNpdGlvbiQoXG4gIGZyb206IE51bGxhYmxlPFJkdENvbnRhaW5lckRpcmVjdGl2ZT4sXG4gIHRvOiBOdWxsYWJsZTxSZHRDb250YWluZXJEaXJlY3RpdmU+XG4pIHtcbiAgaWYgKHRvID09PSBmcm9tKSB7XG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG4gIGNvbnN0IGNhbkxlYXZlJCA9IGZyb20gPyBmcm9tLmNoZWNrQ2FuTGVhdmUkKCkgOiBvZih0cnVlKTtcbiAgcmV0dXJuIGNhbkxlYXZlJDtcbiAgLypcbiAgY29uc3QgY2FuRW50ZXIkID0gdG8gPyB0by5jaGVja0NhbkVudGVyJCgpIDogb2YodHJ1ZSk7XG5cbiAgcmV0dXJuIGNhbkxlYXZlJC5waXBlKFxuICAgIHN3aXRjaE1hcCgocmVzKSA9PiB7XG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIHJldHVybiBjYW5FbnRlciQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gb2YocmVzKTtcbiAgICAgIH1cbiAgICB9KVxuICApOyovXG59XG4iXX0=","import { catchError, concat, defer, filter, from, map, of, } from 'rxjs';\nexport function rdtGetAllResultsTrue$(inputFactories) {\n const can$ = inputFactories.map((fn) => rdtGetResult$(fn));\n const last = Symbol('last');\n return concat(...can$, of(last)).pipe(filter((res) => res === last), map(() => true), catchError(() => of(false)));\n}\nexport function rdtGetResult$(inputFactory) {\n return defer(() => {\n const input = inputFactory();\n if (typeof input === 'boolean') {\n return of(input);\n }\n if (input instanceof Promise) {\n return from(input);\n }\n return input;\n }).pipe(map((res) => {\n if (res) {\n return res;\n }\n throw res;\n }));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJvb2xlYW4tcmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2NvcmUvc3JjL2xpYi91dGlscy9yZHQtYm9vbGVhbi1yZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLEVBQ0osR0FBRyxFQUVILEVBQUUsR0FDSCxNQUFNLE1BQU0sQ0FBQztBQUlkLE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsY0FBMEM7SUFFMUMsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTVCLE9BQU8sTUFBTSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbkMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLEVBQzdCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDZixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzVCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxZQUFvQztJQUNoRSxPQUFPLEtBQUssQ0FBQyxHQUFHLEVBQUU7UUFDaEIsTUFBTSxLQUFLLEdBQUcsWUFBWSxFQUFFLENBQUM7UUFFN0IsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvQixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsSUFBSSxLQUFLLFlBQVksT0FBTyxFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ1YsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUNELE1BQU0sR0FBRyxDQUFDO0lBQ1osQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBjb25jYXQsXG4gIGRlZmVyLFxuICBmaWx0ZXIsXG4gIGZyb20sXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG59IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBSZHRCb29sZWFuUmVzdWx0ID0gT2JzZXJ2YWJsZTxib29sZWFuPiB8IFByb21pc2U8Ym9vbGVhbj4gfCBib29sZWFuO1xuXG5leHBvcnQgZnVuY3Rpb24gcmR0R2V0QWxsUmVzdWx0c1RydWUkKFxuICBpbnB1dEZhY3RvcmllczogKCgpID0+IFJkdEJvb2xlYW5SZXN1bHQpW11cbikge1xuICBjb25zdCBjYW4kID0gaW5wdXRGYWN0b3JpZXMubWFwKChmbikgPT4gcmR0R2V0UmVzdWx0JChmbikpO1xuICBjb25zdCBsYXN0ID0gU3ltYm9sKCdsYXN0Jyk7XG5cbiAgcmV0dXJuIGNvbmNhdCguLi5jYW4kLCBvZihsYXN0KSkucGlwZShcbiAgICBmaWx0ZXIoKHJlcykgPT4gcmVzID09PSBsYXN0KSxcbiAgICBtYXAoKCkgPT4gdHJ1ZSksXG4gICAgY2F0Y2hFcnJvcigoKSA9PiBvZihmYWxzZSkpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZHRHZXRSZXN1bHQkKGlucHV0RmFjdG9yeTogKCkgPT4gUmR0Qm9vbGVhblJlc3VsdCkge1xuICByZXR1cm4gZGVmZXIoKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0ID0gaW5wdXRGYWN0b3J5KCk7XG5cbiAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiBvZihpbnB1dCk7XG4gICAgfVxuICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIHJldHVybiBmcm9tKGlucHV0KTtcbiAgICB9XG4gICAgcmV0dXJuIGlucHV0O1xuICB9KS5waXBlKFxuICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgICB9XG4gICAgICB0aHJvdyByZXM7XG4gICAgfSlcbiAgKTtcbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { rdtGetAllResultsTrue$ } from '../../utils';\nimport * as i0 from \"@angular/core\";\nexport class RdtComponentGuardStoreService {\n guards = new Set();\n registerGuard(guard) {\n this.guards.add(guard);\n }\n removeGuard(guard) {\n this.guards.delete(guard);\n }\n getGuards() {\n return Array.from(this.guards);\n }\n checkCanLeaveGlobal$() {\n return rdtGetAllResultsTrue$(this.getGuards().map((ch) => () => {\n // @ts-ignore\n if (typeof ch.checkCanLeave$ === 'function') {\n // @ts-ignore\n return ch.checkCanLeave$();\n }\n else {\n return ch.canLeaveView();\n }\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtComponentGuardStoreService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtComponentGuardStoreService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtComponentGuardStoreService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNvbXBvbmVudC1ndWFyZC1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2NvcmUvc3JjL2xpYi9jb21wb25lbnQtZ3VhcmQvc2VydmljZXMvcmR0LWNvbXBvbmVudC1ndWFyZC1zdG9yZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQU1wRCxNQUFNLE9BQU8sNkJBQTZCO0lBQ3ZCLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztJQUV2RCxhQUFhLENBQUMsS0FBd0I7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUF3QjtRQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLHFCQUFxQixDQUMxQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsYUFBYTtZQUNiLElBQUksT0FBTyxFQUFFLENBQUMsY0FBYyxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUM1QyxhQUFhO2dCQUNiLE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzdCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7dUdBM0JVLDZCQUE2QjsyR0FBN0IsNkJBQTZCLGNBRjVCLE1BQU07OzJGQUVQLDZCQUE2QjtrQkFIekMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByZHRHZXRBbGxSZXN1bHRzVHJ1ZSQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBSZHRDaGlsZERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvcmR0LWNoaWxkLmRpcmVjdGl2ZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZHRDb21wb25lbnRHdWFyZFN0b3JlU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ3VhcmRzID0gbmV3IFNldDxSZHRDaGlsZERpcmVjdGl2ZT4oKTtcblxuICByZWdpc3Rlckd1YXJkKGd1YXJkOiBSZHRDaGlsZERpcmVjdGl2ZSkge1xuICAgIHRoaXMuZ3VhcmRzLmFkZChndWFyZCk7XG4gIH1cblxuICByZW1vdmVHdWFyZChndWFyZDogUmR0Q2hpbGREaXJlY3RpdmUpIHtcbiAgICB0aGlzLmd1YXJkcy5kZWxldGUoZ3VhcmQpO1xuICB9XG5cbiAgZ2V0R3VhcmRzKCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZ3VhcmRzKTtcbiAgfVxuXG4gIGNoZWNrQ2FuTGVhdmVHbG9iYWwkKCkge1xuICAgIHJldHVybiByZHRHZXRBbGxSZXN1bHRzVHJ1ZSQoXG4gICAgICB0aGlzLmdldEd1YXJkcygpLm1hcCgoY2gpID0+ICgpID0+IHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBpZiAodHlwZW9mIGNoLmNoZWNrQ2FuTGVhdmUkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHJldHVybiBjaC5jaGVja0NhbkxlYXZlJCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBjaC5jYW5MZWF2ZVZpZXcoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=","import { DestroyRef, Directive, inject, } from '@angular/core';\nimport { RDT_CONTAINER, RDT_GUARDED_COMPONENT, } from '../models';\nimport { RdtComponentGuardStoreService } from '../services/rdt-component-guard-store.service';\nimport * as i0 from \"@angular/core\";\nexport class RdtChildDirective {\n guardStore = inject(RdtComponentGuardStoreService);\n destroyRef = inject(DestroyRef);\n container = inject(RDT_CONTAINER, {\n optional: true,\n skipSelf: true,\n });\n guardedComponent = inject(RDT_GUARDED_COMPONENT, {\n optional: true,\n self: true,\n host: true,\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 if (!this.container) {\n this.guardStore.registerGuard(this);\n }\n else {\n this.container?.registerChild(this);\n }\n }\n ngOnDestroy() {\n this.guardStore.removeGuard(this);\n this.container?.removeChild(this);\n }\n isActive() {\n const comp = this.guardedComponent;\n return comp?.rdtIsActive?.() ?? true;\n }\n canEnterView() {\n const comp = this.guardedComponent;\n if (typeof comp?.rdtCanEnterView === 'function') {\n return comp.rdtCanEnterView();\n }\n else {\n return true;\n }\n }\n canLeaveView() {\n const comp = this.guardedComponent;\n if (typeof comp?.rdtCanLeaveView === 'function') {\n return comp.rdtCanLeaveView();\n }\n else {\n return true;\n }\n }\n onViewWillEnter() {\n const comp = this.guardedComponent;\n comp?.rdtOnViewWillEnter();\n }\n onViewWillLeave() {\n const comp = this.guardedComponent;\n comp?.rdtOnViewWillLeave();\n }\n getParentByClass(parentClass) {\n if (!this.container) {\n return null;\n }\n else if (this.container instanceof parentClass) {\n return this.container;\n }\n else {\n return this.container.getParentByClass(parentClass);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtChildDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.7\", type: RdtChildDirective, isStandalone: true, selector: \"[rdtChild]\", ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtChildDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdtChild]',\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNoaWxkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9jb3JlL3NyYy9saWIvY29tcG9uZW50LWd1YXJkL2RpcmVjdGl2ZXMvcmR0LWNoaWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLFNBQVMsRUFDVCxNQUFNLEdBSVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLGFBQWEsRUFDYixxQkFBcUIsR0FNdEIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBTzlGLE1BQU0sT0FBTyxpQkFBaUI7SUFDbkIsVUFBVSxHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ25ELFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxhQUFhLEVBQUU7UUFDekMsUUFBUSxFQUFFLElBQUk7UUFDZCxRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUMsQ0FBQztJQUNNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRTtRQUN4RCxRQUFRLEVBQUUsSUFBSTtRQUNkLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFFLElBQUk7S0FDWCxDQUFDLENBQUM7SUFFSCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUM7Ozs7O1NBS2IsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBMkMsQ0FBQztRQUM5RCxPQUFPLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBK0MsQ0FBQztRQUNsRSxJQUFJLE9BQU8sSUFBSSxFQUFFLGVBQWUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNoRCxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNoQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUErQyxDQUFDO1FBQ2xFLElBQUksT0FBTyxJQUFJLEVBQUUsZUFBZSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ2hELE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWtELENBQUM7UUFDckUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWtELENBQUM7UUFDckUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQixDQUNkLFdBQW9CO1FBRXBCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxZQUFZLFdBQVcsRUFBRSxDQUFDO1lBQ2pELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQzt1R0E3RVUsaUJBQWlCOzJGQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlc3Ryb3lSZWYsXG4gIERpcmVjdGl2ZSxcbiAgaW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZHRCb29sZWFuUmVzdWx0IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgUkRUX0NPTlRBSU5FUixcbiAgUkRUX0dVQVJERURfQ09NUE9ORU5ULFxuICBSZHRDYW5FbnRlclZpZXcsXG4gIFJkdENhbkxlYXZlVmlldyxcbiAgUmR0SXNBY3RpdmUsXG4gIFJkdE9uVmlld1dpbGxFbnRlcixcbiAgUmR0T25WaWV3V2lsbExlYXZlLFxufSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgUmR0Q29tcG9uZW50R3VhcmRTdG9yZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yZHQtY29tcG9uZW50LWd1YXJkLXN0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmR0Q29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9yZHQtY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyZHRDaGlsZF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBSZHRDaGlsZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgZ3VhcmRTdG9yZSA9IGluamVjdChSZHRDb21wb25lbnRHdWFyZFN0b3JlU2VydmljZSk7XG4gIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHJlYWRvbmx5IGNvbnRhaW5lciA9IGluamVjdChSRFRfQ09OVEFJTkVSLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgc2tpcFNlbGY6IHRydWUsXG4gIH0pO1xuICByZWFkb25seSBndWFyZGVkQ29tcG9uZW50ID0gaW5qZWN0KFJEVF9HVUFSREVEX0NPTVBPTkVOVCwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHNlbGY6IHRydWUsXG4gICAgaG9zdDogdHJ1ZSxcbiAgfSk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmd1YXJkZWRDb21wb25lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgXG4gICAgICAgIFJkdENoaWxkRGlyZWN0aXZlIHVzYWdlOlxuICAgICAgICBBcHBseSBkaXJlY3RpdmUgZGlyZWN0bHkgb24gY29tcG9uZW50IGFuZCBwcm92aWRlIHRoZSBzYW1lIGNvbXBvbmVudCBhcyBSRFRfR1VBUkRFRF9DT01QT05FTlQuXG4gICAgICAgIFRoZSBjb21wb25lbnQgY2FuIHRoZW4gaW1wbGVtZW50IFJkdENhbkxlYXZlVmlldyBvciBSZHRDYW5FbnRlclZpZXcuXG4gICAgICAgIFRoaXMgYXBwbGllcyB0byBib3RoIENoaWxkIGFuZCBDb250YWluZXIgZGlyZWN0aXZlcy5cbiAgICAgICAgYCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5jb250YWluZXIpIHtcbiAgICAgIHRoaXMuZ3VhcmRTdG9yZS5yZWdpc3Rlckd1YXJkKHRoaXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbnRhaW5lcj8ucmVnaXN0ZXJDaGlsZCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmd1YXJkU3RvcmUucmVtb3ZlR3VhcmQodGhpcyk7XG4gICAgdGhpcy5jb250YWluZXI/LnJlbW92ZUNoaWxkKHRoaXMpO1xuICB9XG5cbiAgaXNBY3RpdmUoKSB7XG4gICAgY29uc3QgY29tcCA9IHRoaXMuZ3VhcmRlZENvbXBvbmVudCBhcyBSZHRJc0FjdGl2ZSB8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gY29tcD8ucmR0SXNBY3RpdmU/LigpID8/IHRydWU7XG4gIH1cblxuICBjYW5FbnRlclZpZXcoKTogUmR0Qm9vbGVhblJlc3VsdCB7XG4gICAgY29uc3QgY29tcCA9IHRoaXMuZ3VhcmRlZENvbXBvbmVudCBhcyBSZHRDYW5FbnRlclZpZXcgfCB1bmRlZmluZWQ7XG4gICAgaWYgKHR5cGVvZiBjb21wPy5yZHRDYW5FbnRlclZpZXcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBjb21wLnJkdENhbkVudGVyVmlldygpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBjYW5MZWF2ZVZpZXcoKTogUmR0Qm9vbGVhblJlc3VsdCB7XG4gICAgY29uc3QgY29tcCA9IHRoaXMuZ3VhcmRlZENvbXBvbmVudCBhcyBSZHRDYW5MZWF2ZVZpZXcgfCB1bmRlZmluZWQ7XG4gICAgaWYgKHR5cGVvZiBjb21wPy5yZHRDYW5MZWF2ZVZpZXcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBjb21wLnJkdENhbkxlYXZlVmlldygpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBvblZpZXdXaWxsRW50ZXIoKTogdm9pZCB7XG4gICAgY29uc3QgY29tcCA9IHRoaXMuZ3VhcmRlZENvbXBvbmVudCBhcyBSZHRPblZpZXdXaWxsRW50ZXIgfCB1bmRlZmluZWQ7XG4gICAgY29tcD8ucmR0T25WaWV3V2lsbEVudGVyKCk7XG4gIH1cblxuICBvblZpZXdXaWxsTGVhdmUoKTogdm9pZCB7XG4gICAgY29uc3QgY29tcCA9IHRoaXMuZ3VhcmRlZENvbXBvbmVudCBhcyBSZHRPblZpZXdXaWxsTGVhdmUgfCB1bmRlZmluZWQ7XG4gICAgY29tcD8ucmR0T25WaWV3V2lsbExlYXZlKCk7XG4gIH1cblxuICBnZXRQYXJlbnRCeUNsYXNzPFQgZXh0ZW5kcyBSZHRDb250YWluZXJEaXJlY3RpdmU+KFxuICAgIHBhcmVudENsYXNzOiBUeXBlPFQ+XG4gICk6IFQgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuY29udGFpbmVyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udGFpbmVyIGluc3RhbmNlb2YgcGFyZW50Q2xhc3MpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lcjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyLmdldFBhcmVudEJ5Q2xhc3MocGFyZW50Q2xhc3MpO1xuICAgIH1cbiAgfVxufVxuIl19","import { Directive } from '@angular/core';\nimport { rdtGetAllResultsTrue$ } from '../../utils';\nimport { RDT_CONTAINER } from '../models';\nimport { RdtChildDirective } from './rdt-child.directive';\nimport * as i0 from \"@angular/core\";\nexport class RdtContainerDirective extends RdtChildDirective {\n rdtChildren = new Set();\n registerChild(child) {\n this.rdtChildren.add(child);\n }\n removeChild(child) {\n this.rdtChildren.delete(child);\n }\n checkCanLeave$() {\n return rdtGetAllResultsTrue$([this, ...this.getActiveChildren()].map((ch) => () => ch.canLeaveView()));\n }\n /* TODO\n checkCanEnter$() {\n return getCan$(\n [this, ...this.getActiveChildren()].map((ch) => () => ch.canEnterView())\n );\n }\n */\n onViewWillEnter() {\n super.onViewWillEnter();\n this.rdtChildren.forEach((ch) => ch.onViewWillEnter());\n }\n onViewWillLeave() {\n super.onViewWillLeave();\n this.rdtChildren.forEach((ch) => ch.onViewWillLeave());\n }\n getChildrenRecursive(filter) {\n const res = [];\n this._getChildrenRecursive(res, filter);\n return res;\n }\n getActiveChildren() {\n return this.getChildrenRecursive((ch) => ch.isActive());\n }\n getChildrenByClass(childClass) {\n const res = [];\n this._getChildrenByClassRecursive(childClass, res);\n return res;\n }\n _getChildrenRecursive(res, filter) {\n const children = Array.from(this.rdtChildren);\n const filteredChildren = filter ? children.filter(filter) : children;\n res.push(...filteredChildren);\n filteredChildren.forEach((child) => {\n if (child instanceof RdtContainerDirective) {\n child._getChildrenRecursive(res, filter);\n }\n });\n }\n _getChildrenByClassRecursive(childClass, res) {\n this.rdtChildren.forEach((child) => {\n const comp = child.guardedComponent;\n if (comp instanceof childClass) {\n res.push(comp);\n }\n else if (child instanceof RdtContainerDirective) {\n child._getChildrenByClassRecursive(childClass, res);\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtContainerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.7\", type: RdtContainerDirective, isStandalone: true, selector: \"[rdtContainer]\", providers: [\n {\n provide: RdtChildDirective,\n useExisting: RdtContainerDirective,\n },\n {\n provide: RDT_CONTAINER,\n useExisting: RdtContainerDirective,\n },\n ], usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtContainerDirective, decorators: [{\n type: Directive,\n args: [{\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 }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNvbnRhaW5lci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvY29yZS9zcmMvbGliL2NvbXBvbmVudC1ndWFyZC9kaXJlY3RpdmVzL3JkdC1jb250YWluZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBZ0IxRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsaUJBQWlCO0lBQ2pELFdBQVcsR0FBMkIsSUFBSSxHQUFHLEVBQXFCLENBQUM7SUFFNUUsYUFBYSxDQUFDLEtBQXdCO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBd0I7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLHFCQUFxQixDQUMxQixDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FDekUsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O01BTUU7SUFFTyxlQUFlO1FBQ3RCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFF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aW1wb3J0IHsgcmR0R2V0QWxsUmVzdWx0c1RydWUkIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgUkRUX0NPTlRBSU5FUiB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBSZHRDaGlsZERpcmVjdGl2ZSB9IGZyb20gJy4vcmR0LWNoaWxkLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyZHRDb250YWluZXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUmR0Q2hpbGREaXJlY3RpdmUsXG4gICAgICB1c2VFeGlzdGluZzogUmR0Q29udGFpbmVyRGlyZWN0aXZlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogUkRUX0NPTlRBSU5FUixcbiAgICAgIHVzZUV4aXN0aW5nOiBSZHRDb250YWluZXJEaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmR0Q29udGFpbmVyRGlyZWN0aXZlIGV4dGVuZHMgUmR0Q2hpbGREaXJlY3RpdmUge1xuICByZWFkb25seSByZHRDaGlsZHJlbjogU2V0PFJkdENoaWxkRGlyZWN0aXZlPiA9IG5ldyBTZXQ8UmR0Q2hpbGREaXJlY3RpdmU+KCk7XG5cbiAgcmVnaXN0ZXJDaGlsZChjaGlsZDogUmR0Q2hpbGREaXJlY3RpdmUpIHtcbiAgICB0aGlzLnJkdENoaWxkcmVuLmFkZChjaGlsZCk7XG4gIH1cblxuICByZW1vdmVDaGlsZChjaGlsZDogUmR0Q2hpbGREaXJlY3RpdmUpIHtcbiAgICB0aGlzLnJkdENoaWxkcmVuLmRlbGV0ZShjaGlsZCk7XG4gIH1cblxuICBjaGVja0NhbkxlYXZlJCgpIHtcbiAgICByZXR1cm4gcmR0R2V0QWxsUmVzdWx0c1RydWUkKFxuICAgICAgW3RoaXMsIC4uLnRoaXMuZ2V0QWN0aXZlQ2hpbGRyZW4oKV0ubWFwKChjaCkgPT4gKCkgPT4gY2guY2FuTGVhdmVWaWV3KCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qIFRPRE9cbiAgY2hlY2tDYW5FbnRlciQoKSB7XG4gICAgcmV0dXJuIGdldENhbiQoXG4gICAgICBbdGhpcywgLi4udGhpcy5nZXRBY3RpdmVDaGlsZHJlbigpXS5tYXAoKGNoKSA9PiAoKSA9PiBjaC5jYW5FbnRlclZpZXcoKSlcbiAgICApO1xuICB9XG4gICovXG5cbiAgb3ZlcnJpZGUgb25WaWV3V2lsbEVudGVyKCkge1xuICAgIHN1cGVyLm9uVmlld1dpbGxFbnRlcigpO1xuICAgIHRoaXMucmR0Q2hpbGRyZW4uZm9yRWFjaCgoY2gpID0+IGNoLm9uVmlld1dpbGxFbnRlcigpKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uVmlld1dpbGxMZWF2ZSgpIHtcbiAgICBzdXBlci5vblZpZXdXaWxsTGVhdmUoKTtcbiAgICB0aGlzLnJkdENoaWxkcmVuLmZvckVhY2goKGNoKSA9PiBjaC5vblZpZXdXaWxsTGVhdmUoKSk7XG4gIH1cblxuICBnZXRDaGlsZHJlblJlY3Vyc2l2ZShmaWx0ZXI/OiAoY2g6IFJkdENoaWxkRGlyZWN0aXZlKSA9PiBib29sZWFuKSB7XG4gICAgY29uc3QgcmVzOiBSZHRDaGlsZERpcmVjdGl2ZVtdID0gW107XG4gICAgdGhpcy5fZ2V0Q2hpbGRyZW5SZWN1cnNpdmUocmVzLCBmaWx0ZXIpO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0QWN0aXZlQ2hpbGRyZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hpbGRyZW5SZWN1cnNpdmUoKGNoKSA9PiBjaC5pc0FjdGl2ZSgpKTtcbiAgfVxuXG4gIGdldENoaWxkcmVuQnlDbGFzczxUPihjaGlsZENsYXNzOiBUeXBlPFQ+KSB7XG4gICAgY29uc3QgcmVzOiBUW10gPSBbXTtcbiAgICB0aGlzLl9nZXRDaGlsZHJlbkJ5Q2xhc3NSZWN1cnNpdmUoY2hpbGRDbGFzcywgcmVzKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q2hpbGRyZW5SZWN1cnNpdmUoXG4gICAgcmVzOiBSZHRDaGlsZERpcmVjdGl2ZVtdLFxuICAgIGZpbHRlcj86IChjaDogUmR0Q2hpbGREaXJlY3RpdmUpID0+IGJvb2xlYW5cbiAgKSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBBcnJheS5mcm9tKHRoaXMucmR0Q2hpbGRyZW4pO1xuICAgIGNvbnN0IGZpbHRlcmVkQ2hpbGRyZW4gPSBmaWx0ZXIgPyBjaGlsZHJlbi5maWx0ZXIoZmlsdGVyKSA6IGNoaWxkcmVuO1xuICAgIHJlcy5wdXNoKC4uLmZpbHRlcmVkQ2hpbGRyZW4pO1xuICAgIGZpbHRlcmVkQ2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIFJkdENvbnRhaW5lckRpcmVjdGl2ZSkge1xuICAgICAgICBjaGlsZC5fZ2V0Q2hpbGRyZW5SZWN1cnNpdmUocmVzLCBmaWx0ZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q2hpbGRyZW5CeUNsYXNzUmVjdXJzaXZlPFQ+KGNoaWxkQ2xhc3M6IFR5cGU8VD4sIHJlczogVFtdKSB7XG4gICAgdGhpcy5yZHRDaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgY29uc3QgY29tcCA9IChjaGlsZCBhcyBSZHRDaGlsZERpcmVjdGl2ZSkuZ3VhcmRlZENvbXBvbmVudDtcbiAgICAgIGlmIChjb21wIGluc3RhbmNlb2YgY2hpbGRDbGFzcykge1xuICAgICAgICByZXMucHVzaChjb21wKTtcbiAgICAgIH0gZWxzZSBpZiAoY2hpbGQgaW5zdGFuY2VvZiBSZHRDb250YWluZXJEaXJlY3RpdmUpIHtcbiAgICAgICAgY2hpbGQuX2dldENoaWxkcmVuQnlDbGFzc1JlY3Vyc2l2ZShjaGlsZENsYXNzLCByZXMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { booleanAttribute, ChangeDetectorRef, computed, DestroyRef, Directive, effect, inject, input, linkedSignal, signal, untracked, } from '@angular/core';\nimport { RdtObjectUtils } from '@ngrdt/utils';\nimport * as i0 from \"@angular/core\";\nexport const RDT_DEFAULT_DISABLED_KEY = Symbol('RDT_DEFAULT_DISABLED_KEY');\nexport const RDT_DEFAULT_LOADING_KEY = Symbol('RDT_DEFAULT_LOADING_KEY');\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class RdtInteractiveElementComponent {\n cd = inject(ChangeDetectorRef);\n destroyRef = inject(DestroyRef);\n // Input for the disabled state\n // Used only from outside using disabled=\"true\" construct.\n disabledInput = input(false, ...(ngDevMode ? [{ debugName: \"disabledInput\", alias: 'rdtDisabled',\n transform: booleanAttribute }] : [{\n alias: 'rdtDisabled',\n transform: booleanAttribute,\n }]));\n // Map to track disabled state keys\n disabledMap = signal({}, ...(ngDevMode ? [{ debugName: \"disabledMap\" }] : []));\n // Computed disabled state\n disabled = computed(() => this.disabledInput() || RdtObjectUtils.someValuesTrue(this.disabledMap()), ...(ngDevMode ? [{ debugName: \"disabled\" }] : []));\n // In case component is focused and disabled\n disabledEffect = effect(() => {\n if (untracked(this.focused) && this.disabled()) {\n this.focused.set(false);\n }\n }, ...(ngDevMode ? [{ debugName: \"disabledEffect\" }] : []));\n loadingInput = input(false, ...(ngDevMode ? [{ debugName: \"loadingInput\", alias: 'loading',\n transform: booleanAttribute }] : [{\n alias: 'loading',\n transform: booleanAttribute,\n }]));\n loadingMap = signal({}, ...(ngDevMode ? [{ debugName: \"loadingMap\" }] : []));\n loading = computed(() => this.loadingInput() || RdtObjectUtils.someValuesTrue(this.loadingMap()), ...(ngDevMode ? [{ debugName: \"loading\" }] : []));\n idInput = input('', ...(ngDevMode ? [{ debugName: \"idInput\", alias: 'id',\n transform: (value) => value || this._uid }] : [{\n alias: 'id',\n transform: (value) => value || this._uid,\n }]));\n id = linkedSignal(() => this.idInput());\n get uid() {\n return this._uid;\n }\n _uid = (Math.random() + 1).toString(36).substring(7);\n focused = signal(false, ...(ngDevMode ? [{ debugName: \"focused\" }] : []));\n getAutofocusPriority() {\n return 0;\n }\n setDisabledState(isDisabled, key = RDT_DEFAULT_DISABLED_KEY) {\n const map = { ...untracked(this.disabledMap) };\n if (isDisabled) {\n map[key] = true;\n }\n else {\n delete map[key];\n }\n this.disabledMap.set(map);\n }\n setLoadingState(isLoading, key = RDT_DEFAULT_LOADING_KEY) {\n const map = { ...untracked(this.loadingMap) };\n if (isLoading) {\n map[key] = true;\n }\n else {\n delete map[key];\n }\n this.loadingMap.set(map);\n }\n onFocus() {\n this.focused.set(true);\n }\n onBlur() {\n this.focused.set(false);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtInteractiveElementComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: RdtInteractiveElementComponent, isStandalone: true, inputs: { disabledInput: { classPropertyName: \"disabledInput\", publicName: \"rdtDisabled\", isSignal: true, isRequired: false, transformFunction: null }, loadingInput: { classPropertyName: \"loadingInput\", publicName: \"loading\", isSignal: true, isRequired: false, transformFunction: null }, idInput: { classPropertyName: \"idInput\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtInteractiveElementComponent, decorators: [{\n type: Directive,\n args: [{\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWludGVyYWN0aXZlLWVsZW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2NvcmUvc3JjL2xpYi9pbnRlcmFjdGl2ZS1lbGVtZW50L3JkdC1pbnRlcmFjdGl2ZS1lbGVtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsVUFBVSxFQUNWLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxZQUFZLEVBQ1osTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUk5QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUMzRSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUt6RSxrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQiw4QkFBOEI7SUFHekMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9CLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFekMsK0JBQStCO0lBQy9CLDBEQUEwRDtJQUNqRCxhQUFhLEdBQUcsS0FBSyxDQUFDLEtBQUssaURBQ2xDLEtBQUssRUFBRSxhQUFhO1lBQ3BCLFNBQVMsRUFBRSxnQkFBZ0IsT0FGUztZQUNwQyxLQUFLLEVBQUUsYUFBYTtZQUNwQixTQUFTLEVBQUUsZ0JBQWdCO1NBQzVCLEdBQUMsQ0FBQztJQUNILG1DQUFtQztJQUNoQixXQUFXLEdBQUcsTUFBTSxDQUEwQixFQUFFLHVEQUFDLENBQUM7SUFDckUsMEJBQTBCO0lBQ2pCLFFBQVEsR0FBRyxRQUFRLENBQzFCLEdB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QUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzt1R0FsRm1CLDhCQUE4QjsyRkFBOUIsOEJBQThCOzsyRkFBOUIsOEJBQThCO2tCQUpuRCxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBjb21wdXRlZCxcbiAgRGVzdHJveVJlZixcbiAgRGlyZWN0aXZlLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIGxpbmtlZFNpZ25hbCxcbiAgc2lnbmFsLFxuICB1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR0T2JqZWN0VXRpbHMgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgUmR0QXV0b2ZvY3VzYWJsZSB9IGZyb20gJy4uL2F1dG9mb2N1cyc7XG5pbXBvcnQgeyBSZHRCb29sZWFuUmVzdWx0IH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgUkRUX0RFRkFVTFRfRElTQUJMRURfS0VZID0gU3ltYm9sKCdSRFRfREVGQVVMVF9ESVNBQkxFRF9LRVknKTtcbmV4cG9ydCBjb25zdCBSRFRfREVGQVVMVF9MT0FESU5HX0tFWSA9IFN5bWJvbCgnUkRUX0RFRkFVTFRfTE9BRElOR19LRVknKTtcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmR0SW50ZXJhY3RpdmVFbGVtZW50Q29tcG9uZW50XG4gIGltcGxlbWVudHMgUmR0QXV0b2ZvY3VzYWJsZVxue1xuICByZWFkb25seSBjZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgLy8gSW5wdXQgZm9yIHRoZSBkaXNhYmxlZCBzdGF0ZVxuICAvLyBVc2VkIG9ubHkgZnJvbSBvdXRzaWRlIHVzaW5nIGRpc2FibGVkPVwidHJ1ZVwiIGNvbnN0cnVjdC5cbiAgcmVhZG9ubHkgZGlzYWJsZWRJbnB1dCA9IGlucHV0KGZhbHNlLCB7XG4gICAgYWxpYXM6ICdyZHREaXNhYmxlZCcsXG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICB9KTtcbiAgLy8gTWFwIHRvIHRyYWNrIGRpc2FibGVkIHN0YXRlIGtleXNcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc2FibGVkTWFwID0gc2lnbmFsPFJlY29yZDxzeW1ib2wsIGJvb2xlYW4+Pih7fSk7XG4gIC8vIENvbXB1dGVkIGRpc2FibGVkIHN0YXRlXG4gIHJlYWRvbmx5IGRpc2FibGVkID0gY29tcHV0ZWQoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuZGlzYWJsZWRJbnB1dCgpIHx8IFJkdE9iamVjdFV0aWxzLnNvbWVWYWx1ZXNUcnVlKHRoaXMuZGlzYWJsZWRNYXAoKSlcbiAgKTtcbiAgLy8gSW4gY2FzZSBjb21wb25lbnQgaXMgZm9jdXNlZCBhbmQgZGlzYWJsZWRcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc2FibGVkRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBpZiAodW50cmFja2VkKHRoaXMuZm9jdXNlZCkgJiYgdGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICB0aGlzLmZvY3VzZWQuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGxvYWRpbmdJbnB1dCA9IGlucHV0KGZhbHNlLCB7XG4gICAgYWxpYXM6ICdsb2FkaW5nJyxcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9hZGluZ01hcCA9IHNpZ25hbDxSZWNvcmQ8c3ltYm9sLCBib29sZWFuPj4oe30pO1xuICByZWFkb25seSBsb2FkaW5nID0gY29tcHV0ZWQoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMubG9hZGluZ0lucHV0KCkgfHwgUmR0T2JqZWN0VXRpbHMuc29tZVZhbHVlc1RydWUodGhpcy5sb2FkaW5nTWFwKCkpXG4gICk7XG5cbiAgcmVhZG9ubHkgaWRJbnB1dCA9IGlucHV0KCcnLCB7XG4gICAgYWxpYXM6ICdpZCcsXG4gICAgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8IHRoaXMuX3VpZCxcbiAgfSk7XG4gIHJlYWRvbmx5IGlkID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMuaWRJbnB1dCgpKTtcblxuICBnZXQgdWlkKCkge1xuICAgIHJldHVybiB0aGlzLl91aWQ7XG4gIH1cbiAgcHJvdGVjdGVkIF91aWQgPSAoTWF0aC5yYW5kb20oKSArIDEpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoNyk7XG5cbiAgcmVhZG9ubHkgZm9jdXNlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgYWJzdHJhY3QgZm9jdXMoKTogdm9pZDtcbiAgYWJzdHJhY3QgY2FuRm9jdXMoKTogUmR0Qm9vbGVhblJlc3VsdDtcblxuICBnZXRBdXRvZm9jdXNQcmlvcml0eSgpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbiwga2V5ID0gUkRUX0RFRkFVTFRfRElTQUJMRURfS0VZKTogdm9pZCB7XG4gICAgY29uc3QgbWFwID0geyAuLi51bnRyYWNrZWQodGhpcy5kaXNhYmxlZE1hcCkgfTtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgbWFwW2tleV0gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGUgbWFwW2tleV07XG4gICAgfVxuICAgIHRoaXMuZGlzYWJsZWRNYXAuc2V0KG1hcCk7XG4gIH1cblxuICBzZXRMb2FkaW5nU3RhdGUoaXNMb2FkaW5nOiBib29sZWFuLCBrZXkgPSBSRFRfREVGQVVMVF9MT0FESU5HX0tFWSk6IHZvaWQge1xuICAgIGNvbnN0IG1hcCA9IHsgLi4udW50cmFja2VkKHRoaXMubG9hZGluZ01hcCkgfTtcbiAgICBpZiAoaXNMb2FkaW5nKSB7XG4gICAgICBtYXBba2V5XSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSBtYXBba2V5XTtcbiAgICB9XG4gICAgdGhpcy5sb2FkaW5nTWFwLnNldChtYXApO1xuICB9XG5cbiAgb25Gb2N1cygpIHtcbiAgICB0aGlzLmZvY3VzZWQuc2V0KHRydWUpO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIHRoaXMuZm9jdXNlZC5zZXQoZmFsc2UpO1xuICB9XG59XG4iXX0=","import { isSignal, linkedSignal, signal, } from '@angular/core';\nexport function rdtCreateLinkedState(params) {\n const state = {};\n for (const key in params) {\n const value = params[key];\n if (isSignal(value)) {\n state[key] = linkedSignal(() => value);\n }\n else {\n state[key] = signal(value);\n }\n }\n return state;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNyZWF0ZS1saW5rZWQtc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvY29yZS9zcmMvbGliL2xpbmtlZC1zdGF0ZS9yZHQtY3JlYXRlLWxpbmtlZC1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFPdkIsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxNQUEwQztJQUUxQyxNQUFNLEtBQUssR0FBb0MsRUFBRSxDQUFDO0lBRWxELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7UUFDekIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBRXBDLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUF1QyxDQUFDO1FBQ25FLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxLQUErQixDQUFDO0FBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBpc1NpZ25hbCxcbiAgbGlua2VkU2lnbmFsLFxuICBzaWduYWwsXG4gIFNpZ25hbCxcbiAgV3JpdGFibGVTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR0TGlua2VkU3RhdGUgfSBmcm9tICcuL3JkdC1saW5rZWQtc3RhdGUnO1xuXG5leHBvcnQgdHlwZSBSZHRDcmVhdGVMaW5rZWRTdGF0ZVBhcmFtczxUSW5wdXQ+ID0ge1xuICBba2V5IGluIGtleW9mIFRJbnB1dF06IFNpZ25hbDxUSW5wdXRba2V5XT4gfCBUSW5wdXRba2V5XTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiByZHRDcmVhdGVMaW5rZWRTdGF0ZTxUSW5wdXQ+KFxuICBwYXJhbXM6IFJkdENyZWF0ZUxpbmtlZFN0YXRlUGFyYW1zPFRJbnB1dD5cbik6IFJkdExpbmtlZFN0YXRlPFRJbnB1dD4ge1xuICBjb25zdCBzdGF0ZTogUGFydGlhbDxSZHRMaW5rZWRTdGF0ZTxUSW5wdXQ+PiA9IHt9O1xuXG4gIGZvciAoY29uc3Qga2V5IGluIHBhcmFtcykge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1zW2tleV07XG4gICAgaWYgKGlzU2lnbmFsKHZhbHVlKSkge1xuICAgICAgc3RhdGVba2V5XSA9IGxpbmtlZFNpZ25hbCgoKSA9PiB2YWx1ZSkgYXMgV3JpdGFibGVTaWduYWw8XG4gICAgICAgIFRJbnB1dFt0eXBlb2Yga2V5XVxuICAgICAgPjtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGVba2V5XSA9IHNpZ25hbCh2YWx1ZSkgYXMgV3JpdGFibGVTaWduYWw8VElucHV0W3R5cGVvZiBrZXldPjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGUgYXMgUmR0TGlua2VkU3RhdGU8VElucHV0Pjtcbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyZHQtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0BuZ3JkdC9jb3JlL3NyYy9uZ3JkdC1jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,3 +1,139 @@
1
- export * from './lib/rdt-autofocus';
2
- export * from './lib/rdt-component-guard';
3
- export * from './lib/utils';
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, AfterViewInit, OnDestroy, OnInit, Type, DestroyRef, ChangeDetectorRef, WritableSignal, Signal } from '@angular/core';
3
+ import * as rxjs from 'rxjs';
4
+ import { Observable } from 'rxjs';
5
+ import * as _ngrdt_core from '@ngrdt/core';
6
+ import { Nullable } from '@ngrdt/utils';
7
+
8
+ type RdtBooleanResult = Observable<boolean> | Promise<boolean> | boolean;
9
+ declare function rdtGetAllResultsTrue$(inputFactories: (() => RdtBooleanResult)[]): Observable<boolean>;
10
+ declare function rdtGetResult$(inputFactory: () => RdtBooleanResult): Observable<true>;
11
+
12
+ interface RdtAutofocusable {
13
+ focus(): void;
14
+ canFocus(): RdtBooleanResult;
15
+ getAutofocusPriority?(): number;
16
+ }
17
+ declare const RDT_AUTOFOCUSABLE_COMPONENT: InjectionToken<RdtAutofocusable>;
18
+
19
+ declare class RdtAutoFocusOnInitDirective implements AfterViewInit, OnDestroy {
20
+ private previousActiveElement;
21
+ private readonly document;
22
+ private readonly elementRef;
23
+ private readonly autofocusable;
24
+ ngOnDestroy(): void;
25
+ ngAfterViewInit(): void;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdtAutoFocusOnInitDirective, never>;
27
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdtAutoFocusOnInitDirective, "[rdtAutofocusOnInit]", never, {}, {}, never, never, true, never>;
28
+ }
29
+
30
+ declare class RdtAutofocusableDirective implements OnInit {
31
+ readonly component: _ngrdt_core.RdtAutofocusable | null;
32
+ ngOnInit(): void;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdtAutofocusableDirective, never>;
34
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdtAutofocusableDirective, "[rdtAutofocusable]", never, {}, {}, never, never, true, never>;
35
+ }
36
+
37
+ declare function getRdtAutofocusable(src: Iterable<RdtAutofocusableDirective>): RdtAutofocusable | null;
38
+
39
+ declare class RdtContainerDirective extends RdtChildDirective {
40
+ readonly rdtChildren: Set<RdtChildDirective>;
41
+ registerChild(child: RdtChildDirective): void;
42
+ removeChild(child: RdtChildDirective): void;
43
+ checkCanLeave$(): rxjs.Observable<boolean>;
44
+ onViewWillEnter(): void;
45
+ onViewWillLeave(): void;
46
+ getChildrenRecursive(filter?: (ch: RdtChildDirective) => boolean): RdtChildDirective[];
47
+ protected getActiveChildren(): RdtChildDirective[];
48
+ getChildrenByClass<T>(childClass: Type<T>): T[];
49
+ private _getChildrenRecursive;
50
+ private _getChildrenByClassRecursive;
51
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdtContainerDirective, never>;
52
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdtContainerDirective, "[rdtContainer]", never, {}, {}, never, never, true, never>;
53
+ }
54
+
55
+ interface RdtIsActive {
56
+ rdtIsActive(): boolean;
57
+ }
58
+ interface RdtCanLeaveView {
59
+ rdtCanLeaveView(): RdtBooleanResult;
60
+ }
61
+ interface RdtCanEnterView {
62
+ rdtCanEnterView(): RdtBooleanResult;
63
+ }
64
+ interface RdtOnViewWillLeave {
65
+ rdtOnViewWillLeave(): void;
66
+ }
67
+ interface RdtOnViewWillEnter {
68
+ rdtOnViewWillEnter(): void;
69
+ }
70
+ declare const RDT_GUARDED_COMPONENT: InjectionToken<RdtIsActive | RdtCanLeaveView | RdtCanEnterView | RdtOnViewWillEnter | RdtOnViewWillLeave>;
71
+ declare const RDT_CONTAINER: InjectionToken<RdtContainerDirective>;
72
+ declare function canTransition$(from: Nullable<RdtContainerDirective>, to: Nullable<RdtContainerDirective>): rxjs.Observable<boolean>;
73
+
74
+ declare class RdtComponentGuardStoreService {
75
+ private readonly guards;
76
+ registerGuard(guard: RdtChildDirective): void;
77
+ removeGuard(guard: RdtChildDirective): void;
78
+ getGuards(): RdtChildDirective[];
79
+ checkCanLeaveGlobal$(): rxjs.Observable<boolean>;
80
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdtComponentGuardStoreService, never>;
81
+ static ɵprov: i0.ɵɵInjectableDeclaration<RdtComponentGuardStoreService>;
82
+ }
83
+
84
+ declare class RdtChildDirective implements OnInit, OnDestroy {
85
+ readonly guardStore: RdtComponentGuardStoreService;
86
+ readonly destroyRef: DestroyRef;
87
+ readonly container: RdtContainerDirective | null;
88
+ readonly guardedComponent: RdtIsActive | RdtCanLeaveView | RdtCanEnterView | RdtOnViewWillEnter | RdtOnViewWillLeave | null;
89
+ ngOnInit(): void;
90
+ ngOnDestroy(): void;
91
+ isActive(): boolean;
92
+ canEnterView(): RdtBooleanResult;
93
+ canLeaveView(): RdtBooleanResult;
94
+ onViewWillEnter(): void;
95
+ onViewWillLeave(): void;
96
+ getParentByClass<T extends RdtContainerDirective>(parentClass: Type<T>): T | null;
97
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdtChildDirective, never>;
98
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdtChildDirective, "[rdtChild]", never, {}, {}, never, never, true, never>;
99
+ }
100
+
101
+ declare const RDT_DEFAULT_DISABLED_KEY: unique symbol;
102
+ declare const RDT_DEFAULT_LOADING_KEY: unique symbol;
103
+ declare abstract class RdtInteractiveElementComponent implements RdtAutofocusable {
104
+ readonly cd: ChangeDetectorRef;
105
+ readonly destroyRef: DestroyRef;
106
+ readonly disabledInput: i0.InputSignalWithTransform<boolean, unknown>;
107
+ protected readonly disabledMap: i0.WritableSignal<Record<symbol, boolean>>;
108
+ readonly disabled: i0.Signal<boolean>;
109
+ protected readonly disabledEffect: i0.EffectRef;
110
+ readonly loadingInput: i0.InputSignalWithTransform<boolean, unknown>;
111
+ protected readonly loadingMap: i0.WritableSignal<Record<symbol, boolean>>;
112
+ readonly loading: i0.Signal<boolean>;
113
+ readonly idInput: i0.InputSignalWithTransform<{}, unknown>;
114
+ readonly id: i0.WritableSignal<{}>;
115
+ get uid(): string;
116
+ protected _uid: string;
117
+ readonly focused: i0.WritableSignal<boolean>;
118
+ abstract focus(): void;
119
+ abstract canFocus(): RdtBooleanResult;
120
+ getAutofocusPriority(): number;
121
+ setDisabledState(isDisabled: boolean, key?: symbol): void;
122
+ setLoadingState(isLoading: boolean, key?: symbol): void;
123
+ onFocus(): void;
124
+ onBlur(): void;
125
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdtInteractiveElementComponent, never>;
126
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdtInteractiveElementComponent, never, never, { "disabledInput": { "alias": "rdtDisabled"; "required": false; "isSignal": true; }; "loadingInput": { "alias": "loading"; "required": false; "isSignal": true; }; "idInput": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
127
+ }
128
+
129
+ type RdtLinkedState<TInput> = {
130
+ [key in keyof TInput]: WritableSignal<TInput[key]>;
131
+ };
132
+
133
+ type RdtCreateLinkedStateParams<TInput> = {
134
+ [key in keyof TInput]: Signal<TInput[key]> | TInput[key];
135
+ };
136
+ declare function rdtCreateLinkedState<TInput>(params: RdtCreateLinkedStateParams<TInput>): RdtLinkedState<TInput>;
137
+
138
+ export { RDT_AUTOFOCUSABLE_COMPONENT, RDT_CONTAINER, RDT_DEFAULT_DISABLED_KEY, RDT_DEFAULT_LOADING_KEY, RDT_GUARDED_COMPONENT, RdtAutoFocusOnInitDirective, RdtAutofocusableDirective, RdtChildDirective, RdtComponentGuardStoreService, RdtContainerDirective, RdtInteractiveElementComponent, canTransition$, getRdtAutofocusable, rdtCreateLinkedState, rdtGetAllResultsTrue$, rdtGetResult$ };
139
+ export type { RdtAutofocusable, RdtBooleanResult, RdtCanEnterView, RdtCanLeaveView, RdtCreateLinkedStateParams, RdtIsActive, RdtLinkedState, RdtOnViewWillEnter, RdtOnViewWillLeave };
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@ngrdt/core",
3
- "version": "v0.0.17",
3
+ "version": "v0.0.19",
4
4
  "peerDependencies": {
5
5
  "@angular/core": ">=18.2.0",
6
6
  "rxjs": ">=7.0.0",
7
- "@ngrdt/utils": ">=0.0.8"
7
+ "@ngrdt/utils": "0.0.18",
8
+ "@angular/common": "20.1.7"
8
9
  },
9
10
  "sideEffects": false,
10
11
  "module": "fesm2022/ngrdt-core.mjs",
@@ -15,8 +16,6 @@
15
16
  },
16
17
  ".": {
17
18
  "types": "./index.d.ts",
18
- "esm2022": "./esm2022/ngrdt-core.mjs",
19
- "esm": "./esm2022/ngrdt-core.mjs",
20
19
  "default": "./fesm2022/ngrdt-core.mjs"
21
20
  }
22
21
  },
package/esm2022/index.mjs DELETED
@@ -1,4 +0,0 @@
1
- export * from './lib/rdt-autofocus';
2
- export * from './lib/rdt-component-guard';
3
- export * from './lib/utils';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9AbmdyZHQvY29yZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvcmR0LWF1dG9mb2N1cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JkdC1jb21wb25lbnQtZ3VhcmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscyc7XHJcbiJdfQ==
@@ -1,4 +0,0 @@
1
- export * from './models';
2
- export * from './rdt-autofocusable.directive';
3
- export * from './utils';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvY29yZS9zcmMvbGliL3JkdC1hdXRvZm9jdXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZHQtYXV0b2ZvY3VzYWJsZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcclxuIl19
@@ -1,3 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const RDT_AUTOFOCUSABLE_COMPONENT = new InjectionToken('');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2NvcmUvc3JjL2xpYi9yZHQtYXV0b2ZvY3VzL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUy9DLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLElBQUksY0FBYyxDQUMzRCxFQUFFLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJkdEJvb2xlYW5SZXN1bHQgfSBmcm9tICcuLi91dGlscyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJkdEF1dG9jdXNhYmxlIHtcclxuICByZHRGb2N1cygpOiB2b2lkO1xyXG4gIHJkdENhbkZvY3VzKCk6IFJkdEJvb2xlYW5SZXN1bHQ7XHJcbiAgcmR0R2V0QXV0b2ZvY3VzUHJpb3JpdHk/KCk6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFJEVF9BVVRPRk9DVVNBQkxFX0NPTVBPTkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZHRBdXRvY3VzYWJsZT4oXHJcbiAgJydcclxuKTtcclxuIl19
@@ -1,27 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWF1dG9mb2N1c2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2NvcmUvc3JjL2xpYi9yZHQtYXV0b2ZvY3VzL3JkdC1hdXRvZm9jdXNhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBS3ZELE1BQU0sT0FBTyx5QkFBeUI7SUFDM0IsU0FBUyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsRUFBRTtRQUN2RCxJQUFJLEVBQUUsSUFBSTtRQUNWLFFBQVEsRUFBRSxJQUFJO1FBQ2QsSUFBSSxFQUFFLElBQUk7S0FDWCxDQUFDLENBQUM7SUFFSCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDOzs7MERBR29DLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQzt1R0FkVSx5QkFBeUI7MkZBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFIckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUkRUX0FVVE9GT0NVU0FCTEVfQ09NUE9ORU5UIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbcmR0QXV0b2ZvY3VzYWJsZV0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmR0QXV0b2ZvY3VzYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgY29tcG9uZW50ID0gaW5qZWN0KFJEVF9BVVRPRk9DVVNBQkxFX0NPTVBPTkVOVCwge1xyXG4gICAgaG9zdDogdHJ1ZSxcclxuICAgIG9wdGlvbmFsOiB0cnVlLFxyXG4gICAgc2VsZjogdHJ1ZSxcclxuICB9KTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50KSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgXHJcbiAgICAgICAgUmR0QXV0b2ZvY3VzYWJsZURpcmVjdGl2ZSB1c2FnZTpcclxuICAgICAgICBBcHBseSBkaXJlY3RpdmUgZGlyZWN0bHkgb24gY29tcG9uZW50IGFuZCBwcm92aWRlIHRoZSBzYW1lIGNvbXBvbmVudCBhcyBSRFRfQVVUT0ZPQ1VTQUJMRV9DT01QT05FTlQuXHJcbiAgICAgICAgVGhlIGNvbXBvbmVudCBtdXN0IHRoZW4gaW1wbGVtZW50IFJkdEF1dG9jdXNhYmxlLmApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,9 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvY29yZS9zcmMvbGliL3JkdC1hdXRvZm9jdXMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxHQUF3QztJQUV4QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxHQUFHLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDbEIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLENBQUM7S0FDdEQsQ0FBQyxDQUFDLENBQUM7SUFDSixTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZHRBdXRvY3VzYWJsZSB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgUmR0QXV0b2ZvY3VzYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vcmR0LWF1dG9mb2N1c2FibGUuZGlyZWN0aXZlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRSZHRBdXRvZm9jdXNhYmxlKFxyXG4gIHNyYzogSXRlcmFibGU8UmR0QXV0b2ZvY3VzYWJsZURpcmVjdGl2ZT5cclxuKTogUmR0QXV0b2N1c2FibGUgfCBudWxsIHtcclxuICBjb25zdCB3aXRoUHJpb3MgPSBBcnJheS5mcm9tKHNyYykubWFwKChkaXIpID0+ICh7XHJcbiAgICBjbXA6IGRpci5jb21wb25lbnQsXHJcbiAgICBwcmlvOiBkaXIuY29tcG9uZW50Py5yZHRHZXRBdXRvZm9jdXNQcmlvcml0eT8uKCkgPz8gMCxcclxuICB9KSk7XHJcbiAgd2l0aFByaW9zLnNvcnQoKGEsIGIpID0+IGIucHJpbyAtIGEucHJpbyk7XHJcbiAgcmV0dXJuIHdpdGhQcmlvc1swXT8uY21wO1xyXG59XHJcbiJdfQ==
@@ -1,88 +0,0 @@
1
- import { DestroyRef, Directive, inject, } from '@angular/core';
2
- import { RDT_CONTAINER, RDT_GUARDED_COMPONENT, } from '../models';
3
- import { RdtComponentGuardStoreService } from '../services/rdt-component-guard-store.service';
4
- import * as i0 from "@angular/core";
5
- export class RdtChildDirective {
6
- guardStore = inject(RdtComponentGuardStoreService);
7
- destroyRef = inject(DestroyRef);
8
- container = inject(RDT_CONTAINER, {
9
- optional: true,
10
- skipSelf: true,
11
- });
12
- guardedComponent = inject(RDT_GUARDED_COMPONENT, {
13
- optional: true,
14
- self: true,
15
- host: true,
16
- });
17
- ngOnInit() {
18
- if (!this.guardedComponent) {
19
- throw new Error(`
20
- RdtChildDirective usage:
21
- Apply directive directly on component and provide the same component as RDT_GUARDED_COMPONENT.
22
- The component can then implement RdtCanLeaveView or RdtCanEnterView.
23
- This applies to both Child and Container directives.
24
- `);
25
- }
26
- if (!this.container) {
27
- this.guardStore.registerGuard(this);
28
- }
29
- else {
30
- this.container?.registerChild(this);
31
- }
32
- }
33
- ngOnDestroy() {
34
- this.guardStore.removeGuard(this);
35
- this.container?.removeChild(this);
36
- }
37
- isActive() {
38
- const comp = this.guardedComponent;
39
- return comp?.rdtIsActive?.() ?? true;
40
- }
41
- canEnterView() {
42
- const comp = this.guardedComponent;
43
- if (typeof comp?.rdtCanEnterView === 'function') {
44
- return comp.rdtCanEnterView();
45
- }
46
- else {
47
- return true;
48
- }
49
- }
50
- canLeaveView() {
51
- const comp = this.guardedComponent;
52
- if (typeof comp?.rdtCanLeaveView === 'function') {
53
- return comp.rdtCanLeaveView();
54
- }
55
- else {
56
- return true;
57
- }
58
- }
59
- onViewWillEnter() {
60
- const comp = this.guardedComponent;
61
- comp?.rdtOnViewWillEnter();
62
- }
63
- onViewWillLeave() {
64
- const comp = this.guardedComponent;
65
- comp?.rdtOnViewWillLeave();
66
- }
67
- getParentByClass(parentClass) {
68
- if (!this.container) {
69
- return null;
70
- }
71
- else if (this.container instanceof parentClass) {
72
- return this.container;
73
- }
74
- else {
75
- return this.container.getParentByClass(parentClass);
76
- }
77
- }
78
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtChildDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
79
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: RdtChildDirective, isStandalone: true, selector: "[rdtChild]", ngImport: i0 });
80
- }
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtChildDirective, decorators: [{
82
- type: Directive,
83
- args: [{
84
- selector: '[rdtChild]',
85
- standalone: true,
86
- }]
87
- }] });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNoaWxkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9jb3JlL3NyYy9saWIvcmR0LWNvbXBvbmVudC1ndWFyZC9kaXJlY3RpdmVzL3JkdC1jaGlsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxHQUlQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxhQUFhLEVBQ2IscUJBQXFCLEdBTXRCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOztBQU85RixNQUFNLE9BQU8saUJBQWlCO0lBQ25CLFVBQVUsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNuRCxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLFNBQVMsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFO1FBQ3pDLFFBQVEsRUFBRSxJQUFJO1FBQ2QsUUFBUSxFQUFFLElBQUk7S0FDZixDQUFDLENBQUM7SUFDTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUU7UUFDeEQsUUFBUSxFQUFFLElBQUk7UUFDZCxJQUFJLEVBQUUsSUFBSTtRQUNWLElBQUksRUFBRSxJQUFJO0tBQ1gsQ0FBQyxDQUFDO0lBRUgsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDOzs7OztTQUtiLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQTJDLENBQUM7UUFDOUQsT0FBTyxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQStDLENBQUM7UUFDbEUsSUFBSSxPQUFPLElBQUksRUFBRSxlQUFlLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDaEQsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBK0MsQ0FBQztRQUNsRSxJQUFJLE9BQU8sSUFBSSxFQUFFLGVBQWUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNoRCxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNoQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFrRCxDQUFDO1FBQ3JFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFrRCxDQUFDO1FBQ3JFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxnQkFBZ0IsQ0FDZCxXQUFvQjtRQUVwQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsWUFBWSxXQUFXLEVBQUUsQ0FBQztZQUNqRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUM7dUdBN0VVLGlCQUFpQjsyRkFBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERlc3Ryb3lSZWYsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIGluamVjdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIFR5cGUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJkdEJvb2xlYW5SZXN1bHQgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7XHJcbiAgUkRUX0NPTlRBSU5FUixcclxuICBSRFRfR1VBUkRFRF9DT01QT05FTlQsXHJcbiAgUmR0Q2FuRW50ZXJWaWV3LFxyXG4gIFJkdENhbkxlYXZlVmlldyxcclxuICBSZHRJc0FjdGl2ZSxcclxuICBSZHRPblZpZXdXaWxsRW50ZXIsXHJcbiAgUmR0T25WaWV3V2lsbExlYXZlLFxyXG59IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFJkdENvbXBvbmVudEd1YXJkU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmR0LWNvbXBvbmVudC1ndWFyZC1zdG9yZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmR0Q29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9yZHQtY29udGFpbmVyLmRpcmVjdGl2ZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tyZHRDaGlsZF0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZHRDaGlsZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBndWFyZFN0b3JlID0gaW5qZWN0KFJkdENvbXBvbmVudEd1YXJkU3RvcmVTZXJ2aWNlKTtcclxuICByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG4gIHJlYWRvbmx5IGNvbnRhaW5lciA9IGluamVjdChSRFRfQ09OVEFJTkVSLCB7XHJcbiAgICBvcHRpb25hbDogdHJ1ZSxcclxuICAgIHNraXBTZWxmOiB0cnVlLFxyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IGd1YXJkZWRDb21wb25lbnQgPSBpbmplY3QoUkRUX0dVQVJERURfQ09NUE9ORU5ULCB7XHJcbiAgICBvcHRpb25hbDogdHJ1ZSxcclxuICAgIHNlbGY6IHRydWUsXHJcbiAgICBob3N0OiB0cnVlLFxyXG4gIH0pO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5ndWFyZGVkQ29tcG9uZW50KSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgXHJcbiAgICAgICAgUmR0Q2hpbGREaXJlY3RpdmUgdXNhZ2U6XHJcbiAgICAgICAgQXBwbHkgZGlyZWN0aXZlIGRpcmVjdGx5IG9uIGNvbXBvbmVudCBhbmQgcHJvdmlkZSB0aGUgc2FtZSBjb21wb25lbnQgYXMgUkRUX0dVQVJERURfQ09NUE9ORU5ULlxyXG4gICAgICAgIFRoZSBjb21wb25lbnQgY2FuIHRoZW4gaW1wbGVtZW50IFJkdENhbkxlYXZlVmlldyBvciBSZHRDYW5FbnRlclZpZXcuXHJcbiAgICAgICAgVGhpcyBhcHBsaWVzIHRvIGJvdGggQ2hpbGQgYW5kIENvbnRhaW5lciBkaXJlY3RpdmVzLlxyXG4gICAgICAgIGApO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmNvbnRhaW5lcikge1xyXG4gICAgICB0aGlzLmd1YXJkU3RvcmUucmVnaXN0ZXJHdWFyZCh0aGlzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29udGFpbmVyPy5yZWdpc3RlckNoaWxkKHRoaXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmd1YXJkU3RvcmUucmVtb3ZlR3VhcmQodGhpcyk7XHJcbiAgICB0aGlzLmNvbnRhaW5lcj8ucmVtb3ZlQ2hpbGQodGhpcyk7XHJcbiAgfVxyXG5cclxuICBpc0FjdGl2ZSgpIHtcclxuICAgIGNvbnN0IGNvbXAgPSB0aGlzLmd1YXJkZWRDb21wb25lbnQgYXMgUmR0SXNBY3RpdmUgfCB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gY29tcD8ucmR0SXNBY3RpdmU/LigpID8/IHRydWU7XHJcbiAgfVxyXG5cclxuICBjYW5FbnRlclZpZXcoKTogUmR0Qm9vbGVhblJlc3VsdCB7XHJcbiAgICBjb25zdCBjb21wID0gdGhpcy5ndWFyZGVkQ29tcG9uZW50IGFzIFJkdENhbkVudGVyVmlldyB8IHVuZGVmaW5lZDtcclxuICAgIGlmICh0eXBlb2YgY29tcD8ucmR0Q2FuRW50ZXJWaWV3ID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHJldHVybiBjb21wLnJkdENhbkVudGVyVmlldygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYW5MZWF2ZVZpZXcoKTogUmR0Qm9vbGVhblJlc3VsdCB7XHJcbiAgICBjb25zdCBjb21wID0gdGhpcy5ndWFyZGVkQ29tcG9uZW50IGFzIFJkdENhbkxlYXZlVmlldyB8IHVuZGVmaW5lZDtcclxuICAgIGlmICh0eXBlb2YgY29tcD8ucmR0Q2FuTGVhdmVWaWV3ID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHJldHVybiBjb21wLnJkdENhbkxlYXZlVmlldygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblZpZXdXaWxsRW50ZXIoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb21wID0gdGhpcy5ndWFyZGVkQ29tcG9uZW50IGFzIFJkdE9uVmlld1dpbGxFbnRlciB8IHVuZGVmaW5lZDtcclxuICAgIGNvbXA/LnJkdE9uVmlld1dpbGxFbnRlcigpO1xyXG4gIH1cclxuXHJcbiAgb25WaWV3V2lsbExlYXZlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29tcCA9IHRoaXMuZ3VhcmRlZENvbXBvbmVudCBhcyBSZHRPblZpZXdXaWxsTGVhdmUgfCB1bmRlZmluZWQ7XHJcbiAgICBjb21wPy5yZHRPblZpZXdXaWxsTGVhdmUoKTtcclxuICB9XHJcblxyXG4gIGdldFBhcmVudEJ5Q2xhc3M8VCBleHRlbmRzIFJkdENvbnRhaW5lckRpcmVjdGl2ZT4oXHJcbiAgICBwYXJlbnRDbGFzczogVHlwZTxUPlxyXG4gICk6IFQgfCBudWxsIHtcclxuICAgIGlmICghdGhpcy5jb250YWluZXIpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udGFpbmVyIGluc3RhbmNlb2YgcGFyZW50Q2xhc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyLmdldFBhcmVudEJ5Q2xhc3MocGFyZW50Q2xhc3MpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,95 +0,0 @@
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(filter) {
33
- const res = [];
34
- this._getChildrenRecursive(res, filter);
35
- return res;
36
- }
37
- getActiveChildren() {
38
- return this.getChildrenRecursive((ch) => ch.isActive());
39
- }
40
- getChildrenByClass(childClass) {
41
- const res = [];
42
- this._getChildrenByClassRecursive(childClass, res);
43
- return res;
44
- }
45
- _getChildrenRecursive(res, filter) {
46
- const children = Array.from(this.rdtChildren);
47
- const filteredChildren = filter ? children.filter(filter) : children;
48
- res.push(...filteredChildren);
49
- filteredChildren.forEach((child) => {
50
- if (child instanceof RdtContainerDirective) {
51
- child._getChildrenRecursive(res, filter);
52
- }
53
- });
54
- }
55
- _getChildrenByClassRecursive(childClass, res) {
56
- this.rdtChildren.forEach((child) => {
57
- const comp = child.guardedComponent;
58
- if (comp instanceof childClass) {
59
- res.push(comp);
60
- }
61
- else if (child instanceof RdtContainerDirective) {
62
- child._getChildrenByClassRecursive(childClass, res);
63
- }
64
- });
65
- }
66
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtContainerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
67
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: RdtContainerDirective, isStandalone: true, selector: "[rdtContainer]", providers: [
68
- {
69
- provide: RdtChildDirective,
70
- useExisting: RdtContainerDirective,
71
- },
72
- {
73
- provide: RDT_CONTAINER,
74
- useExisting: RdtContainerDirective,
75
- },
76
- ], usesInheritance: true, ngImport: i0 });
77
- }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtContainerDirective, decorators: [{
79
- type: Directive,
80
- args: [{
81
- selector: '[rdtContainer]',
82
- standalone: true,
83
- providers: [
84
- {
85
- provide: RdtChildDirective,
86
- useExisting: RdtContainerDirective,
87
- },
88
- {
89
- provide: RDT_CONTAINER,
90
- useExisting: RdtContainerDirective,
91
- },
92
- ],
93
- }]
94
- }] });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNvbnRhaW5lci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvY29yZS9zcmMvbGliL3JkdC1jb21wb25lbnQtZ3VhcmQvZGlyZWN0aXZlcy9yZHQtY29udGFpbmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQWdCMUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGlCQUFpQjtJQUNqRCxXQUFXLEdBQTJCLElBQUksR0FBRyxFQUFxQixDQUFDO0lBRTVFLGFBQWEsQ0FBQyxLQUF3QjtRQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQXdCO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxxQkFBcUIsQ0FDMUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQ3pFLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztNQU1FO0lBRU8sZUFBZTtRQUN0QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUs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JztcclxuaW1wb3J0IHsgcmR0R2V0QWxsUmVzdWx0c1RydWUkIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBSRFRfQ09OVEFJTkVSIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgUmR0Q2hpbGREaXJlY3RpdmUgfSBmcm9tICcuL3JkdC1jaGlsZC5kaXJlY3RpdmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbcmR0Q29udGFpbmVyXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogUmR0Q2hpbGREaXJlY3RpdmUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBSZHRDb250YWluZXJEaXJlY3RpdmUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBSRFRfQ09OVEFJTkVSLFxyXG4gICAgICB1c2VFeGlzdGluZzogUmR0Q29udGFpbmVyRGlyZWN0aXZlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmR0Q29udGFpbmVyRGlyZWN0aXZlIGV4dGVuZHMgUmR0Q2hpbGREaXJlY3RpdmUge1xyXG4gIHJlYWRvbmx5IHJkdENoaWxkcmVuOiBTZXQ8UmR0Q2hpbGREaXJlY3RpdmU+ID0gbmV3IFNldDxSZHRDaGlsZERpcmVjdGl2ZT4oKTtcclxuXHJcbiAgcmVnaXN0ZXJDaGlsZChjaGlsZDogUmR0Q2hpbGREaXJlY3RpdmUpIHtcclxuICAgIHRoaXMucmR0Q2hpbGRyZW4uYWRkKGNoaWxkKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUNoaWxkKGNoaWxkOiBSZHRDaGlsZERpcmVjdGl2ZSkge1xyXG4gICAgdGhpcy5yZHRDaGlsZHJlbi5kZWxldGUoY2hpbGQpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tDYW5MZWF2ZSQoKSB7XHJcbiAgICByZXR1cm4gcmR0R2V0QWxsUmVzdWx0c1RydWUkKFxyXG4gICAgICBbdGhpcywgLi4udGhpcy5nZXRBY3RpdmVDaGlsZHJlbigpXS5tYXAoKGNoKSA9PiAoKSA9PiBjaC5jYW5MZWF2ZVZpZXcoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKiBUT0RPXHJcbiAgY2hlY2tDYW5FbnRlciQoKSB7XHJcbiAgICByZXR1cm4gZ2V0Q2FuJChcclxuICAgICAgW3RoaXMsIC4uLnRoaXMuZ2V0QWN0aXZlQ2hpbGRyZW4oKV0ubWFwKChjaCkgPT4gKCkgPT4gY2guY2FuRW50ZXJWaWV3KCkpXHJcbiAgICApO1xyXG4gIH1cclxuICAqL1xyXG5cclxuICBvdmVycmlkZSBvblZpZXdXaWxsRW50ZXIoKSB7XHJcbiAgICBzdXBlci5vblZpZXdXaWxsRW50ZXIoKTtcclxuICAgIHRoaXMucmR0Q2hpbGRyZW4uZm9yRWFjaCgoY2gpID0+IGNoLm9uVmlld1dpbGxFbnRlcigpKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG9uVmlld1dpbGxMZWF2ZSgpIHtcclxuICAgIHN1cGVyLm9uVmlld1dpbGxMZWF2ZSgpO1xyXG4gICAgdGhpcy5yZHRDaGlsZHJlbi5mb3JFYWNoKChjaCkgPT4gY2gub25WaWV3V2lsbExlYXZlKCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2hpbGRyZW5SZWN1cnNpdmUoZmlsdGVyPzogKGNoOiBSZHRDaGlsZERpcmVjdGl2ZSkgPT4gYm9vbGVhbikge1xyXG4gICAgY29uc3QgcmVzOiBSZHRDaGlsZERpcmVjdGl2ZVtdID0gW107XHJcbiAgICB0aGlzLl9nZXRDaGlsZHJlblJlY3Vyc2l2ZShyZXMsIGZpbHRlcik7XHJcbiAgICByZXR1cm4gcmVzO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldEFjdGl2ZUNoaWxkcmVuKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hpbGRyZW5SZWN1cnNpdmUoKGNoKSA9PiBjaC5pc0FjdGl2ZSgpKTtcclxuICB9XHJcblxyXG4gIGdldENoaWxkcmVuQnlDbGFzczxUPihjaGlsZENsYXNzOiBUeXBlPFQ+KSB7XHJcbiAgICBjb25zdCByZXM6IFRbXSA9IFtdO1xyXG4gICAgdGhpcy5fZ2V0Q2hpbGRyZW5CeUNsYXNzUmVjdXJzaXZlKGNoaWxkQ2xhc3MsIHJlcyk7XHJcbiAgICByZXR1cm4gcmVzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0Q2hpbGRyZW5SZWN1cnNpdmUoXHJcbiAgICByZXM6IFJkdENoaWxkRGlyZWN0aXZlW10sXHJcbiAgICBmaWx0ZXI/OiAoY2g6IFJkdENoaWxkRGlyZWN0aXZlKSA9PiBib29sZWFuXHJcbiAgKSB7XHJcbiAgICBjb25zdCBjaGlsZHJlbiA9IEFycmF5LmZyb20odGhpcy5yZHRDaGlsZHJlbik7XHJcbiAgICBjb25zdCBmaWx0ZXJlZENoaWxkcmVuID0gZmlsdGVyID8gY2hpbGRyZW4uZmlsdGVyKGZpbHRlcikgOiBjaGlsZHJlbjtcclxuICAgIHJlcy5wdXNoKC4uLmZpbHRlcmVkQ2hpbGRyZW4pO1xyXG4gICAgZmlsdGVyZWRDaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4ge1xyXG4gICAgICBpZiAoY2hpbGQgaW5zdGFuY2VvZiBSZHRDb250YWluZXJEaXJlY3RpdmUpIHtcclxuICAgICAgICBjaGlsZC5fZ2V0Q2hpbGRyZW5SZWN1cnNpdmUocmVzLCBmaWx0ZXIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldENoaWxkcmVuQnlDbGFzc1JlY3Vyc2l2ZTxUPihjaGlsZENsYXNzOiBUeXBlPFQ+LCByZXM6IFRbXSkge1xyXG4gICAgdGhpcy5yZHRDaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4ge1xyXG4gICAgICBjb25zdCBjb21wID0gKGNoaWxkIGFzIFJkdENoaWxkRGlyZWN0aXZlKS5ndWFyZGVkQ29tcG9uZW50O1xyXG4gICAgICBpZiAoY29tcCBpbnN0YW5jZW9mIGNoaWxkQ2xhc3MpIHtcclxuICAgICAgICByZXMucHVzaChjb21wKTtcclxuICAgICAgfSBlbHNlIGlmIChjaGlsZCBpbnN0YW5jZW9mIFJkdENvbnRhaW5lckRpcmVjdGl2ZSkge1xyXG4gICAgICAgIGNoaWxkLl9nZXRDaGlsZHJlbkJ5Q2xhc3NSZWN1cnNpdmUoY2hpbGRDbGFzcywgcmVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,5 +0,0 @@
1
- export * from './directives/rdt-child.directive';
2
- export * from './directives/rdt-container.directive';
3
- export * from './models';
4
- export * from './services/rdt-component-guard-store.service';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvY29yZS9zcmMvbGliL3JkdC1jb21wb25lbnQtZ3VhcmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsOENBQThDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvcmR0LWNoaWxkLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9yZHQtY29udGFpbmVyLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9yZHQtY29tcG9uZW50LWd1YXJkLXN0b3JlLnNlcnZpY2UnO1xyXG4iXX0=
@@ -1,25 +0,0 @@
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
- console.log('canTransition$', from, to);
7
- if (to === from) {
8
- return of(true);
9
- }
10
- const canLeave$ = from ? from.checkCanLeave$() : of(true);
11
- return canLeave$;
12
- /*
13
- const canEnter$ = to ? to.checkCanEnter$() : of(true);
14
-
15
- return canLeave$.pipe(
16
- switchMap((res) => {
17
- if (res) {
18
- return canEnter$;
19
- } else {
20
- return of(res);
21
- }
22
- })
23
- );*/
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2NvcmUvc3JjL2xpYi9yZHQtY29tcG9uZW50LWd1YXJkL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUF3QjFCLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQU1yRCxFQUFFLENBQUMsQ0FBQztBQUVOLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBd0IsRUFBRSxDQUFDLENBQUM7QUFFM0UsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsSUFBcUMsRUFDckMsRUFBbUM7SUFFbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEMsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDaEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUQsT0FBTyxTQUFTLENBQUM7SUFDakI7Ozs7Ozs7Ozs7O1FBV0k7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xyXG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSZHRCb29sZWFuUmVzdWx0IH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBSZHRDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcmR0LWNvbnRhaW5lci5kaXJlY3RpdmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZHRJc0FjdGl2ZSB7XHJcbiAgcmR0SXNBY3RpdmUoKTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZHRDYW5MZWF2ZVZpZXcge1xyXG4gIHJkdENhbkxlYXZlVmlldygpOiBSZHRCb29sZWFuUmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJkdENhbkVudGVyVmlldyB7XHJcbiAgcmR0Q2FuRW50ZXJWaWV3KCk6IFJkdEJvb2xlYW5SZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmR0T25WaWV3V2lsbExlYXZlIHtcclxuICByZHRPblZpZXdXaWxsTGVhdmUoKTogdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZHRPblZpZXdXaWxsRW50ZXIge1xyXG4gIHJkdE9uVmlld1dpbGxFbnRlcigpOiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgUkRUX0dVQVJERURfQ09NUE9ORU5UID0gbmV3IEluamVjdGlvblRva2VuPFxyXG4gIHwgUmR0Q2FuTGVhdmVWaWV3XHJcbiAgfCBSZHRDYW5FbnRlclZpZXdcclxuICB8IFJkdE9uVmlld1dpbGxFbnRlclxyXG4gIHwgUmR0T25WaWV3V2lsbExlYXZlXHJcbiAgfCBSZHRJc0FjdGl2ZVxyXG4+KCcnKTtcclxuXHJcbmV4cG9ydCBjb25zdCBSRFRfQ09OVEFJTkVSID0gbmV3IEluamVjdGlvblRva2VuPFJkdENvbnRhaW5lckRpcmVjdGl2ZT4oJycpO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNhblRyYW5zaXRpb24kKFxyXG4gIGZyb206IE51bGxhYmxlPFJkdENvbnRhaW5lckRpcmVjdGl2ZT4sXHJcbiAgdG86IE51bGxhYmxlPFJkdENvbnRhaW5lckRpcmVjdGl2ZT5cclxuKSB7XHJcbiAgY29uc29sZS5sb2coJ2NhblRyYW5zaXRpb24kJywgZnJvbSwgdG8pO1xyXG4gIGlmICh0byA9PT0gZnJvbSkge1xyXG4gICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gIH1cclxuICBjb25zdCBjYW5MZWF2ZSQgPSBmcm9tID8gZnJvbS5jaGVja0NhbkxlYXZlJCgpIDogb2YodHJ1ZSk7XHJcbiAgcmV0dXJuIGNhbkxlYXZlJDtcclxuICAvKlxyXG4gIGNvbnN0IGNhbkVudGVyJCA9IHRvID8gdG8uY2hlY2tDYW5FbnRlciQoKSA6IG9mKHRydWUpO1xyXG5cclxuICByZXR1cm4gY2FuTGVhdmUkLnBpcGUoXHJcbiAgICBzd2l0Y2hNYXAoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgcmV0dXJuIGNhbkVudGVyJDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gb2YocmVzKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICApOyovXHJcbn1cclxuIl19
@@ -1,36 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { rdtGetAllResultsTrue$ } from '../../utils';
3
- import * as i0 from "@angular/core";
4
- export class RdtComponentGuardStoreService {
5
- guards = new Set();
6
- registerGuard(guard) {
7
- this.guards.add(guard);
8
- }
9
- removeGuard(guard) {
10
- this.guards.delete(guard);
11
- }
12
- getGuards() {
13
- return Array.from(this.guards);
14
- }
15
- checkCanLeaveGlobal$() {
16
- return rdtGetAllResultsTrue$(this.getGuards().map((ch) => () => {
17
- // @ts-ignore
18
- if (typeof ch.checkCanLeave$ === 'function') {
19
- // @ts-ignore
20
- return ch.checkCanLeave$();
21
- }
22
- else {
23
- return ch.canLeaveView();
24
- }
25
- }));
26
- }
27
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtComponentGuardStoreService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
28
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtComponentGuardStoreService, providedIn: 'root' });
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtComponentGuardStoreService, decorators: [{
31
- type: Injectable,
32
- args: [{
33
- providedIn: 'root',
34
- }]
35
- }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNvbXBvbmVudC1ndWFyZC1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2NvcmUvc3JjL2xpYi9yZHQtY29tcG9uZW50LWd1YXJkL3NlcnZpY2VzL3JkdC1jb21wb25lbnQtZ3VhcmQtc3RvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLDZCQUE2QjtJQUN2QixNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUM7SUFFdkQsYUFBYSxDQUFDLEtBQXdCO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBd0I7UUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsT0FBTyxxQkFBcUIsQ0FDMUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQ2hDLGFBQWE7WUFDYixJQUFJLE9BQU8sRUFBRSxDQUFDLGNBQWMsS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDNUMsYUFBYTtnQkFDYixPQUFPLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM3QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO3VHQTNCVSw2QkFBNkI7MkdBQTdCLDZCQUE2QixjQUY1QixNQUFNOzsyRkFFUCw2QkFBNkI7a0JBSHpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyByZHRHZXRBbGxSZXN1bHRzVHJ1ZSQgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IFJkdENoaWxkRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9yZHQtY2hpbGQuZGlyZWN0aXZlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZHRDb21wb25lbnRHdWFyZFN0b3JlU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBndWFyZHMgPSBuZXcgU2V0PFJkdENoaWxkRGlyZWN0aXZlPigpO1xyXG5cclxuICByZWdpc3Rlckd1YXJkKGd1YXJkOiBSZHRDaGlsZERpcmVjdGl2ZSkge1xyXG4gICAgdGhpcy5ndWFyZHMuYWRkKGd1YXJkKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUd1YXJkKGd1YXJkOiBSZHRDaGlsZERpcmVjdGl2ZSkge1xyXG4gICAgdGhpcy5ndWFyZHMuZGVsZXRlKGd1YXJkKTtcclxuICB9XHJcblxyXG4gIGdldEd1YXJkcygpIHtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZ3VhcmRzKTtcclxuICB9XHJcblxyXG4gIGNoZWNrQ2FuTGVhdmVHbG9iYWwkKCkge1xyXG4gICAgcmV0dXJuIHJkdEdldEFsbFJlc3VsdHNUcnVlJChcclxuICAgICAgdGhpcy5nZXRHdWFyZHMoKS5tYXAoKGNoKSA9PiAoKSA9PiB7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIGlmICh0eXBlb2YgY2guY2hlY2tDYW5MZWF2ZSQgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgIHJldHVybiBjaC5jaGVja0NhbkxlYXZlJCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gY2guY2FuTGVhdmVWaWV3KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,2 +0,0 @@
1
- export * from './rdt-boolean-result';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvY29yZS9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3JkdC1ib29sZWFuLXJlc3VsdCc7XHJcbiJdfQ==
@@ -1,25 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJvb2xlYW4tcmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2NvcmUvc3JjL2xpYi91dGlscy9yZHQtYm9vbGVhbi1yZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUlqRSxNQUFNLFVBQVUscUJBQXFCLENBQ25DLGNBQTBDO0lBRTFDLE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU1QixPQUFPLE1BQU0sQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ25DLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxFQUM3QixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQ2YsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUM1QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsWUFBb0M7SUFDaEUsT0FBTyxLQUFLLENBQUMsR0FBRyxFQUFFO1FBQ2hCLE1BQU0sS0FBSyxHQUFHLFlBQVksRUFBRSxDQUFDO1FBRTdCLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDL0IsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsQ0FBQztRQUNELElBQUksS0FBSyxZQUFZLE9BQU8sRUFBRSxDQUFDO1lBQzdCLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNWLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFDRCxNQUFNLEdBQUcsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2F0Y2hFcnJvciwgY29uY2F0LCBkZWZlciwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZyb21Qcm9taXNlIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2lubmVyRnJvbSc7XHJcblxyXG5leHBvcnQgdHlwZSBSZHRCb29sZWFuUmVzdWx0ID0gT2JzZXJ2YWJsZTxib29sZWFuPiB8IFByb21pc2U8Ym9vbGVhbj4gfCBib29sZWFuO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJkdEdldEFsbFJlc3VsdHNUcnVlJChcclxuICBpbnB1dEZhY3RvcmllczogKCgpID0+IFJkdEJvb2xlYW5SZXN1bHQpW11cclxuKSB7XHJcbiAgY29uc3QgY2FuJCA9IGlucHV0RmFjdG9yaWVzLm1hcCgoZm4pID0+IHJkdEdldFJlc3VsdCQoZm4pKTtcclxuICBjb25zdCBsYXN0ID0gU3ltYm9sKCdsYXN0Jyk7XHJcblxyXG4gIHJldHVybiBjb25jYXQoLi4uY2FuJCwgb2YobGFzdCkpLnBpcGUoXHJcbiAgICBmaWx0ZXIoKHJlcykgPT4gcmVzID09PSBsYXN0KSxcclxuICAgIG1hcCgoKSA9PiB0cnVlKSxcclxuICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoZmFsc2UpKVxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZHRHZXRSZXN1bHQkKGlucHV0RmFjdG9yeTogKCkgPT4gUmR0Qm9vbGVhblJlc3VsdCkge1xyXG4gIHJldHVybiBkZWZlcigoKSA9PiB7XHJcbiAgICBjb25zdCBpbnB1dCA9IGlucHV0RmFjdG9yeSgpO1xyXG5cclxuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdib29sZWFuJykge1xyXG4gICAgICByZXR1cm4gb2YoaW5wdXQpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG4gICAgICByZXR1cm4gZnJvbVByb21pc2UoaW5wdXQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH0pLnBpcGUoXHJcbiAgICBtYXAoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgfVxyXG4gICAgICB0aHJvdyByZXM7XHJcbiAgICB9KVxyXG4gICk7XHJcbn1cclxuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyZHQtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0BuZ3JkdC9jb3JlL3NyYy9uZ3JkdC1jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -1,3 +0,0 @@
1
- export * from './models';
2
- export * from './rdt-autofocusable.directive';
3
- export * from './utils';
@@ -1,8 +0,0 @@
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>;
@@ -1,8 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export declare class RdtAutofocusableDirective implements OnInit {
4
- readonly component: import("./models").RdtAutocusable | null;
5
- ngOnInit(): void;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<RdtAutofocusableDirective, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdtAutofocusableDirective, "[rdtAutofocusable]", never, {}, {}, never, never, false, never>;
8
- }
@@ -1,3 +0,0 @@
1
- import { RdtAutocusable } from './models';
2
- import { RdtAutofocusableDirective } from './rdt-autofocusable.directive';
3
- export declare function getRdtAutofocusable(src: Iterable<RdtAutofocusableDirective>): RdtAutocusable | null;
@@ -1,22 +0,0 @@
1
- import { DestroyRef, OnDestroy, OnInit, Type } from '@angular/core';
2
- import { RdtBooleanResult } from '../../utils';
3
- import { RdtCanEnterView, RdtCanLeaveView, RdtIsActive, RdtOnViewWillEnter, RdtOnViewWillLeave } from '../models';
4
- import { RdtComponentGuardStoreService } from '../services/rdt-component-guard-store.service';
5
- import { RdtContainerDirective } from './rdt-container.directive';
6
- import * as i0 from "@angular/core";
7
- export declare class RdtChildDirective implements OnInit, OnDestroy {
8
- readonly guardStore: RdtComponentGuardStoreService;
9
- readonly destroyRef: DestroyRef;
10
- readonly container: RdtContainerDirective | null;
11
- readonly guardedComponent: RdtIsActive | RdtCanLeaveView | RdtCanEnterView | RdtOnViewWillEnter | RdtOnViewWillLeave | null;
12
- ngOnInit(): void;
13
- ngOnDestroy(): void;
14
- isActive(): boolean;
15
- canEnterView(): RdtBooleanResult;
16
- canLeaveView(): RdtBooleanResult;
17
- onViewWillEnter(): void;
18
- onViewWillLeave(): void;
19
- getParentByClass<T extends RdtContainerDirective>(parentClass: Type<T>): T | null;
20
- static ɵfac: i0.ɵɵFactoryDeclaration<RdtChildDirective, never>;
21
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdtChildDirective, "[rdtChild]", never, {}, {}, never, never, true, never>;
22
- }
@@ -1,18 +0,0 @@
1
- import { Type } from '@angular/core';
2
- import { RdtChildDirective } from './rdt-child.directive';
3
- import * as i0 from "@angular/core";
4
- export declare class RdtContainerDirective extends RdtChildDirective {
5
- readonly rdtChildren: Set<RdtChildDirective>;
6
- registerChild(child: RdtChildDirective): void;
7
- removeChild(child: RdtChildDirective): void;
8
- checkCanLeave$(): import("rxjs").Observable<boolean>;
9
- onViewWillEnter(): void;
10
- onViewWillLeave(): void;
11
- getChildrenRecursive(filter?: (ch: RdtChildDirective) => boolean): RdtChildDirective[];
12
- protected getActiveChildren(): RdtChildDirective[];
13
- getChildrenByClass<T>(childClass: Type<T>): T[];
14
- private _getChildrenRecursive;
15
- private _getChildrenByClassRecursive;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<RdtContainerDirective, never>;
17
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdtContainerDirective, "[rdtContainer]", never, {}, {}, never, never, true, never>;
18
- }
@@ -1,4 +0,0 @@
1
- export * from './directives/rdt-child.directive';
2
- export * from './directives/rdt-container.directive';
3
- export * from './models';
4
- export * from './services/rdt-component-guard-store.service';
@@ -1,22 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- import { Nullable } from '@ngrdt/utils';
3
- import { RdtBooleanResult } from '../utils';
4
- import { RdtContainerDirective } from './directives/rdt-container.directive';
5
- export interface RdtIsActive {
6
- rdtIsActive(): boolean;
7
- }
8
- export interface RdtCanLeaveView {
9
- rdtCanLeaveView(): RdtBooleanResult;
10
- }
11
- export interface RdtCanEnterView {
12
- rdtCanEnterView(): RdtBooleanResult;
13
- }
14
- export interface RdtOnViewWillLeave {
15
- rdtOnViewWillLeave(): void;
16
- }
17
- export interface RdtOnViewWillEnter {
18
- rdtOnViewWillEnter(): void;
19
- }
20
- export declare const RDT_GUARDED_COMPONENT: InjectionToken<RdtIsActive | RdtCanLeaveView | RdtCanEnterView | RdtOnViewWillEnter | RdtOnViewWillLeave>;
21
- export declare const RDT_CONTAINER: InjectionToken<RdtContainerDirective>;
22
- export declare function canTransition$(from: Nullable<RdtContainerDirective>, to: Nullable<RdtContainerDirective>): import("rxjs").Observable<boolean>;
@@ -1,11 +0,0 @@
1
- import { RdtChildDirective } from '../directives/rdt-child.directive';
2
- import * as i0 from "@angular/core";
3
- export declare class RdtComponentGuardStoreService {
4
- private readonly guards;
5
- registerGuard(guard: RdtChildDirective): void;
6
- removeGuard(guard: RdtChildDirective): void;
7
- getGuards(): RdtChildDirective[];
8
- checkCanLeaveGlobal$(): import("rxjs").Observable<boolean>;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<RdtComponentGuardStoreService, never>;
10
- static ɵprov: i0.ɵɵInjectableDeclaration<RdtComponentGuardStoreService>;
11
- }
@@ -1 +0,0 @@
1
- export * from './rdt-boolean-result';
@@ -1,4 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- export type RdtBooleanResult = Observable<boolean> | Promise<boolean> | boolean;
3
- export declare function rdtGetAllResultsTrue$(inputFactories: (() => RdtBooleanResult)[]): Observable<boolean>;
4
- export declare function rdtGetResult$(inputFactory: () => RdtBooleanResult): Observable<true>;