@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,247 +1,11 @@
1
- import * as i0 from '@angular/core';
2
- import { inject, input, computed, Component, Renderer2, ChangeDetectorRef, viewChild, output, signal, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
- import { FullscreenDirective } from '@yuuvis/material/panes';
4
- export { FullscreenDirective } from '@yuuvis/material/panes';
5
- import { YmtIconButtonDirective } from '@yuuvis/material';
6
- import * as i1 from '@angular/material/icon';
7
- import { MatIconModule } from '@angular/material/icon';
8
- import * as i2 from '@angular/material/tooltip';
9
- import { MatTooltipModule } from '@angular/material/tooltip';
10
- import { TranslateService } from '@ngx-translate/core';
11
- import * as i1$1 from '@angular/common';
12
- import { CommonModule } from '@angular/common';
13
- import { MatButtonModule } from '@angular/material/button';
1
+ export * from '@yuuvis/client-components/popout';
14
2
 
15
- class PopoutTriggerComponent {
16
- constructor() {
17
- this.translate = inject(TranslateService);
18
- this.config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
19
- this.popout = input(...(ngDevMode ? [undefined, { debugName: "popout" }] : /* istanbul ignore next */ []));
20
- this.icon = computed(() => {
21
- const poppedOut = this.popout()?.poppedOut();
22
- return poppedOut ? (this.config()?.popinIcon || 'open_in_new_down') : (this.config()?.popoutIcon || 'open_in_new');
23
- }, ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
24
- this.tooltip = computed(() => {
25
- const poppedOut = this.popout()?.poppedOut();
26
- return poppedOut ? (this.config()?.popinTooltip || this.translate.instant('yuv.popout.popin.tooltip')) : (this.config()?.popoutTooltip || this.translate.instant('yuv.popout.popout.tooltip'));
27
- }, ...(ngDevMode ? [{ debugName: "tooltip" }] : /* istanbul ignore next */ []));
28
- }
29
- trigger(e) {
30
- this.popout()?.pop(e);
31
- }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PopoutTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: PopoutTriggerComponent, isStandalone: true, selector: "yuv-popout-trigger", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, popout: { classPropertyName: "popout", publicName: "popout", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<button ymtIconButton [matTooltip]=\"tooltip()\" (click)=\"trigger($event)\">\n <mat-icon>{{ icon() }}</mat-icon>\n</button>", styles: [""], dependencies: [{ kind: "directive", type: YmtIconButtonDirective, selector: "button[ymtIconButton],button[ymt-icon-button],a[ymtIconButton],a[ymt-icon-button]", inputs: ["disabled", "disableRipple", "aria-disabled", "disabledInteractive", "icon-button-size"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PopoutTriggerComponent, decorators: [{
36
- type: Component,
37
- args: [{ selector: 'yuv-popout-trigger', imports: [YmtIconButtonDirective, MatIconModule, MatTooltipModule], template: "<button ymtIconButton [matTooltip]=\"tooltip()\" (click)=\"trigger($event)\">\n <mat-icon>{{ icon() }}</mat-icon>\n</button>" }]
38
- }], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], popout: [{ type: i0.Input, args: [{ isSignal: true, alias: "popout", required: false }] }] } });
39
-
40
- var PopoutTriggerPosition;
41
- (function (PopoutTriggerPosition) {
42
- PopoutTriggerPosition["TOP_LEFT"] = "tl";
43
- PopoutTriggerPosition["TOP_RIGHT"] = "tr";
44
- PopoutTriggerPosition["BOTTOM_LEFT"] = "bl";
45
- PopoutTriggerPosition["BOTTOM_RIGHT"] = "br";
46
- PopoutTriggerPosition["NONE"] = "none";
47
- })(PopoutTriggerPosition || (PopoutTriggerPosition = {}));
48
-
49
- // based upon: https://github.com/GIimmer/angular-opinionated-popout-window
50
3
  /**
51
- * Component that enables the wrapped content to be 'popped out' as new window.
52
- * It will place a button (icon) to trigger popout on top of the wrapped content. You
53
- * can place this trigger element setting the 'triggerPosition' input.
54
- *
55
- * Providing a 'popoutWindowConfig' will also enable you to influence the appearance of
56
- * the spawned window.
57
- *
58
- */
59
- class PopoutComponent {
60
- constructor() {
61
- this.#renderer2 = inject(Renderer2);
62
- this.#cd = inject(ChangeDetectorRef);
63
- this.innerWrapper = viewChild.required('innerWrapper');
64
- this.popoutWrapper = viewChild.required('popoutWrapper');
65
- /**
66
- * Where the popout trigger should be located on the component
67
- */
68
- this.triggerPosition = input(PopoutTriggerPosition.TOP_RIGHT, ...(ngDevMode ? [{ debugName: "triggerPosition" }] : /* istanbul ignore next */ []));
69
- /**
70
- * Icon to be redered inside the trigger
71
- */
72
- this.triggerIcon = input('open_in_new', ...(ngDevMode ? [{ debugName: "triggerIcon" }] : /* istanbul ignore next */ []));
73
- /**
74
- * Tooltip text for the trigger button
75
- */
76
- this.triggerTooltip = input(...(ngDevMode ? [undefined, { debugName: "triggerTooltip" }] : /* istanbul ignore next */ []));
77
- /**
78
- * configuration of the popped out window
79
- */
80
- this.popoutWindowConfig = input(...(ngDevMode ? [undefined, { debugName: "popoutWindowConfig" }] : /* istanbul ignore next */ []));
81
- /**
82
- * Whether or not to disable the undock feature
83
- */
84
- this.disabled = input(...(ngDevMode ? [undefined, { debugName: "disabled" }] : /* istanbul ignore next */ []));
85
- /**
86
- * Emitted when the child component is popped out
87
- */
88
- this.popOut = output();
89
- /**
90
- * Emitted when the child component is popped in again
91
- */
92
- this.popIn = output();
93
- this.#popoutWindow = signal(null, ...(ngDevMode ? [{ debugName: "#popoutWindow" }] : /* istanbul ignore next */ []));
94
- this.poppedOut = computed(() => !!this.#popoutWindow(), ...(ngDevMode ? [{ debugName: "poppedOut" }] : /* istanbul ignore next */ []));
95
- }
96
- #renderer2;
97
- #cd;
98
- beforeunloadHandler() {
99
- this._close();
100
- }
101
- #popoutWindow;
102
- #observer;
103
- get isPoppedOut() {
104
- return this.poppedOut();
105
- }
106
- pop(e) {
107
- if (this.isPoppedOut)
108
- this._popIn();
109
- else
110
- this._popOut(e);
111
- }
112
- _popIn() {
113
- this.#renderer2.appendChild(this.popoutWrapper().nativeElement, this.innerWrapper().nativeElement);
114
- this._close();
115
- this.#cd.detectChanges();
116
- }
117
- _popOut(event) {
118
- if (!this.#popoutWindow()) {
119
- this.#popoutWindow.set(this._createPopoutWindow(event));
120
- const pw = this.#popoutWindow();
121
- if (!pw) {
122
- // The window wasn't allowed to open
123
- // This is likely caused by built-in popup blockers.
124
- alert('Could not open new window. This is likely caused by built-in popup blockers.');
125
- return;
126
- }
127
- this._cloneStylesToPopoutWindow();
128
- this._observeFutureStyleChanges();
129
- this.#renderer2.appendChild(pw.document.body, this.innerWrapper().nativeElement);
130
- pw.addEventListener('unload', () => this._popIn());
131
- this.#cd.detectChanges();
132
- this.popOut.emit(true);
133
- }
134
- else {
135
- this.#popoutWindow().focus();
136
- }
137
- }
138
- _createPopoutWindow(mouseEvent) {
139
- const elmRect = this.innerWrapper().nativeElement.getBoundingClientRect();
140
- const [winLeft, winTop] = this._getWindowPositioning(elmRect, mouseEvent);
141
- const pwc = this.popoutWindowConfig();
142
- const winWidth = pwc?.size?.width ? pwc.size.width : elmRect.width;
143
- const winHeight = pwc?.size?.height ? pwc.size.height : elmRect.height + 1;
144
- const win = window.open('', `popoutWindow${Date.now()}`, ` popup,
145
- width=${winWidth},
146
- height=${winHeight},
147
- left=${winLeft},
148
- top=${winTop}`);
149
- if (win) {
150
- win.document.title = this.popoutWindowConfig()?.title || window.document.title;
151
- win.document.body.style.margin = '0';
152
- }
153
- return win;
154
- }
155
- _getWindowPositioning(elmRect, mouseEvent) {
156
- let winTop, winLeft;
157
- const pwc = this.popoutWindowConfig()?.position;
158
- if (pwc) {
159
- winTop = pwc.blockStart || winTop;
160
- winLeft = pwc.inlineStart || winLeft;
161
- }
162
- else {
163
- const navHeight = window.outerHeight - window.innerHeight;
164
- const navWidth = (window.outerWidth - window.innerWidth) / 2;
165
- winTop = window.screenY + navHeight + elmRect.top - 60;
166
- winLeft = window.screenX + navWidth + elmRect.left;
167
- // Position window titleBar under mouse
168
- if (mouseEvent) {
169
- winTop = mouseEvent.clientY + navHeight - 7;
170
- winLeft += 120;
171
- }
172
- }
173
- return [winLeft, winTop];
174
- }
175
- _close() {
176
- if (this.#popoutWindow()) {
177
- this.#popoutWindow().close();
178
- this.#popoutWindow.set(null);
179
- this.popIn.emit(true);
180
- }
181
- }
182
- _cloneStylesToPopoutWindow() {
183
- if (window.navigator.userAgent.indexOf('Firefox') === -1) {
184
- document.fonts.forEach((node) => {
185
- this.#popoutWindow().document.fonts.add(node);
186
- });
187
- }
188
- document.head.querySelectorAll('link[rel="stylesheet"]').forEach((node) => {
189
- this.#popoutWindow().document.head.insertAdjacentHTML('beforeend', `<link rel="stylesheet" type="${node.type}" href="${node.href}">`);
190
- });
191
- document.head.querySelectorAll('style').forEach((node) => {
192
- this.#popoutWindow().document.head.appendChild(node.cloneNode(true));
193
- });
194
- }
195
- _observeFutureStyleChanges() {
196
- const headEle = document.querySelector('head');
197
- const win = this.#popoutWindow();
198
- this.#observer?.disconnect();
199
- this.#observer = new MutationObserver((mutations) => {
200
- mutations.forEach((mutation) => {
201
- mutation.addedNodes.forEach((node) => {
202
- if (win && node.nodeName === 'STYLE') {
203
- win.document.head.appendChild(node.cloneNode(true));
204
- }
205
- });
206
- });
207
- });
208
- this.#observer.observe(headEle, { childList: true });
209
- }
210
- ngOnDestroy() {
211
- this.#observer?.disconnect();
212
- this._close();
213
- }
214
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PopoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
215
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: PopoutComponent, isStandalone: true, selector: "yuv-popout", inputs: { triggerPosition: { classPropertyName: "triggerPosition", publicName: "triggerPosition", isSignal: true, isRequired: false, transformFunction: null }, triggerIcon: { classPropertyName: "triggerIcon", publicName: "triggerIcon", isSignal: true, isRequired: false, transformFunction: null }, triggerTooltip: { classPropertyName: "triggerTooltip", publicName: "triggerTooltip", isSignal: true, isRequired: false, transformFunction: null }, popoutWindowConfig: { classPropertyName: "popoutWindowConfig", publicName: "popoutWindowConfig", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { popOut: "popOut", popIn: "popIn" }, host: { listeners: { "window:beforeunload": "beforeunloadHandler()" } }, viewQueries: [{ propertyName: "innerWrapper", first: true, predicate: ["innerWrapper"], descendants: true, isSignal: true }, { propertyName: "popoutWrapper", first: true, predicate: ["popoutWrapper"], descendants: true, isSignal: true }], exportAs: ["yuvPopout"], ngImport: i0, template: "<div #popoutWrapper class=\"popoutWrapper\" [ngClass]=\"{ disabled: disabled() }\" [attr.data-pos]=\"triggerPosition()\">\n @if (triggerPosition() !== 'none') {\n <button ymtIconButton icon-button-size=\"small\" type=\"button\" class=\"trigger\" (click)=\"pop($event)\" [matTooltip]=\"triggerTooltip()\" [ngClass]=\"{ poppedOut: isPoppedOut }\">\n <mat-icon>{{ triggerIcon() }}</mat-icon>\n </button>\n }\n <div #innerWrapper class=\"innerWrapper\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host{display:block;height:100%}div.popoutWrapper{--trigger-z-index: 1;--trigger-margin-block: var(--ymt-spacing-xs);--trigger-margin-inline: var(--ymt-spacing-xs);--trigger-color: var(--ymt-on-inverse-surface);--trigger-background-color: var(--ymt-inverse-surface);display:flex;height:100%;position:relative;min-height:calc(var(--trigger-size) + var(--trigger-margin-block))}div.popoutWrapper[data-pos=tr]>button.trigger{inset-block-end:unset;inset-block-start:var(--trigger-margin-block);inset-inline-start:unset;inset-inline-end:var(--trigger-margin-inline)}div.popoutWrapper[data-pos=tl]>button.trigger{inset-block-end:unset;inset-block-start:var(--trigger-margin-block);inset-inline-end:unset;inset-inline-start:var(--trigger-margin-inline)}div.popoutWrapper[data-pos=bl]>button.trigger{inset-block-start:unset;inset-block-end:var(--trigger-margin-block);inset-inline-end:unset;inset-inline-start:var(--trigger-margin-inline)}div.popoutWrapper[data-pos=br]>button.trigger{inset-block-start:unset;inset-block-end:var(--trigger-margin-block);inset-inline-start:unset;inset-inline-end:var(--trigger-margin-inline)}div.popoutWrapper.disabled>button.trigger{display:none;pointer-events:none}div.popoutWrapper>button.trigger{background-color:var(--trigger-background-color);color:var(--trigger-color);position:absolute;z-index:var(--trigger-z-index)}div.popoutWrapper>button.trigger.poppedOut{transform:rotate(180deg)}div.popoutWrapper div.innerWrapper{flex:1;overflow:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: YmtIconButtonDirective, selector: "button[ymtIconButton],button[ymt-icon-button],a[ymtIconButton],a[ymt-icon-button]", inputs: ["disabled", "disableRipple", "aria-disabled", "disabledInteractive", "icon-button-size"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
216
- }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PopoutComponent, decorators: [{
218
- type: Component,
219
- args: [{ selector: 'yuv-popout', exportAs: 'yuvPopout', imports: [CommonModule, MatButtonModule, MatIconModule, YmtIconButtonDirective, MatTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {
220
- '(window:beforeunload)': 'beforeunloadHandler()'
221
- // "[attr.data-pos]": "triggerPosition()"
222
- }, template: "<div #popoutWrapper class=\"popoutWrapper\" [ngClass]=\"{ disabled: disabled() }\" [attr.data-pos]=\"triggerPosition()\">\n @if (triggerPosition() !== 'none') {\n <button ymtIconButton icon-button-size=\"small\" type=\"button\" class=\"trigger\" (click)=\"pop($event)\" [matTooltip]=\"triggerTooltip()\" [ngClass]=\"{ poppedOut: isPoppedOut }\">\n <mat-icon>{{ triggerIcon() }}</mat-icon>\n </button>\n }\n <div #innerWrapper class=\"innerWrapper\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host{display:block;height:100%}div.popoutWrapper{--trigger-z-index: 1;--trigger-margin-block: var(--ymt-spacing-xs);--trigger-margin-inline: var(--ymt-spacing-xs);--trigger-color: var(--ymt-on-inverse-surface);--trigger-background-color: var(--ymt-inverse-surface);display:flex;height:100%;position:relative;min-height:calc(var(--trigger-size) + var(--trigger-margin-block))}div.popoutWrapper[data-pos=tr]>button.trigger{inset-block-end:unset;inset-block-start:var(--trigger-margin-block);inset-inline-start:unset;inset-inline-end:var(--trigger-margin-inline)}div.popoutWrapper[data-pos=tl]>button.trigger{inset-block-end:unset;inset-block-start:var(--trigger-margin-block);inset-inline-end:unset;inset-inline-start:var(--trigger-margin-inline)}div.popoutWrapper[data-pos=bl]>button.trigger{inset-block-start:unset;inset-block-end:var(--trigger-margin-block);inset-inline-end:unset;inset-inline-start:var(--trigger-margin-inline)}div.popoutWrapper[data-pos=br]>button.trigger{inset-block-start:unset;inset-block-end:var(--trigger-margin-block);inset-inline-start:unset;inset-inline-end:var(--trigger-margin-inline)}div.popoutWrapper.disabled>button.trigger{display:none;pointer-events:none}div.popoutWrapper>button.trigger{background-color:var(--trigger-background-color);color:var(--trigger-color);position:absolute;z-index:var(--trigger-z-index)}div.popoutWrapper>button.trigger.poppedOut{transform:rotate(180deg)}div.popoutWrapper div.innerWrapper{flex:1;overflow:auto}\n"] }]
223
- }], propDecorators: { innerWrapper: [{ type: i0.ViewChild, args: ['innerWrapper', { isSignal: true }] }], popoutWrapper: [{ type: i0.ViewChild, args: ['popoutWrapper', { isSignal: true }] }], triggerPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggerPosition", required: false }] }], triggerIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggerIcon", required: false }] }], triggerTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggerTooltip", required: false }] }], popoutWindowConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "popoutWindowConfig", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], popOut: [{ type: i0.Output, args: ["popOut"] }], popIn: [{ type: i0.Output, args: ["popIn"] }] } });
224
-
225
- class YuvPopoutModule {
226
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: YuvPopoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
227
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: YuvPopoutModule, imports: [PopoutComponent, PopoutTriggerComponent, FullscreenDirective], exports: [PopoutComponent, PopoutTriggerComponent, FullscreenDirective] }); }
228
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: YuvPopoutModule, imports: [PopoutComponent, PopoutTriggerComponent] }); }
229
- }
230
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: YuvPopoutModule, decorators: [{
231
- type: NgModule,
232
- args: [{
233
- imports: [PopoutComponent, PopoutTriggerComponent, FullscreenDirective],
234
- exports: [PopoutComponent, PopoutTriggerComponent, FullscreenDirective]
235
- }]
236
- }] });
237
-
238
- /**
239
- * @deprecated Import `FullscreenDirective` from `@yuuvis/material/panes` instead.
4
+ * @deprecated Import from `@yuuvis/client-components/popout` instead.
5
+ * This entry point is a backward-compatibility shim and will be removed in a future release.
240
6
  */
