@scion/components 18.1.0 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dimension/dimension.module.d.ts +2 -0
  2. package/dimension/public_api.d.ts +1 -1
  3. package/fesm2022/scion-components-dimension.mjs +36 -23
  4. package/fesm2022/scion-components-dimension.mjs.map +1 -1
  5. package/fesm2022/scion-components-sashbox.mjs +73 -43
  6. package/fesm2022/scion-components-sashbox.mjs.map +1 -1
  7. package/fesm2022/scion-components-splitter.mjs +40 -33
  8. package/fesm2022/scion-components-splitter.mjs.map +1 -1
  9. package/fesm2022/scion-components-throbber.mjs +39 -39
  10. package/fesm2022/scion-components-throbber.mjs.map +1 -1
  11. package/fesm2022/scion-components-viewport.mjs +225 -277
  12. package/fesm2022/scion-components-viewport.mjs.map +1 -1
  13. package/package.json +5 -17
  14. package/sashbox/sashbox.module.d.ts +2 -0
  15. package/splitter/public_api.d.ts +1 -1
  16. package/splitter/splitter.module.d.ts +2 -0
  17. package/throbber/throbber.module.d.ts +2 -0
  18. package/viewport/native-scrollbar-track-size-provider.service.d.ts +6 -16
  19. package/viewport/public_api.d.ts +1 -1
  20. package/viewport/scrollable.directive.d.ts +9 -10
  21. package/viewport/scrollbar/scrollbar.component.d.ts +17 -32
  22. package/viewport/viewport.component.d.ts +14 -16
  23. package/viewport/viewport.module.d.ts +2 -0
  24. package/esm2022/dimension/bounding-client-rect.signal.mjs +0 -53
  25. package/esm2022/dimension/dimension.directive.mjs +0 -62
  26. package/esm2022/dimension/dimension.mjs +0 -11
  27. package/esm2022/dimension/dimension.module.mjs +0 -34
  28. package/esm2022/dimension/dimension.signal.mjs +0 -58
  29. package/esm2022/dimension/public_api.mjs +0 -19
  30. package/esm2022/dimension/scion-components-dimension.mjs +0 -5
  31. package/esm2022/public-api.mjs +0 -11
  32. package/esm2022/sashbox/element-ref.directive.mjs +0 -31
  33. package/esm2022/sashbox/public_api.mjs +0 -18
  34. package/esm2022/sashbox/sash-initializer.directive.mjs +0 -35
  35. package/esm2022/sashbox/sash.directive.mjs +0 -145
  36. package/esm2022/sashbox/sashbox-accessor.mjs +0 -6
  37. package/esm2022/sashbox/sashbox.component.mjs +0 -282
  38. package/esm2022/sashbox/sashbox.module.mjs +0 -55
  39. package/esm2022/sashbox/scion-components-sashbox.mjs +0 -5
  40. package/esm2022/scion-components.mjs +0 -5
  41. package/esm2022/splitter/public_api.mjs +0 -17
  42. package/esm2022/splitter/scion-components-splitter.mjs +0 -5
  43. package/esm2022/splitter/splitter.component.mjs +0 -226
  44. package/esm2022/splitter/splitter.module.mjs +0 -38
  45. package/esm2022/throbber/ellipsis-throbber/ellipsis-throbber.component.mjs +0 -25
  46. package/esm2022/throbber/public_api.mjs +0 -17
  47. package/esm2022/throbber/ripple-throbber/ripple-throbber.component.mjs +0 -25
  48. package/esm2022/throbber/roller-throbber/roller-throbber.component.mjs +0 -25
  49. package/esm2022/throbber/scion-components-throbber.mjs +0 -5
  50. package/esm2022/throbber/spinner-throbber/spinner-throbber.component.mjs +0 -26
  51. package/esm2022/throbber/throbber.component.mjs +0 -72
  52. package/esm2022/throbber/throbber.module.mjs +0 -32
  53. package/esm2022/viewport/native-scrollbar-track-size-provider.service.mjs +0 -115
  54. package/esm2022/viewport/public_api.mjs +0 -19
  55. package/esm2022/viewport/scion-components-viewport.mjs +0 -5
  56. package/esm2022/viewport/scrollable.directive.mjs +0 -94
  57. package/esm2022/viewport/scrollbar/scrollbar.component.mjs +0 -323
  58. package/esm2022/viewport/viewport.component.mjs +0 -288
  59. package/esm2022/viewport/viewport.module.mjs +0 -42
@@ -1,4 +1,4 @@
1
- import { ElementRef, EventEmitter } from '@angular/core';
1
+ import { ElementRef } from '@angular/core';
2
2
  import { SciNativeScrollbarTrackSizeProvider } from './native-scrollbar-track-size-provider.service';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
