@scion/components 13.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 (101) hide show
  1. package/README.md +40 -0
  2. package/_components.scss +1 -0
  3. package/_index.scss +23 -0
  4. package/dimension/dimension.directive.d.ts +43 -0
  5. package/dimension/dimension.module.d.ts +13 -0
  6. package/dimension/package.json +10 -0
  7. package/dimension/public_api.d.ts +2 -0
  8. package/dimension/scion-components-dimension.d.ts +5 -0
  9. package/esm2020/dimension/dimension.directive.mjs +83 -0
  10. package/esm2020/dimension/dimension.module.mjs +40 -0
  11. package/esm2020/dimension/public_api.mjs +17 -0
  12. package/esm2020/dimension/scion-components-dimension.mjs +5 -0
  13. package/esm2020/public-api.mjs +11 -0
  14. package/esm2020/sashbox/element-ref.directive.mjs +27 -0
  15. package/esm2020/sashbox/public_api.mjs +18 -0
  16. package/esm2020/sashbox/sash-initializer.directive.mjs +32 -0
  17. package/esm2020/sashbox/sash.directive.mjs +144 -0
  18. package/esm2020/sashbox/sashbox-accessor.mjs +6 -0
  19. package/esm2020/sashbox/sashbox.component.mjs +278 -0
  20. package/esm2020/sashbox/sashbox.module.mjs +71 -0
  21. package/esm2020/sashbox/scion-components-sashbox.mjs +5 -0
  22. package/esm2020/scion-components.mjs +5 -0
  23. package/esm2020/splitter/public_api.mjs +17 -0
  24. package/esm2020/splitter/scion-components-splitter.mjs +5 -0
  25. package/esm2020/splitter/splitter.component.mjs +227 -0
  26. package/esm2020/splitter/splitter.module.mjs +44 -0
  27. package/esm2020/throbber/ellipsis-throbber/ellipsis-throbber.component.mjs +25 -0
  28. package/esm2020/throbber/public_api.mjs +17 -0
  29. package/esm2020/throbber/ripple-throbber/ripple-throbber.component.mjs +25 -0
  30. package/esm2020/throbber/roller-throbber/roller-throbber.component.mjs +25 -0
  31. package/esm2020/throbber/scion-components-throbber.mjs +5 -0
  32. package/esm2020/throbber/spinner-throbber/spinner-throbber.component.mjs +26 -0
  33. package/esm2020/throbber/throbber.component.mjs +67 -0
  34. package/esm2020/throbber/throbber.module.mjs +50 -0
  35. package/esm2020/viewport/native-scrollbar-track-size-provider.service.mjs +114 -0
  36. package/esm2020/viewport/public_api.mjs +20 -0
  37. package/esm2020/viewport/scion-components-viewport.mjs +5 -0
  38. package/esm2020/viewport/scrollable.directive.mjs +93 -0
  39. package/esm2020/viewport/scrollbar/scrollbar.component.mjs +322 -0
  40. package/esm2020/viewport/viewport.component.mjs +265 -0
  41. package/esm2020/viewport/viewport.module.mjs +52 -0
  42. package/fesm2015/scion-components-dimension.mjs +137 -0
  43. package/fesm2015/scion-components-dimension.mjs.map +1 -0
  44. package/fesm2015/scion-components-sashbox.mjs +556 -0
  45. package/fesm2015/scion-components-sashbox.mjs.map +1 -0
  46. package/fesm2015/scion-components-splitter.mjs +286 -0
  47. package/fesm2015/scion-components-splitter.mjs.map +1 -0
  48. package/fesm2015/scion-components-throbber.mjs +216 -0
  49. package/fesm2015/scion-components-throbber.mjs.map +1 -0
  50. package/fesm2015/scion-components-viewport.mjs +846 -0
  51. package/fesm2015/scion-components-viewport.mjs.map +1 -0
  52. package/fesm2015/scion-components.mjs +4 -0
  53. package/fesm2015/scion-components.mjs.map +1 -0
  54. package/fesm2020/scion-components-dimension.mjs +137 -0
  55. package/fesm2020/scion-components-dimension.mjs.map +1 -0
  56. package/fesm2020/scion-components-sashbox.mjs +556 -0
  57. package/fesm2020/scion-components-sashbox.mjs.map +1 -0
  58. package/fesm2020/scion-components-splitter.mjs +284 -0
  59. package/fesm2020/scion-components-splitter.mjs.map +1 -0
  60. package/fesm2020/scion-components-throbber.mjs +216 -0
  61. package/fesm2020/scion-components-throbber.mjs.map +1 -0
  62. package/fesm2020/scion-components-viewport.mjs +842 -0
  63. package/fesm2020/scion-components-viewport.mjs.map +1 -0
  64. package/fesm2020/scion-components.mjs +14 -0
  65. package/fesm2020/scion-components.mjs.map +1 -0
  66. package/package.json +93 -0
  67. package/public-api.d.ts +4 -0
  68. package/sashbox/element-ref.directive.d.ts +12 -0
  69. package/sashbox/package.json +10 -0
  70. package/sashbox/public_api.d.ts +3 -0
  71. package/sashbox/sash-initializer.directive.d.ts +14 -0
  72. package/sashbox/sash.directive.d.ts +60 -0
  73. package/sashbox/sashbox-accessor.d.ts +10 -0
  74. package/sashbox/sashbox.component.d.ts +90 -0
  75. package/sashbox/sashbox.module.d.ts +33 -0
  76. package/sashbox/scion-components-sashbox.d.ts +5 -0
  77. package/scion-components.d.ts +5 -0
  78. package/splitter/package.json +10 -0
  79. package/splitter/public_api.d.ts +2 -0
  80. package/splitter/scion-components-splitter.d.ts +5 -0
  81. package/splitter/splitter.component.d.ts +104 -0
  82. package/splitter/splitter.module.d.ts +17 -0
  83. package/throbber/ellipsis-throbber/ellipsis-throbber.component.d.ts +10 -0
  84. package/throbber/package.json +10 -0
  85. package/throbber/public_api.d.ts +2 -0
  86. package/throbber/ripple-throbber/ripple-throbber.component.d.ts +10 -0
  87. package/throbber/roller-throbber/roller-throbber.component.d.ts +10 -0
  88. package/throbber/scion-components-throbber.d.ts +5 -0
  89. package/throbber/spinner-throbber/spinner-throbber.component.d.ts +11 -0
  90. package/throbber/throbber.component.d.ts +43 -0
  91. package/throbber/throbber.module.d.ts +15 -0
  92. package/viewport/_index.scss +1 -0
  93. package/viewport/_scrollbar.scss +44 -0
  94. package/viewport/native-scrollbar-track-size-provider.service.d.ts +42 -0
  95. package/viewport/package.json +10 -0
  96. package/viewport/public_api.d.ts +5 -0
  97. package/viewport/scion-components-viewport.d.ts +5 -0
  98. package/viewport/scrollable.directive.d.ts +39 -0
  99. package/viewport/scrollbar/scrollbar.component.d.ts +106 -0
  100. package/viewport/viewport.component.d.ts +160 -0
  101. package/viewport/viewport.module.d.ts +14 -0
