@scion/components 18.1.1 → 19.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dimension/dimension.directive.d.ts +2 -2
  2. package/dimension/dimension.module.d.ts +2 -0
  3. package/dimension/public_api.d.ts +1 -1
  4. package/fesm2022/scion-components-dimension.mjs +18 -17
  5. package/fesm2022/scion-components-dimension.mjs.map +1 -1
  6. package/fesm2022/scion-components-sashbox.mjs +222 -215
  7. package/fesm2022/scion-components-sashbox.mjs.map +1 -1
  8. package/fesm2022/scion-components-splitter.mjs +69 -74
  9. package/fesm2022/scion-components-splitter.mjs.map +1 -1
  10. package/fesm2022/scion-components-throbber.mjs +43 -45
  11. package/fesm2022/scion-components-throbber.mjs.map +1 -1
  12. package/fesm2022/scion-components-viewport.mjs +94 -99
  13. package/fesm2022/scion-components-viewport.mjs.map +1 -1
  14. package/package.json +4 -16
  15. package/sashbox/element-ref.directive.d.ts +1 -4
  16. package/sashbox/sash-initializer.directive.d.ts +4 -7
  17. package/sashbox/sash.directive.d.ts +21 -20
  18. package/sashbox/sashbox-accessor.d.ts +3 -4
  19. package/sashbox/sashbox.component.d.ts +36 -27
  20. package/sashbox/sashbox.module.d.ts +2 -0
  21. package/splitter/public_api.d.ts +1 -1
  22. package/splitter/splitter.component.d.ts +22 -26
  23. package/splitter/splitter.module.d.ts +2 -0
  24. package/throbber/spinner-throbber/spinner-throbber.component.d.ts +1 -1
  25. package/throbber/throbber.component.d.ts +2 -2
  26. package/throbber/throbber.module.d.ts +2 -0
  27. package/viewport/native-scrollbar-track-size-provider.service.d.ts +2 -2
  28. package/viewport/public_api.d.ts +1 -1
  29. package/viewport/scrollable.directive.d.ts +4 -4
  30. package/viewport/scrollbar/scrollbar.component.d.ts +16 -22
  31. package/viewport/viewport.component.d.ts +13 -12
  32. package/viewport/viewport.module.d.ts +2 -0
  33. package/esm2022/dimension/bounding-client-rect.signal.mjs +0 -54
  34. package/esm2022/dimension/dimension.directive.mjs +0 -67
  35. package/esm2022/dimension/dimension.mjs +0 -11
  36. package/esm2022/dimension/dimension.module.mjs +0 -34
  37. package/esm2022/dimension/dimension.signal.mjs +0 -63
  38. package/esm2022/dimension/public_api.mjs +0 -19
  39. package/esm2022/dimension/scion-components-dimension.mjs +0 -5
  40. package/esm2022/public-api.mjs +0 -11
  41. package/esm2022/sashbox/element-ref.directive.mjs +0 -31
  42. package/esm2022/sashbox/public_api.mjs +0 -18
  43. package/esm2022/sashbox/sash-initializer.directive.mjs +0 -35
  44. package/esm2022/sashbox/sash.directive.mjs +0 -145
  45. package/esm2022/sashbox/sashbox-accessor.mjs +0 -6
  46. package/esm2022/sashbox/sashbox.component.mjs +0 -282
  47. package/esm2022/sashbox/sashbox.module.mjs +0 -55
  48. package/esm2022/sashbox/scion-components-sashbox.mjs +0 -5
  49. package/esm2022/scion-components.mjs +0 -5
  50. package/esm2022/splitter/public_api.mjs +0 -17
  51. package/esm2022/splitter/scion-components-splitter.mjs +0 -5
  52. package/esm2022/splitter/splitter.component.mjs +0 -226
  53. package/esm2022/splitter/splitter.module.mjs +0 -38
  54. package/esm2022/throbber/ellipsis-throbber/ellipsis-throbber.component.mjs +0 -25
  55. package/esm2022/throbber/public_api.mjs +0 -17
  56. package/esm2022/throbber/ripple-throbber/ripple-throbber.component.mjs +0 -25
  57. package/esm2022/throbber/roller-throbber/roller-throbber.component.mjs +0 -25
  58. package/esm2022/throbber/scion-components-throbber.mjs +0 -5
  59. package/esm2022/throbber/spinner-throbber/spinner-throbber.component.mjs +0 -26
  60. package/esm2022/throbber/throbber.component.mjs +0 -72
  61. package/esm2022/throbber/throbber.module.mjs +0 -32
  62. package/esm2022/viewport/native-scrollbar-track-size-provider.service.mjs +0 -91
  63. package/esm2022/viewport/public_api.mjs +0 -19
  64. package/esm2022/viewport/scion-components-viewport.mjs +0 -5
  65. package/esm2022/viewport/scrollable.directive.mjs +0 -92
  66. package/esm2022/viewport/scrollbar/scrollbar.component.mjs +0 -305
  67. package/esm2022/viewport/viewport.component.mjs +0 -264
  68. package/esm2022/viewport/viewport.module.mjs +0 -42
@@ -1,4 +1,4 @@
1
- import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit } from '@angular/core';
1
+ import { OnInit } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  /**
4
4
  * Represents a splitter, a visual element that allows the user to control the size of elements next to it.
@@ -41,47 +41,43 @@ import * as i0 from "@angular/core";
41
41
  * }
42
42
  * ```
43
43
  */
