@softheon/armature 21.1.0-alpha → 21.2.0

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.
@@ -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';
@@ -6658,13 +6658,14 @@ class MarketSelectionService {
6658
6658
  * @param translateService translate service
6659
6659
  * @param userEntityService user entity service
6660
6660
  */
6661
- constructor(cookieService, router, config, selectedMarketContext, translateService, oAuthService) {
6661
+ constructor(cookieService, router, config, selectedMarketContext, translateService, oAuthService, authorizationService) {
6662
6662
  this.cookieService = cookieService;
6663
6663
  this.router = router;
6664
6664
  this.config = config;
6665
6665
  this.selectedMarketContext = selectedMarketContext;
6666
6666
  this.translateService = translateService;
6667
6667
  this.oAuthService = oAuthService;
6668
+ this.authorizationService = authorizationService;
6668
6669
  /** The MFE Queue Lookup Constant Key for Cookie Storage */
6669
6670
  this.MFE_QUEUE_LOOKUP = 'mfe.graphql-domain';
6670
6671
  /** The cookie key for local environment selection */
@@ -6697,9 +6698,12 @@ class MarketSelectionService {
6697
6698
  this.markets = [];
6698
6699
  this.selectedMarket$ = this.selectedMarketContext.selectedMarket$;
6699
6700
  this.ephemeralMarket$ = this.selectedMarketContext.ephemeralMarket$;
6700
- this.oAuthService.loadUserProfile().then((user) => {
6701
- this.userEmail = user?.info?.email;
6702
- this.evaluateLocalEnvSelectionEnabled();
6701
+ this.authorizationService.isLoggedIn$.subscribe((isLoggedIn) => {
6702
+ if (isLoggedIn) {
6703
+ const claims = this.oAuthService.getIdentityClaims();
6704
+ this.userEmail = claims?.upn || claims?.preferred_username || '';
6705
+ this.evaluateLocalEnvSelectionEnabled();
6706
+ }
6703
6707
  });
6704
6708
  this.router.events.subscribe((event) => {
6705
6709
  if (event instanceof NavigationEnd) {
@@ -6968,7 +6972,7 @@ class MarketSelectionService {
6968
6972
  return undefined;
6969
6973
  }
6970
6974
  }
6971
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: MarketSelectionService, deps: [{ token: i1$a.CookieService }, { token: i1$4.Router }, { token: BaseConfigService }, { token: SelectedMarketContext }, { token: i2$1.TranslateService }, { token: i1$2.OAuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
6975
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: MarketSelectionService, deps: [{ token: i1$a.CookieService }, { token: i1$4.Router }, { token: BaseConfigService }, { token: SelectedMarketContext }, { token: i2$1.TranslateService }, { token: i1$2.OAuthService }, { token: AuthorizationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
6972
6976
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: MarketSelectionService, providedIn: 'root' }); }
6973
6977
  }
6974
6978
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: MarketSelectionService, decorators: [{
@@ -6976,7 +6980,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
6976
6980
  args: [{
6977
6981
  providedIn: 'root'
6978
6982
  }]
6979
- }], ctorParameters: () => [{ type: i1$a.CookieService }, { type: i1$4.Router }, { type: BaseConfigService }, { type: SelectedMarketContext }, { type: i2$1.TranslateService }, { type: i1$2.OAuthService }] });
6983
+ }], ctorParameters: () => [{ type: i1$a.CookieService }, { type: i1$4.Router }, { type: BaseConfigService }, { type: SelectedMarketContext }, { type: i2$1.TranslateService }, { type: i1$2.OAuthService }, { type: AuthorizationService }] });
6980
6984
 
6981
6985
  /* Market Selection Config */
6982
6986
  class MarketSelectionConfig {
@@ -10110,63 +10114,144 @@ class ResizePanelsComponent {
10110
10114
  /** Whether the panels should be resizable */
10111
10115
  this.resizable = true;
10112
10116
  // TODO: ⚠️ Output bindings should not be named "on", nor prefixed with it ...
10113
- // Using on in @Output() names causes confusion with native events and can break tooling (e.g., Angulars template type checking, IDE autocomplete).
10117
+ // Using on in @Output() names causes confusion with native events and can break tooling (e.g., Angular's template type checking, IDE autocomplete).
10114
10118
  // The Angular team explicitly discourages this pattern.
10115
- // run `npm run lint` to see error
10119
+ // run `npm run lint` to see this error
10116
10120
  /** The Resize Event */
10117
10121
  this.onResize = new EventEmitter();
10118
10122
  /** The Resize Start Event */
10119
10123
  this.onResizeStart = new EventEmitter();
10120
10124
  /** The Resize End Event */
10121
10125
  this.onResizeEnd = new EventEmitter();
10122
- /** Whether the user is currently resizing */
10123
- 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" }] : []));
10124
10141
  /** The first panel max height */
10125
10142
  this.firstPanelMaxHeight = 'none';
10126
10143
  /** The second panel max height */
10127
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);
10128
10156
  }
10129
10157
  /** Initializes the component */
10130
10158
  ngOnInit() {
10131
10159
  this.initialSplit = this.splitPosition;
10160
+ this.updatePanelStyles();
10161
+ this.setupResizeObserver();
10132
10162
  }
10133
10163
  /** On Changes Lifecycle Hook */
10134
10164
  ngOnChanges() {
10135
10165
  if (this.resizable && !!this.initialSplit) {
10136
10166
  this.splitPosition = this.initialSplit;
10137
10167
  }
10168
+ this.updatePanelStyles();
10138
10169
  }
10139
- /** Gets the style for the first panel */
10140
- getFirstPanelStyle() {
10141
- const contentHeight = this.firstPanel?.nativeElement?.children[0]?.getBoundingClientRect().height;
10142
- if (contentHeight < this.firstPanel?.nativeElement?.getBoundingClientRect().height) {
10143
- this.firstPanelMaxHeight = contentHeight + 'px';
10170
+ /** Cleanup on destroy */
10171
+ ngOnDestroy() {
10172
+ this.removeEventListeners();
10173
+ this.cleanupResizeObserver();
10174
+ if (this.animationFrameId !== null) {
10175
+ cancelAnimationFrame(this.animationFrameId);
10144
10176
  }
10145
- if (contentHeight > this.firstPanel?.nativeElement?.getBoundingClientRect().height) {
10146
- this.firstPanelMaxHeight = 'none';
10177
+ }
10178
+ /** Setup ResizeObserver for efficient content size tracking */
10179
+ setupResizeObserver() {
10180
+ if (typeof ResizeObserver === 'undefined') {
10181
+ return; // Fallback for older browsers
10147
10182
  }
10148
- return {
10149
- flex: this.splitPosition,
10150
- minWidth: this.direction === 'vertical' ? this.firstPanelMinSize : 'auto',
10151
- minHeight: this.direction === 'horizontal' ? this.firstPanelMinSize : 'auto',
10152
- maxHeight: this.direction === 'horizontal' ? this.firstPanelMaxHeight : 'none'
10153
- };
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
+ });
10195
+ }
10196
+ /** Cleanup ResizeObserver */
10197
+ cleanupResizeObserver() {
10198
+ if (this.resizeObserver) {
10199
+ this.resizeObserver.disconnect();
10200
+ this.resizeObserver = null;
10201
+ }
10202
+ }
10203
+ /** Update cached panel styles - called only when necessary */
10204
+ updatePanelStyles() {
10205
+ this.updateFirstPanelStyle();
10206
+ this.updateSecondPanelStyle();
10154
10207
  }
10155
- /** Gets the style for the second panel */
10156
- getSecondPanelStyle() {
10157
- const contentHeight = this.secondPanel?.nativeElement?.children[0]?.getBoundingClientRect().height;
10158
- if (contentHeight < this.secondPanel?.nativeElement?.getBoundingClientRect().height) {
10159
- this.secondPanelMaxHeight = contentHeight + 'px';
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
+ }
10160
10217
  }
10161
- if (contentHeight > this.secondPanel?.nativeElement?.getBoundingClientRect().height) {
10162
- this.secondPanelMaxHeight = 'none';
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
+ }
10163
10235
  }
10164
- return {
10236
+ this.secondPanelMaxHeight = maxHeight;
10237
+ this.secondPanelStyle.set({
10165
10238
  flex: 100 - this.splitPosition,
10166
- minWidth: this.direction === 'vertical' ? this.secondPanelMinSize : 'auto',
10167
- minHeight: this.direction === 'horizontal' ? this.secondPanelMinSize : 'auto',
10168
- maxHeight: this.direction === 'horizontal' ? this.secondPanelMaxHeight : 'none'
10169
- };
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);
10170
10255
  }
10171
10256
  /** Start resizing */
10172
10257
  startResize() {
@@ -10175,17 +10260,26 @@ class ResizePanelsComponent {
10175
10260
  firstPanelSize: this.direction === 'vertical' ? this.firstPanel.nativeElement.clientWidth : this.firstPanel.nativeElement.clientHeight,
10176
10261
  secondPanelSize: this.direction === 'vertical' ? this.secondPanel.nativeElement.clientWidth : this.secondPanel.nativeElement.clientHeight
10177
10262
  });
10178
- this.isResizing = true;
10263
+ this.isResizing.set(true);
10264
+ this.addEventListeners();
10179
10265
  }
10180
10266
  /** Stop resizing on mouse up */
10181
10267
  stopResize() {
10182
- if (this.isResizing) {
10183
- this.isResizing = false;
10184
- this.onResizeEnd.emit({
10185
- splitPosition: this.splitPosition,
10186
- firstPanelSize: this.direction === 'vertical' ? this.firstPanel.nativeElement.clientWidth : this.firstPanel.nativeElement.clientHeight,
10187
- secondPanelSize: this.direction === 'vertical' ? this.secondPanel.nativeElement.clientWidth : this.secondPanel.nativeElement.clientHeight
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
+ });
10188
10276
  });
10277
+ this.removeEventListeners();
10278
+ // Cancel any pending animation frame
10279
+ if (this.animationFrameId !== null) {
10280
+ cancelAnimationFrame(this.animationFrameId);
10281
+ this.animationFrameId = null;
10282
+ }
10189
10283
  }