@@ -0,0 +1,50 @@
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 { CommonModule } from '@angular/common';
12
+ import { SciThrobberComponent } from './throbber.component';
13
+ import { SciEllipsisThrobberComponent } from './ellipsis-throbber/ellipsis-throbber.component';
14
+ import { SciRippleThrobberComponent } from './ripple-throbber/ripple-throbber.component';
15
+ import { SciRollerThrobberComponent } from './roller-throbber/roller-throbber.component';
16
+ import { SciSpinnerThrobberComponent } from './spinner-throbber/spinner-throbber.component';
17
+ import * as i0 from "@angular/core";
18
+ /**
19
+ * Provides {@link SciThrobberComponent}, an animated graphical control to indicate the execution of an action.
20
+ */
21
+ export class SciThrobberModule {
22
+ }
23
+ SciThrobberModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciThrobberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
24
+ SciThrobberModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciThrobberModule, declarations: [SciThrobberComponent,
25
+ SciEllipsisThrobberComponent,
26
+ SciRippleThrobberComponent,
27
+ SciRollerThrobberComponent,
28
+ SciSpinnerThrobberComponent], imports: [CommonModule], exports: [SciThrobberComponent] });
29
+ SciThrobberModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciThrobberModule, imports: [[
30
+ CommonModule,
31
+ ]] });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciThrobberModule, decorators: [{
33
+ type: NgModule,
34
+ args: [{
35
+ declarations: [
36
+ SciThrobberComponent,
37
+ SciEllipsisThrobberComponent,
38
+ SciRippleThrobberComponent,
39
+ SciRollerThrobberComponent,
40
+ SciSpinnerThrobberComponent,
41
+ ],
42
+ imports: [
43
+ CommonModule,
44
+ ],
45
+ exports: [
46
+ SciThrobberComponent,
47
+ ],
48
+ }]
49
+ }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb2JiZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy90aHJvYmJlci9zcmMvdGhyb2JiZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDN0YsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDdkYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDdkYsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sK0NBQStDLENBQUM7O0FBRTFGOztHQUVHO0FBZ0JILE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFiMUIsb0JBQW9CO1FBQ3BCLDRCQUE0QjtRQUM1QiwwQkFBMEI7UUFDMUIsMEJBQTBCO1FBQzFCLDJCQUEyQixhQUczQixZQUFZLGFBR1osb0JBQW9COytHQUdYLGlCQUFpQixZQVBuQjtZQUNQLFlBQVk7U0FDYjsyRkFLVSxpQkFBaUI7a0JBZjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG9CQUFvQjt3QkFDcEIsNEJBQTRCO3dCQUM1QiwwQkFBMEI7d0JBQzFCLDBCQUEwQjt3QkFDMUIsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asb0JBQW9CO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1NjaVRocm9iYmVyQ29tcG9uZW50fSBmcm9tICcuL3Rocm9iYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1NjaUVsbGlwc2lzVGhyb2JiZXJDb21wb25lbnR9IGZyb20gJy4vZWxsaXBzaXMtdGhyb2JiZXIvZWxsaXBzaXMtdGhyb2JiZXIuY29tcG9uZW50JztcbmltcG9ydCB7U2NpUmlwcGxlVGhyb2JiZXJDb21wb25lbnR9IGZyb20gJy4vcmlwcGxlLXRocm9iYmVyL3JpcHBsZS10aHJvYmJlci5jb21wb25lbnQnO1xuaW1wb3J0IHtTY2lSb2xsZXJUaHJvYmJlckNvbXBvbmVudH0gZnJvbSAnLi9yb2xsZXItdGhyb2JiZXIvcm9sbGVyLXRocm9iYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1NjaVNwaW5uZXJUaHJvYmJlckNvbXBvbmVudH0gZnJvbSAnLi9zcGlubmVyLXRocm9iYmVyL3NwaW5uZXItdGhyb2JiZXIuY29tcG9uZW50JztcblxuLyoqXG4gKiBQcm92aWRlcyB7QGxpbmsgU2NpVGhyb2JiZXJDb21wb25lbnR9LCBhbiBhbmltYXRlZCBncmFwaGljYWwgY29udHJvbCB0byBpbmRpY2F0ZSB0aGUgZXhlY3V0aW9uIG9mIGFuIGFjdGlvbi5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2NpVGhyb2JiZXJDb21wb25lbnQsXG4gICAgU2NpRWxsaXBzaXNUaHJvYmJlckNvbXBvbmVudCxcbiAgICBTY2lSaXBwbGVUaHJvYmJlckNvbXBvbmVudCxcbiAgICBTY2lSb2xsZXJUaHJvYmJlckNvbXBvbmVudCxcbiAgICBTY2lTcGlubmVyVGhyb2JiZXJDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTY2lUaHJvYmJlckNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2NpVGhyb2JiZXJNb2R1bGUge1xufVxuIl19
@@ -0,0 +1,114 @@
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 { Inject, Injectable } from '@angular/core';
11
+ import { DOCUMENT } from '@angular/common';
12
+ import { BehaviorSubject, fromEvent, Subject } from 'rxjs';
13
+ import { debounceTime, distinctUntilChanged, map, startWith, takeUntil } from 'rxjs/operators';
14
+ import * as i0 from "@angular/core";
15
+ /**
16
+ * Provides the native scrollbar tracksize.
17
+ *
18
+ * @dynamic ignore 'strictMetadataEmit' errors due to the usage of {@link Document} as ambient type for DI.
19
+ */
20
+ export class SciNativeScrollbarTrackSizeProvider {
21
+ constructor(_document, _zone) {
22
+ this._document = _document;
23
+ this._zone = _zone;
24
+ this._trackSize$ = new BehaviorSubject(null);
25
+ this._destroy$ = new Subject();
26
+ this.installNativeScrollbarTrackSizeListener();
27
+ }
28
+ /**
29
+ * Returns an {Observable} which emits the native scrollbar track size, if any, or else `null`.
30
+ *
31
+ * Upon subscription, it emits the track size immediately, and then continuously emits when the track size changes.
32
+ */
33
+ get trackSize$() {
34
+ return this._trackSize$;
35
+ }
36
+ /**
37
+ * Returns the native scrollbar track size, if any, or else `null`.
38
+ */
39
+ get trackSize() {
40
+ return this._trackSize$.getValue();
41
+ }
42
+ /**
43
+ * Computes the native scrollbar track size.
44
+ *
45
+ * @returns native track size, or `null` if the native scrollbars sit on top of the content.
46
+ */
47
+ computeTrackSize() {
48
+ // create temporary viewport and viewport client with native scrollbars to compute scrolltrack width
49
+ const viewportDiv = this._document.createElement('div');
50
+ setStyle(viewportDiv, {
51
+ position: 'absolute',
52
+ overflow: 'scroll',
53
+ height: '100px',
54
+ width: '100px',
55
+ border: 0,
56
+ visibility: 'hidden',
57
+ });
58
+ const viewportClientDiv = this._document.createElement('div');
59
+ setStyle(viewportClientDiv, {
60
+ height: '100%',
61
+ width: '100%',
62
+ border: 0,
63
+ });
64
+ viewportDiv.appendChild(viewportClientDiv);
65
+ this._document.body.appendChild(viewportDiv);
66
+ const trackSize = {
67
+ hScrollbarTrackHeight: viewportDiv.offsetHeight - viewportClientDiv.offsetHeight,
68
+ vScrollbarTrackWidth: viewportDiv.offsetWidth - viewportClientDiv.offsetWidth,
69
+ };
70
+ // destroy temporary viewport
71
+ this._document.body.removeChild(viewportDiv);
72
+ if (trackSize.hScrollbarTrackHeight === 0 && trackSize.vScrollbarTrackWidth === 0) {
73
+ return null;
74
+ }
75
+ return trackSize;
76
+ }
77
+ installNativeScrollbarTrackSizeListener() {
78
+ // We compute the size of the native scrollbar track when the browser fires the onresize window event.
79
+ // This event is also fired on page zoom or when displaying a hidden document. Hidden documents do not have
80
+ // a scrollbar track size until being displayed, e.g., after showing hidden iframes.
81
+ this._zone.runOutsideAngular(() => {
82
+ fromEvent(window, 'resize')
83
+ .pipe(debounceTime(5), startWith(null), // trigger the initial computation
84
+ map(() => this.computeTrackSize()), distinctUntilChanged((t1, t2) => JSON.stringify(t1) === JSON.stringify(t2)), takeUntil(this._destroy$))
85
+ .subscribe(trackSize => {
86
+ this._zone.run(() => this._trackSize$.next(trackSize));
87
+ });
88
+ });
89
+ }
90
+ ngOnDestroy() {
91
+ this._destroy$.next();
92
+ }
93
+ }
94
+ SciNativeScrollbarTrackSizeProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciNativeScrollbarTrackSizeProvider, deps: [{ token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
95
+ SciNativeScrollbarTrackSizeProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciNativeScrollbarTrackSizeProvider, providedIn: 'root' });
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciNativeScrollbarTrackSizeProvider, decorators: [{
97
+ type: Injectable,
98
+ args: [{ providedIn: 'root' }]
99
+ }], ctorParameters: function () { return [{ type: Document, decorators: [{
100
+ type: Inject,
101
+ args: [DOCUMENT]
102
+ }] }, { type: i0.NgZone }]; } });
103
+ /**
104
+ * Applies the given style(s) to the given element.
105
+ *
106
+ * Specify styles to be modified by passing a dictionary containing CSS property names (hyphen case).
107
+ * To remove a style, set its value to `null`.
108
+ *
109
+ * @ignore
110
+ */
111
+ function setStyle(element, style) {
112
+ Object.keys(style).forEach(key => element.style.setProperty(key, style[key]));
113
+ }
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLXNjcm9sbGJhci10cmFjay1zaXplLXByb3ZpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi9jb21wb25lbnRzL3ZpZXdwb3J0L3NyYy9uYXRpdmUtc2Nyb2xsYmFyLXRyYWNrLXNpemUtcHJvdmlkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBRSxTQUFTLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFN0Y7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxtQ0FBbUM7SUFLOUMsWUFBc0MsU0FBbUIsRUFBVSxLQUFhO1FBQTFDLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBSC9ELGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQWtDLElBQUksQ0FBQyxDQUFDO1FBQ3pFLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRy9DLElBQUksQ0FBQyx1Q0FBdUMsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssZ0JB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QUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBmcm9tRXZlbnQsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogUHJvdmlkZXMgdGhlIG5hdGl2ZSBzY3JvbGxiYXIgdHJhY2tzaXplLlxuICpcbiAqIEBkeW5hbWljIGlnbm9yZSAnc3RyaWN0TWV0YWRhdGFFbWl0JyBlcnJvcnMgZHVlIHRvIHRoZSB1c2FnZSBvZiB7QGxpbmsgRG9jdW1lbnR9IGFzIGFtYmllbnQgdHlwZSBmb3IgREkuXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFNjaU5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZVByb3ZpZGVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF90cmFja1NpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOYXRpdmVTY3JvbGxiYXJUcmFja1NpemUgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBEb2N1bWVudCwgcHJpdmF0ZSBfem9uZTogTmdab25lKSB7XG4gICAgdGhpcy5pbnN0YWxsTmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplTGlzdGVuZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIHtPYnNlcnZhYmxlfSB3aGljaCBlbWl0cyB0aGUgbmF0aXZlIHNjcm9sbGJhciB0cmFjayBzaXplLCBpZiBhbnksIG9yIGVsc2UgYG51bGxgLlxuICAgKlxuICAgKiBVcG9uIHN1YnNjcmlwdGlvbiwgaXQgZW1pdHMgdGhlIHRyYWNrIHNpemUgaW1tZWRpYXRlbHksIGFuZCB0aGVuIGNvbnRpbnVvdXNseSBlbWl0cyB3aGVuIHRoZSB0cmFjayBzaXplIGNoYW5nZXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRyYWNrU2l6ZSQoKTogT2JzZXJ2YWJsZTxOYXRpdmVTY3JvbGxiYXJUcmFja1NpemUgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYWNrU2l6ZSQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbmF0aXZlIHNjcm9sbGJhciB0cmFjayBzaXplLCBpZiBhbnksIG9yIGVsc2UgYG51bGxgLlxuICAgKi9cbiAgcHVibGljIGdldCB0cmFja1NpemUoKTogTmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYWNrU2l6ZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wdXRlcyB0aGUgbmF0aXZlIHNjcm9sbGJhciB0cmFjayBzaXplLlxuICAgKlxuICAgKiBAcmV0dXJucyBuYXRpdmUgdHJhY2sgc2l6ZSwgb3IgYG51bGxgIGlmIHRoZSBuYXRpdmUgc2Nyb2xsYmFycyBzaXQgb24gdG9wIG9mIHRoZSBjb250ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBjb21wdXRlVHJhY2tTaXplKCk6IE5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZSB8IG51bGwge1xuICAgIC8vIGNyZWF0ZSB0ZW1wb3Jhcnkgdmlld3BvcnQgYW5kIHZpZXdwb3J0IGNsaWVudCB3aXRoIG5hdGl2ZSBzY3JvbGxiYXJzIHRvIGNvbXB1dGUgc2Nyb2xsdHJhY2sgd2lkdGhcbiAgICBjb25zdCB2aWV3cG9ydERpdiA9IHRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHNldFN0eWxlKHZpZXdwb3J0RGl2LCB7XG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIG92ZXJmbG93OiAnc2Nyb2xsJyxcbiAgICAgIGhlaWdodDogJzEwMHB4JyxcbiAgICAgIHdpZHRoOiAnMTAwcHgnLFxuICAgICAgYm9yZGVyOiAwLFxuICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgfSk7XG5cbiAgICBjb25zdCB2aWV3cG9ydENsaWVudERpdiA9IHRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHNldFN0eWxlKHZpZXdwb3J0Q2xpZW50RGl2LCB7XG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBib3JkZXI6IDAsXG4gICAgfSk7XG5cbiAgICB2aWV3cG9ydERpdi5hcHBlbmRDaGlsZCh2aWV3cG9ydENsaWVudERpdik7XG4gICAgdGhpcy5fZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWV3cG9ydERpdik7XG5cbiAgICBjb25zdCB0cmFja1NpemU6IE5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZSA9IHtcbiAgICAgIGhTY3JvbGxiYXJUcmFja0hlaWdodDogdmlld3BvcnREaXYub2Zmc2V0SGVpZ2h0IC0gdmlld3BvcnRDbGllbnREaXYub2Zmc2V0SGVpZ2h0LFxuICAgICAgdlNjcm9sbGJhclRyYWNrV2lkdGg6IHZpZXdwb3J0RGl2Lm9mZnNldFdpZHRoIC0gdmlld3BvcnRDbGllbnREaXYub2Zmc2V0V2lkdGgsXG4gICAgfTtcblxuICAgIC8vIGRlc3Ryb3kgdGVtcG9yYXJ5IHZpZXdwb3J0XG4gICAgdGhpcy5fZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh2aWV3cG9ydERpdik7XG4gICAgaWYgKHRyYWNrU2l6ZS5oU2Nyb2xsYmFyVHJhY2tIZWlnaHQgPT09IDAgJiYgdHJhY2tTaXplLnZTY3JvbGxiYXJUcmFja1dpZHRoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhY2tTaXplO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnN0YWxsTmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgLy8gV2UgY29tcHV0ZSB0aGUgc2l6ZSBvZiB0aGUgbmF0aXZlIHNjcm9sbGJhciB0cmFjayB3aGVuIHRoZSBicm93c2VyIGZpcmVzIHRoZSBvbnJlc2l6ZSB3aW5kb3cgZXZlbnQuXG4gICAgLy8gVGhpcyBldmVudCBpcyBhbHNvIGZpcmVkIG9uIHBhZ2Ugem9vbSBvciB3aGVuIGRpc3BsYXlpbmcgYSBoaWRkZW4gZG9jdW1lbnQuIEhpZGRlbiBkb2N1bWVudHMgZG8gbm90IGhhdmVcbiAgICAvLyBhIHNjcm9sbGJhciB0cmFjayBzaXplIHVudGlsIGJlaW5nIGRpc3BsYXllZCwgZS5nLiwgYWZ0ZXIgc2hvd2luZyBoaWRkZW4gaWZyYW1lcy5cbiAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoNSksXG4gICAgICAgICAgc3RhcnRXaXRoKG51bGwpLCAvLyB0cmlnZ2VyIHRoZSBpbml0aWFsIGNvbXB1dGF0aW9uXG4gICAgICAgICAgbWFwKCgpID0+IHRoaXMuY29tcHV0ZVRyYWNrU2l6ZSgpKSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgodDEsIHQyKSA9PiBKU09OLnN0cmluZ2lmeSh0MSkgPT09IEpTT04uc3RyaW5naWZ5KHQyKSksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHRyYWNrU2l6ZSA9PiB7XG4gICAgICAgICAgdGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5fdHJhY2tTaXplJC5uZXh0KHRyYWNrU2l6ZSkpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBcHBsaWVzIHRoZSBnaXZlbiBzdHlsZShzKSB0byB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqXG4gKiBTcGVjaWZ5IHN0eWxlcyB0byBiZSBtb2RpZmllZCBieSBwYXNzaW5nIGEgZGljdGlvbmFyeSBjb250YWluaW5nIENTUyBwcm9wZXJ0eSBuYW1lcyAoaHlwaGVuIGNhc2UpLlxuICogVG8gcmVtb3ZlIGEgc3R5bGUsIHNldCBpdHMgdmFsdWUgdG8gYG51bGxgLlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZnVuY3Rpb24gc2V0U3R5bGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIHN0eWxlOiB7W3N0eWxlOiBzdHJpbmddOiBhbnkgfCBudWxsfSk6IHZvaWQge1xuICBPYmplY3Qua2V5cyhzdHlsZSkuZm9yRWFjaChrZXkgPT4gZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIHN0eWxlW2tleV0pKTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBuYXRpdmUgc2Nyb2xsYmFyIHRyYWNrIHNpemUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplIHtcbiAgaFNjcm9sbGJhclRyYWNrSGVpZ2h0OiBudW1iZXI7XG4gIHZTY3JvbGxiYXJUcmFja1dpZHRoOiBudW1iZXI7XG59XG4iXX0=
@@ -0,0 +1,20 @@
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/viewport'
12
+ *
13
+ * @see https://github.com/ng-packagr/ng-packagr/blob/master/docs/secondary-entrypoints.md
14
+ */
15
+ export { SciViewportModule } from './viewport.module';
16
+ export * from './viewport.component';
17
+ export * from './scrollable.directive';
18
+ export * from './scrollbar/scrollbar.component';
19
+ export * from './native-scrollbar-track-size-provider.service';
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvdmlld3BvcnQvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSDs7OztHQUlHO0FBQ0gsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxnREFBZ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbi8qXG4gKiBTZWNvbmRhcnkgZW50cnlwb2ludDogJ0BzY2lvbi9jb21wb25lbnRzL3ZpZXdwb3J0J1xuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25nLXBhY2thZ3IvbmctcGFja2Fnci9ibG9iL21hc3Rlci9kb2NzL3NlY29uZGFyeS1lbnRyeXBvaW50cy5tZFxuICovXG5leHBvcnQge1NjaVZpZXdwb3J0TW9kdWxlfSBmcm9tICcuL3ZpZXdwb3J0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3ZpZXdwb3J0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbGFibGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsYmFyL3Njcm9sbGJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9uYXRpdmUtc2Nyb2xsYmFyLXRyYWNrLXNpemUtcHJvdmlkZXIuc2VydmljZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Npb24tY29tcG9uZW50cy12aWV3cG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvdmlld3BvcnQvc3JjL3NjaW9uLWNvbXBvbmVudHMtdmlld3BvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -0,0 +1,93 @@
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 { map, takeUntil } from 'rxjs/operators';
12
+ import { merge, Subject } from 'rxjs';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "./native-scrollbar-track-size-provider.service";
15
+ /**
16
+ * Makes the host element natively scrollable and hides native scrollbars by default, unless native scrollbars
17
+ * already sit on top of the viewport (e.g. in OS X).
18
+ *
19
+ * Because there is no cross-browser API to hide scrollbars without losing native scroll support, we set 'overflow'
20
+ * to 'scroll' but shift the native scrollbars out of the visible viewport area. The shift offset is computed upfront.
21
+ *
22
+ * This directive expects its host element to be the only child in document flow in its parent DOM element. It makes the host element
23
+ * fill up the entire space (width and height set to 100%). The parent element must have its CSS `overflow` property set to `hidden`
24
+ * to hide the pushed out native scrollbars.
25
+ */
26
+ export class SciScrollableDirective {
27
+ constructor(_host, _renderer, nativeScrollbarTrackSizeProvider) {
28
+ this._host = _host;
29
+ this._renderer = _renderer;
30
+ this._destroy$ = new Subject();
31
+ this._inputChange$ = new Subject();
32
+ /**
33
+ * Controls whether to display native scrollbars.
34
+ * Has no effect if the native scrollbar sits on top of the content, e.g. in OS X.
35
+ */
36
+ this.isDisplayNativeScrollbar = false;
37
+ merge(nativeScrollbarTrackSizeProvider.trackSize$, this._inputChange$.pipe(map(() => nativeScrollbarTrackSizeProvider.trackSize)))
38
+ .pipe(takeUntil(this._destroy$))
39
+ .subscribe(nativeScrollbarTrackSize => {
40
+ if (nativeScrollbarTrackSize === null) { // the native scrollbar sits on top of the content
41
+ this.useNativeScrollbars();
42
+ }
43
+ else {
44
+ this.isDisplayNativeScrollbar ? this.useNativeScrollbars() : this.shiftNativeScrollbars(nativeScrollbarTrackSize);
45
+ }
46
+ });
47
+ }
48
+ /**
49
+ * Uses the native scrollbars when content overflows.
50
+ */
51
+ useNativeScrollbars() {
52
+ this.setStyle(this._host.nativeElement, {
53
+ overflow: 'auto',
54
+ width: '100%',
55
+ height: '100%',
56
+ marginRight: 0,
57
+ marginBottom: 0,
58
+ });
59
+ }
60
+ /**
61
+ * Shifts the native scrollbars out of the visible viewport area.
62
+ */
63
+ shiftNativeScrollbars(nativeScrollbarTrackSize) {
64
+ this.setStyle(this._host.nativeElement, {
65
+ overflow: 'scroll',
66
+ width: `calc(100% + ${nativeScrollbarTrackSize.vScrollbarTrackWidth}px`,
67
+ height: `calc(100% + ${nativeScrollbarTrackSize.hScrollbarTrackHeight}px`,
68
+ marginRight: `-${nativeScrollbarTrackSize.vScrollbarTrackWidth}px`,
69
+ marginBottom: `-${nativeScrollbarTrackSize.hScrollbarTrackHeight}px`,
70
+ });
71
+ }
72
+ setStyle(element, style) {
73
+ Object.keys(style).forEach(key => this._renderer.setStyle(element, key, style[key]));
74
+ }
75
+ ngOnChanges(changes) {
76
+ this._inputChange$.next();
77
+ }
78
+ ngOnDestroy() {
79
+ this._destroy$.next();
80
+ }
81
+ }
82
+ SciScrollableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciScrollableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.SciNativeScrollbarTrackSizeProvider }], target: i0.ɵɵFactoryTarget.Directive });
83
+ SciScrollableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: SciScrollableDirective, selector: "[sciScrollable]", inputs: { isDisplayNativeScrollbar: ["sciScrollableDisplayNativeScrollbar", "isDisplayNativeScrollbar"] }, usesOnChanges: true, ngImport: i0 });
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciScrollableDirective, decorators: [{
85
+ type: Directive,
86
+ args: [{
87
+ selector: '[sciScrollable]',
88
+ }]
89
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.SciNativeScrollbarTrackSizeProvider }]; }, propDecorators: { isDisplayNativeScrollbar: [{
90
+ type: Input,
91
+ args: ['sciScrollableDisplayNativeScrollbar']
92
+ }] } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi9jb21wb25lbnRzL3ZpZXdwb3J0L3NyYy9zY3JvbGxhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUFpRCxNQUFNLGVBQWUsQ0FBQztBQUUzRyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFHcEM7Ozs7Ozs7Ozs7R0FVRztBQUlILE1BQU0sT0FBTyxzQkFBc0I7SUFZakMsWUFBb0IsS0FBaUMsRUFDakMsU0FBb0IsRUFDNUIsZ0NBQXFFO1FBRjdELFVBQUssR0FBTCxLQUFLLENBQTRCO1FBQ2pDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFYaEMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTVDOzs7V0FHRztRQUVJLDZCQUF3QixHQUFZLEtBQUssQ0FBQztRQUsvQyxLQUFLLENBQ0gsZ0NBQWdDLENBQUMsVUFBVSxFQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsZ0NBQWdDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDL0U7YUFDRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMvQixTQUFTLENBQUMsd0JBQXdCLENBQUMsRUFBRTtZQUNwQyxJQUFJLHdCQUF3QixLQUFLLElBQUksRUFBRSxFQUFFLGtEQUFrRDtnQkFDekYsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDNUI7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHdCQUF3QixDQUFDLENBQUM7YUFDbkg7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNLLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFO1lBQ3RDLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLEtBQUssRUFBRSxNQUFNO1lBQ2IsTUFBTSxFQUFFLE1BQU07WUFDZCxXQUFXLEVBQUUsQ0FBQztZQUNkLFlBQVksRUFBRSxDQUFDO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLHFCQUFxQixDQUFDLHdCQUFrRDtRQUM5RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFO1lBQ3RDLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLEtBQUssRUFBRSxlQUFlLHdCQUF3QixDQUFDLG9CQUFvQixJQUFJO1lBQ3ZFLE1BQU0sRUFBRSxlQUFlLHdCQUF3QixDQUFDLHFCQUFxQixJQUFJO1lBQ3pFLFdBQVcsRUFBRSxJQUFJLHdCQUF3QixDQUFDLG9CQUFvQixJQUFJO1lBQ2xFLFlBQVksRUFBRSxJQUFJLHdCQUF3QixDQUFDLHFCQUFxQixJQUFJO1NBQ3JFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxRQUFRLENBQUMsT0FBZ0IsRUFBRSxLQUFpQjtRQUNsRCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDOzttSEFsRVUsc0JBQXNCO3VHQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFIbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1QjsyS0FXUSx3QkFBd0I7c0JBRDlCLEtBQUs7dUJBQUMscUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplLCBTY2lOYXRpdmVTY3JvbGxiYXJUcmFja1NpemVQcm92aWRlcn0gZnJvbSAnLi9uYXRpdmUtc2Nyb2xsYmFyLXRyYWNrLXNpemUtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge21lcmdlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RGljdGlvbmFyeX0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5cbi8qKlxuICogTWFrZXMgdGhlIGhvc3QgZWxlbWVudCBuYXRpdmVseSBzY3JvbGxhYmxlIGFuZCBoaWRlcyBuYXRpdmUgc2Nyb2xsYmFycyBieSBkZWZhdWx0LCB1bmxlc3MgbmF0aXZlIHNjcm9sbGJhcnNcbiAqIGFscmVhZHkgc2l0IG9uIHRvcCBvZiB0aGUgdmlld3BvcnQgKGUuZy4gaW4gT1MgWCkuXG4gKlxuICogQmVjYXVzZSB0aGVyZSBpcyBubyBjcm9zcy1icm93c2VyIEFQSSB0byBoaWRlIHNjcm9sbGJhcnMgd2l0aG91dCBsb3NpbmcgbmF0aXZlIHNjcm9sbCBzdXBwb3J0LCB3ZSBzZXQgJ292ZXJmbG93J1xuICogdG8gJ3Njcm9sbCcgYnV0IHNoaWZ0IHRoZSBuYXRpdmUgc2Nyb2xsYmFycyBvdXQgb2YgdGhlIHZpc2libGUgdmlld3BvcnQgYXJlYS4gVGhlIHNoaWZ0IG9mZnNldCBpcyBjb21wdXRlZCB1cGZyb250LlxuICpcbiAqIFRoaXMgZGlyZWN0aXZlIGV4cGVjdHMgaXRzIGhvc3QgZWxlbWVudCB0byBiZSB0aGUgb25seSBjaGlsZCBpbiBkb2N1bWVudCBmbG93IGluIGl0cyBwYXJlbnQgRE9NIGVsZW1lbnQuIEl0IG1ha2VzIHRoZSBob3N0IGVsZW1lbnRcbiAqIGZpbGwgdXAgdGhlIGVudGlyZSBzcGFjZSAod2lkdGggYW5kIGhlaWdodCBzZXQgdG8gMTAwJSkuIFRoZSBwYXJlbnQgZWxlbWVudCBtdXN0IGhhdmUgaXRzIENTUyBgb3ZlcmZsb3dgIHByb3BlcnR5IHNldCB0byBgaGlkZGVuYFxuICogdG8gaGlkZSB0aGUgcHVzaGVkIG91dCBuYXRpdmUgc2Nyb2xsYmFycy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NjaVNjcm9sbGFibGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgU2NpU2Nyb2xsYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgX2lucHV0Q2hhbmdlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdG8gZGlzcGxheSBuYXRpdmUgc2Nyb2xsYmFycy5cbiAgICogSGFzIG5vIGVmZmVjdCBpZiB0aGUgbmF0aXZlIHNjcm9sbGJhciBzaXRzIG9uIHRvcCBvZiB0aGUgY29udGVudCwgZS5nLiBpbiBPUyBYLlxuICAgKi9cbiAgQElucHV0KCdzY2lTY3JvbGxhYmxlRGlzcGxheU5hdGl2ZVNjcm9sbGJhcicpIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBwdWJsaWMgaXNEaXNwbGF5TmF0aXZlU2Nyb2xsYmFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4sXG4gICAgICAgICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgICAgICAgIG5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZVByb3ZpZGVyOiBTY2lOYXRpdmVTY3JvbGxiYXJUcmFja1NpemVQcm92aWRlcikge1xuICAgIG1lcmdlKFxuICAgICAgbmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplUHJvdmlkZXIudHJhY2tTaXplJCxcbiAgICAgIHRoaXMuX2lucHV0Q2hhbmdlJC5waXBlKG1hcCgoKSA9PiBuYXRpdmVTY3JvbGxiYXJUcmFja1NpemVQcm92aWRlci50cmFja1NpemUpKSxcbiAgICApXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZShuYXRpdmVTY3JvbGxiYXJUcmFja1NpemUgPT4ge1xuICAgICAgICBpZiAobmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplID09PSBudWxsKSB7IC8vIHRoZSBuYXRpdmUgc2Nyb2xsYmFyIHNpdHMgb24gdG9wIG9mIHRoZSBjb250ZW50XG4gICAgICAgICAgdGhpcy51c2VOYXRpdmVTY3JvbGxiYXJzKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc0Rpc3BsYXlOYXRpdmVTY3JvbGxiYXIgPyB0aGlzLnVzZU5hdGl2ZVNjcm9sbGJhcnMoKSA6IHRoaXMuc2hpZnROYXRpdmVTY3JvbGxiYXJzKG5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZXMgdGhlIG5hdGl2ZSBzY3JvbGxiYXJzIHdoZW4gY29udGVudCBvdmVyZmxvd3MuXG4gICAqL1xuICBwcml2YXRlIHVzZU5hdGl2ZVNjcm9sbGJhcnMoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTdHlsZSh0aGlzLl9ob3N0Lm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIG92ZXJmbG93OiAnYXV0bycsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICBtYXJnaW5SaWdodDogMCxcbiAgICAgIG1hcmdpbkJvdHRvbTogMCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaGlmdHMgdGhlIG5hdGl2ZSBzY3JvbGxiYXJzIG91dCBvZiB0aGUgdmlzaWJsZSB2aWV3cG9ydCBhcmVhLlxuICAgKi9cbiAgcHJpdmF0ZSBzaGlmdE5hdGl2ZVNjcm9sbGJhcnMobmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplOiBOYXRpdmVTY3JvbGxiYXJUcmFja1NpemUpOiB2b2lkIHtcbiAgICB0aGlzLnNldFN0eWxlKHRoaXMuX2hvc3QubmF0aXZlRWxlbWVudCwge1xuICAgICAgb3ZlcmZsb3c6ICdzY3JvbGwnLFxuICAgICAgd2lkdGg6IGBjYWxjKDEwMCUgKyAke25hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZS52U2Nyb2xsYmFyVHJhY2tXaWR0aH1weGAsXG4gICAgICBoZWlnaHQ6IGBjYWxjKDEwMCUgKyAke25hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZS5oU2Nyb2xsYmFyVHJhY2tIZWlnaHR9cHhgLFxuICAgICAgbWFyZ2luUmlnaHQ6IGAtJHtuYXRpdmVTY3JvbGxiYXJUcmFja1NpemUudlNjcm9sbGJhclRyYWNrV2lkdGh9cHhgLFxuICAgICAgbWFyZ2luQm90dG9tOiBgLSR7bmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplLmhTY3JvbGxiYXJUcmFja0hlaWdodH1weGAsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFN0eWxlKGVsZW1lbnQ6IEVsZW1lbnQsIHN0eWxlOiBEaWN0aW9uYXJ5KTogdm9pZCB7XG4gICAgT2JqZWN0LmtleXMoc3R5bGUpLmZvckVhY2goa2V5ID0+IHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnQsIGtleSwgc3R5bGVba2V5XSkpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnB1dENoYW5nZSQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgfVxufVxuIl19