@yuuvis/client-framework 3.0.0-beta.21.0 → 3.0.0-beta.21.2
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/autocomplete/README.md +1 -1
- package/common/README.md +1 -1
- package/fesm2022/yuuvis-client-framework-autocomplete.mjs +5 -236
- package/fesm2022/yuuvis-client-framework-autocomplete.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-common.mjs +3 -1793
- package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-list.mjs +3 -667
- package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-master-details.mjs +3 -136
- package/fesm2022/yuuvis-client-framework-master-details.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-overflow-hidden.mjs +3 -62
- package/fesm2022/yuuvis-client-framework-overflow-hidden.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-overflow-menu.mjs +3 -129
- package/fesm2022/yuuvis-client-framework-overflow-menu.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-popout.mjs +3 -239
- package/fesm2022/yuuvis-client-framework-popout.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-split-view.mjs +3 -318
- package/fesm2022/yuuvis-client-framework-split-view.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-widget-grid.mjs +3 -942
- package/fesm2022/yuuvis-client-framework-widget-grid.mjs.map +1 -1
- package/lib/assets/i18n/de.json +1 -55
- package/lib/assets/i18n/en.json +1 -55
- package/list/README.md +1 -1
- package/master-details/README.md +1 -1
- package/overflow-hidden/README.md +1 -1
- package/overflow-menu/README.md +1 -1
- package/package.json +6 -5
- package/popout/README.md +1 -1
- package/split-view/README.md +1 -1
- package/types/yuuvis-client-framework-autocomplete.d.ts +1 -89
- package/types/yuuvis-client-framework-common.d.ts +1 -536
- package/types/yuuvis-client-framework-list.d.ts +1 -380
- package/types/yuuvis-client-framework-master-details.d.ts +1 -69
- package/types/yuuvis-client-framework-overflow-hidden.d.ts +1 -28
- package/types/yuuvis-client-framework-overflow-menu.d.ts +1 -52
- package/types/yuuvis-client-framework-popout.d.ts +1 -106
- package/types/yuuvis-client-framework-split-view.d.ts +1 -197
- package/types/yuuvis-client-framework-widget-grid.d.ts +1 -299
- package/widget-grid/README.md +1 -46
|
@@ -1,326 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
import { inject, TemplateRef, input, linkedSignal, Directive, ElementRef, effect, contentChildren, viewChild, computed, output, signal, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
|
-
import * as i1 from '@angular/common';
|
|
4
|
-
import { CommonModule } from '@angular/common';
|
|
5
|
-
import { LayoutSettingsService } from '@yuuvis/client-framework/common';
|
|
6
|
-
import * as i2 from 'angular-split';
|
|
7
|
-
import { SplitComponent, AngularSplitModule } from 'angular-split';
|
|
8
|
-
|
|
9
|
-
class SplitAreaDirective {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.template = inject((TemplateRef));
|
|
12
|
-
this.size = input(...(ngDevMode ? [undefined, { debugName: "size" }] : /* istanbul ignore next */ []));
|
|
13
|
-
this.minSize = input(...(ngDevMode ? [undefined, { debugName: "minSize" }] : /* istanbul ignore next */ []));
|
|
14
|
-
this.maxSize = input(...(ngDevMode ? [undefined, { debugName: "maxSize" }] : /* istanbul ignore next */ []));
|
|
15
|
-
this.panelClass = input(...(ngDevMode ? [undefined, { debugName: "panelClass" }] : /* istanbul ignore next */ []));
|
|
16
|
-
this.visible = input(true, ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
|
|
17
|
-
this.lockSize = input(false, ...(ngDevMode ? [{ debugName: "lockSize" }] : /* istanbul ignore next */ []));
|
|
18
|
-
this.areaProperties = linkedSignal({ ...(ngDevMode ? { debugName: "areaProperties" } : /* istanbul ignore next */ {}), source: () => ({ size: this.size(), visible: this.visible(), lockSize: this.lockSize() }),
|
|
19
|
-
computation: ({ size, visible, lockSize }) => ({ size, visible, lockSize }) });
|
|
20
|
-
}
|
|
21
|
-
updateSettings(s) {
|
|
22
|
-
this.areaProperties.set({
|
|
23
|
-
size: s.size || this.size(),
|
|
24
|
-
visible: s.visible !== undefined ? !!s.visible : this.visible(),
|
|
25
|
-
lockSize: s.lockSize || this.lockSize()
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SplitAreaDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
29
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: SplitAreaDirective, isStandalone: true, selector: "[yuvSplitArea]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, minSize: { classPropertyName: "minSize", publicName: "minSize", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: "maxSize", publicName: "maxSize", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, lockSize: { classPropertyName: "lockSize", publicName: "lockSize", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SplitAreaDirective, decorators: [{
|
|
32
|
-
type: Directive,
|
|
33
|
-
args: [{
|
|
34
|
-
selector: '[yuvSplitArea]'
|
|
35
|
-
}]
|
|
36
|
-
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], minSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "minSize", required: false }] }], maxSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxSize", required: false }] }], panelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelClass", required: false }] }], visible: [{ type: i0.Input, args: [{ isSignal: true, alias: "visible", required: false }] }], lockSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "lockSize", required: false }] }] } });
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Directive to add a cover overlay to a split area during dragging.
|
|
40
|
-
* This is useful when the split area contains elements like iframes
|
|
41
|
-
* that can capture drag events and interfere with the split view's
|
|
42
|
-
* dragging functionality.
|
|
43
|
-
* The overlay will be transparent and therefore not recognized by
|
|
44
|
-
* the user, but will capture the drag events.
|
|
45
|
-
*/
|
|
46
|
-
class SplitAreaCoverDirective {
|
|
47
|
-
constructor() {
|
|
48
|
-
this.#elRef = inject(ElementRef);
|
|
49
|
-
this.yuvSplitAreaCover = input(false, ...(ngDevMode ? [{ debugName: "yuvSplitAreaCover" }] : /* istanbul ignore next */ []));
|
|
50
|
-
this.#draggingEffect = effect(() => {
|
|
51
|
-
this.#toggleCover(this.yuvSplitAreaCover());
|
|
52
|
-
}, ...(ngDevMode ? [{ debugName: "#draggingEffect" }] : /* istanbul ignore next */ []));
|
|
53
|
-
}
|
|
54
|
-
#elRef;
|
|
55
|
-
#draggingEffect;
|
|
56
|
-
#coverElement;
|
|
57
|
-
#toggleCover(active) {
|
|
58
|
-
const el = this.#elRef.nativeElement;
|
|
59
|
-
if (this.#coverElement) {
|
|
60
|
-
el.style.position = 'initial';
|
|
61
|
-
this.#coverElement.remove();
|
|
62
|
-
this.#coverElement = undefined;
|
|
63
|
-
}
|
|
64
|
-
if (active) {
|
|
65
|
-
el.style.position = 'relative';
|
|
66
|
-
this.#coverElement = this.#createCoverElement();
|
|
67
|
-
el.append(this.#coverElement);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
#createCoverElement() {
|
|
71
|
-
const coverElement = document.createElement('div');
|
|
72
|
-
coverElement.classList.add('yuv-split-area-cover');
|
|
73
|
-
coverElement.style.position = 'absolute';
|
|
74
|
-
coverElement.style.zIndex = '500';
|
|
75
|
-
coverElement.style.inset = '0';
|
|
76
|
-
return coverElement;
|
|
77
|
-
}
|
|
78
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SplitAreaCoverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
79
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: SplitAreaCoverDirective, isStandalone: true, selector: "[yuvSplitAreaCover]", inputs: { yuvSplitAreaCover: { classPropertyName: "yuvSplitAreaCover", publicName: "yuvSplitAreaCover", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
80
|
-
}
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SplitAreaCoverDirective, decorators: [{
|
|
82
|
-
type: Directive,
|
|
83
|
-
args: [{
|
|
84
|
-
selector: '[yuvSplitAreaCover]'
|
|
85
|
-
}]
|
|
86
|
-
}], propDecorators: { yuvSplitAreaCover: [{ type: i0.Input, args: [{ isSignal: true, alias: "yuvSplitAreaCover", required: false }] }] } });
|
|
1
|
+
export * from '@yuuvis/client-components/split-view';
|
|
87
2
|
|
|
88
3
|
/**
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
* Each area is defined using the `yuvSplitArea` directive on an `ng-template`.
|
|
92
|
-
* Areas can be resized by dragging the gutter between them.
|
|
93
|
-
*
|
|
94
|
-
* ### Basic usage
|
|
95
|
-
* ```html
|
|
96
|
-
* <yuv-split-view>
|
|
97
|
-
* <ng-template yuvSplitArea [size]="20">Aside</ng-template>
|
|
98
|
-
* <ng-template yuvSplitArea [size]="80">Main</ng-template>
|
|
99
|
-
* </yuv-split-view>
|
|
100
|
-
* ```
|
|
101
|
-
*
|
|
102
|
-
* ### Collapsible areas
|
|
103
|
-
* Areas can be shown, hidden, or toggled programmatically. Use a template
|
|
104
|
-
* reference variable to call the visibility methods from the template:
|
|
105
|
-
*
|
|
106
|
-
* ```html
|
|
107
|
-
* <yuv-split-view #sv>
|
|
108
|
-
* <ng-template yuvSplitArea [size]="25">
|
|
109
|
-
* <button (click)="sv.hideArea(0)">Collapse</button>
|
|
110
|
-
* Left pane
|
|
111
|
-
* </ng-template>
|
|
112
|
-
* <ng-template yuvSplitArea [size]="75">
|
|
113
|
-
* <button (click)="sv.showArea(0)">Expand left</button>
|
|
114
|
-
* Main pane
|
|
115
|
-
* </ng-template>
|
|
116
|
-
* </yuv-split-view>
|
|
117
|
-
* ```
|
|
118
|
-
*
|
|
119
|
-
* ### Persisting layout state
|
|
120
|
-
* Set `layoutSettingsID` to persist area sizes and visibility to
|
|
121
|
-
* localStorage. The saved state is automatically restored on init.
|
|
122
|
-
*
|
|
123
|
-
* ```html
|
|
124
|
-
* <yuv-split-view [layoutSettingsID]="'my-layout'">
|
|
125
|
-
* ...
|
|
126
|
-
* </yuv-split-view>
|
|
127
|
-
* ```
|
|
4
|
+
* @deprecated Import from `@yuuvis/client-components/split-view` instead.
|
|
5
|
+
* This entry point is a backward-compatibility shim and will be removed in a future release.
|
|
128
6
|
*/
|
|
129
|
-
class SplitViewComponent {
|
|
130
|
-
constructor() {
|
|
131
|
-
this.#layoutSettings = inject(LayoutSettingsService);
|
|
132
|
-
this.splitAreas = contentChildren(SplitAreaDirective, ...(ngDevMode ? [{ debugName: "splitAreas" }] : /* istanbul ignore next */ []));
|
|
133
|
-
this.asSplitComponent = viewChild.required(SplitComponent);
|
|
134
|
-
this.splitAreaSizes = [];
|
|
135
|
-
/**
|
|
136
|
-
* The split views direction. Could be 'horizontal' or 'vertical'. Defaults to 'horizontal'.
|
|
137
|
-
*/
|
|
138
|
-
this.direction = input('horizontal', ...(ngDevMode ? [{ debugName: "direction" }] : /* istanbul ignore next */ []));
|
|
139
|
-
this.isVertical = computed(() => this.direction() === 'vertical', ...(ngDevMode ? [{ debugName: "isVertical" }] : /* istanbul ignore next */ []));
|
|
140
|
-
this.isHorizontal = computed(() => this.direction() === 'horizontal', ...(ngDevMode ? [{ debugName: "isHorizontal" }] : /* istanbul ignore next */ []));
|
|
141
|
-
/**
|
|
142
|
-
* Size of the gutter in Pixel (defaults to 16).
|
|
143
|
-
*/
|
|
144
|
-
this.gutterSize = input(16, ...(ngDevMode ? [{ debugName: "gutterSize" }] : /* istanbul ignore next */ []));
|
|
145
|
-
/**
|
|
146
|
-
* If true, the gutter can only be moved in steps of 1%.
|
|
147
|
-
*/
|
|
148
|
-
this.restrictMove = input(false, ...(ngDevMode ? [{ debugName: "restrictMove" }] : /* istanbul ignore next */ []));
|
|
149
|
-
/**
|
|
150
|
-
* Disable the dragging feature (remove cursor/image on gutters).
|
|
151
|
-
*/
|
|
152
|
-
this.disabledInput = input(false, { ...(ngDevMode ? { debugName: "disabledInput" } : /* istanbul ignore next */ {}), alias: 'disabled' });
|
|
153
|
-
this.disabled = linkedSignal(() => this.disabledInput(), ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
154
|
-
/**
|
|
155
|
-
* Layout settings are the state of the split view that could be persisted.
|
|
156
|
-
* Setting a `layoutSettingsID` will save the current state (split area sizes etc.)
|
|
157
|
-
* to the local storage. If the component is created, it will load those settings and
|
|
158
|
-
* re-apply them.
|
|
159
|
-
*/
|
|
160
|
-
this.layoutSettingsID = input(...(ngDevMode ? [undefined, { debugName: "layoutSettingsID" }] : /* istanbul ignore next */ []));
|
|
161
|
-
/**
|
|
162
|
-
* Emitted when the state (split area sizes etc.) of the split view changed.
|
|
163
|
-
*/
|
|
164
|
-
this.layoutSettingsChange = output();
|
|
165
|
-
/**
|
|
166
|
-
* Emitted when dragging the split gutter starts
|
|
167
|
-
*/
|
|
168
|
-
this.dragStart = output();
|
|
169
|
-
/**
|
|
170
|
-
* Emitted when dragging the split gutter ends
|
|
171
|
-
*/
|
|
172
|
-
this.dragEnd = output();
|
|
173
|
-
/**
|
|
174
|
-
* Emitted when the split gutter is clicked.
|
|
175
|
-
*/
|
|
176
|
-
this.gutterClick = output();
|
|
177
|
-
/**
|
|
178
|
-
* Emitted when the split gutter is double clicked (you may also want to
|
|
179
|
-
* set a different click duration indicating a double click). This could be
|
|
180
|
-
* set using the `gutterDblClickDuration` to a value in milliseconds (default is 400ms)
|
|
181
|
-
*/
|
|
182
|
-
this.gutterDblClick = output();
|
|
183
|
-
this.dragging = signal(false, ...(ngDevMode ? [{ debugName: "dragging" }] : /* istanbul ignore next */ []));
|
|
184
|
-
}
|
|
185
|
-
#layoutSettings;
|
|
186
|
-
onDragStart(e) {
|
|
187
|
-
this.dragging.set(true);
|
|
188
|
-
this.dragStart.emit(e);
|
|
189
|
-
}
|
|
190
|
-
onDragEnd(e) {
|
|
191
|
-
this.dragging.set(false);
|
|
192
|
-
this.splitAreas().forEach((splitArea, index) => {
|
|
193
|
-
splitArea.areaProperties.update((s) => ({ ...s, size: e.sizes[index] }));
|
|
194
|
-
});
|
|
195
|
-
this.#updateLayoutSettings(e.sizes);
|
|
196
|
-
this.dragEnd.emit(e);
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Show a previously hidden split area, restoring it to its last known size.
|
|
200
|
-
*
|
|
201
|
-
* ```html
|
|
202
|
-
* <button (click)="sv.showArea(0)">Show left pane</button>
|
|
203
|
-
* ```
|
|
204
|
-
* @param index Zero-based index of the split area to show
|
|
205
|
-
*/
|
|
206
|
-
showArea(index) {
|
|
207
|
-
this.splitAreas()[index].areaProperties.update((s) => ({ ...s, visible: true }));
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Hide a split area by collapsing it to zero width/height. The adjacent
|
|
211
|
-
* areas will expand to fill the freed space.
|
|
212
|
-
*
|
|
213
|
-
* ```html
|
|
214
|
-
* <button (click)="sv.hideArea(0)">Hide left pane</button>
|
|
215
|
-
* ```
|
|
216
|
-
* @param index Zero-based index of the split area to hide
|
|
217
|
-
*/
|
|
218
|
-
hideArea(index) {
|
|
219
|
-
this.splitAreas()[index].areaProperties.update((s) => ({ ...s, visible: false }));
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Toggle the visibility of a split area. If the area is currently visible
|
|
223
|
-
* it will be collapsed; if it is hidden it will be restored.
|
|
224
|
-
*
|
|
225
|
-
* ```html
|
|
226
|
-
* <button (click)="sv.toggleArea(0)">Toggle left pane</button>
|
|
227
|
-
* ```
|
|
228
|
-
* @param index Zero-based index of the split area to toggle
|
|
229
|
-
*/
|
|
230
|
-
toggleArea(index) {
|
|
231
|
-
this.splitAreas()[index].areaProperties.update((s) => ({ ...s, visible: !s.visible }));
|
|
232
|
-
}
|
|
233
|
-
/**
|
|
234
|
-
* Returns whether a split area is currently visible. Useful for
|
|
235
|
-
* conditionally rendering expand/collapse buttons in the template.
|
|
236
|
-
*
|
|
237
|
-
* ```html
|
|
238
|
-
* @if (!sv.isAreaVisible(0)) {
|
|
239
|
-
* <button (click)="sv.showArea(0)">Expand left</button>
|
|
240
|
-
* }
|
|
241
|
-
* ```
|
|
242
|
-
* @param index Zero-based index of the split area to check
|
|
243
|
-
* @returns `true` if the area is visible, `false` if hidden
|
|
244
|
-
*/
|
|
245
|
-
isAreaVisible(index) {
|
|
246
|
-
return this.splitAreas()[index].areaProperties().visible;
|
|
247
|
-
}
|
|
248
|
-
/** @deprecated Use `showArea()` / `hideArea()` instead */
|
|
249
|
-
splitAreaSetVisibility(index, visible) {
|
|
250
|
-
this.splitAreas()[index].areaProperties.update((s) => ({ ...s, visible }));
|
|
251
|
-
}
|
|
252
|
-
/** @deprecated Use `toggleArea()` instead */
|
|
253
|
-
splitAreaToggleVisibility(index) {
|
|
254
|
-
this.splitAreas()[index].areaProperties.update((s) => ({ ...s, visible: !s.visible }));
|
|
255
|
-
}
|
|
256
|
-
#updateLayoutSettings(sizes) {
|
|
257
|
-
this.splitAreaSizes = sizes;
|
|
258
|
-
const layoutSettings = {
|
|
259
|
-
disabled: this.disabled(),
|
|
260
|
-
areas: this.splitAreas().map((a, idx) => ({
|
|
261
|
-
visible: a.visible(),
|
|
262
|
-
size: sizes[idx]
|
|
263
|
-
}))
|
|
264
|
-
};
|
|
265
|
-
this.layoutSettingsChange.emit(layoutSettings);
|
|
266
|
-
// save layout settings if persistence is enabled
|
|
267
|
-
const lsid = this.layoutSettingsID();
|
|
268
|
-
if (lsid) {
|
|
269
|
-
this.#layoutSettings.saveSettings(lsid, layoutSettings);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Programmatically apply layout settings (area sizes, visibility, disabled state).
|
|
274
|
-
* This is called automatically on init when `layoutSettingsID` is set, but can
|
|
275
|
-
* also be used to restore a specific layout configuration at any time.
|
|
276
|
-
* @param settings The layout settings to apply
|
|
277
|
-
*/
|
|
278
|
-
applyLayoutSettings(settings) {
|
|
279
|
-
if (!this.#isLayoutSettingsObject(settings))
|
|
280
|
-
return;
|
|
281
|
-
this.disabled.set(!!settings.disabled);
|
|
282
|
-
this.splitAreaSizes = settings.areas.map((a) => a.size);
|
|
283
|
-
settings.areas.forEach((a, index) => {
|
|
284
|
-
this.splitAreas()[index].updateSettings(a);
|
|
285
|
-
});
|
|
286
|
-
}
|
|
287
|
-
#isLayoutSettingsObject(v) {
|
|
288
|
-
return v && 'disabled' in v && 'areas' in v;
|
|
289
|
-
}
|
|
290
|
-
ngAfterViewInit() {
|
|
291
|
-
// try to load layout settings if persistence is enabled
|
|
292
|
-
const lsid = this.layoutSettingsID();
|
|
293
|
-
if (lsid) {
|
|
294
|
-
this.applyLayoutSettings(this.#layoutSettings.getSettings(lsid));
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SplitViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
298
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SplitViewComponent, isStandalone: true, selector: "yuv-split-view", inputs: { direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, gutterSize: { classPropertyName: "gutterSize", publicName: "gutterSize", isSignal: true, isRequired: false, transformFunction: null }, restrictMove: { classPropertyName: "restrictMove", publicName: "restrictMove", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, layoutSettingsID: { classPropertyName: "layoutSettingsID", publicName: "layoutSettingsID", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { layoutSettingsChange: "layoutSettingsChange", dragStart: "dragStart", dragEnd: "dragEnd", gutterClick: "gutterClick", gutterDblClick: "gutterDblClick" }, host: { attributes: { "attr.data-gutter-size": "gutterSize()", "class.dragging": "dragging()" } }, queries: [{ propertyName: "splitAreas", predicate: SplitAreaDirective, isSignal: true }], viewQueries: [{ propertyName: "asSplitComponent", first: true, predicate: SplitComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<as-split\n [direction]=\"direction()\"\n [unit]=\"'percent'\"\n [gutterSize]=\"gutterSize()\"\n [gutterStep]=\"1\"\n [restrictMove]=\"restrictMove()\"\n [useTransition]=\"false\"\n [disabled]=\"disabled()\"\n (dragEnd)=\"onDragEnd($event)\"\n (dragStart)=\"onDragStart($event)\"\n (gutterDblClick)=\"gutterDblClick.emit($event)\"\n (gutterClick)=\"gutterClick.emit($event)\"\n>\n @if (gutterSize() === 1) {\n <div *asSplitGutter=\"let isDragged = isDragged\" class=\"shade-gutter\" [class.dragged]=\"isDragged\">\n <div class=\"shade-gutter-icon\" [class.vertical]=\"isVertical()\" [class.horizontal]=\"isHorizontal()\"></div>\n </div>\n } @else {\n <div *asSplitGutter class=\"split-gutter\">\n <div asSplitGutterDragHandle class=\"split-gutter-handle\" [class.vertical]=\"isVertical()\" [class.horizontal]=\"isHorizontal()\"></div>\n </div>\n }\n\n @for (a of splitAreas(); track a; let i = $index) {\n <as-split-area\n [yuvSplitAreaCover]=\"dragging()\"\n class=\"yuv-split-area {{ a.panelClass() }}\"\n [maxSize]=\"a.maxSize()\"\n [minSize]=\"a.minSize()\"\n [lockSize]=\"a.areaProperties().lockSize\"\n [size]=\"a.areaProperties().size\"\n [visible]=\"a.areaProperties().visible\"\n ><ng-template [ngTemplateOutlet]=\"a.template\"></ng-template\n ></as-split-area>\n }\n</as-split>\n", styles: [":host{--_split-gutter-background-color: var(--split-gutter-background-color, transparent);--_split-gutter-handle-border-radius: var(--split-gutter-handle-border-radius, 2px);--_split-gutter-handle-width: var(--split-gutter-handle-width, 2px);--_split-gutter-handle-height: var(--split-gutter-handle-height, var(--ymt-spacing-3xl));--_split-gutter-shade-background: var(--split-gutter-shade-background, var(--ymt-outline-variant));--_split-gutter-shade-hover-background: var(--split-gutter-shade-hover-background, currentColor);--_split-gutter-shade-size: var(--split-gutter-shade-size, 16px);overflow:hidden}:host as-split{--as-gutter-background-color: var(--_split-gutter-background-color)}:host .split-gutter{width:100%;height:100%}:host .split-gutter .split-gutter-handle{width:100%;height:100%;display:flex;align-items:center;justify-content:center}:host .split-gutter .split-gutter-handle:after{content:\"\";transition:background-color .3s ease-in-out;background-color:rgb(from var(--ymt-text-color) r g b/.2);display:block;width:var(--_split-gutter-handle-width);height:var(--_split-gutter-handle-height);border-radius:var(--_split-gutter-handle-border-radius)}:host .split-gutter .split-gutter-handle.vertical:after{width:var(--_split-gutter-handle-height);height:var(--_split-gutter-handle-width)}:host .split-gutter:hover .split-gutter-handle:after{background-color:rgb(from var(--ymt-text-color) r g b/.9)}:host .shade-gutter{width:100%;height:100%;background-color:var(--_split-gutter-shade-background);position:relative}:host .shade-gutter-icon{height:100%;width:100%;background-color:var(--_split-gutter-shade-hover-background);transition:opacity .3s;opacity:0;position:absolute;z-index:500}.dragged :host .shade-gutter-icon,:host .shade-gutter-icon:hover{opacity:.1}:host .shade-gutter-icon.horizontal{width:calc(var(--_split-gutter-shade-size) + 1px);inset-inline-start:calc(var(--_split-gutter-shade-size) / -2);inset-inline-end:var(--_split-gutter-shade-size)}:host .shade-gutter-icon.vertical{height:calc(var(--_split-gutter-shade-size) + 1px);inset-block-start:calc(var(--_split-gutter-shade-size) / -2);inset-block-end:var(--_split-gutter-shade-size)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AngularSplitModule }, { kind: "component", type: i2.SplitComponent, selector: "as-split", inputs: ["gutterSize", "gutterStep", "disabled", "gutterClickDeltaPx", "direction", "dir", "unit", "gutterAriaLabel", "restrictMove", "useTransition", "gutterDblClickDuration"], outputs: ["gutterClick", "gutterDblClick", "dragStart", "dragEnd", "transitionEnd"], exportAs: ["asSplit"] }, { kind: "component", type: i2.SplitAreaComponent, selector: "as-split-area", inputs: ["size", "minSize", "maxSize", "lockSize", "visible"], exportAs: ["asSplitArea"] }, { kind: "directive", type: i2.SplitGutterDirective, selector: "[asSplitGutter]" }, { kind: "directive", type: i2.SplitGutterDragHandleDirective, selector: "[asSplitGutterDragHandle]" }, { kind: "directive", type: SplitAreaCoverDirective, selector: "[yuvSplitAreaCover]", inputs: ["yuvSplitAreaCover"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
299
|
-
}
|
|
300
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SplitViewComponent, decorators: [{
|
|
301
|
-
type: Component,
|
|
302
|
-
args: [{ selector: 'yuv-split-view', imports: [CommonModule, AngularSplitModule, SplitAreaCoverDirective], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
303
|
-
'attr.data-gutter-size': 'gutterSize()',
|
|
304
|
-
'class.dragging': 'dragging()'
|
|
305
|
-
}, template: "<as-split\n [direction]=\"direction()\"\n [unit]=\"'percent'\"\n [gutterSize]=\"gutterSize()\"\n [gutterStep]=\"1\"\n [restrictMove]=\"restrictMove()\"\n [useTransition]=\"false\"\n [disabled]=\"disabled()\"\n (dragEnd)=\"onDragEnd($event)\"\n (dragStart)=\"onDragStart($event)\"\n (gutterDblClick)=\"gutterDblClick.emit($event)\"\n (gutterClick)=\"gutterClick.emit($event)\"\n>\n @if (gutterSize() === 1) {\n <div *asSplitGutter=\"let isDragged = isDragged\" class=\"shade-gutter\" [class.dragged]=\"isDragged\">\n <div class=\"shade-gutter-icon\" [class.vertical]=\"isVertical()\" [class.horizontal]=\"isHorizontal()\"></div>\n </div>\n } @else {\n <div *asSplitGutter class=\"split-gutter\">\n <div asSplitGutterDragHandle class=\"split-gutter-handle\" [class.vertical]=\"isVertical()\" [class.horizontal]=\"isHorizontal()\"></div>\n </div>\n }\n\n @for (a of splitAreas(); track a; let i = $index) {\n <as-split-area\n [yuvSplitAreaCover]=\"dragging()\"\n class=\"yuv-split-area {{ a.panelClass() }}\"\n [maxSize]=\"a.maxSize()\"\n [minSize]=\"a.minSize()\"\n [lockSize]=\"a.areaProperties().lockSize\"\n [size]=\"a.areaProperties().size\"\n [visible]=\"a.areaProperties().visible\"\n ><ng-template [ngTemplateOutlet]=\"a.template\"></ng-template\n ></as-split-area>\n }\n</as-split>\n", styles: [":host{--_split-gutter-background-color: var(--split-gutter-background-color, transparent);--_split-gutter-handle-border-radius: var(--split-gutter-handle-border-radius, 2px);--_split-gutter-handle-width: var(--split-gutter-handle-width, 2px);--_split-gutter-handle-height: var(--split-gutter-handle-height, var(--ymt-spacing-3xl));--_split-gutter-shade-background: var(--split-gutter-shade-background, var(--ymt-outline-variant));--_split-gutter-shade-hover-background: var(--split-gutter-shade-hover-background, currentColor);--_split-gutter-shade-size: var(--split-gutter-shade-size, 16px);overflow:hidden}:host as-split{--as-gutter-background-color: var(--_split-gutter-background-color)}:host .split-gutter{width:100%;height:100%}:host .split-gutter .split-gutter-handle{width:100%;height:100%;display:flex;align-items:center;justify-content:center}:host .split-gutter .split-gutter-handle:after{content:\"\";transition:background-color .3s ease-in-out;background-color:rgb(from var(--ymt-text-color) r g b/.2);display:block;width:var(--_split-gutter-handle-width);height:var(--_split-gutter-handle-height);border-radius:var(--_split-gutter-handle-border-radius)}:host .split-gutter .split-gutter-handle.vertical:after{width:var(--_split-gutter-handle-height);height:var(--_split-gutter-handle-width)}:host .split-gutter:hover .split-gutter-handle:after{background-color:rgb(from var(--ymt-text-color) r g b/.9)}:host .shade-gutter{width:100%;height:100%;background-color:var(--_split-gutter-shade-background);position:relative}:host .shade-gutter-icon{height:100%;width:100%;background-color:var(--_split-gutter-shade-hover-background);transition:opacity .3s;opacity:0;position:absolute;z-index:500}.dragged :host .shade-gutter-icon,:host .shade-gutter-icon:hover{opacity:.1}:host .shade-gutter-icon.horizontal{width:calc(var(--_split-gutter-shade-size) + 1px);inset-inline-start:calc(var(--_split-gutter-shade-size) / -2);inset-inline-end:var(--_split-gutter-shade-size)}:host .shade-gutter-icon.vertical{height:calc(var(--_split-gutter-shade-size) + 1px);inset-block-start:calc(var(--_split-gutter-shade-size) / -2);inset-block-end:var(--_split-gutter-shade-size)}\n"] }]
|
|
306
|
-
}], propDecorators: { splitAreas: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SplitAreaDirective), { isSignal: true }] }], asSplitComponent: [{ type: i0.ViewChild, args: [i0.forwardRef(() => SplitComponent), { isSignal: true }] }], direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }], gutterSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "gutterSize", required: false }] }], restrictMove: [{ type: i0.Input, args: [{ isSignal: true, alias: "restrictMove", required: false }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], layoutSettingsID: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutSettingsID", required: false }] }], layoutSettingsChange: [{ type: i0.Output, args: ["layoutSettingsChange"] }], dragStart: [{ type: i0.Output, args: ["dragStart"] }], dragEnd: [{ type: i0.Output, args: ["dragEnd"] }], gutterClick: [{ type: i0.Output, args: ["gutterClick"] }], gutterDblClick: [{ type: i0.Output, args: ["gutterDblClick"] }] } });
|
|
307
|
-
|
|
308
|
-
class YuvSplitViewModule {
|
|
309
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: YuvSplitViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
310
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: YuvSplitViewModule, imports: [SplitAreaDirective, SplitViewComponent], exports: [SplitAreaDirective, SplitViewComponent] }); }
|
|
311
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: YuvSplitViewModule, imports: [SplitViewComponent] }); }
|
|
312
|
-
}
|
|
313
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: YuvSplitViewModule, decorators: [{
|
|
314
|
-
type: NgModule,
|
|
315
|
-
args: [{
|
|
316
|
-
imports: [SplitAreaDirective, SplitViewComponent],
|
|
317
|
-
exports: [SplitAreaDirective, SplitViewComponent]
|
|
318
|
-
}]
|
|
319
|
-
}] });
|
|
320
7
|
|
|
321
8
|
/**
|
|
322
9
|
* Generated bundle index. Do not edit.
|
|
323
10
|
*/
|
|
324
|
-
|
|
325
|
-
export { SplitAreaDirective, SplitViewComponent, YuvSplitViewModule };
|
|
326
11
|
//# sourceMappingURL=yuuvis-client-framework-split-view.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yuuvis-client-framework-split-view.mjs","sources":["../../../../../libs/yuuvis/client-framework/split-view/src/lib/split-area.directive.ts","../../../../../libs/yuuvis/client-framework/split-view/src/lib/split-area-cover.directive.ts","../../../../../libs/yuuvis/client-framework/split-view/src/lib/split-view.component.ts","../../../../../libs/yuuvis/client-framework/split-view/src/lib/split-view.component.html","../../../../../libs/yuuvis/client-framework/split-view/src/lib/split-view.module.ts","../../../../../libs/yuuvis/client-framework/split-view/src/yuuvis-client-framework-split-view.ts"],"sourcesContent":["import { Directive, effect, inject, input, linkedSignal, signal, TemplateRef, untracked } from '@angular/core';\nimport { SplitAreaLayoutSettings } from './split-view.interface';\nimport { SplitAreaSize } from 'angular-split';\n\n@Directive({\n selector: '[yuvSplitArea]'\n})\nexport class SplitAreaDirective {\n template = inject(TemplateRef<any>);\n\n size = input<SplitAreaSize>();\n minSize = input<number>();\n maxSize = input<number>();\n panelClass = input<string>();\n visible = input<boolean>(true);\n lockSize = input<boolean>(false);\n\n areaProperties = linkedSignal({\n source: () => ({ size: this.size(), visible: this.visible(), lockSize: this.lockSize() }),\n computation: ({ size, visible, lockSize }) => ({ size, visible, lockSize })\n });\n\n updateSettings(s: SplitAreaLayoutSettings) {\n this.areaProperties.set({\n size: s.size || this.size(),\n visible: s.visible !== undefined ? !!s.visible : this.visible(),\n lockSize: s.lockSize || this.lockSize()\n });\n }\n}\n","import { Directive, effect, ElementRef, inject, input } from '@angular/core';\n\n/**\n * Directive to add a cover overlay to a split area during dragging.\n * This is useful when the split area contains elements like iframes\n * that can capture drag events and interfere with the split view's\n * dragging functionality.\n * The overlay will be transparent and therefore not recognized by\n * the user, but will capture the drag events.\n */\n@Directive({\n selector: '[yuvSplitAreaCover]'\n})\nexport class SplitAreaCoverDirective {\n #elRef = inject(ElementRef);\n\n yuvSplitAreaCover = input<boolean>(false);\n #draggingEffect = effect(() => {\n this.#toggleCover(this.yuvSplitAreaCover());\n });\n\n #coverElement?: HTMLElement;\n\n #toggleCover(active: boolean) {\n const el: HTMLElement = this.#elRef.nativeElement as HTMLElement;\n\n if (this.#coverElement) {\n el.style.position = 'initial';\n this.#coverElement.remove();\n this.#coverElement = undefined;\n }\n if (active) {\n el.style.position = 'relative';\n this.#coverElement = this.#createCoverElement();\n el.append(this.#coverElement);\n }\n }\n\n #createCoverElement(): HTMLElement {\n const coverElement = document.createElement('div');\n coverElement.classList.add('yuv-split-area-cover');\n coverElement.style.position = 'absolute';\n coverElement.style.zIndex = '500';\n coverElement.style.inset = '0';\n return coverElement;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n inject,\n input,\n linkedSignal,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { LayoutSettingsService } from '@yuuvis/client-framework/common';\nimport { AngularSplitModule, SplitAreaSize, SplitComponent, SplitDirection } from 'angular-split';\nimport { SplitAreaCoverDirective } from './split-area-cover.directive';\nimport { SplitAreaDirective } from './split-area.directive';\nimport { SplitAreaLayoutSettings, SplitViewLayoutSettings, SplitViewOutputData } from './split-view.interface';\n\n/**\n * Component for creating a split view with resizable areas.\n *\n * Each area is defined using the `yuvSplitArea` directive on an `ng-template`.\n * Areas can be resized by dragging the gutter between them.\n *\n * ### Basic usage\n * ```html\n * <yuv-split-view>\n * <ng-template yuvSplitArea [size]=\"20\">Aside</ng-template>\n * <ng-template yuvSplitArea [size]=\"80\">Main</ng-template>\n * </yuv-split-view>\n * ```\n *\n * ### Collapsible areas\n * Areas can be shown, hidden, or toggled programmatically. Use a template\n * reference variable to call the visibility methods from the template:\n *\n * ```html\n * <yuv-split-view #sv>\n * <ng-template yuvSplitArea [size]=\"25\">\n * <button (click)=\"sv.hideArea(0)\">Collapse</button>\n * Left pane\n * </ng-template>\n * <ng-template yuvSplitArea [size]=\"75\">\n * <button (click)=\"sv.showArea(0)\">Expand left</button>\n * Main pane\n * </ng-template>\n * </yuv-split-view>\n * ```\n *\n * ### Persisting layout state\n * Set `layoutSettingsID` to persist area sizes and visibility to\n * localStorage. The saved state is automatically restored on init.\n *\n * ```html\n * <yuv-split-view [layoutSettingsID]=\"'my-layout'\">\n * ...\n * </yuv-split-view>\n * ```\n */\n@Component({\n selector: 'yuv-split-view',\n imports: [CommonModule, AngularSplitModule, SplitAreaCoverDirective],\n templateUrl: './split-view.component.html',\n styleUrl: './split-view.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'attr.data-gutter-size': 'gutterSize()',\n 'class.dragging': 'dragging()'\n }\n})\nexport class SplitViewComponent implements AfterViewInit {\n #layoutSettings = inject(LayoutSettingsService);\n\n splitAreas = contentChildren<SplitAreaDirective>(SplitAreaDirective);\n asSplitComponent = viewChild.required<SplitComponent>(SplitComponent);\n\n splitAreaSizes: SplitAreaSize[] = [];\n\n /**\n * The split views direction. Could be 'horizontal' or 'vertical'. Defaults to 'horizontal'.\n */\n direction = input<SplitDirection>('horizontal');\n isVertical = computed(() => this.direction() === 'vertical');\n isHorizontal = computed(() => this.direction() === 'horizontal');\n\n /**\n * Size of the gutter in Pixel (defaults to 16).\n */\n gutterSize = input<number>(16);\n /**\n * If true, the gutter can only be moved in steps of 1%.\n */\n restrictMove = input<boolean>(false);\n /**\n * Disable the dragging feature (remove cursor/image on gutters).\n */\n disabledInput = input<boolean>(false, { alias: 'disabled' });\n disabled = linkedSignal(() => this.disabledInput());\n /**\n * Layout settings are the state of the split view that could be persisted.\n * Setting a `layoutSettingsID` will save the current state (split area sizes etc.)\n * to the local storage. If the component is created, it will load those settings and\n * re-apply them.\n */\n layoutSettingsID = input<string>();\n /**\n * Emitted when the state (split area sizes etc.) of the split view changed.\n */\n layoutSettingsChange = output<SplitViewLayoutSettings>();\n /**\n * Emitted when dragging the split gutter starts\n */\n dragStart = output<SplitViewOutputData>();\n /**\n * Emitted when dragging the split gutter ends\n */\n dragEnd = output<SplitViewOutputData>();\n\n /**\n * Emitted when the split gutter is clicked.\n */\n gutterClick = output<SplitViewOutputData>();\n /**\n * Emitted when the split gutter is double clicked (you may also want to\n * set a different click duration indicating a double click). This could be\n * set using the `gutterDblClickDuration` to a value in milliseconds (default is 400ms)\n */\n gutterDblClick = output<SplitViewOutputData>();\n\n dragging = signal<boolean>(false);\n\n onDragStart(e: SplitViewOutputData) {\n this.dragging.set(true);\n this.dragStart.emit(e);\n }\n\n onDragEnd(e: SplitViewOutputData) {\n this.dragging.set(false);\n this.splitAreas().forEach((splitArea, index) => {\n splitArea.areaProperties.update((s) => ({ ...s, size: e.sizes[index] }));\n });\n this.#updateLayoutSettings(e.sizes);\n this.dragEnd.emit(e);\n }\n\n /**\n * Show a previously hidden split area, restoring it to its last known size.\n *\n * ```html\n * <button (click)=\"sv.showArea(0)\">Show left pane</button>\n * ```\n * @param index Zero-based index of the split area to show\n */\n showArea(index: number) {\n this.splitAreas()[index].areaProperties.update((s) => ({ ...s, visible: true }));\n }\n\n /**\n * Hide a split area by collapsing it to zero width/height. The adjacent\n * areas will expand to fill the freed space.\n *\n * ```html\n * <button (click)=\"sv.hideArea(0)\">Hide left pane</button>\n * ```\n * @param index Zero-based index of the split area to hide\n */\n hideArea(index: number) {\n this.splitAreas()[index].areaProperties.update((s) => ({ ...s, visible: false }));\n }\n\n /**\n * Toggle the visibility of a split area. If the area is currently visible\n * it will be collapsed; if it is hidden it will be restored.\n *\n * ```html\n * <button (click)=\"sv.toggleArea(0)\">Toggle left pane</button>\n * ```\n * @param index Zero-based index of the split area to toggle\n */\n toggleArea(index: number) {\n this.splitAreas()[index].areaProperties.update((s) => ({ ...s, visible: !s.visible }));\n }\n\n /**\n * Returns whether a split area is currently visible. Useful for\n * conditionally rendering expand/collapse buttons in the template.\n *\n * ```html\n * @if (!sv.isAreaVisible(0)) {\n * <button (click)=\"sv.showArea(0)\">Expand left</button>\n * }\n * ```\n * @param index Zero-based index of the split area to check\n * @returns `true` if the area is visible, `false` if hidden\n */\n isAreaVisible(index: number): boolean {\n return this.splitAreas()[index].areaProperties().visible;\n }\n\n /** @deprecated Use `showArea()` / `hideArea()` instead */\n splitAreaSetVisibility(index: number, visible: boolean) {\n this.splitAreas()[index].areaProperties.update((s) => ({ ...s, visible }));\n }\n\n /** @deprecated Use `toggleArea()` instead */\n splitAreaToggleVisibility(index: number) {\n this.splitAreas()[index].areaProperties.update((s) => ({ ...s, visible: !s.visible }));\n }\n\n #updateLayoutSettings(sizes: SplitAreaSize[]) {\n this.splitAreaSizes = sizes;\n const layoutSettings: SplitViewLayoutSettings = {\n disabled: this.disabled(),\n areas: this.splitAreas().map((a: SplitAreaDirective, idx: number) => ({\n visible: a.visible(),\n size: sizes[idx]\n }))\n };\n this.layoutSettingsChange.emit(layoutSettings);\n // save layout settings if persistence is enabled\n const lsid = this.layoutSettingsID();\n if (lsid) {\n this.#layoutSettings.saveSettings(lsid, layoutSettings);\n }\n }\n\n /**\n * Programmatically apply layout settings (area sizes, visibility, disabled state).\n * This is called automatically on init when `layoutSettingsID` is set, but can\n * also be used to restore a specific layout configuration at any time.\n * @param settings The layout settings to apply\n */\n applyLayoutSettings(settings: SplitViewLayoutSettings) {\n if (!this.#isLayoutSettingsObject(settings)) return;\n this.disabled.set(!!settings.disabled);\n this.splitAreaSizes = settings.areas.map((a) => a.size!);\n settings.areas.forEach((a: SplitAreaLayoutSettings, index: number) => {\n this.splitAreas()[index].updateSettings(a);\n });\n }\n\n #isLayoutSettingsObject(v: any): boolean {\n return v && 'disabled' in v && 'areas' in v;\n }\n\n ngAfterViewInit(): void {\n // try to load layout settings if persistence is enabled\n const lsid = this.layoutSettingsID();\n if (lsid) {\n this.applyLayoutSettings(this.#layoutSettings.getSettings(lsid) as SplitViewLayoutSettings);\n }\n }\n}\n","<as-split\n [direction]=\"direction()\"\n [unit]=\"'percent'\"\n [gutterSize]=\"gutterSize()\"\n [gutterStep]=\"1\"\n [restrictMove]=\"restrictMove()\"\n [useTransition]=\"false\"\n [disabled]=\"disabled()\"\n (dragEnd)=\"onDragEnd($event)\"\n (dragStart)=\"onDragStart($event)\"\n (gutterDblClick)=\"gutterDblClick.emit($event)\"\n (gutterClick)=\"gutterClick.emit($event)\"\n>\n @if (gutterSize() === 1) {\n <div *asSplitGutter=\"let isDragged = isDragged\" class=\"shade-gutter\" [class.dragged]=\"isDragged\">\n <div class=\"shade-gutter-icon\" [class.vertical]=\"isVertical()\" [class.horizontal]=\"isHorizontal()\"></div>\n </div>\n } @else {\n <div *asSplitGutter class=\"split-gutter\">\n <div asSplitGutterDragHandle class=\"split-gutter-handle\" [class.vertical]=\"isVertical()\" [class.horizontal]=\"isHorizontal()\"></div>\n </div>\n }\n\n @for (a of splitAreas(); track a; let i = $index) {\n <as-split-area\n [yuvSplitAreaCover]=\"dragging()\"\n class=\"yuv-split-area {{ a.panelClass() }}\"\n [maxSize]=\"a.maxSize()\"\n [minSize]=\"a.minSize()\"\n [lockSize]=\"a.areaProperties().lockSize\"\n [size]=\"a.areaProperties().size\"\n [visible]=\"a.areaProperties().visible\"\n ><ng-template [ngTemplateOutlet]=\"a.template\"></ng-template\n ></as-split-area>\n }\n</as-split>\n","import { NgModule } from '@angular/core';\nimport { SplitAreaDirective } from './split-area.directive';\nimport { SplitViewComponent } from './split-view.component';\n\n@NgModule({\n imports: [SplitAreaDirective, SplitViewComponent],\n exports: [SplitAreaDirective, SplitViewComponent]\n})\nexport class YuvSplitViewModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"yuuvis-client-framework-split-view.mjs","sources":["../../../../../libs/yuuvis/client-framework/split-view/src/index.ts","../../../../../libs/yuuvis/client-framework/split-view/src/yuuvis-client-framework-split-view.ts"],"sourcesContent":["/**\n * @deprecated Import from `@yuuvis/client-components/split-view` instead.\n * This entry point is a backward-compatibility shim and will be removed in a future release.\n */\nexport * from '@yuuvis/client-components/split-view';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAAA;;;AAGG;;ACHH;;AAEG"}
|