@@ -69,26 +69,20 @@ import * as i0 from "@angular/core";
69
69
  * ```
70
70
  */
71
71
  export declare class SciViewportComponent {
72
- host: ElementRef<HTMLElement>;
73
- nativeScrollbarTrackSizeProvider: SciNativeScrollbarTrackSizeProvider;
74
- private _viewportElement;
72
+ private _viewport;
75
73
  private _viewportClient;
76
- private _scrollbarStyle;
74
+ private _host;
75
+ protected nativeScrollbarTrackSizeProvider: SciNativeScrollbarTrackSizeProvider;
77
76
  /**
78
- * Controls whether to use native scrollbars or, which is by default, emulated scrollbars that sit on top of the viewport client.
79
- * In the latter, the viewport client remains natively scrollable.
77
+ * Controls if to use the native scrollbar or a scrollbar that sits on top of the viewport. Defaults to `on-top`.
80
78
  */
81
- set scrollbarStyle(scrollbarStyle: ScrollbarStyle);
82
- get scrollbarStyle(): ScrollbarStyle;
79
+ scrollbarStyle: import("@angular/core").InputSignal<ScrollbarStyle>;
83
80
  /**
84
- * Emits upon a scroll event.
85
- *
86
- * You can add [sciDimension] directive to the viewport or viewport client to be notified about layout changes.
81
+ * Emits when the viewport is scrolled. The event is emitted outside the Angular zone to avoid unnecessary change detection cycles.
87
82
  */
88
- scroll: EventEmitter<Event>;
89
- constructor(host: ElementRef<HTMLElement>, nativeScrollbarTrackSizeProvider: SciNativeScrollbarTrackSizeProvider);
83
+ scroll: import("@angular/core").OutputEmitterRef<Event>;
84
+ constructor();
90
85
  focus(): void;
91
- onScroll(event: Event): void;
92
86
  /**
93
87
  * Returns the number of pixels that the viewport client is scrolled vertically.
94
88
  *
@@ -155,8 +149,12 @@ export declare class SciViewportComponent {
155
149
  * in the viewport or the element or any ancestor has the `display` property set to `none`.
156
150
  */
157
151
  computeOffset(element: ElementRef<HTMLElement> | HTMLElement, border: 'left' | 'top'): number | null;
152
+ /**
153
+ * Emits when the scroll position changes.
154
+ */
155
+ private installScrollEmitter;
158
156
  static ɵfac: i0.ɵɵFactoryDeclaration<SciViewportComponent, never>;
159
- static ɵcmp: i0.ɵɵComponentDeclaration<SciViewportComponent, "sci-viewport", never, { "scrollbarStyle": { "alias": "scrollbarStyle"; "required": false; }; }, { "scroll": "scroll"; }, never, never, true, never>;
157
+ static ɵcmp: i0.ɵɵComponentDeclaration<SciViewportComponent, "sci-viewport", never, { "scrollbarStyle": { "alias": "scrollbarStyle"; "required": false; "isSignal": true; }; }, { "scroll": "scroll"; }, never, never, true, never>;
160
158
  }
161
159
  /**
162
160
  * Represents a scrollbar style.
@@ -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,53 +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 { subscribeInside } 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
- .pipe(subscribeInside(fn => zone.runOutsideAngular(fn)))
32
- .subscribe(() => {
33
- NgZone.assertNotInAngularZone();
34
- onBoundingBoxChange.set();
35
- });
36
- onCleanup(() => subscription.unsubscribe());
37
- });
38
- }, { injector });
39
- // Create signal that recomputes each time the bounding box changes.
40
- return computed(() => {
41
- const el = element();
42
- if (!el) {
43
- return undefined;
44
- }
45
- // Track bounding box.
46
- onBoundingBoxChange();
47
- return el.getBoundingClientRect();
48
- }, { equal: isEqualDomRect });
49
- }
50
- function isEqualDomRect(a, b) {
51
- return a?.top === b?.top && a?.right === b?.right && a?.bottom === b?.bottom && a?.left === b?.left;
52
- }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmRpbmctY2xpZW50LXJlY3Quc2lnbmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy9kaW1lbnNpb24vc3JjL2JvdW5kaW5nLWNsaWVudC1yZWN0LnNpZ25hbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyx3QkFBd0IsRUFBRSwwQkFBMEIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFjLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hMLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFvQnpELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxXQUE4RyxFQUFFLE9BQStCO0lBQ2hMLDBCQUEwQixDQUFDLGtCQUFrQixFQUFFLHNLQUFzSyxDQUFDLENBQUM7SUFDdk4sSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUN2Qix3QkFBd0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNuRyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBTyxTQUFTLEVBQUUsRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQztJQUUxRSw2Q0FBNkM7SUFDN0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ2pCLE1BQU0sRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE9BQU87UUFDVCxDQUFDO1FBRUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNiLE1BQU0sWUFBWSxHQUFHLHVCQUF1QixDQUFDLEVBQUUsQ0FBQztpQkFDN0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUN2RCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUNoQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztZQUNMLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsRUFBRSxFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUM7SUFFZixvRUFBb0U7SUFDcEUsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ25CLE1BQU0sRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxzQkFBc0I7UUFDdEIsbUJBQW1CLEVBQUUsQ0FBQztRQUV0QixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3BDLENBQUMsRUFBRSxFQUFDLEtBQUssRUFBRSxjQUFjLEVBQUMsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxDQUFzQixFQUFFLENBQXNCO0lBQ3BFLE9BQU8sQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLElBQUksS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDO0FBQ3RHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7YXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0LCBhc3NlcnROb3RJblJlYWN0aXZlQ29udGV4dCwgY29tcHV0ZWQsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbmplY3RvciwgaXNTaWduYWwsIE5nWm9uZSwgc2lnbmFsLCBTaWduYWwsIHVudHJhY2tlZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2NvZXJjZUVsZW1lbnR9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge2Zyb21Cb3VuZGluZ0NsaWVudFJlY3QkfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vYnNlcnZhYmxlJztcbmltcG9ydCB7c3Vic2NyaWJlSW5zaWRlfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzaWduYWwgb2JzZXJ2aW5nIHRoZSBib3VuZGluZyBib3ggb2YgYW4gZWxlbWVudC5cbiAqXG4gKiBUaGUgYm91bmRpbmcgYm94IGluY2x1ZGVzIHRoZSBlbGVtZW50J3MgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHRvcC1sZWZ0IG9mIHRoZSB2aWV3cG9ydCBhbmQgaXRzIHNpemUuXG4gKiBSZWZlciB0byBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRWxlbWVudC9nZXRCb3VuZGluZ0NsaWVudFJlY3QgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBUaGUgZWxlbWVudCBjYW4gYmUgcGFzc2VkIGFzIGEgc2lnbmFsLCBlbmFibGluZyBvYnNlcnZhdGlvbiBvZiB2aWV3IGNoaWxkcmVuIGluIHRoZSBjb21wb25lbnQgY29uc3RydWN0b3IuXG4gKlxuICogVGhlcmUgaXMgbm8gbmF0aXZlIGJyb3dzZXIgQVBJIHRvIG9ic2VydmUgdGhlIHBvc2l0aW9uIG9mIGFuIGVsZW1lbnQuIFRoZSBzaWduYWwgdXNlcyB7QGxpbmsgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJ9IGFuZFxuICoge0BsaW5rIFJlc2l6ZU9ic2VydmVyfSB0byBkZXRlY3QgcG9zaXRpb24gY2hhbmdlcy4gRm9yIHRyYWNraW5nIG9ubHkgc2l6ZSBjaGFuZ2VzLCB1c2UgdGhlIHtAbGluayBkaW1lbnNpb259IHNpZ25hbCBpbnN0ZWFkLlxuICpcbiAqIFVzYWdlOlxuICogLSBNdXN0IGJlIGNhbGxlZCB3aXRoaW4gYW4gaW5qZWN0aW9uIGNvbnRleHQgb3IgYW4gaW5qZWN0b3IgcHJvdmlkZWQuIERlc3Ryb3lpbmcgdGhlIGluamVjdG9yIHdpbGwgdW5zdWJzY3JpYmUgdGhlIHNpZ25hbC5cbiAqIC0gTXVzdCBub3QgYmUgY2FsbGVkIHdpdGhpbiBhIHJlYWN0aXZlIGNvbnRleHQgdG8gYXZvaWQgcmVwZWF0ZWQgc3Vic2NyaXB0aW9ucy5cbiAqIC0gVGhlIGVsZW1lbnQgYW5kIHRoZSBkb2N1bWVudCByb290IChgPGh0bWw+YCkgbXVzdCBiZSBwb3NpdGlvbmVkIGByZWxhdGl2ZWAgb3IgYGFic29sdXRlYC4gSWYgbm90LCBhIHdhcm5pbmcgaXMgbG9nZ2VkLCBhbmQgcG9zaXRpb25pbmcgY2hhbmdlZCB0byBgcmVsYXRpdmVgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnRMaWtlOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgU2lnbmFsPEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZjxIVE1MRWxlbWVudD4+LCBvcHRpb25zPzoge2luamVjdG9yPzogSW5qZWN0b3J9KTogU2lnbmFsPERPTVJlY3Q+O1xuZXhwb3J0IGZ1bmN0aW9uIGJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50TGlrZTogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IFNpZ25hbDxIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkPiwgb3B0aW9ucz86IHtpbmplY3Rvcj86IEluamVjdG9yfSk6IFNpZ25hbDxET01SZWN0IHwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBib3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudExpa2U6IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBTaWduYWw8SFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZD4sIG9wdGlvbnM/OiB7aW5qZWN0b3I/OiBJbmplY3Rvcn0pOiBTaWduYWw8RE9NUmVjdCB8IHVuZGVmaW5lZD4ge1xuICBhc3NlcnROb3RJblJlYWN0aXZlQ29udGV4dChib3VuZGluZ0NsaWVudFJlY3QsICdJbnZva2luZyBgYm91bmRpbmdDbGllbnRSZWN0YCBjYXVzZXMgbmV3IHN1YnNjcmlwdGlvbnMgZXZlcnkgdGltZS4gTW92ZSBgYm91bmRpbmdDbGllbnRSZWN0YCBvdXRzaWRlIG9mIHRoZSByZWFjdGl2ZSBjb250ZXh0IGFuZCByZWFkIHRoZSBzaWduYWwgdmFsdWUgd2hlcmUgbmVlZGVkLicpO1xuICBpZiAoIW9wdGlvbnM/LmluamVjdG9yKSB7XG4gICAgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KGJvdW5kaW5nQ2xpZW50UmVjdCk7XG4gIH1cblxuICBjb25zdCBpbmplY3RvciA9IG9wdGlvbnM/LmluamVjdG9yID8/IGluamVjdChJbmplY3Rvcik7XG4gIGNvbnN0IHpvbmUgPSBpbmplY3Rvci5nZXQoTmdab25lKTtcbiAgY29uc3QgZWxlbWVudCA9IGNvbXB1dGVkKCgpID0+IGNvZXJjZUVsZW1lbnQoaXNTaWduYWwoZWxlbWVudExpa2UpID8gZWxlbWVudExpa2UoKSA6IGVsZW1lbnRMaWtlKSk7XG4gIGNvbnN0IG9uQm91bmRpbmdCb3hDaGFuZ2UgPSBzaWduYWw8dm9pZD4odW5kZWZpbmVkLCB7ZXF1YWw6ICgpID0+IGZhbHNlfSk7XG5cbiAgLy8gU3Vic2NyaWJlIHRvIGVsZW1lbnQgYm91bmRpbmcgYm94IGNoYW5nZXMuXG4gIGVmZmVjdChvbkNsZWFudXAgPT4ge1xuICAgIGNvbnN0IGVsID0gZWxlbWVudCgpO1xuICAgIGlmICghZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gZnJvbUJvdW5kaW5nQ2xpZW50UmVjdCQoZWwpXG4gICAgICAgIC5waXBlKHN1YnNjcmliZUluc2lkZShmbiA9PiB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKGZuKSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIE5nWm9uZS5hc3NlcnROb3RJbkFuZ3VsYXJab25lKCk7XG4gICAgICAgICAgb25Cb3VuZGluZ0JveENoYW5nZS5zZXQoKTtcbiAgICAgICAgfSk7XG4gICAgICBvbkNsZWFudXAoKCkgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgIH0pO1xuICB9LCB7aW5qZWN0b3J9KTtcblxuICAvLyBDcmVhdGUgc2lnbmFsIHRoYXQgcmVjb21wdXRlcyBlYWNoIHRpbWUgdGhlIGJvdW5kaW5nIGJveCBjaGFuZ2VzLlxuICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGVsID0gZWxlbWVudCgpO1xuICAgIGlmICghZWwpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gVHJhY2sgYm91bmRpbmcgYm94LlxuICAgIG9uQm91bmRpbmdCb3hDaGFuZ2UoKTtcblxuICAgIHJldHVybiBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgfSwge2VxdWFsOiBpc0VxdWFsRG9tUmVjdH0pO1xufVxuXG5mdW5jdGlvbiBpc0VxdWFsRG9tUmVjdChhOiBET01SZWN0IHwgdW5kZWZpbmVkLCBiOiBET01SZWN0IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIHJldHVybiBhPy50b3AgPT09IGI/LnRvcCAmJiBhPy5yaWdodCA9PT0gYj8ucmlnaHQgJiYgYT8uYm90dG9tID09PSBiPy5ib3R0b20gJiYgYT8ubGVmdCA9PT0gYj8ubGVmdDtcbn1cbiJdfQ==
@@ -1,62 +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 { observeInside, subscribeInside } from '@scion/toolkit/operators';
14
- import { animationFrameScheduler, observeOn, subscribeOn } from 'rxjs';
15
- import * as i0 from "@angular/core";
16
- /**
17
- * Observes the size of the host element.
18
- *
19
- * ---
20
- * Usage:
21
- *
22
- * ```html
23
- * <div sciDimension (sciDimensionChange)="onDimensionChange($event)"></div>
24
- * ```
25
- */
26
- export class SciDimensionDirective {
27
- constructor() {
28
- /**
29
- * Controls if to output outside the Angular zone. Defaults to `false`.
30
- */
31
- this.emitOutsideAngular = input(false);
32
- /**
33
- * Outputs the size of the element.
34
- */
35
- this.dimensionChange = output({ alias: 'sciDimensionChange' });
36
- const host = inject((ElementRef)).nativeElement;
37
- const zone = inject(NgZone);
38
- fromResize$(host)
39
- .pipe(subscribeInside(continueFn => zone.runOutsideAngular(continueFn)), observeInside(continueFn => this.emitOutsideAngular() ? continueFn() : zone.run(continueFn)), subscribeOn(animationFrameScheduler), // do not block resize callback (ResizeObserver loop completed with undelivered notifications)
40
- observeOn(animationFrameScheduler), // do not block resize callback (ResizeObserver loop completed with undelivered notifications)
41
- takeUntilDestroyed())
42
- .subscribe(() => {
43
- this.dimensionChange.emit({
44
- clientWidth: host.clientWidth,
45
- offsetWidth: host.offsetWidth,
46
- clientHeight: host.clientHeight,
47
- offsetHeight: host.offsetHeight,
48
- element: host,
49
- });
50
- });
51
- }
52
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciDimensionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
53
- 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 }); }
54
- }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciDimensionDirective, decorators: [{
56
- type: Directive,
57
- args: [{
58
- selector: '[sciDimension]',
59
- standalone: true,
60
- }]
61
- }], ctorParameters: () => [] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvZGltZW5zaW9uL3NyYy9kaW1lbnNpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsYUFBYSxFQUFFLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUdyRTs7Ozs7Ozs7O0dBU0c7QUFLSCxNQUFNLE9BQU8scUJBQXFCO0lBWWhDO1FBVkE7O1dBRUc7UUFDSSx1QkFBa0IsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekM7O1dBRUc7UUFDSSxvQkFBZSxHQUFHLE1BQU0sQ0FBZSxFQUFDLEtBQUssRUFBRSxvQkFBb0IsRUFBQyxDQUFDLENBQUM7UUFHM0UsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1QixXQUFXLENBQUMsSUFBSSxDQUFDO2FBQ2QsSUFBSSxDQUNILGVBQWUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUNqRSxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsRUFDNUYsV0FBVyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsOEZBQThGO1FBQ3BJLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLDhGQUE4RjtRQUNsSSxrQkFBa0IsRUFBRSxDQUNyQjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztnQkFDeEIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzdCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDL0IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixPQUFPLEVBQUUsSUFBSTthQUNkLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FqQ1UscUJBQXFCO2tHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIE5nWm9uZSwgb3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZnJvbVJlc2l6ZSR9IGZyb20gJ0BzY2lvbi90b29sa2l0L29ic2VydmFibGUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7b2JzZXJ2ZUluc2lkZSwgc3Vic2NyaWJlSW5zaWRlfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuaW1wb3J0IHthbmltYXRpb25GcmFtZVNjaGVkdWxlciwgb2JzZXJ2ZU9uLCBzdWJzY3JpYmVPbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1NjaURpbWVuc2lvbn0gZnJvbSAnLi9kaW1lbnNpb24nO1xuXG4vKipcbiAqIE9ic2VydmVzIHRoZSBzaXplIG9mIHRoZSBob3N0IGVsZW1lbnQuXG4gKlxuICogLS0tXG4gKiBVc2FnZTpcbiAqXG4gKiBgYGBodG1sXG4gKiA8ZGl2IHNjaURpbWVuc2lvbiAoc2NpRGltZW5zaW9uQ2hhbmdlKT1cIm9uRGltZW5zaW9uQ2hhbmdlKCRldmVudClcIj48L2Rpdj5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2NpRGltZW5zaW9uXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNjaURpbWVuc2lvbkRpcmVjdGl2ZSB7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIGlmIHRvIG91dHB1dCBvdXRzaWRlIHRoZSBBbmd1bGFyIHpvbmUuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICBwdWJsaWMgZW1pdE91dHNpZGVBbmd1bGFyID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBPdXRwdXRzIHRoZSBzaXplIG9mIHRoZSBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGRpbWVuc2lvbkNoYW5nZSA9IG91dHB1dDxTY2lEaW1lbnNpb24+KHthbGlhczogJ3NjaURpbWVuc2lvbkNoYW5nZSd9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCBob3N0ID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KS5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHpvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAgIGZyb21SZXNpemUkKGhvc3QpXG4gICAgICAucGlwZShcbiAgICAgICAgc3Vic2NyaWJlSW5zaWRlKGNvbnRpbnVlRm4gPT4gem9uZS5ydW5PdXRzaWRlQW5ndWxhcihjb250aW51ZUZuKSksXG4gICAgICAgIG9ic2VydmVJbnNpZGUoY29udGludWVGbiA9PiB0aGlzLmVtaXRPdXRzaWRlQW5ndWxhcigpID8gY29udGludWVGbigpIDogem9uZS5ydW4oY29udGludWVGbikpLFxuICAgICAgICBzdWJzY3JpYmVPbihhbmltYXRpb25GcmFtZVNjaGVkdWxlciksIC8vIGRvIG5vdCBibG9jayByZXNpemUgY2FsbGJhY2sgKFJlc2l6ZU9ic2VydmVyIGxvb3AgY29tcGxldGVkIHdpdGggdW5kZWxpdmVyZWQgbm90aWZpY2F0aW9ucylcbiAgICAgICAgb2JzZXJ2ZU9uKGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKSwgLy8gZG8gbm90IGJsb2NrIHJlc2l6ZSBjYWxsYmFjayAoUmVzaXplT2JzZXJ2ZXIgbG9vcCBjb21wbGV0ZWQgd2l0aCB1bmRlbGl2ZXJlZCBub3RpZmljYXRpb25zKVxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmRpbWVuc2lvbkNoYW5nZS5lbWl0KHtcbiAgICAgICAgICBjbGllbnRXaWR0aDogaG9zdC5jbGllbnRXaWR0aCxcbiAgICAgICAgICBvZmZzZXRXaWR0aDogaG9zdC5vZmZzZXRXaWR0aCxcbiAgICAgICAgICBjbGllbnRIZWlnaHQ6IGhvc3QuY2xpZW50SGVpZ2h0LFxuICAgICAgICAgIG9mZnNldEhlaWdodDogaG9zdC5vZmZzZXRIZWlnaHQsXG4gICAgICAgICAgZWxlbWVudDogaG9zdCxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxufVxuIl19
@@ -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,58 +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 { animationFrameScheduler, observeOn } from 'rxjs';
15
- import { subscribeInside } from '@scion/toolkit/operators';
16
- export function dimension(elementLike, options) {
17
- assertNotInReactiveContext(dimension, 'Invoking `dimension` causes new subscriptions every time. Move `dimension` outside of the reactive context and read the signal value where needed.');
18
- if (!options?.injector) {
19
- assertInInjectionContext(dimension);
20
- }
21
- const injector = options?.injector ?? inject(Injector);
22
- const zone = injector.get(NgZone);
23
- const element = computed(() => coerceElement(isSignal(elementLike) ? elementLike() : elementLike));
24
- const onResize = signal(undefined, { equal: () => false });
25
- // Subscribe to element size changes.
26
- effect(onCleanup => {
27
- const el = element();
28
- if (!el) {
29
- return;
30
- }
31
- untracked(() => {
32
- const subscription = fromResize$(el)
33
- .pipe(subscribeInside(fn => zone.runOutsideAngular(fn)), observeOn(animationFrameScheduler))
34
- .subscribe(() => {
35
- NgZone.assertNotInAngularZone();
36
- onResize.set();
37
- });
38
- onCleanup(() => subscription.unsubscribe());
39
- });
40
- }, { injector });
41
- // Create signal that recomputes each time the size changes.
42
- return computed(() => {
43
- const el = element();
44
- if (!el) {
45
- return undefined;
46
- }
47
- // Track element size.
48
- onResize();
49
- return {
50
- clientWidth: el.clientWidth,
51
- offsetWidth: el.offsetWidth,
52
- clientHeight: el.clientHeight,
53
- offsetHeight: el.offsetHeight,
54
- element: el,
55
- };
56
- }, { equal: Objects.isEqual });
57
- }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9uLnNpZ25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvZGltZW5zaW9uL3NyYy9kaW1lbnNpb24uc2lnbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLHdCQUF3QixFQUFFLDBCQUEwQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWMsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFaEwsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM1QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFlekQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxXQUE4RyxFQUFFLE9BQStCO0lBQ3ZLLDBCQUEwQixDQUFDLFNBQVMsRUFBRSxvSkFBb0osQ0FBQyxDQUFDO0lBQzVMLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDdkIsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLE9BQU8sRUFBRSxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ25HLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBTyxTQUFTLEVBQUUsRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQztJQUUvRCxxQ0FBcUM7SUFDckMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ2pCLE1BQU0sRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE9BQU87UUFDVCxDQUFDO1FBRUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNiLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7aUJBQ2pDLElBQUksQ0FDSCxlQUFlLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDakQsU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQ25DO2lCQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQ2hDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQztZQUNMLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsRUFBRSxFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUM7SUFFZiw0REFBNEQ7SUFDNUQsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ25CLE1BQU0sRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxzQkFBc0I7UUFDdEIsUUFBUSxFQUFFLENBQUM7UUFFWCxPQUFPO1lBQ0wsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXO1lBQzNCLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVztZQUMzQixZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVk7WUFDN0IsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZO1lBQzdCLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztJQUNKLENBQUMsRUFBRSxFQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQztBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge2Fzc2VydEluSW5qZWN0aW9uQ29udGV4dCwgYXNzZXJ0Tm90SW5SZWFjdGl2ZUNvbnRleHQsIGNvbXB1dGVkLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0b3IsIGlzU2lnbmFsLCBOZ1pvbmUsIHNpZ25hbCwgU2lnbmFsLCB1bnRyYWNrZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTY2lEaW1lbnNpb259IGZyb20gJy4vZGltZW5zaW9uJztcbmltcG9ydCB7Y29lcmNlRWxlbWVudH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7T2JqZWN0c30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5pbXBvcnQge2Zyb21SZXNpemUkfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vYnNlcnZhYmxlJztcbmltcG9ydCB7YW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIsIG9ic2VydmVPbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3N1YnNjcmliZUluc2lkZX0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgc2lnbmFsIG9ic2VydmluZyB0aGUgc2l6ZSBvZiBhbiBlbGVtZW50LlxuICpcbiAqIFRoZSBlbGVtZW50IGNhbiBiZSBwYXNzZWQgYXMgYSBzaWduYWwsIGVuYWJsaW5nIG9ic2VydmF0aW9uIG9mIHZpZXcgY2hpbGRyZW4gaW4gdGhlIGNvbXBvbmVudCBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBUaGUgc2lnbmFsIHN1YnNjcmliZXMgdG8gdGhlIG5hdGl2ZSB7QGxpbmsgUmVzaXplT2JzZXJ2ZXJ9IHRvIG1vbml0b3IgZWxlbWVudCBzaXplIGNoYW5nZXMuIERlc3Ryb3lpbmcgdGhlIGluamVjdGlvbiBjb250ZXh0IHdpbGwgdW5zdWJzY3JpYmUgdGhlIG9ic2VydmVyLlxuICpcbiAqIFVzYWdlOlxuICogLSBNdXN0IGJlIGNhbGxlZCB3aXRoaW4gYW4gaW5qZWN0aW9uIGNvbnRleHQgb3IgYW4gaW5qZWN0b3IgcHJvdmlkZWQuIERlc3Ryb3lpbmcgdGhlIGluamVjdG9yIHdpbGwgdW5zdWJzY3JpYmUgdGhlIHNpZ25hbC5cbiAqIC0gTXVzdCBub3QgYmUgY2FsbGVkIHdpdGhpbiBhIHJlYWN0aXZlIGNvbnRleHQgdG8gYXZvaWQgcmVwZWF0ZWQgc3Vic2NyaXB0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpbWVuc2lvbihlbGVtZW50TGlrZTogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IFNpZ25hbDxIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+Piwgb3B0aW9ucz86IHtpbmplY3Rvcj86IEluamVjdG9yfSk6IFNpZ25hbDxTY2lEaW1lbnNpb24+O1xuZXhwb3J0IGZ1bmN0aW9uIGRpbWVuc2lvbihlbGVtZW50TGlrZTogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IFNpZ25hbDxIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkPiwgb3B0aW9ucz86IHtpbmplY3Rvcj86IEluamVjdG9yfSk6IFNpZ25hbDxTY2lEaW1lbnNpb24gfCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGRpbWVuc2lvbihlbGVtZW50TGlrZTogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IFNpZ25hbDxIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkPiwgb3B0aW9ucz86IHtpbmplY3Rvcj86IEluamVjdG9yfSk6IFNpZ25hbDxTY2lEaW1lbnNpb24gfCB1bmRlZmluZWQ+IHtcbiAgYXNzZXJ0Tm90SW5SZWFjdGl2ZUNvbnRleHQoZGltZW5zaW9uLCAnSW52b2tpbmcgYGRpbWVuc2lvbmAgY2F1c2VzIG5ldyBzdWJzY3JpcHRpb25zIGV2ZXJ5IHRpbWUuIE1vdmUgYGRpbWVuc2lvbmAgb3V0c2lkZSBvZiB0aGUgcmVhY3RpdmUgY29udGV4dCBhbmQgcmVhZCB0aGUgc2lnbmFsIHZhbHVlIHdoZXJlIG5lZWRlZC4nKTtcbiAgaWYgKCFvcHRpb25zPy5pbmplY3Rvcikge1xuICAgIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChkaW1lbnNpb24pO1xuICB9XG5cbiAgY29uc3QgaW5qZWN0b3IgPSBvcHRpb25zPy5pbmplY3RvciA/PyBpbmplY3QoSW5qZWN0b3IpO1xuICBjb25zdCB6b25lID0gaW5qZWN0b3IuZ2V0KE5nWm9uZSk7XG4gIGNvbnN0IGVsZW1lbnQgPSBjb21wdXRlZCgoKSA9PiBjb2VyY2VFbGVtZW50KGlzU2lnbmFsKGVsZW1lbnRMaWtlKSA/IGVsZW1lbnRMaWtlKCkgOiBlbGVtZW50TGlrZSkpO1xuICBjb25zdCBvblJlc2l6ZSA9IHNpZ25hbDx2b2lkPih1bmRlZmluZWQsIHtlcXVhbDogKCkgPT4gZmFsc2V9KTtcblxuICAvLyBTdWJzY3JpYmUgdG8gZWxlbWVudCBzaXplIGNoYW5nZXMuXG4gIGVmZmVjdChvbkNsZWFudXAgPT4ge1xuICAgIGNvbnN0IGVsID0gZWxlbWVudCgpO1xuICAgIGlmICghZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gZnJvbVJlc2l6ZSQoZWwpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHN1YnNjcmliZUluc2lkZShmbiA9PiB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKGZuKSksXG4gICAgICAgICAgb2JzZXJ2ZU9uKGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKSwgLy8gZG8gbm90IGJsb2NrIHJlc2l6ZSBjYWxsYmFjayAoUmVzaXplT2JzZXJ2ZXIgbG9vcCBjb21wbGV0ZWQgd2l0aCB1bmRlbGl2ZXJlZCBub3RpZmljYXRpb25zKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIE5nWm9uZS5hc3NlcnROb3RJbkFuZ3VsYXJab25lKCk7XG4gICAgICAgICAgb25SZXNpemUuc2V0KCk7XG4gICAgICAgIH0pO1xuICAgICAgb25DbGVhbnVwKCgpID0+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=
@@ -1,18 +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/sashbox'
12
- *
13
- * @see https://github.com/ng-packagr/ng-packagr/blob/master/docs/secondary-entrypoints.md
14
- */
15
- export { SciSashboxModule } from './sashbox.module';
16
- export { SciSashboxComponent } from './sashbox.component';
17
- export { SciSashDirective } from './sash.directive';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvc2FzaGJveC9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVIOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbi8qXG4gKiBTZWNvbmRhcnkgZW50cnlwb2ludDogJ0BzY2lvbi9jb21wb25lbnRzL3Nhc2hib3gnXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmctcGFja2Fnci9uZy1wYWNrYWdyL2Jsb2IvbWFzdGVyL2RvY3Mvc2Vjb25kYXJ5LWVudHJ5cG9pbnRzLm1kXG4gKi9cbmV4cG9ydCB7U2NpU2FzaGJveE1vZHVsZX0gZnJvbSAnLi9zYXNoYm94Lm1vZHVsZSc7XG5leHBvcnQge1NjaVNhc2hib3hDb21wb25lbnR9IGZyb20gJy4vc2FzaGJveC5jb21wb25lbnQnO1xuZXhwb3J0IHtTY2lTYXNoRGlyZWN0aXZlfSBmcm9tICcuL3Nhc2guZGlyZWN0aXZlJztcbiJdfQ==
@@ -1,35 +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, Input } from '@angular/core';
11
- import * as i0 from "@angular/core";
12
- /**
13
- * Initializes {SashDirective} with the target {HTMLDivElement}.
14
- */
15
- export class SciSashInitializerDirective {
16
- constructor(_host) {
17
- this._host = _host;
18
- }
19
- ngOnChanges(changes) {
20
- this.sash.element = this._host.nativeElement;
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSashInitializerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
23
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: SciSashInitializerDirective, isStandalone: true, selector: "div[sciSashInitializer].sash", inputs: { sash: ["sciSashInitializer", "sash"] }, usesOnChanges: true, ngImport: i0 }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSashInitializerDirective, decorators: [{
26
- type: Directive,
27
- args: [{
28
- selector: 'div[sciSashInitializer].sash',
29
- standalone: true,
30
- }]
31
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { sash: [{
32
- type: Input,
33
- args: [{ alias: 'sciSashInitializer', required: true }]
34
- }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FzaC1pbml0aWFsaXplci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi9jb21wb25lbnRzL3Nhc2hib3gvc3JjL3Nhc2gtaW5pdGlhbGl6ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBYyxLQUFLLEVBQTJCLE1BQU0sZUFBZSxDQUFDOztBQUdyRjs7R0FFRztBQUtILE1BQU0sT0FBTywyQkFBMkI7SUFLdEMsWUFBb0IsS0FBaUM7UUFBakMsVUFBSyxHQUFMLEtBQUssQ0FBNEI7SUFDckQsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztJQUMvQyxDQUFDOzhHQVZVLDJCQUEyQjtrR0FBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw4QkFBOEI7b0JBQ3hDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjsrRUFJUSxJQUFJO3NCQURWLEtBQUs7dUJBQUMsRUFBQyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2NpU2FzaERpcmVjdGl2ZX0gZnJvbSAnLi9zYXNoLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMge1Nhc2hEaXJlY3RpdmV9IHdpdGggdGhlIHRhcmdldCB7SFRNTERpdkVsZW1lbnR9LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdkaXZbc2NpU2FzaEluaXRpYWxpemVyXS5zYXNoJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2NpU2FzaEluaXRpYWxpemVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoe2FsaWFzOiAnc2NpU2FzaEluaXRpYWxpemVyJywgcmVxdWlyZWQ6IHRydWV9KVxuICBwdWJsaWMgc2FzaCE6IFNjaVNhc2hEaXJlY3RpdmU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5zYXNoLmVsZW1lbnQgPSB0aGlzLl9ob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,145 +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, Input } from '@angular/core';
11
- import { BehaviorSubject, merge } from 'rxjs';
12
- import { map, switchMap } from 'rxjs/operators';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "./sashbox-accessor";
15
- /**
16
- * Use this directive to model a sash for {@link SciSashboxComponent}.
17
- * The host element of this modelling directive must be a <ng-template> which is used as sash template.
18
- *
19
- *
20
- * ### Usage:
21
- *
22
- * <sci-sashbox direction="row">
23
- * <!-- fixed size sash -->
24
- * <ng-template sciSash size="200px">
25
- * ...
26
- * </ng-template>
27
- *
28
- * <!-- sash which takes the remaining space -->
29
- * <ng-template sciSash>
30
- * ...
31
- * </ng-template>
32
- * </sci-sashbox>
33
- */
34
- export class SciSashDirective {
35
- /**
36
- * Specifies the sash size, either as fixed size with an explicit unit,
37
- * or as a unitless proportion to distibute remaining space. A proportional
38
- * sash has the ability to grow or shrink if necessary, and must be >= 1.
39
- *
40
- * If not set, remaining space is distributed equally.
41
- */
42
- set size(size) {
43
- this._size = size ?? '1';
44
- }
45
- get size() {
46
- return this._size;
47
- }
48
- /**
49
- * @internal
50
- */
51
- set flexGrow(flexGrow) {
52
- this._flexGrow$.next(flexGrow);
53
- }
54
- /**
55
- * @internal
56
- */
57
- get flexGrow() {
58
- return this._flexGrow$.value;
59
- }
60
- constructor(sashTemplate, _sashBoxAccessor) {
61
- this.sashTemplate = sashTemplate;
62
- this._sashBoxAccessor = _sashBoxAccessor;
63
- this._size = '1';
64
- this._flexGrow$ = new BehaviorSubject(0);
65
- this.flexGrowNormalized$ = this._sashBoxAccessor.sashes$
66
- .pipe(switchMap(sashes => merge(...sashes.map(sash => sash._flexGrow$))), map(() => this.normalizeFlexGrow(this.flexGrow)));
67
- }
68
- ngOnInit() {
69
- this.setFlexItemProperties();
70
- }
71
- ngOnChanges(changes) {
72
- this.setFlexItemProperties();
73
- }
74
- /**
75
- * Returns if this sash has a fixed size, meaning that it has not the ability to grow or shrink if necessary.
76
- *
77
- * @internal
78
- */
79
- get isFixedSize() {
80
- return Number.isNaN(+this.size);
81
- }
82
- /**
83
- * Returns the effective sash size as rendered in the DOM.
84
- *
85
- * @internal
86
- */
87
- get computedSize() {
88
- // Note: Use `boundingClientRect` to get the fractional size.
89
- // see https://developer.mozilla.org/en-US/docs/Web/API/Element/clientWidth
90
- return this._sashBoxAccessor.direction === 'row' ? this.element.getBoundingClientRect().width : this.element.getBoundingClientRect().height;
91
- }
92
- /**
93
- * Computes and sets the flex item properties based on the modelled size.
94
- */
95
- setFlexItemProperties() {
96
- if (this.isFixedSize) {
97
- // fixed-sized sash
98
- this.flexGrow = 0;
99
- this.flexShrink = 0;
100
- this.flexBasis = `${this.size}`;
101
- }
102
- else {
103
- // remaining space is distributed according to given proportion
104
- const proportion = +this.size;
105
- if (proportion < 1) {
106
- throw Error(`[IllegalSashSizeError] The proportion for flexible sized sashes must be >=1 [size=${this.size}]`);
107
- }
108
- this.flexGrow = proportion;
109
- this.flexShrink = 1;
110
- this.flexBasis = '0';
111
- }
112
- }
113
- /**
114
- * Computes the normalized flex-grow proportion of the given sash, which is a value >= 1.
115
- *
116
- * If the sum of all flex-grow proportions would be less than 1, then, the sashes would not fill the entire sash-box space.
117
- * Without normalization in place, e.g., this could happen when removing a sash.
118
- */
119
- normalizeFlexGrow(flexGrow) {
120
- if (flexGrow === 0) {
121
- return 0;
122
- }
123
- const sashes = this._sashBoxAccessor.sashes;
124
- const flexGrowSum = sashes.reduce((sum, sash) => sum + sash.flexGrow, 0);
125
- if (flexGrowSum === 0) {
126
- return 0;
127
- }
128
- return flexGrow / flexGrowSum;
129
- }
130
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSashDirective, deps: [{ token: i0.TemplateRef }, { token: i1.SciSashBoxAccessor }], target: i0.ɵɵFactoryTarget.Directive }); }
131
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: SciSashDirective, isStandalone: true, selector: "ng-template[sciSash]", inputs: { size: "size", minSize: "minSize" }, exportAs: ["sciSash"], usesOnChanges: true, ngImport: i0 }); }
132
- }
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSashDirective, decorators: [{
134
- type: Directive,
135
- args: [{
136
- selector: 'ng-template[sciSash]',
137
- exportAs: 'sciSash',
138
- standalone: true,
139
- }]
140
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i1.SciSashBoxAccessor }], propDecorators: { size: [{
141
- type: Input
142
- }], minSize: [{
143
- type: Input
144
- }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FzaC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi9jb21wb25lbnRzL3Nhc2hib3gvc3JjL3Nhc2guZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQWdELE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQUU5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBTUgsTUFBTSxPQUFPLGdCQUFnQjtJQUszQjs7Ozs7O09BTUc7SUFDSCxJQUNXLElBQUksQ0FBQyxJQUF3QztRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxHQUFHLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBZ0JEOztPQUVHO0lBQ0gsSUFBVyxRQUFRLENBQUMsUUFBZ0I7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQW1CRCxZQUE0QixZQUErQixFQUFVLGdCQUFvQztRQUE3RSxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBaEVqRyxVQUFLLEdBQW9CLEdBQUcsQ0FBQztRQUM3QixlQUFVLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFnRWxELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTzthQUNyRCxJQUFJLENBQ0gsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQ2xFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQ2pELENBQUM7SUFDTixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxZQUFZO1FBQ3JCLDZEQUE2RDtRQUM3RCwyRUFBMkU7UUFDM0UsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQU0sQ0FBQztJQUM5SSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxxQkFBcUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsbUJBQW1CO1lBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEMsQ0FBQzthQUNJLENBQUM7WUFDSiwrREFBK0Q7WUFDL0QsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzlCLElBQUksVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNuQixNQUFNLEtBQUssQ0FBQyxxRkFBcUYsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7WUFDakgsQ0FBQztZQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1lBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxpQkFBaUIsQ0FBQyxRQUFnQjtRQUN4QyxJQUFJLFFBQVEsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1FBQzVDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RSxJQUFJLFdBQVcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxPQUFPLFFBQVEsR0FBRyxXQUFXLENBQUM7SUFDaEMsQ0FBQzs4R0E5SVUsZ0JBQWdCO2tHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBTDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjtpSEFjWSxJQUFJO3NCQURkLEtBQUs7Z0JBZ0JDLE9BQU87c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2NpU2FzaEJveEFjY2Vzc29yfSBmcm9tICcuL3Nhc2hib3gtYWNjZXNzb3InO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIG1lcmdlLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBVc2UgdGhpcyBkaXJlY3RpdmUgdG8gbW9kZWwgYSBzYXNoIGZvciB7QGxpbmsgU2NpU2FzaGJveENvbXBvbmVudH0uXG4gKiBUaGUgaG9zdCBlbGVtZW50IG9mIHRoaXMgbW9kZWxsaW5nIGRpcmVjdGl2ZSBtdXN0IGJlIGEgPG5nLXRlbXBsYXRlPiB3aGljaCBpcyB1c2VkIGFzIHNhc2ggdGVtcGxhdGUuXG4gKlxuICpcbiAqICMjIyBVc2FnZTpcbiAqXG4gKiA8c2NpLXNhc2hib3ggZGlyZWN0aW9uPVwicm93XCI+XG4gKiAgIDwhLS0gZml4ZWQgc2l6ZSBzYXNoIC0tPlxuICogICA8bmctdGVtcGxhdGUgc2NpU2FzaCBzaXplPVwiMjAwcHhcIj5cbiAqICAgICAuLi5cbiAqICAgPC9uZy10ZW1wbGF0ZT5cbiAqXG4gKiAgIDwhLS0gc2FzaCB3aGljaCB0YWtlcyB0aGUgcmVtYWluaW5nIHNwYWNlIC0tPlxuICogICA8bmctdGVtcGxhdGUgc2NpU2FzaD5cbiAqICAgICAuLi5cbiAqICAgPC9uZy10ZW1wbGF0ZT5cbiAqIDwvc2NpLXNhc2hib3g+XG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3NjaVNhc2hdJyxcbiAgZXhwb3J0QXM6ICdzY2lTYXNoJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2NpU2FzaERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBwcml2YXRlIF9zaXplOiBzdHJpbmcgfCBudW1iZXIgPSAnMSc7XG4gIHByaXZhdGUgX2ZsZXhHcm93JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBzYXNoIHNpemUsIGVpdGhlciBhcyBmaXhlZCBzaXplIHdpdGggYW4gZXhwbGljaXQgdW5pdCxcbiAgICogb3IgYXMgYSB1bml0bGVzcyBwcm9wb3J0aW9uIHRvIGRpc3RpYnV0ZSByZW1haW5pbmcgc3BhY2UuIEEgcHJvcG9ydGlvbmFsXG4gICAqIHNhc2ggaGFzIHRoZSBhYmlsaXR5IHRvIGdyb3cgb3Igc2hyaW5rIGlmIG5lY2Vzc2FyeSwgYW5kIG11c3QgYmUgPj0gMS5cbiAgICpcbiAgICogSWYgbm90IHNldCwgcmVtYWluaW5nIHNwYWNlIGlzIGRpc3RyaWJ1dGVkIGVxdWFsbHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNpemUoc2l6ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3NpemUgPSBzaXplID8/ICcxJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2l6ZSgpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWluaW1hbCBzYXNoIHNpemUgaW4gcGl4ZWwgb3IgcGVyY2VudC5cbiAgICogVGhlIG1pbi1zaXplIHByZXZlbnRzIHRoZSB1c2VyIGZyb20gc2hyaW5raW5nIHRoZSBzYXNoIGJlbG93IHRoaXMgbWluaW1hbCBzaXplLlxuICAgKlxuICAgKiBJZiB0aGUgdW5pdCBpcyBvbWl0dGVkLCB0aGUgdmFsdWUgaXMgaW50ZXJwcmV0ZWQgYXMgYSBwaXhlbCB2YWx1ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaW5TaXplPzogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBlbGVtZW50ITogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHNldCBmbGV4R3JvdyhmbGV4R3JvdzogbnVtYmVyKSB7XG4gICAgdGhpcy5fZmxleEdyb3ckLm5leHQoZmxleEdyb3cpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGdldCBmbGV4R3JvdygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9mbGV4R3JvdyQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZmxleFNocmluayE6IG51bWJlcjtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZmxleEJhc2lzITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOb3JtYWxpemVkIGZsZXgtZ3JvdyBwcm9wb3J0aW9uIG9mIHRoaXMgc2FzaCwgd2hpY2ggaXMgYSB2YWx1ZSA+PSAxLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBmbGV4R3Jvd05vcm1hbGl6ZWQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHNhc2hUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD4sIHByaXZhdGUgX3Nhc2hCb3hBY2Nlc3NvcjogU2NpU2FzaEJveEFjY2Vzc29yKSB7XG4gICAgdGhpcy5mbGV4R3Jvd05vcm1hbGl6ZWQkID0gdGhpcy5fc2FzaEJveEFjY2Vzc29yLnNhc2hlcyRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoc2FzaGVzID0+IG1lcmdlKC4uLnNhc2hlcy5tYXAoc2FzaCA9PiBzYXNoLl9mbGV4R3JvdyQpKSksXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLm5vcm1hbGl6ZUZsZXhHcm93KHRoaXMuZmxleEdyb3cpKSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRGbGV4SXRlbVByb3BlcnRpZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5zZXRGbGV4SXRlbVByb3BlcnRpZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGlmIHRoaXMgc2FzaCBoYXMgYSBmaXhlZCBzaXplLCBtZWFuaW5nIHRoYXQgaXQgaGFzIG5vdCB0aGUgYWJpbGl0eSB0byBncm93IG9yIHNocmluayBpZiBuZWNlc3NhcnkuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGdldCBpc0ZpeGVkU2l6ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gTnVtYmVyLmlzTmFOKCt0aGlzLnNpemUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVmZmVjdGl2ZSBzYXNoIHNpemUgYXMgcmVuZGVyZWQgaW4gdGhlIERPTS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbXB1dGVkU2l6ZSgpOiBudW1iZXIge1xuICAgIC8vIE5vdGU6IFVzZSBgYm91bmRpbmdDbGllbnRSZWN0YCB0byBnZXQgdGhlIGZyYWN0aW9uYWwgc2l6ZS5cbiAgICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0VsZW1lbnQvY2xpZW50V2lkdGhcbiAgICByZXR1cm4gdGhpcy5fc2FzaEJveEFjY2Vzc29yLmRpcmVjdGlvbiA9PT0gJ3JvdycgPyB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggOiB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIGFuZCBzZXRzIHRoZSBmbGV4IGl0ZW0gcHJvcGVydGllcyBiYXNlZCBvbiB0aGUgbW9kZWxsZWQgc2l6ZS5cbiAgICovXG4gIHByaXZhdGUgc2V0RmxleEl0ZW1Qcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRml4ZWRTaXplKSB7XG4gICAgICAvLyBmaXhlZC1zaXplZCBzYXNoXG4gICAgICB0aGlzLmZsZXhHcm93ID0gMDtcbiAgICAgIHRoaXMuZmxleFNocmluayA9IDA7XG4gICAgICB0aGlzLmZsZXhCYXNpcyA9IGAke3RoaXMuc2l6ZX1gO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIC8vIHJlbWFpbmluZyBzcGFjZSBpcyBkaXN0cmlidXRlZCBhY2NvcmRpbmcgdG8gZ2l2ZW4gcHJvcG9ydGlvblxuICAgICAgY29uc3QgcHJvcG9ydGlvbiA9ICt0aGlzLnNpemU7XG4gICAgICBpZiAocHJvcG9ydGlvbiA8IDEpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFtJbGxlZ2FsU2FzaFNpemVFcnJvcl0gVGhlIHByb3BvcnRpb24gZm9yIGZsZXhpYmxlIHNpemVkIHNhc2hlcyBtdXN0IGJlID49MSBbc2l6ZT0ke3RoaXMuc2l6ZX1dYCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZmxleEdyb3cgPSBwcm9wb3J0aW9uO1xuICAgICAgdGhpcy5mbGV4U2hyaW5rID0gMTtcbiAgICAgIHRoaXMuZmxleEJhc2lzID0gJzAnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wdXRlcyB0aGUgbm9ybWFsaXplZCBmbGV4LWdyb3cgcHJvcG9ydGlvbiBvZiB0aGUgZ2l2ZW4gc2FzaCwgd2hpY2ggaXMgYSB2YWx1ZSA+PSAxLlxuICAgKlxuICAgKiBJZiB0aGUgc3VtIG9mIGFsbCBmbGV4LWdyb3cgcHJvcG9ydGlvbnMgd291bGQgYmUgbGVzcyB0aGFuIDEsIHRoZW4sIHRoZSBzYXNoZXMgd291bGQgbm90IGZpbGwgdGhlIGVudGlyZSBzYXNoLWJveCBzcGFjZS5cbiAgICogV2l0aG91dCBub3JtYWxpemF0aW9uIGluIHBsYWNlLCBlLmcuLCB0aGlzIGNvdWxkIGhhcHBlbiB3aGVuIHJlbW92aW5nIGEgc2FzaC5cbiAgICovXG4gIHByaXZhdGUgbm9ybWFsaXplRmxleEdyb3coZmxleEdyb3c6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKGZsZXhHcm93ID09PSAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBjb25zdCBzYXNoZXMgPSB0aGlzLl9zYXNoQm94QWNjZXNzb3Iuc2FzaGVzO1xuICAgIGNvbnN0IGZsZXhHcm93U3VtID0gc2FzaGVzLnJlZHVjZSgoc3VtLCBzYXNoKSA9PiBzdW0gKyBzYXNoLmZsZXhHcm93LCAwKTtcbiAgICBpZiAoZmxleEdyb3dTdW0gPT09IDApIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gZmxleEdyb3cgLyBmbGV4R3Jvd1N1bTtcbiAgfVxufVxuIl19