@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.
Files changed (39) hide show
  1. package/autocomplete/README.md +1 -1
  2. package/common/README.md +1 -1
  3. package/fesm2022/yuuvis-client-framework-autocomplete.mjs +5 -236
  4. package/fesm2022/yuuvis-client-framework-autocomplete.mjs.map +1 -1
  5. package/fesm2022/yuuvis-client-framework-common.mjs +3 -1793
  6. package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
  7. package/fesm2022/yuuvis-client-framework-list.mjs +3 -667
  8. package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
  9. package/fesm2022/yuuvis-client-framework-master-details.mjs +3 -136
  10. package/fesm2022/yuuvis-client-framework-master-details.mjs.map +1 -1
  11. package/fesm2022/yuuvis-client-framework-overflow-hidden.mjs +3 -62
  12. package/fesm2022/yuuvis-client-framework-overflow-hidden.mjs.map +1 -1
  13. package/fesm2022/yuuvis-client-framework-overflow-menu.mjs +3 -129
  14. package/fesm2022/yuuvis-client-framework-overflow-menu.mjs.map +1 -1
  15. package/fesm2022/yuuvis-client-framework-popout.mjs +3 -239
  16. package/fesm2022/yuuvis-client-framework-popout.mjs.map +1 -1
  17. package/fesm2022/yuuvis-client-framework-split-view.mjs +3 -318
  18. package/fesm2022/yuuvis-client-framework-split-view.mjs.map +1 -1
  19. package/fesm2022/yuuvis-client-framework-widget-grid.mjs +3 -942
  20. package/fesm2022/yuuvis-client-framework-widget-grid.mjs.map +1 -1
  21. package/lib/assets/i18n/de.json +1 -55
  22. package/lib/assets/i18n/en.json +1 -55
  23. package/list/README.md +1 -1
  24. package/master-details/README.md +1 -1
  25. package/overflow-hidden/README.md +1 -1
  26. package/overflow-menu/README.md +1 -1
  27. package/package.json +6 -5
  28. package/popout/README.md +1 -1
  29. package/split-view/README.md +1 -1
  30. package/types/yuuvis-client-framework-autocomplete.d.ts +1 -89
  31. package/types/yuuvis-client-framework-common.d.ts +1 -536
  32. package/types/yuuvis-client-framework-list.d.ts +1 -380
  33. package/types/yuuvis-client-framework-master-details.d.ts +1 -69
  34. package/types/yuuvis-client-framework-overflow-hidden.d.ts +1 -28
  35. package/types/yuuvis-client-framework-overflow-menu.d.ts +1 -52
  36. package/types/yuuvis-client-framework-popout.d.ts +1 -106
  37. package/types/yuuvis-client-framework-split-view.d.ts +1 -197
  38. package/types/yuuvis-client-framework-widget-grid.d.ts +1 -299
  39. package/widget-grid/README.md +1 -46
@@ -1,326 +1,11 @@
1
- import * as i0 from '@angular/core';
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
- * Component for creating a split view with resizable areas.
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"}