44
- export declare class SciSplitterComponent implements OnInit, OnDestroy {
45
- private _zone;
46
- private _cd;
47
- private _document;
48
- private _destroy$;
49
- moving: boolean;
50
- get isVertical(): boolean;
51
- get isHorizontal(): boolean;
44
+ export declare class SciSplitterComponent implements OnInit {
52
45
  /**
53
- * Controls whether to render a vertical or horizontal splitter.
54
- * By default, if not specified, renders a vertical splitter.
46
+ * Controls whether to render a vertical or horizontal splitter. By default, if not specified, renders a vertical splitter.
55
47
  */
56
- orientation: 'vertical' | 'horizontal';
48
+ readonly orientation: import("@angular/core").InputSignal<"vertical" | "horizontal">;
57
49
  /**
58
- * Emits when starting to move the splitter.
50
+ * Notifies when start moving the splitter.
59
51
  */
60
- start: EventEmitter<void>;
52
+ readonly start: import("@angular/core").OutputEmitterRef<void>;
61
53
  /**
62
- * Emits the distance in pixels when the splitter is moved.
63
- * The event is emitted outside of the Angular zone.
54
+ * Notifies when moving the splitter. The event is emitted outside the Angular zone.
64
55
  */
65
- move: EventEmitter<SplitterMoveEvent>;
56
+ readonly move: import("@angular/core").OutputEmitterRef<SplitterMoveEvent>;
66
57
  /**
67
- * Emits when ending to move the splitter.
58
+ * Notifies when end moving the splitter.
68
59
  */
69
- end: EventEmitter<void>;
60
+ readonly end: import("@angular/core").OutputEmitterRef<void>;
70
61
  /**
71
- * Emits when to reset the splitter position.
62
+ * Notifies when resetting the spliter position.
72
63
  */
73
- reset: EventEmitter<void>;
74
- get splitterCursor(): string;
75
- touchTargetElementRef: ElementRef<HTMLElement>;
76
- constructor(_zone: NgZone, _cd: ChangeDetectorRef, _document: Document);
64
+ readonly reset: import("@angular/core").OutputEmitterRef<void>;
65
+ private readonly _zone;
66
+ private readonly _cd;
67
+ private readonly _document;
68
+ private readonly _destroyRef;
69
+ private readonly _touchTarget;
70
+ protected moving: boolean;
71
+ protected get isVertical(): boolean;
72
+ protected get isHorizontal(): boolean;
73
+ protected get splitterCursor(): string;
77
74
  ngOnInit(): void;
78
75
  private onReset;
79
76
  private onTouchStart;
80
77
  private onMouseDown;
81
78
  private installMoveListener;
82
- ngOnDestroy(): void;
83
79
  static ɵfac: i0.ɵɵFactoryDeclaration<SciSplitterComponent, never>;
84
- static ɵcmp: i0.ɵɵComponentDeclaration<SciSplitterComponent, "sci-splitter", never, { "orientation": { "alias": "orientation"; "required": false; }; }, { "start": "start"; "move": "move"; "end": "end"; "reset": "reset"; }, never, never, true, never>;
80
+ static ɵcmp: i0.ɵɵComponentDeclaration<SciSplitterComponent, "sci-splitter", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, { "start": "start"; "move": "move"; "end": "end"; "reset": "reset"; }, never, never, true, never>;
85
81
  }
86
82
  export interface EventPosition {
87
83
  clientPos: number;
@@ -8,6 +8,8 @@ import * as i1 from "./splitter.component";
8
8
  * ```html
9
9
  * <sci-splitter (move)="onSplitterMove($event.distance)"></sci-splitter>
10
10
  * ```
11
+ *
12
+ * @deprecated since version 19.0.0; Import standalone component; API will be removed in a future release.
11
13
  */
12
14
  export declare class SciSplitterModule {
13
15
  static ɵfac: i0.ɵɵFactoryDeclaration<SciSplitterModule, never>;
@@ -1,7 +1,7 @@
1
1
  import * as i0 from "@angular/core";
2
2
  /**
3
3
  * Represents a classic spinner throbber with strokes arranged radially. The strokes light up one after the other in clockwise direction
4
- * and then then fade out again.
4
+ * and then fade out again.
5
5
  *
6
6
  * Throbber type: `spinner`
7
7
  */
@@ -38,7 +38,7 @@ export declare class SciThrobberComponent {
38
38
  * - **spinner** (default)
39
39
  * Represents a classic spinner throbber with strokes arranged radially. The strokes light up one after the other in clockwise direction and then then fade out again.
40
40
  */
41
- type: 'ellipsis' | 'ripple' | 'roller' | 'spinner';
41
+ readonly type: import("@angular/core").InputSignal<"ellipsis" | "ripple" | "roller" | "spinner">;
42
42
  static ɵfac: i0.ɵɵFactoryDeclaration<SciThrobberComponent, never>;
43
- static ɵcmp: i0.ɵɵComponentDeclaration<SciThrobberComponent, "sci-throbber", never, { "type": { "alias": "type"; "required": false; }; }, {}, never, never, true, never>;
43
+ static ɵcmp: i0.ɵɵComponentDeclaration<SciThrobberComponent, "sci-throbber", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
44
44
  }
@@ -2,6 +2,8 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "./throbber.component";
3
3
  /**
4
4
  * Provides {@link SciThrobberComponent}, an animated graphical control to indicate the execution of an action.
5
+ *
6
+ * @deprecated since version 19.0.0; Import standalone component instead; API will be removed in a future release.
5
7
  */
6
8
  export declare class SciThrobberModule {
7
9
  static ɵfac: i0.ɵɵFactoryDeclaration<SciThrobberModule, never>;
@@ -4,8 +4,8 @@ import * as i0 from "@angular/core";
4
4
  * Provides the native scrollbar tracksize.
5
5
  */
6
6
  export declare class SciNativeScrollbarTrackSizeProvider {
7
- private _document;
8
- private _zone;
7
+ private readonly _document;
8
+ private readonly _zone;
9
9
  /**
10
10
  * Provides the track size of the native scrollbar, or `null` if the native scrollbars sit on top of the content.
11
11
  */
@@ -1,4 +1,4 @@
1
1
  export { SciViewportModule } from './viewport.module';
2
- export { SciViewportComponent, ScrollbarStyle } from './viewport.component';
2
+ export { SciViewportComponent, type ScrollbarStyle } from './viewport.component';
3
3
  export { SciScrollbarComponent } from './scrollbar/scrollbar.component';
4
4
  export { SciScrollableDirective } from './scrollable.directive';
@@ -11,14 +11,14 @@ import * as i0 from "@angular/core";
11
11
  * to hide the pushed out native scrollbars.
12
12
  */
13
13
  export declare class SciScrollableDirective {
14
- private _host;
15
- private _renderer;
16
- private _nativeScrollbarTrackSizeProvider;
17
14
  /**
18
15
  * Controls whether to display native scrollbars.
19
16
  * Has no effect if the native scrollbar sits on top of the content, e.g. in OS X.
20
17
  */
21
- displayNativeScrollbar: import("@angular/core").InputSignal<boolean>;
18
+ readonly displayNativeScrollbar: import("@angular/core").InputSignal<boolean>;
19
+ private readonly _host;
20
+ private readonly _renderer;
21
+ private readonly _nativeScrollbarTrackSizeProvider;
22
22
  constructor();
23
23
  /**
24
24
  * Controls the display of the native scrollbar based on this directive's configuration.
@@ -24,38 +24,32 @@ import * as i0 from "@angular/core";
24
24
  * ```
25
25
  */
26
26
  export declare class SciScrollbarComponent {
27
- private _host;
28
- private _document;
29
- private _zone;
30
- private _destroyRef;
31
- private _lastDragPosition;
32
- private _overflow;
33
- private _thumbSizeFr;
34
- private _thumbPositionFr;
35
- private _thumbElement;
36
- private _vertical;
37
- get vertical(): boolean;
38
- get horizontal(): boolean;
39
- get scrolling(): boolean;
40
27
  /**
41
- * Specifies the direction of the scrollbar.
42
- *
43
- * By default, if not specified, renders a vertical scrollbar.
28
+ * Specifies the direction of the scrollbar. Defaults to a vertical scrollbar.
44
29
  */
45
- direction: import("@angular/core").InputSignal<"vscroll" | "hscroll">;
30
+ readonly direction: import("@angular/core").InputSignal<"vscroll" | "hscroll">;
46
31
  /**
47
32
  * The viewport to provide scrollbars for.
48
33
  */
49
- viewport: import("@angular/core").InputSignal<HTMLElement>;
34
+ readonly viewport: import("@angular/core").InputSignal<HTMLElement>;
35
+ private readonly _host;
36
+ private readonly _document;
37
+ private readonly _zone;
38
+ private readonly _destroyRef;
39
+ private readonly _thumbElement;
40
+ private readonly _vertical;
41
+ private _lastDragPosition;
42
+ private _overflow;
43
+ private _thumbSizeFr;
44
+ private _thumbPositionFr;
45
+ protected get vertical(): boolean;
46
+ protected get horizontal(): boolean;
47
+ protected get scrolling(): boolean;
50
48
  constructor();
51
49
  /**
52
50
  * Computes the scroll position and updates CSS variables to render the scroll position in the UI.
53
51
  */
54
52
  private renderScrollPosition;
55
- /**
56
- * Clears CSS variables used for rendering the scroll position in the UI.
57
- */
58
- private unsetScrollPosition;
59
53
  protected onTouchStart(event: TouchEvent): void;
60
54
  protected onTouchMove(event: TouchEvent): void;
61
55
  protected onTouchEnd(event: TouchEvent): void;
@@ -69,23 +69,20 @@ import * as i0 from "@angular/core";
69
69
  * ```
70
70
  */
71
71
  export declare class SciViewportComponent {
72
- private _viewport;
73
- private _viewportClient;
74
- private _host;
75
- protected nativeScrollbarTrackSizeProvider: SciNativeScrollbarTrackSizeProvider;
76
72
  /**
77
- * Controls whether to use native scrollbars or, which is by default, emulated scrollbars that sit on top of the viewport client.
78
- * In the latter, the viewport client remains natively scrollable.
73
+ * Controls if to use the native scrollbar or a scrollbar that sits on top of the viewport. Defaults to `on-top`.
79
74
  */
80
- scrollbarStyle: import("@angular/core").InputSignal<ScrollbarStyle>;
75
+ readonly scrollbarStyle: import("@angular/core").InputSignal<ScrollbarStyle>;
81
76
  /**
82
- * Emits upon a scroll event.
83
- *
84
- * You can add [sciDimension] directive to the viewport or viewport client to be notified about layout changes.
77
+ * Emits when the viewport is scrolled. The event is emitted outside the Angular zone to avoid unnecessary change detection cycles.
85
78
  */
86
- scroll: import("@angular/core").OutputEmitterRef<Event>;
79
+ readonly scroll: import("@angular/core").OutputEmitterRef<Event>;
80
+ private readonly _host;
81
+ private readonly _viewport;
82
+ private readonly _viewportClient;
83
+ protected readonly nativeScrollbarTrackSizeProvider: SciNativeScrollbarTrackSizeProvider;
84
+ constructor();
87
85
  focus(): void;
88
- protected onScroll(event: Event): void;
89
86
  /**
90
87
  * Returns the number of pixels that the viewport client is scrolled vertically.
91
88
  *
@@ -152,6 +149,10 @@ export declare class SciViewportComponent {
152
149
  * in the viewport or the element or any ancestor has the `display` property set to `none`.
153
150
  */
154
151
  computeOffset(element: ElementRef<HTMLElement> | HTMLElement, border: 'left' | 'top'): number | null;
152
+ /**
153
+ * Emits when the scroll position changes.
154
+ */
155
+ private installScrollEmitter;
155
156
  static ɵfac: i0.ɵɵFactoryDeclaration<SciViewportComponent, never>;
156
157
  static ɵcmp: i0.ɵɵComponentDeclaration<SciViewportComponent, "sci-viewport", never, { "scrollbarStyle": { "alias": "scrollbarStyle"; "required": false; "isSignal": true; }; }, { "scroll": "scroll"; }, never, never, true, never>;
157
158
  }
@@ -4,6 +4,8 @@ import * as i2 from "./scrollbar/scrollbar.component";
4
4
  import * as i3 from "./scrollable.directive";
5
5
  /**
6
6
  * Provides a viewport component with scrollbars that sit on top of the viewport client.
7
+ *
8
+ * @deprecated since version 19.0.0; Import standalone components and directive instead; API will be removed in a future release.
7
9
  */
8
10
  export declare class SciViewportModule {
9
11
  static ɵfac: i0.ɵɵFactoryDeclaration<SciViewportModule, never>;
@@ -1,54 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2024 Swiss Federal Railways
3
- *
4
- * This program and the accompanying materials are made
5
- * available under the terms of the Eclipse Public License 2.0
6
- * which is available at https://www.eclipse.org/legal/epl-2.0/
7
- *
8
- * SPDX-License-Identifier: EPL-2.0
9
- */
10
- import { assertInInjectionContext, assertNotInReactiveContext, computed, effect, inject, Injector, isSignal, NgZone, signal, untracked } from '@angular/core';
11
- import { coerceElement } from '@angular/cdk/coercion';
12
- import { fromBoundingClientRect$ } from '@scion/toolkit/observable';
13
- import { subscribeIn } from '@scion/toolkit/operators';
14
- export function boundingClientRect(elementLike, options) {
15
- assertNotInReactiveContext(boundingClientRect, 'Invoking `boundingClientRect` causes new subscriptions every time. Move `boundingClientRect` outside of the reactive context and read the signal value where needed.');
16
- if (!options?.injector) {
17
- assertInInjectionContext(boundingClientRect);
18
- }
19
- const injector = options?.injector ?? inject(Injector);
20
- const zone = injector.get(NgZone);
21
- const element = computed(() => coerceElement(isSignal(elementLike) ? elementLike() : elementLike));
22
- const onBoundingBoxChange = signal(undefined, { equal: () => false });
23
- // Subscribe to element bounding box changes.
24
- effect(onCleanup => {
25
- const el = element();
26
- if (!el) {
27
- return;
28
- }
29
- untracked(() => {
30
- const subscription = fromBoundingClientRect$(el)
31
- // Avoid triggering change detection cycle.
32
- .pipe(subscribeIn(fn => zone.runOutsideAngular(fn)))
33
- .subscribe(() => {
34
- NgZone.assertNotInAngularZone();
35
- onBoundingBoxChange.set();
36
- });
37
- onCleanup(() => subscription.unsubscribe());
38
- });
39
- }, { injector });
40
- // Create signal that recomputes each time the bounding box changes.
41
- return computed(() => {
42
- const el = element();
43
- if (!el) {
44
- return undefined;
45
- }
46
- // Track bounding box.
47
- onBoundingBoxChange();
48
- return el.getBoundingClientRect();
49
- }, { equal: isEqualDomRect });
50
- }
51
- function isEqualDomRect(a, b) {
52
- return a?.top === b?.top && a?.right === b?.right && a?.bottom === b?.bottom && a?.left === b?.left;
53
- }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmRpbmctY2xpZW50LXJlY3Quc2lnbmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy9kaW1lbnNpb24vc3JjL2JvdW5kaW5nLWNsaWVudC1yZWN0LnNpZ25hbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyx3QkFBd0IsRUFBRSwwQkFBMEIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFjLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hMLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFvQnJELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxXQUE4RyxFQUFFLE9BQStCO0lBQ2hMLDBCQUEwQixDQUFDLGtCQUFrQixFQUFFLHNLQUFzSyxDQUFDLENBQUM7SUFDdk4sSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUN2Qix3QkFBd0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNuRyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBTyxTQUFTLEVBQUUsRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQztJQUUxRSw2Q0FBNkM7SUFDN0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ2pCLE1BQU0sRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE9BQU87UUFDVCxDQUFDO1FBRUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNiLE1BQU0sWUFBWSxHQUFHLHVCQUF1QixDQUFDLEVBQUUsQ0FBQztnQkFDOUMsMkNBQTJDO2lCQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ25ELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQ2hDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxFQUFFLEVBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQztJQUVmLG9FQUFvRTtJQUNwRSxPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDbkIsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELHNCQUFzQjtRQUN0QixtQkFBbUIsRUFBRSxDQUFDO1FBRXRCLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDcEMsQ0FBQyxFQUFFLEVBQUMsS0FBSyxFQUFFLGNBQWMsRUFBQyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLENBQXNCLEVBQUUsQ0FBc0I7SUFDcEUsT0FBTyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUM7QUFDdEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHthc3NlcnRJbkluamVjdGlvbkNvbnRleHQsIGFzc2VydE5vdEluUmVhY3RpdmVDb250ZXh0LCBjb21wdXRlZCwgZWZmZWN0LCBFbGVtZW50UmVmLCBpbmplY3QsIEluamVjdG9yLCBpc1NpZ25hbCwgTmdab25lLCBzaWduYWwsIFNpZ25hbCwgdW50cmFja2VkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Y29lcmNlRWxlbWVudH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7ZnJvbUJvdW5kaW5nQ2xpZW50UmVjdCR9IGZyb20gJ0BzY2lvbi90b29sa2l0L29ic2VydmFibGUnO1xuaW1wb3J0IHtzdWJzY3JpYmVJbn0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgc2lnbmFsIG9ic2VydmluZyB0aGUgYm91bmRpbmcgYm94IG9mIGFuIGVsZW1lbnQuXG4gKlxuICogVGhlIGJvdW5kaW5nIGJveCBpbmNsdWRlcyB0aGUgZWxlbWVudCdzIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSB0b3AtbGVmdCBvZiB0aGUgdmlld3BvcnQgYW5kIGl0cyBzaXplLlxuICogUmVmZXIgdG8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0VsZW1lbnQvZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogVGhlIGVsZW1lbnQgY2FuIGJlIHBhc3NlZCBhcyBhIHNpZ25hbCwgZW5hYmxpbmcgb2JzZXJ2YXRpb24gb2YgdmlldyBjaGlsZHJlbiBpbiB0aGUgY29tcG9uZW50IGNvbnN0cnVjdG9yLlxuICpcbiAqIFRoZXJlIGlzIG5vIG5hdGl2ZSBicm93c2VyIEFQSSB0byBvYnNlcnZlIHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50LiBUaGUgc2lnbmFsIHVzZXMge0BsaW5rIEludGVyc2VjdGlvbk9ic2VydmVyfSBhbmRcbiAqIHtAbGluayBSZXNpemVPYnNlcnZlcn0gdG8gZGV0ZWN0IHBvc2l0aW9uIGNoYW5nZXMuIEZvciB0cmFja2luZyBvbmx5IHNpemUgY2hhbmdlcywgdXNlIHRoZSB7QGxpbmsgZGltZW5zaW9ufSBzaWduYWwgaW5zdGVhZC5cbiAqXG4gKiBVc2FnZTpcbiAqIC0gTXVzdCBiZSBjYWxsZWQgd2l0aGluIGFuIGluamVjdGlvbiBjb250ZXh0IG9yIGFuIGluamVjdG9yIHByb3ZpZGVkLiBEZXN0cm95aW5nIHRoZSBpbmplY3RvciB3aWxsIHVuc3Vic2NyaWJlIHRoZSBzaWduYWwuXG4gKiAtIE11c3Qgbm90IGJlIGNhbGxlZCB3aXRoaW4gYSByZWFjdGl2ZSBjb250ZXh0IHRvIGF2b2lkIHJlcGVhdGVkIHN1YnNjcmlwdGlvbnMuXG4gKiAtIFRoZSBlbGVtZW50IGFuZCB0aGUgZG9jdW1lbnQgcm9vdCAoYDxodG1sPmApIG11c3QgYmUgcG9zaXRpb25lZCBgcmVsYXRpdmVgIG9yIGBhYnNvbHV0ZWAuIElmIG5vdCwgYSB3YXJuaW5nIGlzIGxvZ2dlZCwgYW5kIHBvc2l0aW9uaW5nIGNoYW5nZWQgdG8gYHJlbGF0aXZlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50TGlrZTogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IFNpZ25hbDxIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+Piwgb3B0aW9ucz86IHtpbmplY3Rvcj86IEluamVjdG9yfSk6IFNpZ25hbDxET01SZWN0PjtcbmV4cG9ydCBmdW5jdGlvbiBib3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudExpa2U6IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBTaWduYWw8SFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZD4sIG9wdGlvbnM/OiB7aW5qZWN0b3I/OiBJbmplY3Rvcn0pOiBTaWduYWw8RE9NUmVjdCB8IHVuZGVmaW5lZD47XG5leHBvcnQgZnVuY3Rpb24gYm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnRMaWtlOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgU2lnbmFsPEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ+LCBvcHRpb25zPzoge2luamVjdG9yPzogSW5qZWN0b3J9KTogU2lnbmFsPERPTVJlY3QgfCB1bmRlZmluZWQ+IHtcbiAgYXNzZXJ0Tm90SW5SZWFjdGl2ZUNvbnRleHQoYm91bmRpbmdDbGllbnRSZWN0LCAnSW52b2tpbmcgYGJvdW5kaW5nQ2xpZW50UmVjdGAgY2F1c2VzIG5ldyBzdWJzY3JpcHRpb25zIGV2ZXJ5IHRpbWUuIE1vdmUgYGJvdW5kaW5nQ2xpZW50UmVjdGAgb3V0c2lkZSBvZiB0aGUgcmVhY3RpdmUgY29udGV4dCBhbmQgcmVhZCB0aGUgc2lnbmFsIHZhbHVlIHdoZXJlIG5lZWRlZC4nKTtcbiAgaWYgKCFvcHRpb25zPy5pbmplY3Rvcikge1xuICAgIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChib3VuZGluZ0NsaWVudFJlY3QpO1xuICB9XG5cbiAgY29uc3QgaW5qZWN0b3IgPSBvcHRpb25zPy5pbmplY3RvciA/PyBpbmplY3QoSW5qZWN0b3IpO1xuICBjb25zdCB6b25lID0gaW5qZWN0b3IuZ2V0KE5nWm9uZSk7XG4gIGNvbnN0IGVsZW1lbnQgPSBjb21wdXRlZCgoKSA9PiBjb2VyY2VFbGVtZW50KGlzU2lnbmFsKGVsZW1lbnRMaWtlKSA/IGVsZW1lbnRMaWtlKCkgOiBlbGVtZW50TGlrZSkpO1xuICBjb25zdCBvbkJvdW5kaW5nQm94Q2hhbmdlID0gc2lnbmFsPHZvaWQ+KHVuZGVmaW5lZCwge2VxdWFsOiAoKSA9PiBmYWxzZX0pO1xuXG4gIC8vIFN1YnNjcmliZSB0byBlbGVtZW50IGJvdW5kaW5nIGJveCBjaGFuZ2VzLlxuICBlZmZlY3Qob25DbGVhbnVwID0+IHtcbiAgICBjb25zdCBlbCA9IGVsZW1lbnQoKTtcbiAgICBpZiAoIWVsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IGZyb21Cb3VuZGluZ0NsaWVudFJlY3QkKGVsKVxuICAgICAgICAvLyBBdm9pZCB0cmlnZ2VyaW5nIGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUuXG4gICAgICAgIC5waXBlKHN1YnNjcmliZUluKGZuID0+IHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoZm4pKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgTmdab25lLmFzc2VydE5vdEluQW5ndWxhclpvbmUoKTtcbiAgICAgICAgICBvbkJvdW5kaW5nQm94Q2hhbmdlLnNldCgpO1xuICAgICAgICB9KTtcbiAgICAgIG9uQ2xlYW51cCgoKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgfSk7XG4gIH0sIHtpbmplY3Rvcn0pO1xuXG4gIC8vIENyZWF0ZSBzaWduYWwgdGhhdCByZWNvbXB1dGVzIGVhY2ggdGltZSB0aGUgYm91bmRpbmcgYm94IGNoYW5nZXMuXG4gIHJldHVybiBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgZWwgPSBlbGVtZW50KCk7XG4gICAgaWYgKCFlbCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBUcmFjayBib3VuZGluZyBib3guXG4gICAgb25Cb3VuZGluZ0JveENoYW5nZSgpO1xuXG4gICAgcmV0dXJuIGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9LCB7ZXF1YWw6IGlzRXF1YWxEb21SZWN0fSk7XG59XG5cbmZ1bmN0aW9uIGlzRXF1YWxEb21SZWN0KGE6IERPTVJlY3QgfCB1bmRlZmluZWQsIGI6IERPTVJlY3QgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgcmV0dXJuIGE/LnRvcCA9PT0gYj8udG9wICYmIGE/LnJpZ2h0ID09PSBiPy5yaWdodCAmJiBhPy5ib3R0b20gPT09IGI/LmJvdHRvbSAmJiBhPy5sZWZ0ID09PSBiPy5sZWZ0O1xufVxuIl19
@@ -1,67 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2024 Swiss Federal Railways
3
- *
4
- * This program and the accompanying materials are made
5
- * available under the terms of the Eclipse Public License 2.0
6
- * which is available at https://www.eclipse.org/legal/epl-2.0/
7
- *
8
- * SPDX-License-Identifier: EPL-2.0
9
- */
10
- import { Directive, ElementRef, inject, input, NgZone, output } from '@angular/core';
11
- import { fromResize$ } from '@scion/toolkit/observable';
12
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
13
- import { observeIn, subscribeIn } from '@scion/toolkit/operators';
14
- import * as i0 from "@angular/core";
15
- /**
16
- * Observes the size of the host element.
17
- *
18
- * ---
19
- * Usage:
20
- *
21
- * ```html
22
- * <div sciDimension (sciDimensionChange)="onDimensionChange($event)"></div>
23
- * ```
24
- */
25
- export class SciDimensionDirective {
26
- constructor() {
27
- /**
28
- * Controls if to output outside the Angular zone. Defaults to `false`.
29
- */
30
- this.emitOutsideAngular = input(false);
31
- /**
32
- * Outputs the size of the element.
33
- */
34
- this.dimensionChange = output({ alias: 'sciDimensionChange' });
35
- const host = inject((ElementRef)).nativeElement;
36
- const zone = inject(NgZone);
37
- fromResize$(host)
38
- .pipe(
39
- // Avoid triggering change detection cycle.
40
- subscribeIn(fn => zone.runOutsideAngular(fn)),
41
- // Run in animation frame to prevent 'ResizeObserver loop completed with undelivered notifications' error.
42
- // Do not use `animationFrameScheduler` because the scheduler does not necessarily execute in the current execution context, such as inside or outside Angular.
43
- // The scheduler always executes tasks in the context (e.g. zone) where the scheduler was first used in the application.
44
- observeIn(fn => requestAnimationFrame(fn)), observeIn(fn => this.emitOutsideAngular() ? fn() : zone.run(fn)), takeUntilDestroyed())
45
- .subscribe(() => {
46
- // Assert Angular zone.
47
- this.emitOutsideAngular() ? NgZone.assertNotInAngularZone() : NgZone.assertInAngularZone();
48
- this.dimensionChange.emit({
49
- clientWidth: host.clientWidth,
50
- offsetWidth: host.offsetWidth,
51
- clientHeight: host.clientHeight,
52
- offsetHeight: host.offsetHeight,
53
- element: host,
54
- });
55
- });
56
- }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciDimensionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
58
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.1", type: SciDimensionDirective, isStandalone: true, selector: "[sciDimension]", inputs: { emitOutsideAngular: { classPropertyName: "emitOutsideAngular", publicName: "emitOutsideAngular", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dimensionChange: "sciDimensionChange" }, ngImport: i0 }); }
59
- }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciDimensionDirective, decorators: [{
61
- type: Directive,
62
- args: [{
63
- selector: '[sciDimension]',
64
- standalone: true,
65
- }]
66
- }], ctorParameters: () => [] });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvZGltZW5zaW9uL3NyYy9kaW1lbnNpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDOztBQUdoRTs7Ozs7Ozs7O0dBU0c7QUFLSCxNQUFNLE9BQU8scUJBQXFCO0lBWWhDO1FBVkE7O1dBRUc7UUFDSSx1QkFBa0IsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekM7O1dBRUc7UUFDSSxvQkFBZSxHQUFHLE1BQU0sQ0FBZSxFQUFDLEtBQUssRUFBRSxvQkFBb0IsRUFBQyxDQUFDLENBQUM7UUFHM0UsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1QixXQUFXLENBQUMsSUFBSSxDQUFDO2FBQ2QsSUFBSTtRQUNILDJDQUEyQztRQUMzQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0MsMEdBQTBHO1FBQzFHLCtKQUErSjtRQUMvSix3SEFBd0g7UUFDeEgsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDMUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ2hFLGtCQUFrQixFQUFFLENBQ3JCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLHVCQUF1QjtZQUN2QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBRTNGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUN4QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQy9CLE9BQU8sRUFBRSxJQUFJO2FBQ2QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXZDVSxxQkFBcUI7a0dBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgTmdab25lLCBvdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtmcm9tUmVzaXplJH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb2JzZXJ2YWJsZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtvYnNlcnZlSW4sIHN1YnNjcmliZUlufSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTY2lEaW1lbnNpb259IGZyb20gJy4vZGltZW5zaW9uJztcblxuLyoqXG4gKiBPYnNlcnZlcyB0aGUgc2l6ZSBvZiB0aGUgaG9zdCBlbGVtZW50LlxuICpcbiAqIC0tLVxuICogVXNhZ2U6XG4gKlxuICogYGBgaHRtbFxuICogPGRpdiBzY2lEaW1lbnNpb24gKHNjaURpbWVuc2lvbkNoYW5nZSk9XCJvbkRpbWVuc2lvbkNoYW5nZSgkZXZlbnQpXCI+PC9kaXY+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NjaURpbWVuc2lvbl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTY2lEaW1lbnNpb25EaXJlY3RpdmUge1xuXG4gIC8qKlxuICAgKiBDb250cm9scyBpZiB0byBvdXRwdXQgb3V0c2lkZSB0aGUgQW5ndWxhciB6b25lLiBEZWZhdWx0cyB0byBgZmFsc2VgLlxuICAgKi9cbiAgcHVibGljIGVtaXRPdXRzaWRlQW5ndWxhciA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogT3V0cHV0cyB0aGUgc2l6ZSBvZiB0aGUgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBkaW1lbnNpb25DaGFuZ2UgPSBvdXRwdXQ8U2NpRGltZW5zaW9uPih7YWxpYXM6ICdzY2lEaW1lbnNpb25DaGFuZ2UnfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgaG9zdCA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50PikubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgICBmcm9tUmVzaXplJChob3N0KVxuICAgICAgLnBpcGUoXG4gICAgICAgIC8vIEF2b2lkIHRyaWdnZXJpbmcgY2hhbmdlIGRldGVjdGlvbiBjeWNsZS5cbiAgICAgICAgc3Vic2NyaWJlSW4oZm4gPT4gem9uZS5ydW5PdXRzaWRlQW5ndWxhcihmbikpLFxuICAgICAgICAvLyBSdW4gaW4gYW5pbWF0aW9uIGZyYW1lIHRvIHByZXZlbnQgJ1Jlc2l6ZU9ic2VydmVyIGxvb3AgY29tcGxldGVkIHdpdGggdW5kZWxpdmVyZWQgbm90aWZpY2F0aW9ucycgZXJyb3IuXG4gICAgICAgIC8vIERvIG5vdCB1c2UgYGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyYCBiZWNhdXNlIHRoZSBzY2hlZHVsZXIgZG9lcyBub3QgbmVjZXNzYXJpbHkgZXhlY3V0ZSBpbiB0aGUgY3VycmVudCBleGVjdXRpb24gY29udGV4dCwgc3VjaCBhcyBpbnNpZGUgb3Igb3V0c2lkZSBBbmd1bGFyLlxuICAgICAgICAvLyBUaGUgc2NoZWR1bGVyIGFsd2F5cyBleGVjdXRlcyB0YXNrcyBpbiB0aGUgY29udGV4dCAoZS5nLiB6b25lKSB3aGVyZSB0aGUgc2NoZWR1bGVyIHdhcyBmaXJzdCB1c2VkIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAgICAgICAgb2JzZXJ2ZUluKGZuID0+IHJlcXVlc3RBbmltYXRpb25GcmFtZShmbikpLFxuICAgICAgICBvYnNlcnZlSW4oZm4gPT4gdGhpcy5lbWl0T3V0c2lkZUFuZ3VsYXIoKSA/IGZuKCkgOiB6b25lLnJ1bihmbikpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvLyBBc3NlcnQgQW5ndWxhciB6b25lLlxuICAgICAgICB0aGlzLmVtaXRPdXRzaWRlQW5ndWxhcigpID8gTmdab25lLmFzc2VydE5vdEluQW5ndWxhclpvbmUoKSA6IE5nWm9uZS5hc3NlcnRJbkFuZ3VsYXJab25lKCk7XG5cbiAgICAgICAgdGhpcy5kaW1lbnNpb25DaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgY2xpZW50V2lkdGg6IGhvc3QuY2xpZW50V2lkdGgsXG4gICAgICAgICAgb2Zmc2V0V2lkdGg6IGhvc3Qub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgY2xpZW50SGVpZ2h0OiBob3N0LmNsaWVudEhlaWdodCxcbiAgICAgICAgICBvZmZzZXRIZWlnaHQ6IGhvc3Qub2Zmc2V0SGVpZ2h0LFxuICAgICAgICAgIGVsZW1lbnQ6IGhvc3QsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,11 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2024 Swiss Federal Railways
3
- *
4
- * This program and the accompanying materials are made
5
- * available under the terms of the Eclipse Public License 2.0
6
- * which is available at https://www.eclipse.org/legal/epl-2.0/
7
- *
8
- * SPDX-License-Identifier: EPL-2.0
9
- */
10
- export {};
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy9kaW1lbnNpb24vc3JjL2RpbWVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgZGltZW5zaW9uIG9mIGFuIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NpRGltZW5zaW9uIHtcbiAgb2Zmc2V0V2lkdGg6IG51bWJlcjtcbiAgb2Zmc2V0SGVpZ2h0OiBudW1iZXI7XG4gIGNsaWVudFdpZHRoOiBudW1iZXI7XG4gIGNsaWVudEhlaWdodDogbnVtYmVyO1xuICBlbGVtZW50OiBIVE1MRWxlbWVudDtcbn1cbiJdfQ==
@@ -1,34 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2019 Swiss Federal Railways
3
- *
4
- * This program and the accompanying materials are made
5
- * available under the terms of the Eclipse Public License 2.0
6
- * which is available at https://www.eclipse.org/legal/epl-2.0/
7
- *
8
- * SPDX-License-Identifier: EPL-2.0
9
- */
10
- import { NgModule } from '@angular/core';
11
- import { SciDimensionDirective } from './dimension.directive';
12
- import * as i0 from "@angular/core";
13
- /**
14
- * Provides a directive for observing changes to the size of the host element.
15
- *
16
- * @see fromDimension$
17
- */
18
- export class SciDimensionModule {
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciDimensionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
20
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: SciDimensionModule, imports: [SciDimensionDirective], exports: [SciDimensionDirective] }); }
21
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciDimensionModule }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciDimensionModule, decorators: [{
24
- type: NgModule,
25
- args: [{
26
- imports: [
27
- SciDimensionDirective,
28
- ],
29
- exports: [
30
- SciDimensionDirective,
31
- ],
32
- }]
33
- }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvZGltZW5zaW9uL3NyYy9kaW1lbnNpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFNUQ7Ozs7R0FJRztBQVNILE1BQU0sT0FBTyxrQkFBa0I7OEdBQWxCLGtCQUFrQjsrR0FBbEIsa0JBQWtCLFlBTjNCLHFCQUFxQixhQUdyQixxQkFBcUI7K0dBR1osa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQVI5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7cUJBQ3RCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NjaURpbWVuc2lvbkRpcmVjdGl2ZX0gZnJvbSAnLi9kaW1lbnNpb24uZGlyZWN0aXZlJztcblxuLyoqXG4gKiBQcm92aWRlcyBhIGRpcmVjdGl2ZSBmb3Igb2JzZXJ2aW5nIGNoYW5nZXMgdG8gdGhlIHNpemUgb2YgdGhlIGhvc3QgZWxlbWVudC5cbiAqXG4gKiBAc2VlIGZyb21EaW1lbnNpb24kXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTY2lEaW1lbnNpb25EaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTY2lEaW1lbnNpb25EaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNjaURpbWVuc2lvbk1vZHVsZSB7XG59XG4iXX0=
@@ -1,63 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2024 Swiss Federal Railways
3
- *
4
- * This program and the accompanying materials are made
5
- * available under the terms of the Eclipse Public License 2.0
6
- * which is available at https://www.eclipse.org/legal/epl-2.0/
7
- *
8
- * SPDX-License-Identifier: EPL-2.0
9
- */
10
- import { assertInInjectionContext, assertNotInReactiveContext, computed, effect, inject, Injector, isSignal, NgZone, signal, untracked } from '@angular/core';
11
- import { coerceElement } from '@angular/cdk/coercion';
12
- import { Objects } from '@scion/toolkit/util';
13
- import { fromResize$ } from '@scion/toolkit/observable';
14
- import { observeIn, subscribeIn } from '@scion/toolkit/operators';
15
- export function dimension(elementLike, options) {
16
- assertNotInReactiveContext(dimension, 'Invoking `dimension` causes new subscriptions every time. Move `dimension` outside of the reactive context and read the signal value where needed.');
17
- if (!options?.injector) {
18
- assertInInjectionContext(dimension);
19
- }
20
- const injector = options?.injector ?? inject(Injector);
21
- const zone = injector.get(NgZone);
22
- const element = computed(() => coerceElement(isSignal(elementLike) ? elementLike() : elementLike));
23
- const onResize = signal(undefined, { equal: () => false });
24
- // Subscribe to element size changes.
25
- effect(onCleanup => {
26
- const el = element();
27
- if (!el) {
28
- return;
29
- }
30
- untracked(() => {
31
- const subscription = fromResize$(el)
32
- .pipe(
33
- // Avoid triggering change detection cycle.
34
- subscribeIn(fn => zone.runOutsideAngular(fn)),
35
- // Run in animation frame to prevent 'ResizeObserver loop completed with undelivered notifications' error.
36
- // Do not use `animationFrameScheduler` because the scheduler does not necessarily execute in the current execution context, such as inside or outside Angular.
37
- // The scheduler always executes tasks in the context (e.g. zone) where the scheduler was first used in the application.
38
- observeIn(fn => requestAnimationFrame(fn)))
39
- .subscribe(() => {
40
- NgZone.assertNotInAngularZone();
41
- onResize.set();
42
- });
43
- onCleanup(() => subscription.unsubscribe());
44
- });
45
- }, { injector });
46
- // Create signal that recomputes each time the size changes.
47
- return computed(() => {
48
- const el = element();
49
- if (!el) {
50
- return undefined;
51
- }
52
- // Track element size.
53
- onResize();
54
- return {
55
- clientWidth: el.clientWidth,
56
- offsetWidth: el.offsetWidth,
57
- clientHeight: el.clientHeight,
58
- offsetHeight: el.offsetHeight,
59
- element: el,
60
- };
61
- }, { equal: Objects.isEqual });
62
- }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9uLnNpZ25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvZGltZW5zaW9uL3NyYy9kaW1lbnNpb24uc2lnbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLHdCQUF3QixFQUFFLDBCQUEwQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWMsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFaEwsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM1QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQWVoRSxNQUFNLFVBQVUsU0FBUyxDQUFDLFdBQThHLEVBQUUsT0FBK0I7SUFDdkssMEJBQTBCLENBQUMsU0FBUyxFQUFFLG9KQUFvSixDQUFDLENBQUM7SUFDNUwsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUN2Qix3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxFQUFFLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDbkcsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFPLFNBQVMsRUFBRSxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBRS9ELHFDQUFxQztJQUNyQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDakIsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsT0FBTztRQUNULENBQUM7UUFFRCxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2IsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQztpQkFDakMsSUFBSTtZQUNILDJDQUEyQztZQUMzQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0MsMEdBQTBHO1lBQzFHLCtKQUErSjtZQUMvSix3SEFBd0g7WUFDeEgsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDM0M7aUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxNQUFNLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDaEMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxFQUFFLEVBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQztJQUVmLDREQUE0RDtJQUM1RCxPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDbkIsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELHNCQUFzQjtRQUN0QixRQUFRLEVBQUUsQ0FBQztRQUVYLE9BQU87WUFDTCxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVc7WUFDM0IsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXO1lBQzNCLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWTtZQUM3QixZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVk7WUFDN0IsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO0lBQ0osQ0FBQyxFQUFFLEVBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7YXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0LCBhc3NlcnROb3RJblJlYWN0aXZlQ29udGV4dCwgY29tcHV0ZWQsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbmplY3RvciwgaXNTaWduYWwsIE5nWm9uZSwgc2lnbmFsLCBTaWduYWwsIHVudHJhY2tlZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NjaURpbWVuc2lvbn0gZnJvbSAnLi9kaW1lbnNpb24nO1xuaW1wb3J0IHtjb2VyY2VFbGVtZW50fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtPYmplY3RzfSBmcm9tICdAc2Npb24vdG9vbGtpdC91dGlsJztcbmltcG9ydCB7ZnJvbVJlc2l6ZSR9IGZyb20gJ0BzY2lvbi90b29sa2l0L29ic2VydmFibGUnO1xuaW1wb3J0IHtvYnNlcnZlSW4sIHN1YnNjcmliZUlufSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzaWduYWwgb2JzZXJ2aW5nIHRoZSBzaXplIG9mIGFuIGVsZW1lbnQuXG4gKlxuICogVGhlIGVsZW1lbnQgY2FuIGJlIHBhc3NlZCBhcyBhIHNpZ25hbCwgZW5hYmxpbmcgb2JzZXJ2YXRpb24gb2YgdmlldyBjaGlsZHJlbiBpbiB0aGUgY29tcG9uZW50IGNvbnN0cnVjdG9yLlxuICpcbiAqIFRoZSBzaWduYWwgc3Vic2NyaWJlcyB0byB0aGUgbmF0aXZlIHtAbGluayBSZXNpemVPYnNlcnZlcn0gdG8gbW9uaXRvciBlbGVtZW50IHNpemUgY2hhbmdlcy4gRGVzdHJveWluZyB0aGUgaW5qZWN0aW9uIGNvbnRleHQgd2lsbCB1bnN1YnNjcmliZSB0aGUgb2JzZXJ2ZXIuXG4gKlxuICogVXNhZ2U6XG4gKiAtIE11c3QgYmUgY2FsbGVkIHdpdGhpbiBhbiBpbmplY3Rpb24gY29udGV4dCBvciBhbiBpbmplY3RvciBwcm92aWRlZC4gRGVzdHJveWluZyB0aGUgaW5qZWN0b3Igd2lsbCB1bnN1YnNjcmliZSB0aGUgc2lnbmFsLlxuICogLSBNdXN0IG5vdCBiZSBjYWxsZWQgd2l0aGluIGEgcmVhY3RpdmUgY29udGV4dCB0byBhdm9pZCByZXBlYXRlZCBzdWJzY3JpcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGltZW5zaW9uKGVsZW1lbnRMaWtlOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgU2lnbmFsPEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZjxIVE1MRWxlbWVudD4+LCBvcHRpb25zPzoge2luamVjdG9yPzogSW5qZWN0b3J9KTogU2lnbmFsPFNjaURpbWVuc2lvbj47XG5leHBvcnQgZnVuY3Rpb24gZGltZW5zaW9uKGVsZW1lbnRMaWtlOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgU2lnbmFsPEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ+LCBvcHRpb25zPzoge2luamVjdG9yPzogSW5qZWN0b3J9KTogU2lnbmFsPFNjaURpbWVuc2lvbiB8IHVuZGVmaW5lZD47XG5leHBvcnQgZnVuY3Rpb24gZGltZW5zaW9uKGVsZW1lbnRMaWtlOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgU2lnbmFsPEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ+LCBvcHRpb25zPzoge2luamVjdG9yPzogSW5qZWN0b3J9KTogU2lnbmFsPFNjaURpbWVuc2lvbiB8IHVuZGVmaW5lZD4ge1xuICBhc3NlcnROb3RJblJlYWN0aXZlQ29udGV4dChkaW1lbnNpb24sICdJbnZva2luZyBgZGltZW5zaW9uYCBjYXVzZXMgbmV3IHN1YnNjcmlwdGlvbnMgZXZlcnkgdGltZS4gTW92ZSBgZGltZW5zaW9uYCBvdXRzaWRlIG9mIHRoZSByZWFjdGl2ZSBjb250ZXh0IGFuZCByZWFkIHRoZSBzaWduYWwgdmFsdWUgd2hlcmUgbmVlZGVkLicpO1xuICBpZiAoIW9wdGlvbnM/LmluamVjdG9yKSB7XG4gICAgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KGRpbWVuc2lvbik7XG4gIH1cblxuICBjb25zdCBpbmplY3RvciA9IG9wdGlvbnM/LmluamVjdG9yID8/IGluamVjdChJbmplY3Rvcik7XG4gIGNvbnN0IHpvbmUgPSBpbmplY3Rvci5nZXQoTmdab25lKTtcbiAgY29uc3QgZWxlbWVudCA9IGNvbXB1dGVkKCgpID0+IGNvZXJjZUVsZW1lbnQoaXNTaWduYWwoZWxlbWVudExpa2UpID8gZWxlbWVudExpa2UoKSA6IGVsZW1lbnRMaWtlKSk7XG4gIGNvbnN0IG9uUmVzaXplID0gc2lnbmFsPHZvaWQ+KHVuZGVmaW5lZCwge2VxdWFsOiAoKSA9PiBmYWxzZX0pO1xuXG4gIC8vIFN1YnNjcmliZSB0byBlbGVtZW50IHNpemUgY2hhbmdlcy5cbiAgZWZmZWN0KG9uQ2xlYW51cCA9PiB7XG4gICAgY29uc3QgZWwgPSBlbGVtZW50KCk7XG4gICAgaWYgKCFlbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBmcm9tUmVzaXplJChlbClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgLy8gQXZvaWQgdHJpZ2dlcmluZyBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlLlxuICAgICAgICAgIHN1YnNjcmliZUluKGZuID0+IHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoZm4pKSxcbiAgICAgICAgICAvLyBSdW4gaW4gYW5pbWF0aW9uIGZyYW1lIHRvIHByZXZlbnQgJ1Jlc2l6ZU9ic2VydmVyIGxvb3AgY29tcGxldGVkIHdpdGggdW5kZWxpdmVyZWQgbm90aWZpY2F0aW9ucycgZXJyb3IuXG4gICAgICAgICAgLy8gRG8gbm90IHVzZSBgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXJgIGJlY2F1c2UgdGhlIHNjaGVkdWxlciBkb2VzIG5vdCBuZWNlc3NhcmlseSBleGVjdXRlIGluIHRoZSBjdXJyZW50IGV4ZWN1dGlvbiBjb250ZXh0LCBzdWNoIGFzIGluc2lkZSBvciBvdXRzaWRlIEFuZ3VsYXIuXG4gICAgICAgICAgLy8gVGhlIHNjaGVkdWxlciBhbHdheXMgZXhlY3V0ZXMgdGFza3MgaW4gdGhlIGNvbnRleHQgKGUuZy4gem9uZSkgd2hlcmUgdGhlIHNjaGVkdWxlciB3YXMgZmlyc3QgdXNlZCBpbiB0aGUgYXBwbGljYXRpb24uXG4gICAgICAgICAgb2JzZXJ2ZUluKGZuID0+IHJlcXVlc3RBbmltYXRpb25GcmFtZShmbikpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIE5nWm9uZS5hc3NlcnROb3RJbkFuZ3VsYXJab25lKCk7XG4gICAgICAgICAgb25SZXNpemUuc2V0KCk7XG4gICAgICAgIH0pO1xuICAgICAgb25DbGVhbnVwKCgpID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICB9KTtcbiAgfSwge2luamVjdG9yfSk7XG5cbiAgLy8gQ3JlYXRlIHNpZ25hbCB0aGF0IHJlY29tcHV0ZXMgZWFjaCB0aW1lIHRoZSBzaXplIGNoYW5nZXMuXG4gIHJldHVybiBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgZWwgPSBlbGVtZW50KCk7XG4gICAgaWYgKCFlbCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBUcmFjayBlbGVtZW50IHNpemUuXG4gICAgb25SZXNpemUoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBjbGllbnRXaWR0aDogZWwuY2xpZW50V2lkdGgsXG4gICAgICBvZmZzZXRXaWR0aDogZWwub2Zmc2V0V2lkdGgsXG4gICAgICBjbGllbnRIZWlnaHQ6IGVsLmNsaWVudEhlaWdodCxcbiAgICAgIG9mZnNldEhlaWdodDogZWwub2Zmc2V0SGVpZ2h0LFxuICAgICAgZWxlbWVudDogZWwsXG4gICAgfTtcbiAgfSwge2VxdWFsOiBPYmplY3RzLmlzRXF1YWx9KTtcbn1cbiJdfQ==
@@ -1,19 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2019 Swiss Federal Railways
3
- *
4
- * This program and the accompanying materials are made
5
- * available under the terms of the Eclipse Public License 2.0
6
- * which is available at https://www.eclipse.org/legal/epl-2.0/
7
- *
8
- * SPDX-License-Identifier: EPL-2.0
9
- */
10
- /*
11
- * Secondary entrypoint: '@scion/components/dimension'
12
- *
13
- * @see https://github.com/ng-packagr/ng-packagr/blob/master/docs/secondary-entrypoints.md
14
- */
15
- export { SciDimensionModule } from './dimension.module';
16
- export { SciDimensionDirective } from './dimension.directive';
17
- export { dimension } from './dimension.signal';
18
- export { boundingClientRect } from './bounding-client-rect.signal';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvZGltZW5zaW9uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUg7Ozs7R0FJRztBQUNILE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbi8qXG4gKiBTZWNvbmRhcnkgZW50cnlwb2ludDogJ0BzY2lvbi9jb21wb25lbnRzL2RpbWVuc2lvbidcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wYWNrYWdyL25nLXBhY2thZ3IvYmxvYi9tYXN0ZXIvZG9jcy9zZWNvbmRhcnktZW50cnlwb2ludHMubWRcbiAqL1xuZXhwb3J0IHtTY2lEaW1lbnNpb25Nb2R1bGV9IGZyb20gJy4vZGltZW5zaW9uLm1vZHVsZSc7XG5leHBvcnQge1NjaURpbWVuc2lvbkRpcmVjdGl2ZX0gZnJvbSAnLi9kaW1lbnNpb24uZGlyZWN0aXZlJztcbmV4cG9ydCB7ZGltZW5zaW9ufSBmcm9tICcuL2RpbWVuc2lvbi5zaWduYWwnO1xuZXhwb3J0IHtib3VuZGluZ0NsaWVudFJlY3R9IGZyb20gJy4vYm91bmRpbmctY2xpZW50LXJlY3Quc2lnbmFsJztcbmV4cG9ydCB7U2NpRGltZW5zaW9ufSBmcm9tICcuL2RpbWVuc2lvbic7XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Npb24tY29tcG9uZW50cy1kaW1lbnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi9jb21wb25lbnRzL2RpbWVuc2lvbi9zcmMvc2Npb24tY29tcG9uZW50cy1kaW1lbnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -1,11 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2019 Swiss Federal Railways
3
- *
4
- * This program and the accompanying materials are made
5
- * available under the terms of the Eclipse Public License 2.0
6
- * which is available at https://www.eclipse.org/legal/epl-2.0/
7
- *
8
- * SPDX-License-Identifier: EPL-2.0
9
- */
10
- export {};
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG4vKipcbiAqIFByaW1hcnkgZW50cnkgcG9pbnQgZm9yIGFsbCBwdWJsaWMgQVBJcyBvZiB0aGlzIHBhY2thZ2UuXG4gKi9cbmV4cG9ydCB7fSBmcm9tICcnO1xuIl19
@@ -1,31 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2019 Swiss Federal Railways
3
- *
4
- * This program and the accompanying materials are made
5
- * available under the terms of the Eclipse Public License 2.0
6
- * which is available at https://www.eclipse.org/legal/epl-2.0/
7
- *
8
- * SPDX-License-Identifier: EPL-2.0
9
- */
10
- import { Directive } from '@angular/core';
11
- import * as i0 from "@angular/core";
12
- /**
13
- * Provides access to the native {@link HTMLElement} of the host.
14
- */
15
- export class SciElementRefDirective {
16
- constructor(host) {
17
- this.host = host;
18
- this.nativeElement = host.nativeElement;
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciElementRefDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: SciElementRefDirective, isStandalone: true, selector: "[sciElementRef]", exportAs: ["sciElementRef"], ngImport: i0 }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciElementRefDirective, decorators: [{
24
- type: Directive,
25
- args: [{
26
- selector: '[sciElementRef]',
27
- exportAs: 'sciElementRef',
28
- standalone: true,
29
- }]
30
- }], ctorParameters: () => [{ type: i0.ElementRef }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1yZWYuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy9zYXNoYm94L3NyYy9lbGVtZW50LXJlZi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDOztBQUVwRDs7R0FFRztBQU1ILE1BQU0sT0FBTyxzQkFBc0I7SUFJakMsWUFBbUIsSUFBNkI7UUFBN0IsU0FBSSxHQUFKLElBQUksQ0FBeUI7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzFDLENBQUM7OEdBTlUsc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBTGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBQcm92aWRlcyBhY2Nlc3MgdG8gdGhlIG5hdGl2ZSB7QGxpbmsgSFRNTEVsZW1lbnR9IG9mIHRoZSBob3N0LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2NpRWxlbWVudFJlZl0nLFxuICBleHBvcnRBczogJ3NjaUVsZW1lbnRSZWYnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTY2lFbGVtZW50UmVmRGlyZWN0aXZlIHtcblxuICBwdWJsaWMgcmVhZG9ubHkgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGhvc3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgdGhpcy5uYXRpdmVFbGVtZW50ID0gaG9zdC5uYXRpdmVFbGVtZW50O1xuICB9XG59XG4iXX0=