@softheon/armature 21.1.0 → 21.2.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.
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
|
|
42
42
|
.mat-mdc-tooltip-panel-below {
|
|
43
43
|
.mat-mdc-tooltip {
|
|
44
|
-
margin-top: 4px
|
|
44
|
+
margin-top: 4px;
|
|
45
45
|
&::after {
|
|
46
46
|
bottom: 100%;
|
|
47
47
|
left: calc(50% - 6px);
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
|
|
53
53
|
.mat-mdc-tooltip-panel-above {
|
|
54
54
|
.mat-mdc-tooltip {
|
|
55
|
-
margin-bottom: 4px
|
|
55
|
+
margin-bottom: 4px;
|
|
56
56
|
&::after {
|
|
57
57
|
top: 100%;
|
|
58
58
|
right: calc(50% - 6px);
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
|
|
64
64
|
.mat-mdc-tooltip-panel-left {
|
|
65
65
|
.mat-mdc-tooltip {
|
|
66
|
-
margin-right: 4px
|
|
66
|
+
margin-right: 4px;
|
|
67
67
|
&::after {
|
|
68
68
|
left: 100%;
|
|
69
69
|
top: calc(50% - 6px);
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
|
|
75
75
|
.mat-mdc-tooltip-panel-right {
|
|
76
76
|
.mat-mdc-tooltip {
|
|
77
|
-
margin-left: 4px
|
|
77
|
+
margin-left: 4px;
|
|
78
78
|
&::after {
|
|
79
79
|
right: 100%;
|
|
80
80
|
top: calc(50% - 6px);
|
|
@@ -3,7 +3,7 @@ import { CommonModule, DatePipe } from '@angular/common';
|
|
|
3
3
|
import * as i1$1 from '@angular/common/http';
|
|
4
4
|
import { HttpHeaders, provideHttpClient, withInterceptorsFromDi, HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { InjectionToken, Injectable, ViewChild, Input, Optional, Inject, Component, NgModule, EventEmitter, Output, ViewChildren, signal, inject, ChangeDetectionStrategy, DOCUMENT, isDevMode, HostListener, Directive, Renderer2, ElementRef, Pipe, ViewEncapsulation, Self, Host, APP_INITIALIZER, Injector, computed, DestroyRef, effect, ChangeDetectorRef, ErrorHandler } from '@angular/core';
|
|
6
|
+
import { InjectionToken, Injectable, ViewChild, Input, Optional, Inject, Component, NgModule, EventEmitter, Output, ViewChildren, signal, inject, ChangeDetectionStrategy, DOCUMENT, isDevMode, HostListener, Directive, Renderer2, ElementRef, Pipe, ViewEncapsulation, Self, Host, APP_INITIALIZER, Injector, computed, DestroyRef, effect, ChangeDetectorRef, ErrorHandler, NgZone } from '@angular/core';
|
|
7
7
|
import * as i1$4 from '@angular/router';
|
|
8
8
|
import { NavigationEnd, Router, RouterModule, NavigationStart, NavigationError } from '@angular/router';
|
|
9
9
|
import { FlexLayoutModule } from '@ngbracket/ngx-layout';
|
|
@@ -10114,63 +10114,144 @@ class ResizePanelsComponent {
|
|
|
10114
10114
|
/** Whether the panels should be resizable */
|
|
10115
10115
|
this.resizable = true;
|
|
10116
10116
|
// TODO: ⚠️ Output bindings should not be named "on", nor prefixed with it ...
|
|
10117
|
-
// Using on in @Output() names causes confusion with native events and can break tooling (e.g., Angular
|
|
10117
|
+
// Using on in @Output() names causes confusion with native events and can break tooling (e.g., Angular's template type checking, IDE autocomplete).
|
|
10118
10118
|
// The Angular team explicitly discourages this pattern.
|
|
10119
|
-
// run `npm run lint` to see error
|
|
10119
|
+
// run `npm run lint` to see this error
|
|
10120
10120
|
/** The Resize Event */
|
|
10121
10121
|
this.onResize = new EventEmitter();
|
|
10122
10122
|
/** The Resize Start Event */
|
|
10123
10123
|
this.onResizeStart = new EventEmitter();
|
|
10124
10124
|
/** The Resize End Event */
|
|
10125
10125
|
this.onResizeEnd = new EventEmitter();
|
|
10126
|
-
/** Whether the user is currently resizing */
|
|
10127
|
-
this.isResizing = false;
|
|
10126
|
+
/** Whether the user is currently resizing - using signal for better performance */
|
|
10127
|
+
this.isResizing = signal(false, ...(ngDevMode ? [{ debugName: "isResizing" }] : []));
|
|
10128
|
+
/** Cached style objects to avoid recalculation on every change detection */
|
|
10129
|
+
this.firstPanelStyle = signal({
|
|
10130
|
+
flex: 50,
|
|
10131
|
+
minWidth: 'auto',
|
|
10132
|
+
minHeight: 'auto',
|
|
10133
|
+
maxHeight: 'none'
|
|
10134
|
+
}, ...(ngDevMode ? [{ debugName: "firstPanelStyle" }] : []));
|
|
10135
|
+
this.secondPanelStyle = signal({
|
|
10136
|
+
flex: 50,
|
|
10137
|
+
minWidth: 'auto',
|
|
10138
|
+
minHeight: 'auto',
|
|
10139
|
+
maxHeight: 'none'
|
|
10140
|
+
}, ...(ngDevMode ? [{ debugName: "secondPanelStyle" }] : []));
|
|
10128
10141
|
/** The first panel max height */
|
|
10129
10142
|
this.firstPanelMaxHeight = 'none';
|
|
10130
10143
|
/** The second panel max height */
|
|
10131
10144
|
this.secondPanelMaxHeight = 'none';
|
|
10145
|
+
/** ResizeObserver for efficient content size tracking */
|
|
10146
|
+
this.resizeObserver = null;
|
|
10147
|
+
/** Animation frame ID for throttling */
|
|
10148
|
+
this.animationFrameId = null;
|
|
10149
|
+
/** Angular safe document reference */
|
|
10150
|
+
this.document = inject(DOCUMENT);
|
|
10151
|
+
/** Angular zone */
|
|
10152
|
+
this.ngZone = inject(NgZone);
|
|
10153
|
+
// Create bound handlers outside Angular zone
|
|
10154
|
+
this.boundMouseMoveHandler = this.onMouseMove.bind(this);
|
|
10155
|
+
this.boundMouseUpHandler = this.stopResize.bind(this);
|
|
10132
10156
|
}
|
|
10133
10157
|
/** Initializes the component */
|
|
10134
10158
|
ngOnInit() {
|
|
10135
10159
|
this.initialSplit = this.splitPosition;
|
|
10160
|
+
this.updatePanelStyles();
|
|
10161
|
+
this.setupResizeObserver();
|
|
10136
10162
|
}
|
|
10137
10163
|
/** On Changes Lifecycle Hook */
|
|
10138
10164
|
ngOnChanges() {
|
|
10139
10165
|
if (this.resizable && !!this.initialSplit) {
|
|
10140
10166
|
this.splitPosition = this.initialSplit;
|
|
10141
10167
|
}
|
|
10168
|
+
this.updatePanelStyles();
|
|
10142
10169
|
}
|
|
10143
|
-
/**
|
|
10144
|
-
|
|
10145
|
-
|
|
10146
|
-
|
|
10147
|
-
|
|
10170
|
+
/** Cleanup on destroy */
|
|
10171
|
+
ngOnDestroy() {
|
|
10172
|
+
this.removeEventListeners();
|
|
10173
|
+
this.cleanupResizeObserver();
|
|
10174
|
+
if (this.animationFrameId !== null) {
|
|
10175
|
+
cancelAnimationFrame(this.animationFrameId);
|
|
10148
10176
|
}
|
|
10149
|
-
|
|
10150
|
-
|
|
10177
|
+
}
|
|
10178
|
+
/** Setup ResizeObserver for efficient content size tracking */
|
|
10179
|
+
setupResizeObserver() {
|
|
10180
|
+
if (typeof ResizeObserver === 'undefined') {
|
|
10181
|
+
return; // Fallback for older browsers
|
|
10151
10182
|
}
|
|
10152
|
-
|
|
10153
|
-
|
|
10154
|
-
|
|
10155
|
-
|
|
10156
|
-
|
|
10157
|
-
|
|
10183
|
+
this.ngZone.runOutsideAngular(() => {
|
|
10184
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
10185
|
+
this.updatePanelStyles();
|
|
10186
|
+
});
|
|
10187
|
+
// Observe content changes in panels
|
|
10188
|
+
if (this.firstPanel?.nativeElement?.children[0]) {
|
|
10189
|
+
this.resizeObserver.observe(this.firstPanel.nativeElement.children[0]);
|
|
10190
|
+
}
|
|
10191
|
+
if (this.secondPanel?.nativeElement?.children[0]) {
|
|
10192
|
+
this.resizeObserver.observe(this.secondPanel.nativeElement.children[0]);
|
|
10193
|
+
}
|
|
10194
|
+
});
|
|
10158
10195
|
}
|
|
10159
|
-
/**
|
|
10160
|
-
|
|
10161
|
-
|
|
10162
|
-
|
|
10163
|
-
this.
|
|
10196
|
+
/** Cleanup ResizeObserver */
|
|
10197
|
+
cleanupResizeObserver() {
|
|
10198
|
+
if (this.resizeObserver) {
|
|
10199
|
+
this.resizeObserver.disconnect();
|
|
10200
|
+
this.resizeObserver = null;
|
|
10164
10201
|
}
|
|
10165
|
-
|
|
10166
|
-
|
|
10202
|
+
}
|
|
10203
|
+
/** Update cached panel styles - called only when necessary */
|
|
10204
|
+
updatePanelStyles() {
|
|
10205
|
+
this.updateFirstPanelStyle();
|
|
10206
|
+
this.updateSecondPanelStyle();
|
|
10207
|
+
}
|
|
10208
|
+
/** Calculate and cache first panel style */
|
|
10209
|
+
updateFirstPanelStyle() {
|
|
10210
|
+
let maxHeight = 'none';
|
|
10211
|
+
if (this.firstPanel?.nativeElement?.children[0]) {
|
|
10212
|
+
const contentHeight = this.firstPanel.nativeElement.children[0].getBoundingClientRect().height;
|
|
10213
|
+
const panelHeight = this.firstPanel.nativeElement.getBoundingClientRect().height;
|
|
10214
|
+
if (contentHeight < panelHeight) {
|
|
10215
|
+
maxHeight = contentHeight + 'px';
|
|
10216
|
+
}
|
|
10167
10217
|
}
|
|
10168
|
-
|
|
10218
|
+
this.firstPanelMaxHeight = maxHeight;
|
|
10219
|
+
this.firstPanelStyle.set({
|
|
10220
|
+
flex: this.splitPosition,
|
|
10221
|
+
minWidth: this.direction === 'vertical' ? this.firstPanelMinSize || 'auto' : 'auto',
|
|
10222
|
+
minHeight: this.direction === 'horizontal' ? this.firstPanelMinSize || 'auto' : 'auto',
|
|
10223
|
+
maxHeight: this.direction === 'horizontal' ? maxHeight : 'none'
|
|
10224
|
+
});
|
|
10225
|
+
}
|
|
10226
|
+
/** Calculate and cache second panel style */
|
|
10227
|
+
updateSecondPanelStyle() {
|
|
10228
|
+
let maxHeight = 'none';
|
|
10229
|
+
if (this.secondPanel?.nativeElement?.children[0]) {
|
|
10230
|
+
const contentHeight = this.secondPanel.nativeElement.children[0].getBoundingClientRect().height;
|
|
10231
|
+
const panelHeight = this.secondPanel.nativeElement.getBoundingClientRect().height;
|
|
10232
|
+
if (contentHeight < panelHeight) {
|
|
10233
|
+
maxHeight = contentHeight + 'px';
|
|
10234
|
+
}
|
|
10235
|
+
}
|
|
10236
|
+
this.secondPanelMaxHeight = maxHeight;
|
|
10237
|
+
this.secondPanelStyle.set({
|
|
10169
10238
|
flex: 100 - this.splitPosition,
|
|
10170
|
-
minWidth: this.direction === 'vertical' ? this.secondPanelMinSize : 'auto',
|
|
10171
|
-
minHeight: this.direction === 'horizontal' ? this.secondPanelMinSize : 'auto',
|
|
10172
|
-
maxHeight: this.direction === 'horizontal' ?
|
|
10173
|
-
};
|
|
10239
|
+
minWidth: this.direction === 'vertical' ? this.secondPanelMinSize || 'auto' : 'auto',
|
|
10240
|
+
minHeight: this.direction === 'horizontal' ? this.secondPanelMinSize || 'auto' : 'auto',
|
|
10241
|
+
maxHeight: this.direction === 'horizontal' ? maxHeight : 'none'
|
|
10242
|
+
});
|
|
10243
|
+
}
|
|
10244
|
+
/** Add event listeners outside Angular zone */
|
|
10245
|
+
addEventListeners() {
|
|
10246
|
+
this.ngZone.runOutsideAngular(() => {
|
|
10247
|
+
this.document.addEventListener('mousemove', this.boundMouseMoveHandler);
|
|
10248
|
+
this.document.addEventListener('mouseup', this.boundMouseUpHandler);
|
|
10249
|
+
});
|
|
10250
|
+
}
|
|
10251
|
+
/** Remove event listeners */
|
|
10252
|
+
removeEventListeners() {
|
|
10253
|
+
this.document.removeEventListener('mousemove', this.boundMouseMoveHandler);
|
|
10254
|
+
this.document.removeEventListener('mouseup', this.boundMouseUpHandler);
|
|
10174
10255
|
}
|
|
10175
10256
|
/** Start resizing */
|
|
10176
10257
|
startResize() {
|
|
@@ -10179,17 +10260,26 @@ class ResizePanelsComponent {
|
|
|
10179
10260
|
firstPanelSize: this.direction === 'vertical' ? this.firstPanel.nativeElement.clientWidth : this.firstPanel.nativeElement.clientHeight,
|
|
10180
10261
|
secondPanelSize: this.direction === 'vertical' ? this.secondPanel.nativeElement.clientWidth : this.secondPanel.nativeElement.clientHeight
|
|
10181
10262
|
});
|
|
10182
|
-
this.isResizing
|
|
10263
|
+
this.isResizing.set(true);
|
|
10264
|
+
this.addEventListeners();
|
|
10183
10265
|
}
|
|
10184
10266
|
/** Stop resizing on mouse up */
|
|
10185
10267
|
stopResize() {
|
|
10186
|
-
if (this.isResizing) {
|
|
10187
|
-
this.
|
|
10188
|
-
|
|
10189
|
-
|
|
10190
|
-
|
|
10191
|
-
|
|
10268
|
+
if (this.isResizing()) {
|
|
10269
|
+
this.ngZone.run(() => {
|
|
10270
|
+
this.isResizing.set(false);
|
|
10271
|
+
this.onResizeEnd.emit({
|
|
10272
|
+
splitPosition: this.splitPosition,
|
|
10273
|
+
firstPanelSize: this.direction === 'vertical' ? this.firstPanel.nativeElement.clientWidth : this.firstPanel.nativeElement.clientHeight,
|
|
10274
|
+
secondPanelSize: this.direction === 'vertical' ? this.secondPanel.nativeElement.clientWidth : this.secondPanel.nativeElement.clientHeight
|
|
10275
|
+
});
|
|
10192
10276
|
});
|
|
10277
|
+
this.removeEventListeners();
|
|
10278
|
+
// Cancel any pending animation frame
|
|
10279
|
+
if (this.animationFrameId !== null) {
|
|
10280
|
+
cancelAnimationFrame(this.animationFrameId);
|
|
10281
|
+
this.animationFrameId = null;
|
|
10282
|
+
}
|
|
10193
10283
|
}
|
|
10194
10284
|
}
|
|
10195
10285
|
/**
|
|
@@ -10197,10 +10287,16 @@ class ResizePanelsComponent {
|
|
|
10197
10287
|
* @param event the mouse event
|
|
10198
10288
|
*/
|
|
10199
10289
|
onMouseMove(event) {
|
|
10200
|
-
if (this.isResizing) {
|
|
10290
|
+
if (this.isResizing()) {
|
|
10201
10291
|
event.preventDefault();
|
|
10202
10292
|
event.stopPropagation();
|
|
10203
|
-
|
|
10293
|
+
// Use requestAnimationFrame for smoother updates
|
|
10294
|
+
if (this.animationFrameId === null) {
|
|
10295
|
+
this.animationFrameId = requestAnimationFrame(() => {
|
|
10296
|
+
this.resize(event);
|
|
10297
|
+
this.animationFrameId = null;
|
|
10298
|
+
});
|
|
10299
|
+
}
|
|
10204
10300
|
}
|
|
10205
10301
|
}
|
|
10206
10302
|
/**
|
|
@@ -10213,6 +10309,8 @@ class ResizePanelsComponent {
|
|
|
10213
10309
|
const mousePos = this.direction === 'vertical' ? event.x : event.y;
|
|
10214
10310
|
const pos = ((mousePos - containerPos) / containerSize) * 100;
|
|
10215
10311
|
this.splitPosition = Math.min(Math.max(pos, 1), 99);
|
|
10312
|
+
// Update cached styles
|
|
10313
|
+
this.updatePanelStyles();
|
|
10216
10314
|
this.onResize.emit({
|
|
10217
10315
|
splitPosition: this.splitPosition,
|
|
10218
10316
|
firstPanelSize: this.direction === 'vertical' ? this.firstPanel.nativeElement.clientWidth : this.firstPanel.nativeElement.clientHeight,
|
|
@@ -10220,12 +10318,12 @@ class ResizePanelsComponent {
|
|
|
10220
10318
|
});
|
|
10221
10319
|
}
|
|
10222
10320
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ResizePanelsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10223
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: ResizePanelsComponent, isStandalone: false, selector: "sof-ar-resize-panels", inputs: { direction: "direction", splitPosition: "splitPosition", firstPanelMinSize: "firstPanelMinSize", secondPanelMinSize: "secondPanelMinSize", resizable: "resizable" }, outputs: { onResize: "onResize", onResizeStart: "onResizeStart", onResizeEnd: "onResizeEnd" },
|
|
10321
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: ResizePanelsComponent, isStandalone: false, selector: "sof-ar-resize-panels", inputs: { direction: "direction", splitPosition: "splitPosition", firstPanelMinSize: "firstPanelMinSize", secondPanelMinSize: "secondPanelMinSize", resizable: "resizable" }, outputs: { onResize: "onResize", onResizeStart: "onResizeStart", onResizeEnd: "onResizeEnd" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "firstPanel", first: true, predicate: ["firstPanel"], descendants: true }, { propertyName: "secondPanel", first: true, predicate: ["secondPanel"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div \r\n #container \r\n class=\"sof-ar-resize-panels-container\" \r\n [ngClass]=\"{\r\n 'vertical': direction === 'vertical',\r\n 'horizontal': direction === 'horizontal',\r\n 'resizing': isResizing()\r\n }\">\r\n <!-- First Panel -->\r\n <div #firstPanel [ngStyle]=\"firstPanelStyle()\" class=\"sof-ar-resize-panels-panel-content\">\r\n <ng-content select=\"[sof-ar-resize-panel-first]\"></ng-content>\r\n </div>\r\n <!-- Drag Handle / Border -->\r\n @if (resizable) {\r\n <div class=\"sof-ar-resize-panels-border\" [ngClass]=\"direction\">\r\n <div \r\n class=\"sof-ar-resize-panels-drag-handle\" \r\n (mousedown)=\"startResize()\" \r\n [ngClass]=\"{\r\n 'vertical': direction === 'vertical',\r\n 'horizontal': direction === 'horizontal',\r\n 'resizing': isResizing()\r\n }\">\r\n </div>\r\n </div>\r\n }\r\n <!-- Second Panel -->\r\n <div #secondPanel [ngStyle]=\"secondPanelStyle()\" class=\"sof-ar-resize-panels-panel-content\">\r\n <ng-content select=\"[sof-ar-resize-panel-second]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".sof-ar-resize-panels-container{width:100%;height:100%;display:flex;contain:layout style}.sof-ar-resize-panels-container.vertical{flex-direction:row}.sof-ar-resize-panels-container.horizontal{flex-direction:column}.sof-ar-resize-panels-container.vertical.resizing{cursor:ew-resize;will-change:cursor}.sof-ar-resize-panels-container.horizontal.resizing{cursor:ns-resize;will-change:cursor}.sof-ar-resize-panels-drag-handle{background-color:transparent;position:relative;transition:background-color .1s linear;transition-delay:0s;z-index:1000;will-change:background-color}.sof-ar-resize-panels-drag-handle:hover,.sof-ar-resize-panels-drag-handle.resizing{background-color:var(--primary-color-500-parts);transition-delay:.25s}.sof-ar-resize-panels-drag-handle.vertical:hover{cursor:ew-resize}.sof-ar-resize-panels-drag-handle.horizontal:hover{cursor:ns-resize}.sof-ar-resize-panels-drag-handle.vertical{width:5px;height:100%;right:2px}.sof-ar-resize-panels-drag-handle.horizontal{width:100%;height:5px;bottom:2px}.sof-ar-resize-panels-border{background-color:#000}.sof-ar-resize-panels-border.vertical{width:1px}.sof-ar-resize-panels-border.horizontal{height:1px}.sof-ar-resize-panels-panel-content{overflow:auto;contain:layout style paint;transform:translateZ(0);-webkit-overflow-scrolling:touch}.sof-ar-resize-panels-panel-content:empty{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10224
10322
|
}
|
|
10225
10323
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ResizePanelsComponent, decorators: [{
|
|
10226
10324
|
type: Component,
|
|
10227
|
-
args: [{ selector: 'sof-ar-resize-panels', standalone: false, template: "<div #container class=\"sof-ar-resize-panels-container\"\r\n
|
|
10228
|
-
}], propDecorators: { direction: [{
|
|
10325
|
+
args: [{ selector: 'sof-ar-resize-panels', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div \r\n #container \r\n class=\"sof-ar-resize-panels-container\" \r\n [ngClass]=\"{\r\n 'vertical': direction === 'vertical',\r\n 'horizontal': direction === 'horizontal',\r\n 'resizing': isResizing()\r\n }\">\r\n <!-- First Panel -->\r\n <div #firstPanel [ngStyle]=\"firstPanelStyle()\" class=\"sof-ar-resize-panels-panel-content\">\r\n <ng-content select=\"[sof-ar-resize-panel-first]\"></ng-content>\r\n </div>\r\n <!-- Drag Handle / Border -->\r\n @if (resizable) {\r\n <div class=\"sof-ar-resize-panels-border\" [ngClass]=\"direction\">\r\n <div \r\n class=\"sof-ar-resize-panels-drag-handle\" \r\n (mousedown)=\"startResize()\" \r\n [ngClass]=\"{\r\n 'vertical': direction === 'vertical',\r\n 'horizontal': direction === 'horizontal',\r\n 'resizing': isResizing()\r\n }\">\r\n </div>\r\n </div>\r\n }\r\n <!-- Second Panel -->\r\n <div #secondPanel [ngStyle]=\"secondPanelStyle()\" class=\"sof-ar-resize-panels-panel-content\">\r\n <ng-content select=\"[sof-ar-resize-panel-second]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".sof-ar-resize-panels-container{width:100%;height:100%;display:flex;contain:layout style}.sof-ar-resize-panels-container.vertical{flex-direction:row}.sof-ar-resize-panels-container.horizontal{flex-direction:column}.sof-ar-resize-panels-container.vertical.resizing{cursor:ew-resize;will-change:cursor}.sof-ar-resize-panels-container.horizontal.resizing{cursor:ns-resize;will-change:cursor}.sof-ar-resize-panels-drag-handle{background-color:transparent;position:relative;transition:background-color .1s linear;transition-delay:0s;z-index:1000;will-change:background-color}.sof-ar-resize-panels-drag-handle:hover,.sof-ar-resize-panels-drag-handle.resizing{background-color:var(--primary-color-500-parts);transition-delay:.25s}.sof-ar-resize-panels-drag-handle.vertical:hover{cursor:ew-resize}.sof-ar-resize-panels-drag-handle.horizontal:hover{cursor:ns-resize}.sof-ar-resize-panels-drag-handle.vertical{width:5px;height:100%;right:2px}.sof-ar-resize-panels-drag-handle.horizontal{width:100%;height:5px;bottom:2px}.sof-ar-resize-panels-border{background-color:#000}.sof-ar-resize-panels-border.vertical{width:1px}.sof-ar-resize-panels-border.horizontal{height:1px}.sof-ar-resize-panels-panel-content{overflow:auto;contain:layout style paint;transform:translateZ(0);-webkit-overflow-scrolling:touch}.sof-ar-resize-panels-panel-content:empty{display:none}\n"] }]
|
|
10326
|
+
}], ctorParameters: () => [], propDecorators: { direction: [{
|
|
10229
10327
|
type: Input
|
|
10230
10328
|
}], splitPosition: [{
|
|
10231
10329
|
type: Input
|
|
@@ -10250,12 +10348,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
10250
10348
|
}], secondPanel: [{
|
|
10251
10349
|
type: ViewChild,
|
|
10252
10350
|
args: ['secondPanel']
|
|
10253
|
-
}], stopResize: [{
|
|
10254
|
-
type: HostListener,
|
|
10255
|
-
args: ['window:mouseup']
|
|
10256
|
-
}], onMouseMove: [{
|
|
10257
|
-
type: HostListener,
|
|
10258
|
-
args: ['window:mousemove', ['$event']]
|
|
10259
10351
|
}] } });
|
|
10260
10352
|
|
|
10261
10353
|
/** The Resize Panels Module */
|
|
@@ -10823,6 +10915,10 @@ class TextOverflowEllipsisTooltipDirective {
|
|
|
10823
10915
|
* @note If no tooltip text provided, will use the elements 'textContent'
|
|
10824
10916
|
*/
|
|
10825
10917
|
this.tooltipText = "";
|
|
10918
|
+
/** Custom classes for the tooltip */
|
|
10919
|
+
this.tooltipClass = "";
|
|
10920
|
+
/** Possible positions for a tooltip : "left" | "right" | "above" | "below" | "before" | "after" */
|
|
10921
|
+
this.tooltipPosition = null;
|
|
10826
10922
|
/** Is the element overflowing */
|
|
10827
10923
|
this.isOverflowing = false;
|
|
10828
10924
|
}
|
|
@@ -10853,8 +10949,11 @@ class TextOverflowEllipsisTooltipDirective {
|
|
|
10853
10949
|
const el = this.elRef.nativeElement;
|
|
10854
10950
|
this.isOverflowing = el.scrollWidth > el.clientWidth;
|
|
10855
10951
|
if (this.isOverflowing) {
|
|
10952
|
+
this.tooltip.tooltipClass = this.tooltipClass;
|
|
10856
10953
|
this.tooltip.message = this.tooltipText.length ? this.tooltipText : el.textContent;
|
|
10857
|
-
this.
|
|
10954
|
+
if (!!this.tooltipPosition) {
|
|
10955
|
+
this.tooltip.position = this.tooltipPosition;
|
|
10956
|
+
}
|
|
10858
10957
|
this.tooltip.disabled = false;
|
|
10859
10958
|
}
|
|
10860
10959
|
else {
|
|
@@ -10872,7 +10971,7 @@ class TextOverflowEllipsisTooltipDirective {
|
|
|
10872
10971
|
this.tooltip.hide();
|
|
10873
10972
|
}
|
|
10874
10973
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TextOverflowEllipsisTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i1$6.MatTooltip }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
10875
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: TextOverflowEllipsisTooltipDirective, isStandalone: true, selector: "[textOverflowEllipsisTooltip]", inputs: { tooltipText: ["textOverflowEllipsisTooltip", "tooltipText"] }, host: { listeners: { "mouseover": "onMouseOver()", "mouseleave": "onMouseLeave()" } }, providers: [MatTooltip], ngImport: i0 }); }
|
|
10974
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: TextOverflowEllipsisTooltipDirective, isStandalone: true, selector: "[textOverflowEllipsisTooltip]", inputs: { tooltipText: ["textOverflowEllipsisTooltip", "tooltipText"], tooltipClass: ["ellipsisTooltipClass", "tooltipClass"], tooltipPosition: ["ellipsisTooltipPosition", "tooltipPosition"] }, host: { listeners: { "mouseover": "onMouseOver()", "mouseleave": "onMouseLeave()" } }, providers: [MatTooltip], ngImport: i0 }); }
|
|
10876
10975
|
}
|
|
10877
10976
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TextOverflowEllipsisTooltipDirective, decorators: [{
|
|
10878
10977
|
type: Directive,
|
|
@@ -10883,6 +10982,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
10883
10982
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$6.MatTooltip }, { type: i0.Renderer2 }, { type: i0.NgZone }], propDecorators: { tooltipText: [{
|
|
10884
10983
|
type: Input,
|
|
10885
10984
|
args: ['textOverflowEllipsisTooltip']
|
|
10985
|
+
}], tooltipClass: [{
|
|
10986
|
+
type: Input,
|
|
10987
|
+
args: ['ellipsisTooltipClass']
|
|
10988
|
+
}], tooltipPosition: [{
|
|
10989
|
+
type: Input,
|
|
10990
|
+
args: ['ellipsisTooltipPosition']
|
|
10886
10991
|
}], onMouseOver: [{
|
|
10887
10992
|
type: HostListener,
|
|
10888
10993
|
args: ['mouseover']
|