ngx-semantic 2.0.9 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/ngx-semantic-collections-grid.mjs +99 -17
- package/fesm2022/ngx-semantic-collections-grid.mjs.map +1 -1
- package/fesm2022/ngx-semantic-collections-menu.mjs +18 -3
- package/fesm2022/ngx-semantic-collections-menu.mjs.map +1 -1
- package/fesm2022/ngx-semantic-collections-table.mjs +42 -7
- package/fesm2022/ngx-semantic-collections-table.mjs.map +1 -1
- package/fesm2022/ngx-semantic-elements-divider.mjs +8 -8
- package/fesm2022/ngx-semantic-elements-divider.mjs.map +1 -1
- package/fesm2022/ngx-semantic-modules-dimmer.mjs +6 -4
- package/fesm2022/ngx-semantic-modules-dimmer.mjs.map +1 -1
- package/fesm2022/ngx-semantic-modules-shape.mjs +35 -31
- package/fesm2022/ngx-semantic-modules-shape.mjs.map +1 -1
- package/fesm2022/ngx-semantic-modules-sidebar.mjs +108 -16
- package/fesm2022/ngx-semantic-modules-sidebar.mjs.map +1 -1
- package/fesm2022/ngx-semantic-modules-sticky.mjs +13 -2
- package/fesm2022/ngx-semantic-modules-sticky.mjs.map +1 -1
- package/fesm2022/ngx-semantic-modules-tabs.mjs +1 -1
- package/fesm2022/ngx-semantic-modules-tabs.mjs.map +1 -1
- package/fesm2022/ngx-semantic-modules-transition.mjs +4 -0
- package/fesm2022/ngx-semantic-modules-transition.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ngx-semantic-collections-grid.d.ts +44 -12
- package/types/ngx-semantic-collections-menu.d.ts +7 -3
- package/types/ngx-semantic-collections-table.d.ts +14 -6
- package/types/ngx-semantic-core-enums.d.ts +1 -1
- package/types/ngx-semantic-elements-divider.d.ts +3 -1
- package/types/ngx-semantic-modules-dimmer.d.ts +1 -1
- package/types/ngx-semantic-modules-shape.d.ts +4 -3
- package/types/ngx-semantic-modules-sidebar.d.ts +33 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { __decorate } from 'tslib';
|
|
1
2
|
import * as i0 from '@angular/core';
|
|
2
3
|
import { EventEmitter, Injectable, inject, HostBinding, Input, Output, ViewEncapsulation, Component, HostListener, ContentChild, NgModule } from '@angular/core';
|
|
3
|
-
import { __decorate } from 'tslib';
|
|
4
4
|
import { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
6
6
|
|
|
@@ -11,11 +11,17 @@ class SuiSidebarService {
|
|
|
11
11
|
constructor() {
|
|
12
12
|
this.pusherClicked = new EventEmitter();
|
|
13
13
|
this.visibilityChanged = new EventEmitter();
|
|
14
|
+
this._isVisible = false;
|
|
15
|
+
}
|
|
16
|
+
/** The last visibility reported by the sidebar sharing this service. */
|
|
17
|
+
get isVisible() {
|
|
18
|
+
return this._isVisible;
|
|
14
19
|
}
|
|
15
20
|
notifyPusherClicked() {
|
|
16
21
|
this.pusherClicked.emit();
|
|
17
22
|
}
|
|
18
23
|
changeVisibility(isVisible) {
|
|
24
|
+
this._isVisible = isVisible;
|
|
19
25
|
this.visibilityChanged.emit(isVisible);
|
|
20
26
|
}
|
|
21
27
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SuiSidebarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -25,12 +31,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
25
31
|
type: Injectable
|
|
26
32
|
}] });
|
|
27
33
|
|
|
34
|
+
/** Matches the Semantic UI sidebar transition duration. */
|
|
35
|
+
const SIDEBAR_ANIMATION_DURATION = 500;
|
|
28
36
|
class SuiSidebarComponent {
|
|
29
37
|
get visible() {
|
|
30
38
|
return this._visible;
|
|
31
39
|
}
|
|
32
40
|
set visible(isVisible) {
|
|
33
|
-
|
|
41
|
+
const value = !!isVisible;
|
|
42
|
+
// only animate changes made after the initial binding, so the sidebar does not flash on load
|
|
43
|
+
if (this.initialised && value !== this._visible) {
|
|
44
|
+
this.startAnimating();
|
|
45
|
+
}
|
|
46
|
+
this._visible = value;
|
|
34
47
|
this.visibleChange.emit(this._visible);
|
|
35
48
|
this.sidebarService.changeVisibility(this._visible);
|
|
36
49
|
}
|
|
@@ -42,8 +55,9 @@ class SuiSidebarComponent {
|
|
|
42
55
|
ClassUtils.getPropClass(this.suiInverted, 'inverted'),
|
|
43
56
|
'sidebar',
|
|
44
57
|
this.suiSidebarAnimation,
|
|
58
|
+
ClassUtils.getPropClass(this.animating, 'animating'),
|
|
45
59
|
ClassUtils.getPropClass(this.visible, 'visible')
|
|
46
|
-
].join(' ');
|
|
60
|
+
].join(' ').replace(/\s\s+/g, ' ').trim();
|
|
47
61
|
}
|
|
48
62
|
constructor() {
|
|
49
63
|
this.sidebarService = inject(SuiSidebarService);
|
|
@@ -51,30 +65,70 @@ class SuiSidebarComponent {
|
|
|
51
65
|
this.suiSidebarWidth = null;
|
|
52
66
|
this.suiSidebarAnimation = null;
|
|
53
67
|
this.suiInverted = false;
|
|
68
|
+
/** Whether clicking the pusher hides a sidebar whose visibility is two-way bound. */
|
|
69
|
+
this.suiClosable = true;
|
|
54
70
|
this.visibleChange = new EventEmitter();
|
|
71
|
+
this.animating = false;
|
|
55
72
|
this._visible = true;
|
|
56
|
-
|
|
57
|
-
|
|
73
|
+
this.animationTimer = null;
|
|
74
|
+
this.initialised = false;
|
|
75
|
+
this.sidebarService.changeVisibility(this._visible);
|
|
76
|
+
this.subscription = this.sidebarService.pusherClicked
|
|
58
77
|
.subscribe(() => {
|
|
59
|
-
// only close sidebar
|
|
60
|
-
if (this.visibleChange.
|
|
78
|
+
// only close the sidebar from the pusher when its visibility is bound, i.e. [(visible)]
|
|
79
|
+
if (this.suiClosable && this.visibleChange.observed) {
|
|
61
80
|
this.visible = false;
|
|
62
81
|
}
|
|
63
82
|
});
|
|
64
83
|
}
|
|
84
|
+
ngOnInit() {
|
|
85
|
+
this.initialised = true;
|
|
86
|
+
}
|
|
87
|
+
ngOnDestroy() {
|
|
88
|
+
this.subscription.unsubscribe();
|
|
89
|
+
if (this.animationTimer) {
|
|
90
|
+
clearTimeout(this.animationTimer);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/** Mirrors `sidebar('toggle')`. */
|
|
94
|
+
toggle() {
|
|
95
|
+
this.visible = !this.visible;
|
|
96
|
+
}
|
|
97
|
+
/** Mirrors `sidebar('show')`. */
|
|
98
|
+
show() {
|
|
99
|
+
this.visible = true;
|
|
100
|
+
}
|
|
101
|
+
/** Mirrors `sidebar('hide')`. */
|
|
102
|
+
hide() {
|
|
103
|
+
this.visible = false;
|
|
104
|
+
}
|
|
105
|
+
startAnimating() {
|
|
106
|
+
this.animating = true;
|
|
107
|
+
if (this.animationTimer) {
|
|
108
|
+
clearTimeout(this.animationTimer);
|
|
109
|
+
}
|
|
110
|
+
this.animationTimer = setTimeout(() => {
|
|
111
|
+
this.animating = false;
|
|
112
|
+
this.animationTimer = null;
|
|
113
|
+
}, SIDEBAR_ANIMATION_DURATION);
|
|
114
|
+
}
|
|
65
115
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SuiSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.23", type: SuiSidebarComponent, isStandalone: true, selector: "sui-sidebar, [sui-sidebar]", inputs: { suiSidebarPosition: "suiSidebarPosition", suiSidebarWidth: "suiSidebarWidth", suiSidebarAnimation: "suiSidebarAnimation", suiInverted: "suiInverted", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: `
|
|
116
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.23", type: SuiSidebarComponent, isStandalone: true, selector: "sui-sidebar, [sui-sidebar]", inputs: { suiSidebarPosition: "suiSidebarPosition", suiSidebarWidth: "suiSidebarWidth", suiSidebarAnimation: "suiSidebarAnimation", suiInverted: "suiInverted", suiClosable: "suiClosable", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class": "this.classes" } }, exportAs: ["suiSidebar"], ngImport: i0, template: `
|
|
67
117
|
<ng-content></ng-content>
|
|
68
118
|
`, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
|
|
69
119
|
}
|
|
70
120
|
__decorate([
|
|
71
121
|
InputBoolean()
|
|
72
122
|
], SuiSidebarComponent.prototype, "suiInverted", void 0);
|
|
123
|
+
__decorate([
|
|
124
|
+
InputBoolean()
|
|
125
|
+
], SuiSidebarComponent.prototype, "suiClosable", void 0);
|
|
73
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SuiSidebarComponent, decorators: [{
|
|
74
127
|
type: Component,
|
|
75
128
|
args: [{
|
|
76
129
|
standalone: true,
|
|
77
130
|
selector: 'sui-sidebar, [sui-sidebar]',
|
|
131
|
+
exportAs: 'suiSidebar',
|
|
78
132
|
encapsulation: ViewEncapsulation.None,
|
|
79
133
|
template: `
|
|
80
134
|
<ng-content></ng-content>
|
|
@@ -88,6 +142,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
88
142
|
type: Input
|
|
89
143
|
}], suiInverted: [{
|
|
90
144
|
type: Input
|
|
145
|
+
}], suiClosable: [{
|
|
146
|
+
type: Input
|
|
91
147
|
}], visibleChange: [{
|
|
92
148
|
type: Output
|
|
93
149
|
}], visible: [{
|
|
@@ -102,26 +158,31 @@ class SuiSidebarPusherComponent {
|
|
|
102
158
|
this.sidebarService = inject(SuiSidebarService);
|
|
103
159
|
this.suiDimmable = false;
|
|
104
160
|
this.isSidebarOpen = false;
|
|
161
|
+
this.subscription = null;
|
|
105
162
|
}
|
|
106
163
|
get classes() {
|
|
107
164
|
return [
|
|
108
165
|
ClassUtils.getPropClass(this.isSidebarOpen && this.suiDimmable, 'dimmed'),
|
|
109
166
|
'pusher'
|
|
110
|
-
].join(' ');
|
|
167
|
+
].join(' ').trim();
|
|
111
168
|
}
|
|
112
169
|
ngOnInit() {
|
|
113
|
-
this.sidebarService.
|
|
170
|
+
this.isSidebarOpen = this.isSidebarOpen || this.sidebarService.isVisible;
|
|
171
|
+
this.subscription = this.sidebarService.visibilityChanged
|
|
114
172
|
.subscribe((isVisible) => {
|
|
115
173
|
this.isSidebarOpen = isVisible;
|
|
116
174
|
});
|
|
117
175
|
}
|
|
176
|
+
ngOnDestroy() {
|
|
177
|
+
this.subscription?.unsubscribe();
|
|
178
|
+
}
|
|
118
179
|
onClick() {
|
|
119
180
|
if (this.isSidebarOpen) {
|
|
120
181
|
this.sidebarService.notifyPusherClicked();
|
|
121
182
|
}
|
|
122
183
|
}
|
|
123
184
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SuiSidebarPusherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
124
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.23", type: SuiSidebarPusherComponent, isStandalone: true, selector: "sui-sidebar-pusher", inputs: { suiDimmable: "suiDimmable" }, host: { listeners: { "click": "onClick()" }, properties: { "class": "this.classes" } }, ngImport: i0, template: `
|
|
185
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.23", type: SuiSidebarPusherComponent, isStandalone: true, selector: "sui-sidebar-pusher", inputs: { suiDimmable: "suiDimmable" }, host: { listeners: { "click": "onClick()" }, properties: { "class": "this.classes" }, styleAttribute: "display: block" }, ngImport: i0, template: `
|
|
125
186
|
<ng-content></ng-content>
|
|
126
187
|
`, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
|
|
127
188
|
}
|
|
@@ -134,6 +195,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
134
195
|
standalone: true,
|
|
135
196
|
selector: 'sui-sidebar-pusher',
|
|
136
197
|
encapsulation: ViewEncapsulation.None,
|
|
198
|
+
host: {
|
|
199
|
+
style: 'display: block'
|
|
200
|
+
},
|
|
137
201
|
template: `
|
|
138
202
|
<ng-content></ng-content>
|
|
139
203
|
`
|
|
@@ -148,10 +212,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
148
212
|
args: ['click']
|
|
149
213
|
}] } });
|
|
150
214
|
|
|
151
|
-
/**
|
|
152
|
-
* Created by bolorundurowb on 1/1/2021
|
|
153
|
-
*/
|
|
154
215
|
class SuiSidebarContainerComponent {
|
|
216
|
+
constructor() {
|
|
217
|
+
this.sidebarService = inject(SuiSidebarService);
|
|
218
|
+
/**
|
|
219
|
+
* Makes the container the sidebar's context (Semantic UI `pushable`). The sidebar and dimmer are then
|
|
220
|
+
* positioned inside the container rather than the viewport. Always applied when the pusher is dimmable,
|
|
221
|
+
* since Semantic UI only renders the dimmer inside a pushable context.
|
|
222
|
+
*/
|
|
223
|
+
this.suiPushable = false;
|
|
224
|
+
this.subscription = null;
|
|
225
|
+
}
|
|
226
|
+
get isPushable() {
|
|
227
|
+
return this.suiPushable || !!this.suiPusher?.suiDimmable;
|
|
228
|
+
}
|
|
155
229
|
ngAfterContentInit() {
|
|
156
230
|
if (!this.suiSidebar) {
|
|
157
231
|
throw new Error('You must include a <sui-sidebar> element within the container.');
|
|
@@ -159,22 +233,35 @@ class SuiSidebarContainerComponent {
|
|
|
159
233
|
if (!this.suiPusher) {
|
|
160
234
|
throw new Error('You must include a <sui-sidebar-pusher> element within the container.');
|
|
161
235
|
}
|
|
162
|
-
|
|
236
|
+
// the sidebar reports its initial visibility before the pusher exists, so sync it once here
|
|
237
|
+
this.suiPusher.isSidebarOpen = this.suiSidebar.visible;
|
|
238
|
+
this.subscription = this.sidebarService.visibilityChanged
|
|
163
239
|
.subscribe((isVisible) => {
|
|
164
240
|
this.suiPusher.isSidebarOpen = isVisible;
|
|
165
241
|
});
|
|
166
242
|
}
|
|
243
|
+
ngOnDestroy() {
|
|
244
|
+
this.subscription?.unsubscribe();
|
|
245
|
+
}
|
|
167
246
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SuiSidebarContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
168
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.23", type: SuiSidebarContainerComponent, isStandalone: true, selector: "sui-sidebar-container", queries: [{ propertyName: "suiSidebar", first: true, predicate: SuiSidebarComponent, descendants: true }, { propertyName: "suiPusher", first: true, predicate: SuiSidebarPusherComponent, descendants: true }], ngImport: i0, template: `
|
|
247
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.23", type: SuiSidebarContainerComponent, isStandalone: true, selector: "sui-sidebar-container", inputs: { suiPushable: "suiPushable" }, host: { properties: { "class.pushable": "this.isPushable" }, styleAttribute: "display: block" }, providers: [SuiSidebarService], queries: [{ propertyName: "suiSidebar", first: true, predicate: SuiSidebarComponent, descendants: true }, { propertyName: "suiPusher", first: true, predicate: SuiSidebarPusherComponent, descendants: true }], ngImport: i0, template: `
|
|
169
248
|
<ng-content></ng-content>
|
|
170
249
|
`, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
|
|
171
250
|
}
|
|
251
|
+
__decorate([
|
|
252
|
+
InputBoolean()
|
|
253
|
+
], SuiSidebarContainerComponent.prototype, "suiPushable", void 0);
|
|
172
254
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SuiSidebarContainerComponent, decorators: [{
|
|
173
255
|
type: Component,
|
|
174
256
|
args: [{
|
|
175
257
|
standalone: true,
|
|
176
258
|
selector: 'sui-sidebar-container',
|
|
177
259
|
encapsulation: ViewEncapsulation.None,
|
|
260
|
+
// each container gets its own service so multiple sidebars on a page do not affect one another
|
|
261
|
+
providers: [SuiSidebarService],
|
|
262
|
+
host: {
|
|
263
|
+
style: 'display: block'
|
|
264
|
+
},
|
|
178
265
|
template: `
|
|
179
266
|
<ng-content></ng-content>
|
|
180
267
|
`
|
|
@@ -185,6 +272,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
185
272
|
}], suiPusher: [{
|
|
186
273
|
type: ContentChild,
|
|
187
274
|
args: [SuiSidebarPusherComponent]
|
|
275
|
+
}], suiPushable: [{
|
|
276
|
+
type: Input
|
|
277
|
+
}], isPushable: [{
|
|
278
|
+
type: HostBinding,
|
|
279
|
+
args: ['class.pushable']
|
|
188
280
|
}] } });
|
|
189
281
|
|
|
190
282
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-semantic-modules-sidebar.mjs","sources":["../../src/modules/sidebar/sidebar.service.ts","../../src/modules/sidebar/sidebar.component.ts","../../src/modules/sidebar/sidebar-pusher.component.ts","../../src/modules/sidebar/sidebar-container.component.ts","../../src/modules/sidebar/sidebar.module.ts","../../src/modules/sidebar/public-api.ts","../../src/modules/sidebar/ngx-semantic-modules-sidebar.ts"],"sourcesContent":["/**\n * Created by bolorundurowb on 1/1/2021\n */\n\nimport { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class SuiSidebarService {\n public pusherClicked = new EventEmitter<void>();\n public visibilityChanged = new EventEmitter<boolean>();\n\n public notifyPusherClicked(): void {\n this.pusherClicked.emit();\n }\n\n public changeVisibility(isVisible: boolean): void {\n this.visibilityChanged.emit(isVisible);\n }\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nimport { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation, inject } from '@angular/core';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { SuiSidebarService } from './sidebar.service';\n\nexport type SuiSidebarPosition = 'top' | 'bottom' | 'left' | 'right';\nexport type SuiSidebarWidth = 'thin' | 'very thin' | 'wide' | 'very wide' | null;\nexport type SuiSidebarAnimation = 'overlay' | 'push' | 'scale down' | 'uncover' | 'slide along' | 'slide out' | null;\n\n@Component({\n standalone: true,\n selector: 'sui-sidebar, [sui-sidebar]',\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-content></ng-content>\n `\n})\nexport class SuiSidebarComponent {\n private sidebarService = inject(SuiSidebarService);\n\n @Input() public suiSidebarPosition: SuiSidebarPosition = 'left';\n @Input() public suiSidebarWidth: SuiSidebarWidth = null;\n @Input() public suiSidebarAnimation: SuiSidebarAnimation = null;\n @Input() @InputBoolean() public suiInverted = false;\n @Output() public visibleChange = new EventEmitter<boolean>();\n\n private _visible = true;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(isVisible) {\n this._visible = isVisible;\n this.visibleChange.emit(this._visible);\n this.sidebarService.changeVisibility(this._visible);\n }\n\n @HostBinding('class')\n get classes(): string {\n return [\n 'ui',\n this.suiSidebarPosition,\n this.suiSidebarWidth,\n ClassUtils.getPropClass(this.suiInverted, 'inverted'),\n 'sidebar',\n this.suiSidebarAnimation,\n ClassUtils.getPropClass(this.visible, 'visible')\n ].join(' ');\n }\n\n constructor() {\n const sidebarService = this.sidebarService;\n\n sidebarService.pusherClicked\n .subscribe(() => {\n // only close sidebar on pusher when the visibility is dynamic\n if (this.visibleChange.observers.length > 0) {\n this.visible = false;\n }\n });\n }\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nimport { Component, HostBinding, HostListener, Input, OnInit, ViewEncapsulation, inject } from '@angular/core';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { SuiSidebarService } from './sidebar.service';\n\n@Component({\n standalone: true,\n selector: 'sui-sidebar-pusher',\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-content></ng-content>\n `\n})\nexport class SuiSidebarPusherComponent implements OnInit {\n private sidebarService = inject(SuiSidebarService);\n\n @Input() @InputBoolean() public suiDimmable = false;\n public isSidebarOpen = false;\n\n @HostBinding('class')\n get classes(): string {\n return [\n ClassUtils.getPropClass(this.isSidebarOpen && this.suiDimmable, 'dimmed'),\n 'pusher'\n ].join(' ');\n }\n\n public ngOnInit(): void {\n this.sidebarService.visibilityChanged\n .subscribe((isVisible) => {\n this.isSidebarOpen = isVisible;\n });\n }\n\n @HostListener('click')\n public onClick(): void {\n if (this.isSidebarOpen) {\n this.sidebarService.notifyPusherClicked();\n }\n }\n}\n","/**\n * Created by bolorundurowb on 1/1/2021\n */\n\nimport { AfterContentInit, Component, ContentChild, ViewEncapsulation } from '@angular/core';\nimport { SuiSidebarComponent } from './sidebar.component';\nimport { SuiSidebarPusherComponent } from './sidebar-pusher.component';\n\n@Component({\n standalone: true,\n selector: 'sui-sidebar-container',\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-content></ng-content>\n `\n})\nexport class SuiSidebarContainerComponent implements AfterContentInit {\n @ContentChild(SuiSidebarComponent) public suiSidebar!: SuiSidebarComponent;\n @ContentChild(SuiSidebarPusherComponent) public suiPusher!: SuiSidebarPusherComponent;\n\n public ngAfterContentInit(): void {\n if (!this.suiSidebar) {\n throw new Error('You must include a <sui-sidebar> element within the container.');\n }\n\n if (!this.suiPusher) {\n throw new Error('You must include a <sui-sidebar-pusher> element within the container.');\n }\n\n this.suiSidebar.visibleChange\n .subscribe((isVisible) => {\n this.suiPusher.isSidebarOpen = isVisible;\n });\n }\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SuiSidebarContainerComponent } from './sidebar-container.component';\nimport { SuiSidebarPusherComponent } from './sidebar-pusher.component';\nimport { SuiSidebarComponent } from './sidebar.component';\nimport { SuiSidebarService } from './sidebar.service';\n\n@NgModule({\n imports: [\n CommonModule,\n SuiSidebarComponent,\n SuiSidebarPusherComponent,\n SuiSidebarContainerComponent\n ],\n exports: [\n SuiSidebarComponent,\n SuiSidebarPusherComponent,\n SuiSidebarContainerComponent\n ],\n providers: [\n SuiSidebarService\n ]\n})\nexport class SuiSidebarModule {\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nexport * from './sidebar-container.component';\nexport * from './sidebar-pusher.component';\nexport * from './sidebar.component';\nexport * from './sidebar.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-semantic-modules-sidebar.mjs","sources":["../../src/modules/sidebar/sidebar.service.ts","../../src/modules/sidebar/sidebar.component.ts","../../src/modules/sidebar/sidebar-pusher.component.ts","../../src/modules/sidebar/sidebar-container.component.ts","../../src/modules/sidebar/sidebar.module.ts","../../src/modules/sidebar/public-api.ts","../../src/modules/sidebar/ngx-semantic-modules-sidebar.ts"],"sourcesContent":["/**\n * Created by bolorundurowb on 1/1/2021\n */\n\nimport { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class SuiSidebarService {\n public pusherClicked = new EventEmitter<void>();\n public visibilityChanged = new EventEmitter<boolean>();\n\n private _isVisible = false;\n\n /** The last visibility reported by the sidebar sharing this service. */\n public get isVisible(): boolean {\n return this._isVisible;\n }\n\n public notifyPusherClicked(): void {\n this.pusherClicked.emit();\n }\n\n public changeVisibility(isVisible: boolean): void {\n this._isVisible = isVisible;\n this.visibilityChanged.emit(isVisible);\n }\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nimport { Component, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output, ViewEncapsulation, inject } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { SuiSidebarService } from './sidebar.service';\n\nexport type SuiSidebarPosition = 'top' | 'bottom' | 'left' | 'right';\nexport type SuiSidebarWidth = 'thin' | 'very thin' | 'wide' | 'very wide' | null;\nexport type SuiSidebarAnimation = 'overlay' | 'push' | 'scale down' | 'uncover' | 'slide along' | 'slide out' | null;\n\n/** Matches the Semantic UI sidebar transition duration. */\nconst SIDEBAR_ANIMATION_DURATION = 500;\n\n@Component({\n standalone: true,\n selector: 'sui-sidebar, [sui-sidebar]',\n exportAs: 'suiSidebar',\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-content></ng-content>\n `\n})\nexport class SuiSidebarComponent implements OnInit, OnDestroy {\n private sidebarService = inject(SuiSidebarService);\n\n @Input() public suiSidebarPosition: SuiSidebarPosition = 'left';\n @Input() public suiSidebarWidth: SuiSidebarWidth = null;\n @Input() public suiSidebarAnimation: SuiSidebarAnimation = null;\n @Input() @InputBoolean() public suiInverted = false;\n /** Whether clicking the pusher hides a sidebar whose visibility is two-way bound. */\n @Input() @InputBoolean() public suiClosable = true;\n @Output() public visibleChange = new EventEmitter<boolean>();\n\n public animating = false;\n\n private _visible = true;\n private animationTimer: ReturnType<typeof setTimeout> | null = null;\n private initialised = false;\n private readonly subscription: Subscription;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(isVisible) {\n const value = !!isVisible;\n // only animate changes made after the initial binding, so the sidebar does not flash on load\n if (this.initialised && value !== this._visible) {\n this.startAnimating();\n }\n this._visible = value;\n this.visibleChange.emit(this._visible);\n this.sidebarService.changeVisibility(this._visible);\n }\n\n @HostBinding('class')\n get classes(): string {\n return [\n 'ui',\n this.suiSidebarPosition,\n this.suiSidebarWidth,\n ClassUtils.getPropClass(this.suiInverted, 'inverted'),\n 'sidebar',\n this.suiSidebarAnimation,\n ClassUtils.getPropClass(this.animating, 'animating'),\n ClassUtils.getPropClass(this.visible, 'visible')\n ].join(' ').replace(/\\s\\s+/g, ' ').trim();\n }\n\n constructor() {\n this.sidebarService.changeVisibility(this._visible);\n this.subscription = this.sidebarService.pusherClicked\n .subscribe(() => {\n // only close the sidebar from the pusher when its visibility is bound, i.e. [(visible)]\n if (this.suiClosable && this.visibleChange.observed) {\n this.visible = false;\n }\n });\n }\n\n public ngOnInit(): void {\n this.initialised = true;\n }\n\n public ngOnDestroy(): void {\n this.subscription.unsubscribe();\n if (this.animationTimer) {\n clearTimeout(this.animationTimer);\n }\n }\n\n /** Mirrors `sidebar('toggle')`. */\n public toggle(): void {\n this.visible = !this.visible;\n }\n\n /** Mirrors `sidebar('show')`. */\n public show(): void {\n this.visible = true;\n }\n\n /** Mirrors `sidebar('hide')`. */\n public hide(): void {\n this.visible = false;\n }\n\n private startAnimating(): void {\n this.animating = true;\n if (this.animationTimer) {\n clearTimeout(this.animationTimer);\n }\n this.animationTimer = setTimeout(() => {\n this.animating = false;\n this.animationTimer = null;\n }, SIDEBAR_ANIMATION_DURATION);\n }\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nimport { Component, HostBinding, HostListener, Input, OnDestroy, OnInit, ViewEncapsulation, inject } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { SuiSidebarService } from './sidebar.service';\n\n@Component({\n standalone: true,\n selector: 'sui-sidebar-pusher',\n encapsulation: ViewEncapsulation.None,\n host: {\n style: 'display: block'\n },\n template: `\n <ng-content></ng-content>\n `\n})\nexport class SuiSidebarPusherComponent implements OnInit, OnDestroy {\n private sidebarService = inject(SuiSidebarService);\n\n @Input() @InputBoolean() public suiDimmable = false;\n public isSidebarOpen = false;\n\n private subscription: Subscription | null = null;\n\n @HostBinding('class')\n get classes(): string {\n return [\n ClassUtils.getPropClass(this.isSidebarOpen && this.suiDimmable, 'dimmed'),\n 'pusher'\n ].join(' ').trim();\n }\n\n public ngOnInit(): void {\n this.isSidebarOpen = this.isSidebarOpen || this.sidebarService.isVisible;\n this.subscription = this.sidebarService.visibilityChanged\n .subscribe((isVisible) => {\n this.isSidebarOpen = isVisible;\n });\n }\n\n public ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n\n @HostListener('click')\n public onClick(): void {\n if (this.isSidebarOpen) {\n this.sidebarService.notifyPusherClicked();\n }\n }\n}\n","/**\n * Created by bolorundurowb on 1/1/2021\n */\n\nimport { AfterContentInit, Component, ContentChild, HostBinding, Input, OnDestroy, ViewEncapsulation, inject } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { InputBoolean } from 'ngx-semantic/core/util';\nimport { SuiSidebarComponent } from './sidebar.component';\nimport { SuiSidebarPusherComponent } from './sidebar-pusher.component';\nimport { SuiSidebarService } from './sidebar.service';\n\n@Component({\n standalone: true,\n selector: 'sui-sidebar-container',\n encapsulation: ViewEncapsulation.None,\n // each container gets its own service so multiple sidebars on a page do not affect one another\n providers: [SuiSidebarService],\n host: {\n style: 'display: block'\n },\n template: `\n <ng-content></ng-content>\n `\n})\nexport class SuiSidebarContainerComponent implements AfterContentInit, OnDestroy {\n private sidebarService = inject(SuiSidebarService);\n\n @ContentChild(SuiSidebarComponent) public suiSidebar!: SuiSidebarComponent;\n @ContentChild(SuiSidebarPusherComponent) public suiPusher!: SuiSidebarPusherComponent;\n\n /**\n * Makes the container the sidebar's context (Semantic UI `pushable`). The sidebar and dimmer are then\n * positioned inside the container rather than the viewport. Always applied when the pusher is dimmable,\n * since Semantic UI only renders the dimmer inside a pushable context.\n */\n @Input() @InputBoolean() public suiPushable = false;\n\n private subscription: Subscription | null = null;\n\n @HostBinding('class.pushable')\n get isPushable(): boolean {\n return this.suiPushable || !!this.suiPusher?.suiDimmable;\n }\n\n public ngAfterContentInit(): void {\n if (!this.suiSidebar) {\n throw new Error('You must include a <sui-sidebar> element within the container.');\n }\n\n if (!this.suiPusher) {\n throw new Error('You must include a <sui-sidebar-pusher> element within the container.');\n }\n\n // the sidebar reports its initial visibility before the pusher exists, so sync it once here\n this.suiPusher.isSidebarOpen = this.suiSidebar.visible;\n\n this.subscription = this.sidebarService.visibilityChanged\n .subscribe((isVisible) => {\n this.suiPusher.isSidebarOpen = isVisible;\n });\n }\n\n public ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SuiSidebarContainerComponent } from './sidebar-container.component';\nimport { SuiSidebarPusherComponent } from './sidebar-pusher.component';\nimport { SuiSidebarComponent } from './sidebar.component';\nimport { SuiSidebarService } from './sidebar.service';\n\n@NgModule({\n imports: [\n CommonModule,\n SuiSidebarComponent,\n SuiSidebarPusherComponent,\n SuiSidebarContainerComponent\n ],\n exports: [\n SuiSidebarComponent,\n SuiSidebarPusherComponent,\n SuiSidebarContainerComponent\n ],\n providers: [\n SuiSidebarService\n ]\n})\nexport class SuiSidebarModule {\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nexport * from './sidebar-container.component';\nexport * from './sidebar-pusher.component';\nexport * from './sidebar.component';\nexport * from './sidebar.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -134,11 +134,14 @@ class SuiStickyDirective {
|
|
|
134
134
|
savePositions() {
|
|
135
135
|
const mod = this.el.nativeElement;
|
|
136
136
|
const ctx = this.contextEl;
|
|
137
|
-
const scrollH = window.innerHeight;
|
|
137
|
+
const scrollH = this.scrollEl === window ? window.innerHeight : this.scrollEl.clientHeight;
|
|
138
138
|
const cs = getComputedStyle(mod);
|
|
139
139
|
const marginTop = parseInt(cs.marginTop, 10) || 0;
|
|
140
140
|
const marginBottom = parseInt(cs.marginBottom, 10) || 0;
|
|
141
|
-
|
|
141
|
+
// positions are measured in the coordinate space of the scroll context so they can be compared with its scrollTop
|
|
142
|
+
const scroller = this.scrollEl === window ? null : this.scrollEl;
|
|
143
|
+
const scrollerTop = scroller ? scroller.getBoundingClientRect().top : 0;
|
|
144
|
+
const sy = scroller ? scroller.scrollTop - scrollerTop : window.scrollY;
|
|
142
145
|
const sx = window.scrollX;
|
|
143
146
|
const er = mod.getBoundingClientRect();
|
|
144
147
|
const cr = ctx.getBoundingClientRect();
|
|
@@ -334,6 +337,9 @@ class SuiStickyDirective {
|
|
|
334
337
|
this.renderer.setStyle(this.el.nativeElement, 'left', `${cache.element.left}px`);
|
|
335
338
|
this.renderer.setStyle(this.el.nativeElement, 'bottom', '');
|
|
336
339
|
this.renderer.setStyle(this.el.nativeElement, 'margin-bottom', '');
|
|
340
|
+
if (this.scrollEl !== window) {
|
|
341
|
+
this.renderer.setStyle(this.el.nativeElement, 'top', `${this.scrollEl.getBoundingClientRect().top}px`);
|
|
342
|
+
}
|
|
337
343
|
this.fixed = true;
|
|
338
344
|
this.bound = false;
|
|
339
345
|
this.topState = true;
|
|
@@ -353,6 +359,10 @@ class SuiStickyDirective {
|
|
|
353
359
|
}
|
|
354
360
|
this.renderer.setStyle(this.el.nativeElement, 'margin-top', `${this.suiOffset}px`);
|
|
355
361
|
this.renderer.setStyle(this.el.nativeElement, 'left', `${cache.element.left}px`);
|
|
362
|
+
if (this.scrollEl !== window) {
|
|
363
|
+
const bottom = window.innerHeight - this.scrollEl.getBoundingClientRect().bottom;
|
|
364
|
+
this.renderer.setStyle(this.el.nativeElement, 'bottom', `${bottom}px`);
|
|
365
|
+
}
|
|
356
366
|
this.fixed = true;
|
|
357
367
|
this.bound = false;
|
|
358
368
|
this.topState = false;
|
|
@@ -366,6 +376,7 @@ class SuiStickyDirective {
|
|
|
366
376
|
this.lastScroll = undefined;
|
|
367
377
|
this.elementScroll = 0;
|
|
368
378
|
if (wasStuck) {
|
|
379
|
+
this.suiOnTop.emit();
|
|
369
380
|
this.suiOnUnstick.emit();
|
|
370
381
|
}
|
|
371
382
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-semantic-modules-sticky.mjs","sources":["../../src/modules/sticky/sticky.directive.ts","../../src/modules/sticky/sticky.module.ts","../../src/modules/sticky/ngx-semantic-modules-sticky.ts"],"sourcesContent":["/**\n * Semantic UI [Sticky](https://semantic-ui.com/modules/sticky.html) — Angular port of `$.fn.sticky`.\n * Add `suiSticky` to the element that should stick; set `suiContext` to a selector or element for bounds.\n * Requires Semantic UI sticky CSS (and typically `position: relative` on the rail/column container).\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostBinding, Input, NgZone, OnDestroy, OnInit, Output, Renderer2, inject } from '@angular/core';\nimport { InputBoolean } from 'ngx-semantic/core/util';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/** Cached layout (see Semantic UI `save.positions`). */\nexport interface SuiStickyCache {\n fits: boolean;\n sameHeight: boolean;\n scrollContext: {height: number};\n element: {\n margin: {top: number; bottom: number};\n top: number;\n left: number;\n width: number;\n height: number;\n bottom: number;\n };\n context: {\n top: number;\n height: number;\n bottom: number;\n };\n}\n\n@Directive({\n standalone: true,\n selector: '[suiSticky]',\n exportAs: 'suiSticky'\n})\nexport class SuiStickyDirective implements OnInit, AfterViewInit, OnDestroy {\n private readonly document = inject<Document>(DOCUMENT);\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly zone = inject(NgZone);\n private readonly cdr = inject(ChangeDetectorRef);\n\n @Input() public suiContext: string | HTMLElement | null = null;\n @Input() public suiScrollContext: 'window' | string = 'window';\n @Input() public suiOffset = 0;\n @Input() public suiBottomOffset = 0;\n @Input() @InputBoolean() public suiPushing = false;\n @Input() @InputBoolean() public suiSetSize = true;\n @Input() public suiJitter = 5;\n @Input() @InputBoolean() public suiObserveChanges = false;\n\n @Output() public readonly suiOnReposition = new EventEmitter<void>();\n @Output() public readonly suiOnScroll = new EventEmitter<void>();\n @Output() public readonly suiOnStick = new EventEmitter<void>();\n @Output() public readonly suiOnUnstick = new EventEmitter<void>();\n @Output() public readonly suiOnTop = new EventEmitter<void>();\n @Output() public readonly suiOnBottom = new EventEmitter<void>();\n\n public cache: SuiStickyCache | null = null;\n\n @HostBinding('class.ui') protected readonly classUi = true;\n @HostBinding('class.sticky') protected readonly classSticky = true;\n @HostBinding('class.fixed') fixed = false;\n @HostBinding('class.bound') bound = false;\n @HostBinding('class.top') topState = false;\n @HostBinding('class.bottom') bottomState = false;\n\n private readonly destroy$ = new Subject<void>();\n private lastScroll?: number;\n private elementScroll = 0;\n private scrollEl: Window | HTMLElement = window;\n private contextEl: HTMLElement | null = null;\n private containerEl: HTMLElement | null = null;\n private mutationObserver: MutationObserver | null = null;\n private refreshTimer: ReturnType<typeof setTimeout> | null = null;\n\n public ngOnInit(): void {\n this.scrollEl = this.resolveScrollElement();\n const win = this.document.defaultView!;\n this.zone.runOutsideAngular(() => {\n const scrollTarget = this.scrollEl === window ? win : this.scrollEl;\n fromEvent(scrollTarget, 'scroll', { passive: true })\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n requestAnimationFrame(() => {\n const top = this.readScrollTop();\n this.zone.run(() => {\n this.stick(top);\n this.suiOnScroll.emit();\n });\n });\n });\n fromEvent(win, 'resize', { passive: true })\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n requestAnimationFrame(() => this.zone.run(() => this.refresh(false)));\n });\n });\n }\n\n public ngAfterViewInit(): void {\n queueMicrotask(() => this.refresh(true));\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.mutationObserver?.disconnect();\n if (this.refreshTimer) {\n clearTimeout(this.refreshTimer);\n }\n this.reset();\n }\n\n /** Mirrors `sticky('refresh')`. */\n public refresh(hardRefresh = false): void {\n this.resetLayout();\n this.determineContainer();\n this.determineContext();\n if (!this.contextEl) {\n return;\n }\n if (hardRefresh) {\n this.determineContainer();\n }\n this.savePositions();\n this.suiOnReposition.emit();\n this.cdr.markForCheck();\n if (this.suiObserveChanges && typeof MutationObserver !== 'undefined' && !this.mutationObserver) {\n this.mutationObserver = new MutationObserver(() => this.scheduleRefresh());\n this.mutationObserver.observe(this.contextEl, { childList: true, subtree: true });\n this.mutationObserver.observe(this.el.nativeElement, { childList: true, subtree: true });\n }\n }\n\n private scheduleRefresh(): void {\n if (this.refreshTimer) {\n clearTimeout(this.refreshTimer);\n }\n this.refreshTimer = setTimeout(() => {\n this.refreshTimer = null;\n this.refresh(false);\n }, 100);\n }\n\n private resolveScrollElement(): Window | HTMLElement {\n if (this.suiScrollContext === 'window') {\n return window;\n }\n const found = this.document.querySelector(this.suiScrollContext);\n return (found as HTMLElement) || window;\n }\n\n private readScrollTop(): number {\n return this.scrollEl === window ? window.scrollY : (this.scrollEl as HTMLElement).scrollTop;\n }\n\n private determineContainer(): void {\n const host = this.el.nativeElement;\n this.containerEl = (host.offsetParent as HTMLElement) || host.parentElement;\n }\n\n private determineContext(): void {\n if (this.suiContext === null) {\n this.contextEl = this.containerEl;\n return;\n }\n if (typeof this.suiContext === 'string') {\n this.contextEl = this.document.querySelector(this.suiContext) as HTMLElement | null;\n return;\n }\n this.contextEl = this.suiContext;\n }\n\n private savePositions(): void {\n const mod = this.el.nativeElement;\n const ctx = this.contextEl!;\n const scrollH = window.innerHeight;\n\n const cs = getComputedStyle(mod);\n const marginTop = parseInt(cs.marginTop, 10) || 0;\n const marginBottom = parseInt(cs.marginBottom, 10) || 0;\n\n const sy = window.scrollY;\n const sx = window.scrollX;\n const er = mod.getBoundingClientRect();\n const cr = ctx.getBoundingClientRect();\n\n const elementOffsetTop = er.top + sy;\n const contextOffsetTop = cr.top + sy;\n const elementOffsetLeft = er.left + sx;\n\n const elementHeight = mod.offsetHeight;\n const contextHeight = ctx.offsetHeight;\n\n const elementTop = elementOffsetTop - marginTop;\n const contextBottom = contextOffsetTop + contextHeight;\n\n this.cache = {\n fits: elementHeight + this.suiOffset <= scrollH,\n sameHeight: elementHeight === contextHeight,\n scrollContext: { height: scrollH },\n element: {\n margin: { top: marginTop, bottom: marginBottom },\n top: elementTop,\n left: elementOffsetLeft,\n width: mod.offsetWidth,\n height: elementHeight,\n bottom: elementOffsetTop + elementHeight\n },\n context: {\n top: contextOffsetTop,\n height: contextHeight,\n bottom: contextBottom\n }\n };\n\n this.setContainerSize();\n if (!this.isCacheValid()) {\n this.cache = null;\n this.resetLayout();\n return;\n }\n this.stick(this.readScrollTop());\n }\n\n private isCacheValid(): boolean {\n if (!this.cache) {\n return false;\n }\n const style = getComputedStyle(this.el.nativeElement);\n if (style.display === 'none' || style.visibility === 'hidden') {\n return false;\n }\n return this.cache.element.height <= this.cache.context.height;\n }\n\n private setContainerSize(): void {\n if (!this.cache || !this.containerEl) {\n return;\n }\n const tag = this.containerEl.tagName;\n if (tag === 'HTML' || tag === 'BODY') {\n return;\n }\n const ch = this.containerEl.offsetHeight;\n const ctxH = this.cache.context.height;\n if (Math.abs(ch - ctxH) > this.suiJitter) {\n this.renderer.setStyle(this.containerEl, 'height', `${ctxH}px`);\n }\n }\n\n /**\n * Port of Semantic UI `module.stick` — initial / fixed-top / bound-bottom transitions\n * (simplified: no oversized inner scroll in this version).\n */\n private stick(cachedPosition: number): void {\n const cache = this.cache;\n if (!cache || cache.sameHeight) {\n return;\n }\n\n const offset = this.bottomState && this.suiPushing ? this.suiBottomOffset : this.suiOffset;\n const scroll = {\n top: cachedPosition + offset,\n bottom: cachedPosition + offset + cache.scrollContext.height\n };\n\n const element = cache.element;\n const context = cache.context;\n const elementScroll = cache.fits ? 0 : this.computeElementScroll(cachedPosition);\n\n if (this.isInitialPosition()) {\n if (scroll.top >= context.bottom) {\n this.bindBottom();\n } else if (scroll.top > element.top) {\n if (element.height + scroll.top - elementScroll >= context.bottom) {\n this.bindBottom();\n } else {\n this.fixTop();\n }\n }\n } else if (this.fixed) {\n if (this.topState) {\n if (scroll.top <= element.top) {\n this.setInitialPosition();\n } else if (element.height + scroll.top - elementScroll >= context.bottom) {\n this.bindBottom();\n } else if (!cache.fits) {\n this.applyElementScroll(elementScroll);\n this.lastScroll = scroll.top;\n }\n } else if (this.bottomState) {\n if (scroll.bottom - element.height <= element.top) {\n this.setInitialPosition();\n } else if (scroll.bottom >= context.bottom) {\n this.bindBottom();\n } else if (!cache.fits) {\n this.applyElementScroll(elementScroll);\n this.lastScroll = scroll.top;\n }\n }\n } else if (this.bound && this.bottomState) {\n if (scroll.top <= element.top) {\n this.setInitialPosition();\n } else if (this.suiPushing) {\n if (this.bound && scroll.bottom <= context.bottom) {\n this.fixBottom();\n }\n } else {\n if (this.bound && scroll.top <= context.bottom - element.height) {\n this.fixTop();\n }\n }\n }\n\n this.lastScroll = cachedPosition;\n this.cdr.markForCheck();\n }\n\n private isInitialPosition(): boolean {\n return !this.fixed && !this.bound;\n }\n\n private computeElementScroll(scroll: number): number {\n const cache = this.cache!;\n const delta = this.lastScroll === undefined ? 0 : scroll - this.lastScroll;\n const maxScroll = cache.element.height - cache.scrollContext.height + this.suiOffset;\n let es = this.elementScroll;\n if (this.topState) {\n es = Math.abs(parseInt(this.el.nativeElement.style.top || '0', 10)) || 0;\n } else if (this.bottomState) {\n es = Math.abs(parseInt(this.el.nativeElement.style.bottom || '0', 10)) || 0;\n }\n const possible = es + delta;\n if (cache.fits || possible < 0) {\n return 0;\n }\n if (possible > maxScroll) {\n return maxScroll;\n }\n return possible;\n }\n\n private applyElementScroll(scroll: number): void {\n this.elementScroll = scroll;\n if (this.topState) {\n this.renderer.setStyle(this.el.nativeElement, 'bottom', '');\n this.renderer.setStyle(this.el.nativeElement, 'top', `${-scroll}px`);\n }\n if (this.bottomState) {\n this.renderer.setStyle(this.el.nativeElement, 'top', '');\n this.renderer.setStyle(this.el.nativeElement, 'bottom', `${scroll}px`);\n }\n }\n\n private bindBottom(): void {\n this.unfix();\n this.unbind();\n this.clearPositionStyles();\n this.renderer.removeStyle(this.el.nativeElement, 'margin-top');\n this.fixed = false;\n this.bound = true;\n this.topState = false;\n this.bottomState = true;\n this.suiOnBottom.emit();\n this.suiOnUnstick.emit();\n }\n\n private fixTop(): void {\n this.unfix();\n this.unbind();\n const cache = this.cache!;\n if (this.suiSetSize) {\n this.renderer.setStyle(this.el.nativeElement, 'width', `${cache.element.width}px`, 2);\n this.renderer.setStyle(this.el.nativeElement, 'height', `${cache.element.height}px`, 2);\n }\n if (this.containerEl) {\n this.renderer.setStyle(this.containerEl, 'min-height', `${cache.element.height}px`);\n }\n this.renderer.setStyle(this.el.nativeElement, 'margin-top', `${this.suiOffset}px`);\n this.renderer.setStyle(this.el.nativeElement, 'left', `${cache.element.left}px`);\n this.renderer.setStyle(this.el.nativeElement, 'bottom', '');\n this.renderer.setStyle(this.el.nativeElement, 'margin-bottom', '');\n this.fixed = true;\n this.bound = false;\n this.topState = true;\n this.bottomState = false;\n this.suiOnStick.emit();\n }\n\n private fixBottom(): void {\n this.unfix();\n this.unbind();\n const cache = this.cache!;\n if (this.suiSetSize) {\n this.renderer.setStyle(this.el.nativeElement, 'width', `${cache.element.width}px`, 2);\n this.renderer.setStyle(this.el.nativeElement, 'height', `${cache.element.height}px`, 2);\n }\n if (this.containerEl) {\n this.renderer.setStyle(this.containerEl, 'min-height', `${cache.element.height}px`);\n }\n this.renderer.setStyle(this.el.nativeElement, 'margin-top', `${this.suiOffset}px`);\n this.renderer.setStyle(this.el.nativeElement, 'left', `${cache.element.left}px`);\n this.fixed = true;\n this.bound = false;\n this.topState = false;\n this.bottomState = true;\n this.suiOnStick.emit();\n }\n\n private setInitialPosition(): void {\n const wasStuck = this.fixed || this.bound;\n this.unfix();\n this.unbind();\n this.lastScroll = undefined;\n this.elementScroll = 0;\n if (wasStuck) {\n this.suiOnUnstick.emit();\n }\n }\n\n private unbind(): void {\n if (!this.bound) {\n return;\n }\n this.bound = false;\n this.topState = false;\n this.bottomState = false;\n }\n\n private unfix(): void {\n if (!this.fixed) {\n return;\n }\n if (this.containerEl) {\n this.renderer.removeStyle(this.containerEl, 'min-height');\n }\n this.renderer.removeStyle(this.el.nativeElement, 'margin-top');\n this.renderer.removeStyle(this.el.nativeElement, 'left');\n this.renderer.removeStyle(this.el.nativeElement, 'width');\n this.renderer.removeStyle(this.el.nativeElement, 'height');\n this.renderer.removeStyle(this.el.nativeElement, 'top');\n this.renderer.removeStyle(this.el.nativeElement, 'bottom');\n this.fixed = false;\n this.topState = false;\n this.bottomState = false;\n }\n\n private clearPositionStyles(): void {\n this.renderer.removeStyle(this.el.nativeElement, 'left');\n this.renderer.removeStyle(this.el.nativeElement, 'top');\n this.renderer.removeStyle(this.el.nativeElement, 'bottom');\n this.renderer.removeStyle(this.el.nativeElement, 'margin-bottom');\n }\n\n private resetLayout(): void {\n this.unfix();\n this.unbind();\n this.clearPositionStyles();\n this.renderer.removeStyle(this.el.nativeElement, 'margin-top');\n if (this.containerEl) {\n this.renderer.removeStyle(this.containerEl, 'height');\n this.renderer.removeStyle(this.containerEl, 'min-height');\n }\n this.renderer.removeStyle(this.el.nativeElement, 'width');\n this.renderer.removeStyle(this.el.nativeElement, 'height');\n this.fixed = false;\n this.bound = false;\n this.topState = false;\n this.bottomState = false;\n }\n\n private reset(): void {\n this.resetLayout();\n this.cache = null;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SuiStickyDirective } from './sticky.directive';\n\n@NgModule({\n imports: [CommonModule, SuiStickyDirective],\n exports: [SuiStickyDirective]\n})\nexport class SuiStickyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;MAqCa,kBAAkB,CAAA;AAL/B,IAAA,WAAA,GAAA;AAMmB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAW,QAAQ,CAAC;AACrC,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAA0B,UAAU,CAAC;AAChD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AACrB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAEhC,IAAA,CAAA,UAAU,GAAgC,IAAI;QAC9C,IAAA,CAAA,gBAAgB,GAAsB,QAAQ;QAC9C,IAAA,CAAA,SAAS,GAAG,CAAC;QACb,IAAA,CAAA,eAAe,GAAG,CAAC;QACH,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,UAAU,GAAG,IAAI;QACjC,IAAA,CAAA,SAAS,GAAG,CAAC;QACG,IAAA,CAAA,iBAAiB,GAAG,KAAK;AAE/B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAQ;AAC1C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ;AACtC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAQ;AACrC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAQ;AACvC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAQ;AACnC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ;QAEzD,IAAA,CAAA,KAAK,GAA0B,IAAI;QAEE,IAAA,CAAA,OAAO,GAAG,IAAI;QACV,IAAA,CAAA,WAAW,GAAG,IAAI;QACtC,IAAA,CAAA,KAAK,GAAG,KAAK;QACb,IAAA,CAAA,KAAK,GAAG,KAAK;QACf,IAAA,CAAA,QAAQ,GAAG,KAAK;QACb,IAAA,CAAA,WAAW,GAAG,KAAK;AAE/B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;QAEvC,IAAA,CAAA,aAAa,GAAG,CAAC;QACjB,IAAA,CAAA,QAAQ,GAAyB,MAAM;QACvC,IAAA,CAAA,SAAS,GAAuB,IAAI;QACpC,IAAA,CAAA,WAAW,GAAuB,IAAI;QACtC,IAAA,CAAA,gBAAgB,GAA4B,IAAI;QAChD,IAAA,CAAA,YAAY,GAAyC,IAAI;AAmZlE,IAAA;IAjZQ,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAC3C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAY;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,KAAK,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ;YACnE,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAChD,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;iBAC7B,SAAS,CAAC,MAAK;gBACd,qBAAqB,CAAC,MAAK;AACzB,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE;AAChC,oBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AACjB,wBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACf,wBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACzB,oBAAA,CAAC,CAAC;AACJ,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;YACJ,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AACvC,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;iBAC7B,SAAS,CAAC,MAAK;gBACd,qBAAqB,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACvE,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACJ;IAEO,eAAe,GAAA;QACpB,cAAc,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACxB,QAAA,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE;AACnC,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;QACjC;QACA,IAAI,CAAC,KAAK,EAAE;IACd;;IAGO,OAAO,CAAC,WAAW,GAAG,KAAK,EAAA;QAChC,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,gBAAgB,EAAE;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB;QACF;QACA,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,kBAAkB,EAAE;QAC3B;QACA,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,iBAAiB,IAAI,OAAO,gBAAgB,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC/F,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAC1E,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACjF,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC1F;IACF;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;QACjC;AACA,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,MAAK;AAClC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,CAAC,EAAE,GAAG,CAAC;IACT;IAEQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,QAAQ,EAAE;AACtC,YAAA,OAAO,MAAM;QACf;AACA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAChE,OAAQ,KAAqB,IAAI,MAAM;IACzC;IAEQ,aAAa,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,MAAM,GAAG,MAAM,CAAC,OAAO,GAAI,IAAI,CAAC,QAAwB,CAAC,SAAS;IAC7F;IAEQ,kBAAkB,GAAA;AACxB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;QAClC,IAAI,CAAC,WAAW,GAAI,IAAI,CAAC,YAA4B,IAAI,IAAI,CAAC,aAAa;IAC7E;IAEQ,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW;YACjC;QACF;AACA,QAAA,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;AACvC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAuB;YACnF;QACF;AACA,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU;IAClC;IAEQ,aAAa,GAAA;AACnB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;AACjC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAU;AAC3B,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW;AAElC,QAAA,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC;AAChC,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC;AACjD,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC;AAEvD,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO;AACzB,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO;AACzB,QAAA,MAAM,EAAE,GAAG,GAAG,CAAC,qBAAqB,EAAE;AACtC,QAAA,MAAM,EAAE,GAAG,GAAG,CAAC,qBAAqB,EAAE;AAEtC,QAAA,MAAM,gBAAgB,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE;AACpC,QAAA,MAAM,gBAAgB,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE;AACpC,QAAA,MAAM,iBAAiB,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE;AAEtC,QAAA,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY;AACtC,QAAA,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY;AAEtC,QAAA,MAAM,UAAU,GAAG,gBAAgB,GAAG,SAAS;AAC/C,QAAA,MAAM,aAAa,GAAG,gBAAgB,GAAG,aAAa;QAEtD,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO;YAC/C,UAAU,EAAE,aAAa,KAAK,aAAa;AAC3C,YAAA,aAAa,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;AAClC,YAAA,OAAO,EAAE;gBACP,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE;AAChD,gBAAA,GAAG,EAAE,UAAU;AACf,gBAAA,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,GAAG,CAAC,WAAW;AACtB,gBAAA,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,gBAAgB,GAAG;AAC5B,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,GAAG,EAAE,gBAAgB;AACrB,gBAAA,MAAM,EAAE,aAAa;AACrB,gBAAA,MAAM,EAAE;AACT;SACF;QAED,IAAI,CAAC,gBAAgB,EAAE;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;YACjB,IAAI,CAAC,WAAW,EAAE;YAClB;QACF;QACA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAClC;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,OAAO,KAAK;QACd;QACA,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;AACrD,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE;AAC7D,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;IAC/D;IAEQ,gBAAgB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACpC;QACF;AACA,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO;QACpC,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE;YACpC;QACF;AACA,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;AACtC,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE;AACxC,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI,CAAC;QACjE;IACF;AAEA;;;AAGG;AACK,IAAA,KAAK,CAAC,cAAsB,EAAA;AAClC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE;YAC9B;QACF;QAEA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS;AAC1F,QAAA,MAAM,MAAM,GAAG;YACb,GAAG,EAAE,cAAc,GAAG,MAAM;YAC5B,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;SACvD;AAED,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;AAC7B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;AAC7B,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;AAEhF,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC5B,IAAI,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE;gBAChC,IAAI,CAAC,UAAU,EAAE;YACnB;iBAAO,IAAI,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;AACnC,gBAAA,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,GAAG,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE;oBACjE,IAAI,CAAC,UAAU,EAAE;gBACnB;qBAAO;oBACL,IAAI,CAAC,MAAM,EAAE;gBACf;YACF;QACF;AAAO,aAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACrB,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;oBAC7B,IAAI,CAAC,kBAAkB,EAAE;gBAC3B;AAAO,qBAAA,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,GAAG,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE;oBACxE,IAAI,CAAC,UAAU,EAAE;gBACnB;AAAO,qBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACtB,oBAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC;AACtC,oBAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG;gBAC9B;YACF;AAAO,iBAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAC3B,gBAAA,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE;oBACjD,IAAI,CAAC,kBAAkB,EAAE;gBAC3B;qBAAO,IAAI,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;oBAC1C,IAAI,CAAC,UAAU,EAAE;gBACnB;AAAO,qBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACtB,oBAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC;AACtC,oBAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG;gBAC9B;YACF;QACF;aAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE;YACzC,IAAI,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;gBAC7B,IAAI,CAAC,kBAAkB,EAAE;YAC3B;AAAO,iBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AAC1B,gBAAA,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;oBACjD,IAAI,CAAC,SAAS,EAAE;gBAClB;YACF;iBAAO;AACL,gBAAA,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE;oBAC/D,IAAI,CAAC,MAAM,EAAE;gBACf;YACF;QACF;AAEA,QAAA,IAAI,CAAC,UAAU,GAAG,cAAc;AAChC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACzB;IAEQ,iBAAiB,GAAA;QACvB,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK;IACnC;AAEQ,IAAA,oBAAoB,CAAC,MAAc,EAAA;AACzC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU;AAC1E,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS;AACpF,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa;AAC3B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;QAC1E;AAAO,aAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAC3B,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;QAC7E;AACA,QAAA,MAAM,QAAQ,GAAG,EAAE,GAAG,KAAK;QAC3B,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,GAAG,CAAC,EAAE;AAC9B,YAAA,OAAO,CAAC;QACV;AACA,QAAA,IAAI,QAAQ,GAAG,SAAS,EAAE;AACxB,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,OAAO,QAAQ;IACjB;AAEQ,IAAA,kBAAkB,CAAC,MAAc,EAAA;AACvC,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM;AAC3B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC;AAC3D,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,CAAA,EAAG,CAAC,MAAM,CAAA,EAAA,CAAI,CAAC;QACtE;AACA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC;AACxD,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAA,EAAA,CAAI,CAAC;QACxE;IACF;IAEQ,UAAU,GAAA;QAChB,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,CAAC,MAAM,EAAE;QACb,IAAI,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;AAC9D,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;IAC1B;IAEQ,MAAM,GAAA;QACZ,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM;AACzB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAA,EAAA,CAAI,EAAE,CAAC,CAAC;YACrF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA,EAAA,CAAI,EAAE,CAAC,CAAC;QACzF;AACA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA,EAAA,CAAI,CAAC;QACrF;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,EAAA,CAAI,CAAC;QAClF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAA,EAAA,CAAI,CAAC;AAChF,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC;AAC3D,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,EAAE,CAAC;AAClE,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;IACxB;IAEQ,SAAS,GAAA;QACf,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM;AACzB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAA,EAAA,CAAI,EAAE,CAAC,CAAC;YACrF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA,EAAA,CAAI,EAAE,CAAC,CAAC;QACzF;AACA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA,EAAA,CAAI,CAAC;QACrF;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,EAAA,CAAI,CAAC;QAClF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAA,EAAA,CAAI,CAAC;AAChF,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;IACxB;IAEQ,kBAAkB,GAAA;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;QACzC,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC;QACtB,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;QAC1B;IACF;IAEQ,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf;QACF;AACA,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC1B;IAEQ,KAAK,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf;QACF;AACA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC;QAC3D;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;AAC9D,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC;AACxD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC;AACzD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC1D,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC;AACvD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC1D,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC1B;IAEQ,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC;AACxD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC;AACvD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC1D,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;IACnE;IAEQ,WAAW,GAAA;QACjB,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,CAAC,MAAM,EAAE;QACb,IAAI,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;AAC9D,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC;QAC3D;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC;AACzD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC1D,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC1B;IAEQ,KAAK,GAAA;QACX,IAAI,CAAC,WAAW,EAAE;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;IACnB;+GAzbW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;AAWG,UAAA,CAAA;AAAtB,IAAA,YAAY;AAA6B,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA;AACnB,UAAA,CAAA;AAAtB,IAAA,YAAY;AAA4B,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA;AAElB,UAAA,CAAA;AAAtB,IAAA,YAAY;AAAoC,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,KAAA,CAAA,CAAA;4FAd/C,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE;AACX,iBAAA;;sBAQE;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAIA,WAAW;uBAAC,UAAU;;sBACtB,WAAW;uBAAC,cAAc;;sBAC1B,WAAW;uBAAC,aAAa;;sBACzB,WAAW;uBAAC,aAAa;;sBACzB,WAAW;uBAAC,WAAW;;sBACvB,WAAW;uBAAC,cAAc;;;MC3DhB,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAAA,OAAA,EAAA,CAHhB,YAAY,EAAE,kBAAkB,aAChC,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAEjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAHhB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC;oBAC3C,OAAO,EAAE,CAAC,kBAAkB;AAC7B,iBAAA;;;ACPD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ngx-semantic-modules-sticky.mjs","sources":["../../src/modules/sticky/sticky.directive.ts","../../src/modules/sticky/sticky.module.ts","../../src/modules/sticky/ngx-semantic-modules-sticky.ts"],"sourcesContent":["/**\n * Semantic UI [Sticky](https://semantic-ui.com/modules/sticky.html) — Angular port of `$.fn.sticky`.\n * Add `suiSticky` to the element that should stick; set `suiContext` to a selector or element for bounds.\n * Requires Semantic UI sticky CSS (and typically `position: relative` on the rail/column container).\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostBinding, Input, NgZone, OnDestroy, OnInit, Output, Renderer2, inject } from '@angular/core';\nimport { InputBoolean } from 'ngx-semantic/core/util';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/** Cached layout (see Semantic UI `save.positions`). */\nexport interface SuiStickyCache {\n fits: boolean;\n sameHeight: boolean;\n scrollContext: {height: number};\n element: {\n margin: {top: number; bottom: number};\n top: number;\n left: number;\n width: number;\n height: number;\n bottom: number;\n };\n context: {\n top: number;\n height: number;\n bottom: number;\n };\n}\n\n@Directive({\n standalone: true,\n selector: '[suiSticky]',\n exportAs: 'suiSticky'\n})\nexport class SuiStickyDirective implements OnInit, AfterViewInit, OnDestroy {\n private readonly document = inject<Document>(DOCUMENT);\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly zone = inject(NgZone);\n private readonly cdr = inject(ChangeDetectorRef);\n\n @Input() public suiContext: string | HTMLElement | null = null;\n @Input() public suiScrollContext: 'window' | string = 'window';\n @Input() public suiOffset = 0;\n @Input() public suiBottomOffset = 0;\n @Input() @InputBoolean() public suiPushing = false;\n @Input() @InputBoolean() public suiSetSize = true;\n @Input() public suiJitter = 5;\n @Input() @InputBoolean() public suiObserveChanges = false;\n\n @Output() public readonly suiOnReposition = new EventEmitter<void>();\n @Output() public readonly suiOnScroll = new EventEmitter<void>();\n @Output() public readonly suiOnStick = new EventEmitter<void>();\n @Output() public readonly suiOnUnstick = new EventEmitter<void>();\n @Output() public readonly suiOnTop = new EventEmitter<void>();\n @Output() public readonly suiOnBottom = new EventEmitter<void>();\n\n public cache: SuiStickyCache | null = null;\n\n @HostBinding('class.ui') protected readonly classUi = true;\n @HostBinding('class.sticky') protected readonly classSticky = true;\n @HostBinding('class.fixed') fixed = false;\n @HostBinding('class.bound') bound = false;\n @HostBinding('class.top') topState = false;\n @HostBinding('class.bottom') bottomState = false;\n\n private readonly destroy$ = new Subject<void>();\n private lastScroll?: number;\n private elementScroll = 0;\n private scrollEl: Window | HTMLElement = window;\n private contextEl: HTMLElement | null = null;\n private containerEl: HTMLElement | null = null;\n private mutationObserver: MutationObserver | null = null;\n private refreshTimer: ReturnType<typeof setTimeout> | null = null;\n\n public ngOnInit(): void {\n this.scrollEl = this.resolveScrollElement();\n const win = this.document.defaultView!;\n this.zone.runOutsideAngular(() => {\n const scrollTarget = this.scrollEl === window ? win : this.scrollEl;\n fromEvent(scrollTarget, 'scroll', { passive: true })\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n requestAnimationFrame(() => {\n const top = this.readScrollTop();\n this.zone.run(() => {\n this.stick(top);\n this.suiOnScroll.emit();\n });\n });\n });\n fromEvent(win, 'resize', { passive: true })\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n requestAnimationFrame(() => this.zone.run(() => this.refresh(false)));\n });\n });\n }\n\n public ngAfterViewInit(): void {\n queueMicrotask(() => this.refresh(true));\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.mutationObserver?.disconnect();\n if (this.refreshTimer) {\n clearTimeout(this.refreshTimer);\n }\n this.reset();\n }\n\n /** Mirrors `sticky('refresh')`. */\n public refresh(hardRefresh = false): void {\n this.resetLayout();\n this.determineContainer();\n this.determineContext();\n if (!this.contextEl) {\n return;\n }\n if (hardRefresh) {\n this.determineContainer();\n }\n this.savePositions();\n this.suiOnReposition.emit();\n this.cdr.markForCheck();\n if (this.suiObserveChanges && typeof MutationObserver !== 'undefined' && !this.mutationObserver) {\n this.mutationObserver = new MutationObserver(() => this.scheduleRefresh());\n this.mutationObserver.observe(this.contextEl, { childList: true, subtree: true });\n this.mutationObserver.observe(this.el.nativeElement, { childList: true, subtree: true });\n }\n }\n\n private scheduleRefresh(): void {\n if (this.refreshTimer) {\n clearTimeout(this.refreshTimer);\n }\n this.refreshTimer = setTimeout(() => {\n this.refreshTimer = null;\n this.refresh(false);\n }, 100);\n }\n\n private resolveScrollElement(): Window | HTMLElement {\n if (this.suiScrollContext === 'window') {\n return window;\n }\n const found = this.document.querySelector(this.suiScrollContext);\n return (found as HTMLElement) || window;\n }\n\n private readScrollTop(): number {\n return this.scrollEl === window ? window.scrollY : (this.scrollEl as HTMLElement).scrollTop;\n }\n\n private determineContainer(): void {\n const host = this.el.nativeElement;\n this.containerEl = (host.offsetParent as HTMLElement) || host.parentElement;\n }\n\n private determineContext(): void {\n if (this.suiContext === null) {\n this.contextEl = this.containerEl;\n return;\n }\n if (typeof this.suiContext === 'string') {\n this.contextEl = this.document.querySelector(this.suiContext) as HTMLElement | null;\n return;\n }\n this.contextEl = this.suiContext;\n }\n\n private savePositions(): void {\n const mod = this.el.nativeElement;\n const ctx = this.contextEl!;\n const scrollH = this.scrollEl === window ? window.innerHeight : (this.scrollEl as HTMLElement).clientHeight;\n\n const cs = getComputedStyle(mod);\n const marginTop = parseInt(cs.marginTop, 10) || 0;\n const marginBottom = parseInt(cs.marginBottom, 10) || 0;\n\n // positions are measured in the coordinate space of the scroll context so they can be compared with its scrollTop\n const scroller = this.scrollEl === window ? null : this.scrollEl as HTMLElement;\n const scrollerTop = scroller ? scroller.getBoundingClientRect().top : 0;\n const sy = scroller ? scroller.scrollTop - scrollerTop : window.scrollY;\n const sx = window.scrollX;\n const er = mod.getBoundingClientRect();\n const cr = ctx.getBoundingClientRect();\n\n const elementOffsetTop = er.top + sy;\n const contextOffsetTop = cr.top + sy;\n const elementOffsetLeft = er.left + sx;\n\n const elementHeight = mod.offsetHeight;\n const contextHeight = ctx.offsetHeight;\n\n const elementTop = elementOffsetTop - marginTop;\n const contextBottom = contextOffsetTop + contextHeight;\n\n this.cache = {\n fits: elementHeight + this.suiOffset <= scrollH,\n sameHeight: elementHeight === contextHeight,\n scrollContext: { height: scrollH },\n element: {\n margin: { top: marginTop, bottom: marginBottom },\n top: elementTop,\n left: elementOffsetLeft,\n width: mod.offsetWidth,\n height: elementHeight,\n bottom: elementOffsetTop + elementHeight\n },\n context: {\n top: contextOffsetTop,\n height: contextHeight,\n bottom: contextBottom\n }\n };\n\n this.setContainerSize();\n if (!this.isCacheValid()) {\n this.cache = null;\n this.resetLayout();\n return;\n }\n this.stick(this.readScrollTop());\n }\n\n private isCacheValid(): boolean {\n if (!this.cache) {\n return false;\n }\n const style = getComputedStyle(this.el.nativeElement);\n if (style.display === 'none' || style.visibility === 'hidden') {\n return false;\n }\n return this.cache.element.height <= this.cache.context.height;\n }\n\n private setContainerSize(): void {\n if (!this.cache || !this.containerEl) {\n return;\n }\n const tag = this.containerEl.tagName;\n if (tag === 'HTML' || tag === 'BODY') {\n return;\n }\n const ch = this.containerEl.offsetHeight;\n const ctxH = this.cache.context.height;\n if (Math.abs(ch - ctxH) > this.suiJitter) {\n this.renderer.setStyle(this.containerEl, 'height', `${ctxH}px`);\n }\n }\n\n /**\n * Port of Semantic UI `module.stick` — initial / fixed-top / bound-bottom transitions\n * (simplified: no oversized inner scroll in this version).\n */\n private stick(cachedPosition: number): void {\n const cache = this.cache;\n if (!cache || cache.sameHeight) {\n return;\n }\n\n const offset = this.bottomState && this.suiPushing ? this.suiBottomOffset : this.suiOffset;\n const scroll = {\n top: cachedPosition + offset,\n bottom: cachedPosition + offset + cache.scrollContext.height\n };\n\n const element = cache.element;\n const context = cache.context;\n const elementScroll = cache.fits ? 0 : this.computeElementScroll(cachedPosition);\n\n if (this.isInitialPosition()) {\n if (scroll.top >= context.bottom) {\n this.bindBottom();\n } else if (scroll.top > element.top) {\n if (element.height + scroll.top - elementScroll >= context.bottom) {\n this.bindBottom();\n } else {\n this.fixTop();\n }\n }\n } else if (this.fixed) {\n if (this.topState) {\n if (scroll.top <= element.top) {\n this.setInitialPosition();\n } else if (element.height + scroll.top - elementScroll >= context.bottom) {\n this.bindBottom();\n } else if (!cache.fits) {\n this.applyElementScroll(elementScroll);\n this.lastScroll = scroll.top;\n }\n } else if (this.bottomState) {\n if (scroll.bottom - element.height <= element.top) {\n this.setInitialPosition();\n } else if (scroll.bottom >= context.bottom) {\n this.bindBottom();\n } else if (!cache.fits) {\n this.applyElementScroll(elementScroll);\n this.lastScroll = scroll.top;\n }\n }\n } else if (this.bound && this.bottomState) {\n if (scroll.top <= element.top) {\n this.setInitialPosition();\n } else if (this.suiPushing) {\n if (this.bound && scroll.bottom <= context.bottom) {\n this.fixBottom();\n }\n } else {\n if (this.bound && scroll.top <= context.bottom - element.height) {\n this.fixTop();\n }\n }\n }\n\n this.lastScroll = cachedPosition;\n this.cdr.markForCheck();\n }\n\n private isInitialPosition(): boolean {\n return !this.fixed && !this.bound;\n }\n\n private computeElementScroll(scroll: number): number {\n const cache = this.cache!;\n const delta = this.lastScroll === undefined ? 0 : scroll - this.lastScroll;\n const maxScroll = cache.element.height - cache.scrollContext.height + this.suiOffset;\n let es = this.elementScroll;\n if (this.topState) {\n es = Math.abs(parseInt(this.el.nativeElement.style.top || '0', 10)) || 0;\n } else if (this.bottomState) {\n es = Math.abs(parseInt(this.el.nativeElement.style.bottom || '0', 10)) || 0;\n }\n const possible = es + delta;\n if (cache.fits || possible < 0) {\n return 0;\n }\n if (possible > maxScroll) {\n return maxScroll;\n }\n return possible;\n }\n\n private applyElementScroll(scroll: number): void {\n this.elementScroll = scroll;\n if (this.topState) {\n this.renderer.setStyle(this.el.nativeElement, 'bottom', '');\n this.renderer.setStyle(this.el.nativeElement, 'top', `${-scroll}px`);\n }\n if (this.bottomState) {\n this.renderer.setStyle(this.el.nativeElement, 'top', '');\n this.renderer.setStyle(this.el.nativeElement, 'bottom', `${scroll}px`);\n }\n }\n\n private bindBottom(): void {\n this.unfix();\n this.unbind();\n this.clearPositionStyles();\n this.renderer.removeStyle(this.el.nativeElement, 'margin-top');\n this.fixed = false;\n this.bound = true;\n this.topState = false;\n this.bottomState = true;\n this.suiOnBottom.emit();\n this.suiOnUnstick.emit();\n }\n\n private fixTop(): void {\n this.unfix();\n this.unbind();\n const cache = this.cache!;\n if (this.suiSetSize) {\n this.renderer.setStyle(this.el.nativeElement, 'width', `${cache.element.width}px`, 2);\n this.renderer.setStyle(this.el.nativeElement, 'height', `${cache.element.height}px`, 2);\n }\n if (this.containerEl) {\n this.renderer.setStyle(this.containerEl, 'min-height', `${cache.element.height}px`);\n }\n this.renderer.setStyle(this.el.nativeElement, 'margin-top', `${this.suiOffset}px`);\n this.renderer.setStyle(this.el.nativeElement, 'left', `${cache.element.left}px`);\n this.renderer.setStyle(this.el.nativeElement, 'bottom', '');\n this.renderer.setStyle(this.el.nativeElement, 'margin-bottom', '');\n if (this.scrollEl !== window) {\n this.renderer.setStyle(this.el.nativeElement, 'top', `${(this.scrollEl as HTMLElement).getBoundingClientRect().top}px`);\n }\n this.fixed = true;\n this.bound = false;\n this.topState = true;\n this.bottomState = false;\n this.suiOnStick.emit();\n }\n\n private fixBottom(): void {\n this.unfix();\n this.unbind();\n const cache = this.cache!;\n if (this.suiSetSize) {\n this.renderer.setStyle(this.el.nativeElement, 'width', `${cache.element.width}px`, 2);\n this.renderer.setStyle(this.el.nativeElement, 'height', `${cache.element.height}px`, 2);\n }\n if (this.containerEl) {\n this.renderer.setStyle(this.containerEl, 'min-height', `${cache.element.height}px`);\n }\n this.renderer.setStyle(this.el.nativeElement, 'margin-top', `${this.suiOffset}px`);\n this.renderer.setStyle(this.el.nativeElement, 'left', `${cache.element.left}px`);\n if (this.scrollEl !== window) {\n const bottom = window.innerHeight - (this.scrollEl as HTMLElement).getBoundingClientRect().bottom;\n this.renderer.setStyle(this.el.nativeElement, 'bottom', `${bottom}px`);\n }\n this.fixed = true;\n this.bound = false;\n this.topState = false;\n this.bottomState = true;\n this.suiOnStick.emit();\n }\n\n private setInitialPosition(): void {\n const wasStuck = this.fixed || this.bound;\n this.unfix();\n this.unbind();\n this.lastScroll = undefined;\n this.elementScroll = 0;\n if (wasStuck) {\n this.suiOnTop.emit();\n this.suiOnUnstick.emit();\n }\n }\n\n private unbind(): void {\n if (!this.bound) {\n return;\n }\n this.bound = false;\n this.topState = false;\n this.bottomState = false;\n }\n\n private unfix(): void {\n if (!this.fixed) {\n return;\n }\n if (this.containerEl) {\n this.renderer.removeStyle(this.containerEl, 'min-height');\n }\n this.renderer.removeStyle(this.el.nativeElement, 'margin-top');\n this.renderer.removeStyle(this.el.nativeElement, 'left');\n this.renderer.removeStyle(this.el.nativeElement, 'width');\n this.renderer.removeStyle(this.el.nativeElement, 'height');\n this.renderer.removeStyle(this.el.nativeElement, 'top');\n this.renderer.removeStyle(this.el.nativeElement, 'bottom');\n this.fixed = false;\n this.topState = false;\n this.bottomState = false;\n }\n\n private clearPositionStyles(): void {\n this.renderer.removeStyle(this.el.nativeElement, 'left');\n this.renderer.removeStyle(this.el.nativeElement, 'top');\n this.renderer.removeStyle(this.el.nativeElement, 'bottom');\n this.renderer.removeStyle(this.el.nativeElement, 'margin-bottom');\n }\n\n private resetLayout(): void {\n this.unfix();\n this.unbind();\n this.clearPositionStyles();\n this.renderer.removeStyle(this.el.nativeElement, 'margin-top');\n if (this.containerEl) {\n this.renderer.removeStyle(this.containerEl, 'height');\n this.renderer.removeStyle(this.containerEl, 'min-height');\n }\n this.renderer.removeStyle(this.el.nativeElement, 'width');\n this.renderer.removeStyle(this.el.nativeElement, 'height');\n this.fixed = false;\n this.bound = false;\n this.topState = false;\n this.bottomState = false;\n }\n\n private reset(): void {\n this.resetLayout();\n this.cache = null;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SuiStickyDirective } from './sticky.directive';\n\n@NgModule({\n imports: [CommonModule, SuiStickyDirective],\n exports: [SuiStickyDirective]\n})\nexport class SuiStickyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -209,7 +209,7 @@ class SuiTabsComponent {
|
|
|
209
209
|
}
|
|
210
210
|
</div>
|
|
211
211
|
</ng-template>
|
|
212
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: SuiSegmentDirective, selector: "[sui-segment]", inputs: ["suiColour", "suiAttached", "suiStacked", "suiPadding", "suiTextAlignment", "suiFloated", "suiPlaceholder", "suiRaised", "suiPiled", "suiVertical", "suiInverted", "disabled", "suiLoading", "suiCompact", "suiCircular", "suiBasic", "suiClearing", "suiSecondary", "suiTertiary"], exportAs: ["suiSegment"] }, { kind: "directive", type: SuiMenuDirective, selector: "[sui-menu]", inputs: ["suiWidth", "suiAttached", "suiFixed", "suiColour", "suiIcon", "suiSize", "suiText", "suiSecondary", "suiPointing", "suiTabular", "suiVertical", "suiFluid", "suiRight", "suiPagination", "suiCompact", "suiStackable", "suiInverted", "suiBorderless"], exportAs: ["suiMenu"] }, { kind: "directive", type: SuiMenuItemDirective, selector: "[suiMenuItem]", inputs: ["suiLink", "suiActive", "suiBrowser", "disabled"], exportAs: ["suiMenuItem"] }, { kind: "directive", type: SuiIconDirective, selector: "i[sui-icon]", inputs: ["suiSize", "suiFlip", "suiRotation", "suiColour", "suiCorner", "suiIconType", "disabled", "suiLoading", "suiFitted", "suiLink", "suiCircular", "suiBordered", "suiInverted", "suiOutline"], exportAs: ["suiIcon"] }, { kind: "directive", type: SuiLabelDirective, selector: "[sui-label]", inputs: ["suiColour", "suiPointing", "suiCorner", "suiRibbon", "suiAttached", "suiSize", "suiImage", "suiBasic", "suiTag", "suiHorizontal", "suiFloating", "suiCircular", "suiEmpty"], exportAs: ["suiLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
212
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: SuiSegmentDirective, selector: "[sui-segment]", inputs: ["suiColour", "suiAttached", "suiStacked", "suiPadding", "suiTextAlignment", "suiFloated", "suiPlaceholder", "suiRaised", "suiPiled", "suiVertical", "suiInverted", "disabled", "suiLoading", "suiCompact", "suiCircular", "suiBasic", "suiClearing", "suiSecondary", "suiTertiary"], exportAs: ["suiSegment"] }, { kind: "directive", type: SuiMenuDirective, selector: "[sui-menu]", inputs: ["suiWidth", "suiAttached", "suiFixed", "suiColour", "suiIcon", "suiSize", "suiText", "suiSecondary", "suiPointing", "suiTabular", "suiVertical", "suiFluid", "suiRight", "suiPagination", "suiCompact", "suiStackable", "suiInverted", "suiBorderless"], exportAs: ["suiMenu"] }, { kind: "directive", type: SuiMenuItemDirective, selector: "[suiMenuItem]", inputs: ["suiColour", "suiFitted", "suiLink", "suiActive", "suiBrowser", "suiHeader", "disabled"], exportAs: ["suiMenuItem"] }, { kind: "directive", type: SuiIconDirective, selector: "i[sui-icon]", inputs: ["suiSize", "suiFlip", "suiRotation", "suiColour", "suiCorner", "suiIconType", "disabled", "suiLoading", "suiFitted", "suiLink", "suiCircular", "suiBordered", "suiInverted", "suiOutline"], exportAs: ["suiIcon"] }, { kind: "directive", type: SuiLabelDirective, selector: "[sui-label]", inputs: ["suiColour", "suiPointing", "suiCorner", "suiRibbon", "suiAttached", "suiSize", "suiImage", "suiBasic", "suiTag", "suiHorizontal", "suiFloating", "suiCircular", "suiEmpty"], exportAs: ["suiLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
213
213
|
}
|
|
214
214
|
__decorate([
|
|
215
215
|
InputBoolean()
|