241
7
 
242
8
  /**
243
9
  * Generated bundle index. Do not edit.
244
10
  */
245
-
246
- export { PopoutComponent, PopoutTriggerComponent, PopoutTriggerPosition, YuvPopoutModule };
247
11
  //# sourceMappingURL=yuuvis-client-framework-popout.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"yuuvis-client-framework-popout.mjs","sources":["../../../../../libs/yuuvis/client-framework/popout/src/lib/popout-trigger/popout-trigger.component.ts","../../../../../libs/yuuvis/client-framework/popout/src/lib/popout-trigger/popout-trigger.component.html","../../../../../libs/yuuvis/client-framework/popout/src/lib/popout.interface.ts","../../../../../libs/yuuvis/client-framework/popout/src/lib/popout.component.ts","../../../../../libs/yuuvis/client-framework/popout/src/lib/popout.component.html","../../../../../libs/yuuvis/client-framework/popout/src/lib/popout.module.ts","../../../../../libs/yuuvis/client-framework/popout/src/lib/fullscreen.directive.ts","../../../../../libs/yuuvis/client-framework/popout/src/yuuvis-client-framework-popout.ts"],"sourcesContent":["import { Component, computed, inject, input } from '@angular/core';\n\nimport { PopoutComponent } from '../popout.component';\nimport { PopoutTriggerConfig } from '../popout.interface';\nimport { YmtIconButtonDirective } from '@yuuvis/material';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateService } from '@ngx-translate/core';\n\n\n\n@Component({\n selector: 'yuv-popout-trigger',\n imports: [YmtIconButtonDirective, MatIconModule, MatTooltipModule],\n templateUrl: './popout-trigger.component.html',\n styleUrl: './popout-trigger.component.scss'\n})\nexport class PopoutTriggerComponent {\n private translate = inject(TranslateService);\n\n config = input<PopoutTriggerConfig>();\n popout = input<PopoutComponent>()\n\n icon = computed(() => {\n const poppedOut = this.popout()?.poppedOut();\n return poppedOut ? (this.config()?.popinIcon || 'open_in_new_down') : (\n this.config()?.popoutIcon || 'open_in_new');\n });\n tooltip = computed(() => {\n const poppedOut = this.popout()?.poppedOut();\n return poppedOut ? (this.config()?.popinTooltip || this.translate.instant('yuv.popout.popin.tooltip')) : (\n this.config()?.popoutTooltip || this.translate.instant('yuv.popout.popout.tooltip'));\n });\n\n trigger(e: MouseEvent) {\n this.popout()?.pop(e);\n }\n}\n","<button ymtIconButton [matTooltip]=\"tooltip()\" (click)=\"trigger($event)\">\n <mat-icon>{{ icon() }}</mat-icon>\n</button>","export enum PopoutTriggerPosition {\n TOP_LEFT = 'tl',\n TOP_RIGHT = 'tr',\n BOTTOM_LEFT = 'bl',\n BOTTOM_RIGHT = 'br',\n NONE = 'none'\n}\n\n\nexport interface PopoutTriggerConfig {\n popoutIcon?: string;\n popinIcon?: string;\n popoutTooltip?: string;\n popinTooltip?: string;\n}\n\nexport interface PopoutWindowConfig {\n // title of the window opened by popout\n title?: string;\n position?: {\n // 'top' position in px\n blockStart?: number;\n // 'left' position in px\n inlineStart?: number;\n };\n // set the size of the poped out window\n // If no size is set the window will resize to\n // the size of the rendered content (if measurable)\n size?: {\n // width in px\n width?: number;\n // height in px\n height?: number;\n };\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n Renderer2,\n signal,\n viewChild\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { YmtIconButtonDirective } from '@yuuvis/material';\nimport { PopoutTriggerPosition, PopoutWindowConfig } from './popout.interface';\n\n// based upon: https://github.com/GIimmer/angular-opinionated-popout-window\n\n/**\n * Component that enables the wrapped content to be 'popped out' as new window.\n * It will place a button (icon) to trigger popout on top of the wrapped content. You\n * can place this trigger element setting the 'triggerPosition' input.\n *\n * Providing a 'popoutWindowConfig' will also enable you to influence the appearance of\n * the spawned window.\n *\n */\n@Component({\n selector: 'yuv-popout',\n exportAs: 'yuvPopout',\n imports: [CommonModule, MatButtonModule, MatIconModule, YmtIconButtonDirective, MatTooltipModule],\n templateUrl: './popout.component.html',\n styleUrl: './popout.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(window:beforeunload)': 'beforeunloadHandler()'\n // \"[attr.data-pos]\": \"triggerPosition()\"\n }\n})\nexport class PopoutComponent implements OnDestroy {\n #renderer2 = inject(Renderer2);\n #cd = inject(ChangeDetectorRef);\n\n beforeunloadHandler(): void {\n this._close();\n }\n\n innerWrapper = viewChild.required<ElementRef>('innerWrapper');\n popoutWrapper = viewChild.required<ElementRef>('popoutWrapper');\n\n /**\n * Where the popout trigger should be located on the component\n */\n triggerPosition = input<PopoutTriggerPosition>(PopoutTriggerPosition.TOP_RIGHT);\n /**\n * Icon to be redered inside the trigger\n */\n triggerIcon = input<string>('open_in_new');\n /**\n * Tooltip text for the trigger button\n */\n triggerTooltip = input<string>();\n\n /**\n * configuration of the popped out window\n */\n popoutWindowConfig = input<PopoutWindowConfig>();\n /**\n * Whether or not to disable the undock feature\n */\n disabled = input<boolean>();\n\n /**\n * Emitted when the child component is popped out\n */\n popOut = output<boolean>();\n /**\n * Emitted when the child component is popped in again\n */\n popIn = output<boolean>();\n\n #popoutWindow = signal<Window | null>(null);\n #observer?: MutationObserver;\n\n poppedOut = computed(() => !!this.#popoutWindow());\n\n get isPoppedOut() {\n return this.poppedOut();\n }\n\n pop(e: MouseEvent) {\n if (this.isPoppedOut) this._popIn();\n else this._popOut(e);\n }\n\n private _popIn(): void {\n this.#renderer2.appendChild(this.popoutWrapper().nativeElement, this.innerWrapper().nativeElement);\n this._close();\n this.#cd.detectChanges();\n }\n\n private _popOut(event?: MouseEvent): void {\n if (!this.#popoutWindow()) {\n this.#popoutWindow.set(this._createPopoutWindow(event));\n\n const pw = this.#popoutWindow();\n if (!pw) {\n // The window wasn't allowed to open\n // This is likely caused by built-in popup blockers.\n alert('Could not open new window. This is likely caused by built-in popup blockers.');\n return;\n }\n this._cloneStylesToPopoutWindow();\n this._observeFutureStyleChanges();\n\n this.#renderer2.appendChild(pw.document.body, this.innerWrapper().nativeElement);\n pw.addEventListener('unload', () => this._popIn());\n this.#cd.detectChanges();\n this.popOut.emit(true);\n } else {\n this.#popoutWindow()!.focus();\n }\n }\n\n private _createPopoutWindow(mouseEvent?: MouseEvent): Window | null {\n const elmRect = this.innerWrapper().nativeElement.getBoundingClientRect();\n const [winLeft, winTop] = this._getWindowPositioning(elmRect, mouseEvent);\n const pwc = this.popoutWindowConfig();\n const winWidth = pwc?.size?.width ? pwc.size.width : elmRect.width;\n const winHeight = pwc?.size?.height ? pwc.size.height : elmRect.height + 1;\n\n const win = window.open(\n '',\n `popoutWindow${Date.now()}`,\n ` popup,\n width=${winWidth},\n height=${winHeight},\n left=${winLeft},\n top=${winTop}`\n );\n if (win) {\n win.document.title = this.popoutWindowConfig()?.title || window.document.title;\n win.document.body.style.margin = '0';\n }\n return win;\n }\n\n private _getWindowPositioning(elmRect: DOMRect, mouseEvent?: MouseEvent) {\n let winTop, winLeft;\n\n const pwc = this.popoutWindowConfig()?.position;\n if (pwc) {\n winTop = pwc.blockStart || winTop;\n winLeft = pwc.inlineStart || winLeft;\n } else {\n const navHeight = window.outerHeight - window.innerHeight;\n const navWidth = (window.outerWidth - window.innerWidth) / 2;\n\n winTop = window.screenY + navHeight + elmRect.top - 60;\n winLeft = window.screenX + navWidth + elmRect.left;\n\n // Position window titleBar under mouse\n if (mouseEvent) {\n winTop = mouseEvent.clientY + navHeight - 7;\n winLeft += 120;\n }\n }\n return [winLeft, winTop];\n }\n\n private _close(): void {\n if (this.#popoutWindow()) {\n this.#popoutWindow()!.close();\n this.#popoutWindow.set(null);\n this.popIn.emit(true);\n }\n }\n\n private _cloneStylesToPopoutWindow() {\n if (window.navigator.userAgent.indexOf('Firefox') === -1) {\n document.fonts.forEach((node) => {\n (this.#popoutWindow()!.document as any).fonts.add(node);\n });\n }\n document.head.querySelectorAll('link[rel=\"stylesheet\"]').forEach((node) => {\n this.#popoutWindow()!.document.head.insertAdjacentHTML(\n 'beforeend',\n `<link rel=\"stylesheet\" type=\"${(node as HTMLLinkElement).type}\" href=\"${(node as HTMLLinkElement).href}\">`\n );\n });\n document.head.querySelectorAll('style').forEach((node) => {\n this.#popoutWindow()!.document.head.appendChild(node.cloneNode(true));\n });\n }\n\n private _observeFutureStyleChanges() {\n const headEle = document.querySelector('head');\n const win = this.#popoutWindow();\n this.#observer?.disconnect();\n this.#observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n mutation.addedNodes.forEach((node) => {\n if (win && node.nodeName === 'STYLE') {\n win.document.head.appendChild(node.cloneNode(true));\n }\n });\n });\n });\n this.#observer.observe(headEle!, { childList: true });\n }\n\n ngOnDestroy(): void {\n this.#observer?.disconnect();\n this._close();\n }\n}\n","<div #popoutWrapper class=\"popoutWrapper\" [ngClass]=\"{ disabled: disabled() }\" [attr.data-pos]=\"triggerPosition()\">\n @if (triggerPosition() !== 'none') {\n <button ymtIconButton icon-button-size=\"small\" type=\"button\" class=\"trigger\" (click)=\"pop($event)\" [matTooltip]=\"triggerTooltip()\" [ngClass]=\"{ poppedOut: isPoppedOut }\">\n <mat-icon>{{ triggerIcon() }}</mat-icon>\n </button>\n }\n <div #innerWrapper class=\"innerWrapper\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FullscreenDirective } from '@yuuvis/material/panes';\nimport { PopoutTriggerComponent } from './popout-trigger/popout-trigger.component';\nimport { PopoutComponent } from './popout.component';\n\n@NgModule({\n imports: [PopoutComponent, PopoutTriggerComponent, FullscreenDirective],\n exports: [PopoutComponent, PopoutTriggerComponent, FullscreenDirective]\n})\nexport class YuvPopoutModule {}\n","/**\n * @deprecated Import `FullscreenDirective` from `@yuuvis/material/panes` instead.\n */\nexport { FullscreenDirective } from '@yuuvis/material/panes';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3"],"mappings":";;;;;;;;;;;;;;MAiBa,sBAAsB,CAAA;AANnC,IAAA,WAAA,GAAA;AAOU,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAE5C,IAAA,CAAA,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAuB;QACrC,IAAA,CAAA,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAmB;AAEjC,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAK;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE;YAC5C,OAAO,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,IAAI,kBAAkB,KAClE,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,IAAI,aAAa,CAAC;AAC7C,QAAA,CAAC,2EAAC;AACF,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE;AAC5C,YAAA,OAAO,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,0BAA0B,CAAC,KACrG,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;AACtF,QAAA,CAAC,8EAAC;AAKH,IAAA;AAHC,IAAA,OAAO,CAAC,CAAa,EAAA;QACnB,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IACvB;8GAnBW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,gVCjBnC,iIAES,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDWG,sBAAsB,EAAA,QAAA,EAAA,mFAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,mLAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAItD,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,WACrB,CAAC,sBAAsB,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,iIAAA,EAAA;;;IEbxD;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,IAAe;AACf,IAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,IAAgB;AAChB,IAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,IAAkB;AAClB,IAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,IAAmB;AACnB,IAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EANW,qBAAqB,KAArB,qBAAqB,GAAA,EAAA,CAAA,CAAA;;ACqBjC;AAEA;;;;;;;;AAQG;MAaU,eAAe,CAAA;AAZ5B,IAAA,WAAA,GAAA;AAaE,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;AAC9B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAM/B,QAAA,IAAA,CAAA,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAa,cAAc,CAAC;AAC7D,QAAA,IAAA,CAAA,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAa,eAAe,CAAC;AAE/D;;AAEG;AACH,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAwB,qBAAqB,CAAC,SAAS,sFAAC;AAC/E;;AAEG;AACH,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,aAAa,kFAAC;AAC1C;;AAEG;QACH,IAAA,CAAA,cAAc,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;AAEhC;;AAEG;QACH,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAsB;AAChD;;AAEG;QACH,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAW;AAE3B;;AAEG;QACH,IAAA,CAAA,MAAM,GAAG,MAAM,EAAW;AAC1B;;AAEG;QACH,IAAA,CAAA,KAAK,GAAG,MAAM,EAAW;AAEzB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAgB,IAAI,oFAAC;AAG3C,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,gFAAC;AAmInD,IAAA;AA/KC,IAAA,UAAU;AACV,IAAA,GAAG;IAEH,mBAAmB,GAAA;QACjB,IAAI,CAAC,MAAM,EAAE;IACf;AAoCA,IAAA,aAAa;AACb,IAAA,SAAS;AAIT,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;IACzB;AAEA,IAAA,GAAG,CAAC,CAAa,EAAA;QACf,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,MAAM,EAAE;;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACtB;IAEQ,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC;QAClG,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;IAC1B;AAEQ,IAAA,OAAO,CAAC,KAAkB,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;AACzB,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAEvD,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE;YAC/B,IAAI,CAAC,EAAE,EAAE;;;gBAGP,KAAK,CAAC,8EAA8E,CAAC;gBACrF;YACF;YACA,IAAI,CAAC,0BAA0B,EAAE;YACjC,IAAI,CAAC,0BAA0B,EAAE;AAEjC,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC;AAChF,YAAA,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AAClD,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AACxB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QACxB;aAAO;AACL,YAAA,IAAI,CAAC,aAAa,EAAG,CAAC,KAAK,EAAE;QAC/B;IACF;AAEQ,IAAA,mBAAmB,CAAC,UAAuB,EAAA;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE;AACzE,QAAA,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC;AACzE,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE;QACrC,MAAM,QAAQ,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK;QAClE,MAAM,SAAS,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;AAE1E,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CACrB,EAAE,EACF,CAAA,YAAA,EAAe,IAAI,CAAC,GAAG,EAAE,EAAE,EAC3B,CAAA;gBACU,QAAQ,CAAA;iBACP,SAAS,CAAA;eACX,OAAO,CAAA;cACR,MAAM,CAAA,CAAE,CACjB;QACD,IAAI,GAAG,EAAE;AACP,YAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK;YAC9E,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;QACtC;AACA,QAAA,OAAO,GAAG;IACZ;IAEQ,qBAAqB,CAAC,OAAgB,EAAE,UAAuB,EAAA;QACrE,IAAI,MAAM,EAAE,OAAO;QAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE,EAAE,QAAQ;QAC/C,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,GAAG,CAAC,UAAU,IAAI,MAAM;AACjC,YAAA,OAAO,GAAG,GAAG,CAAC,WAAW,IAAI,OAAO;QACtC;aAAO;YACL,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW;AACzD,YAAA,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC;AAE5D,YAAA,MAAM,GAAG,MAAM,CAAC,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,GAAG,EAAE;YACtD,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI;;YAGlD,IAAI,UAAU,EAAE;gBACd,MAAM,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,GAAG,CAAC;gBAC3C,OAAO,IAAI,GAAG;YAChB;QACF;AACA,QAAA,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B;IAEQ,MAAM,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,aAAa,EAAG,CAAC,KAAK,EAAE;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB;IACF;IAEQ,0BAA0B,GAAA;AAChC,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;YACxD,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC7B,gBAAA,IAAI,CAAC,aAAa,EAAG,CAAC,QAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACzD,YAAA,CAAC,CAAC;QACJ;AACA,QAAA,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACxE,IAAI,CAAC,aAAa,EAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CACpD,WAAW,EACX,CAAA,6BAAA,EAAiC,IAAwB,CAAC,IAAI,CAAA,QAAA,EAAY,IAAwB,CAAC,IAAI,CAAA,EAAA,CAAI,CAC5G;AACH,QAAA,CAAC,CAAC;AACF,QAAA,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACvD,YAAA,IAAI,CAAC,aAAa,EAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACvE,QAAA,CAAC,CAAC;IACJ;IAEQ,0BAA0B,GAAA;QAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC9C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE;AAChC,QAAA,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,KAAI;AAClD,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;gBAC7B,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;oBACnC,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AACpC,wBAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACrD;AACF,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACvD;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE;QAC5B,IAAI,CAAC,MAAM,EAAE;IACf;8GA/KW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5C5B,ogBAUA,EAAA,MAAA,EAAA,CAAA,q8CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDyBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,sBAAsB,EAAA,QAAA,EAAA,mFAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FASrF,eAAe,EAAA,UAAA,EAAA,CAAA;kBAZ3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,YACZ,WAAW,EAAA,OAAA,EACZ,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,mBAGhF,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,uBAAuB,EAAE;;AAE1B,qBAAA,EAAA,QAAA,EAAA,ogBAAA,EAAA,MAAA,EAAA,CAAA,q8CAAA,CAAA,EAAA;AAU6C,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,cAAc,uEACb,eAAe,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ME5CnD,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAf,eAAe,EAAA,OAAA,EAAA,CAHhB,eAAe,EAAE,sBAAsB,EAAE,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAC5D,eAAe,EAAE,sBAAsB,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA;+GAE3D,eAAe,EAAA,OAAA,EAAA,CAHhB,eAAe,EAAE,sBAAsB,CAAA,EAAA,CAAA,CAAA;;2FAGtC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,sBAAsB,EAAE,mBAAmB,CAAC;AACvE,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,sBAAsB,EAAE,mBAAmB;AACvE,iBAAA;;;ACRD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"yuuvis-client-framework-popout.mjs","sources":["../../../../../libs/yuuvis/client-framework/popout/src/index.ts","../../../../../libs/yuuvis/client-framework/popout/src/yuuvis-client-framework-popout.ts"],"sourcesContent":["/**\n * @deprecated Import from `@yuuvis/client-components/popout` instead.\n * This entry point is a backward-compatibility shim and will be removed in a future release.\n */\nexport * from '@yuuvis/client-components/popout';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAAA;;;AAGG;;ACHH;;AAEG"}