@yuuvis/client-framework 3.0.0-beta.21.0 → 3.0.0-beta.21.1
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,247 +1,11 @@
|
|
|
1
|
-
|
|
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
|
-
*
|
|
52
|
-
*
|
|
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":"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"}
|
|
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"}
|