10190
10284
  }
10191
10285
  /**
@@ -10193,10 +10287,16 @@ class ResizePanelsComponent {
10193
10287
  * @param event the mouse event
10194
10288
  */
10195
10289
  onMouseMove(event) {
10196
- if (this.isResizing) {
10290
+ if (this.isResizing()) {
10197
10291
  event.preventDefault();
10198
10292
  event.stopPropagation();
10199
- this.resize(event);
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
+ }
10200
10300
  }
10201
10301
  }
10202
10302
  /**
@@ -10209,6 +10309,8 @@ class ResizePanelsComponent {
10209
10309
  const mousePos = this.direction === 'vertical' ? event.x : event.y;
10210
10310
  const pos = ((mousePos - containerPos) / containerSize) * 100;
10211
10311
  this.splitPosition = Math.min(Math.max(pos, 1), 99);
10312
+ // Update cached styles
10313
+ this.updatePanelStyles();
10212
10314
  this.onResize.emit({
10213
10315
  splitPosition: this.splitPosition,
10214
10316
  firstPanelSize: this.direction === 'vertical' ? this.firstPanel.nativeElement.clientWidth : this.firstPanel.nativeElement.clientHeight,
@@ -10216,12 +10318,12 @@ class ResizePanelsComponent {
10216
10318
  });
10217
10319
  }
10218
10320
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ResizePanelsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10219
- 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" }, host: { listeners: { "window:mouseup": "stopResize()", "window:mousemove": "onMouseMove($event)" } }, 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 #container 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\r\n <!-- First Panel -->\r\n <div [ngStyle]=\"getFirstPanelStyle()\" #firstPanel class=\"sof-ar-resize-panels-panel-content\">\r\n <ng-content select=\"[sof-ar-resize-panel-first]\"></ng-content>\r\n </div>\r\n\r\n <!-- Drag Handle / Border -->\r\n @if (resizable) {\r\n <div class=\"sof-ar-resize-panels-border\" [ngClass]=\"direction\">\r\n <div class=\"sof-ar-resize-panels-drag-handle\" (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\r\n <!-- Second Panel -->\r\n <div [ngStyle]=\"getSecondPanelStyle()\" #secondPanel 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}.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}.sof-ar-resize-panels-container.horizontal.resizing{cursor:ns-resize}.sof-ar-resize-panels-drag-handle{background-color:transparent;position:relative;transition:background-color .1s linear;transition-delay:0s;z-index:1000}.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}.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"] }] }); }
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 }); }
10220
10322
  }
10221
10323
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ResizePanelsComponent, decorators: [{
10222
10324
  type: Component,
10223
- args: [{ selector: 'sof-ar-resize-panels', standalone: false, template: "<div #container 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\r\n <!-- First Panel -->\r\n <div [ngStyle]=\"getFirstPanelStyle()\" #firstPanel class=\"sof-ar-resize-panels-panel-content\">\r\n <ng-content select=\"[sof-ar-resize-panel-first]\"></ng-content>\r\n </div>\r\n\r\n <!-- Drag Handle / Border -->\r\n @if (resizable) {\r\n <div class=\"sof-ar-resize-panels-border\" [ngClass]=\"direction\">\r\n <div class=\"sof-ar-resize-panels-drag-handle\" (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\r\n <!-- Second Panel -->\r\n <div [ngStyle]=\"getSecondPanelStyle()\" #secondPanel 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}.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}.sof-ar-resize-panels-container.horizontal.resizing{cursor:ns-resize}.sof-ar-resize-panels-drag-handle{background-color:transparent;position:relative;transition:background-color .1s linear;transition-delay:0s;z-index:1000}.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}.sof-ar-resize-panels-panel-content:empty{display:none}\n"] }]
10224
- }], 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: [{
10225
10327
  type: Input
10226
10328
  }], splitPosition: [{
10227
10329
  type: Input
@@ -10246,12 +10348,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
10246
10348
  }], secondPanel: [{
10247
10349
  type: ViewChild,
10248
10350
  args: ['secondPanel']
10249
- }], stopResize: [{
10250
- type: HostListener,
10251
- args: ['window:mouseup']
10252
- }], onMouseMove: [{
10253
- type: HostListener,
10254
- args: ['window:mousemove', ['$event']]
10255
10351
  }] } });
10256
10352
 
10257
10353
  /** The Resize Panels Module */