@softheon/armature 21.1.0 → 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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softheon/armature",
3
- "version": "21.1.0",
3
+ "version": "21.2.0",
4
4
  "dependencies": {
5
5
  "tslib": "^2.8.1"
6
6
  },
@@ -6441,8 +6441,15 @@ interface ResizeEvent {
6441
6441
  secondPanelSize: number;
6442
6442
  }
6443
6443
 
6444
+ /** Style object interface for type safety */
6445
+ interface PanelStyle {
6446
+ flex: number;
6447
+ minWidth: string;
6448
+ minHeight: string;
6449
+ maxHeight: string;
6450
+ }
6444
6451
  /** The Resize Panels Component */
6445
- declare class ResizePanelsComponent implements OnInit, OnChanges {
6452
+ declare class ResizePanelsComponent implements OnInit, OnChanges, OnDestroy {
6446
6453
  /** The panel split direction */
6447
6454
  direction: 'horizontal' | 'vertical';
6448
6455
  /** The panel split position */
@@ -6465,22 +6472,49 @@ declare class ResizePanelsComponent implements OnInit, OnChanges {
6465
6472
  private firstPanel;
6466
6473
  /** The second panel */
6467
6474
  private secondPanel;
6468
- /** Whether the user is currently resizing */
6469
- isResizing: boolean;
6475
+ /** Whether the user is currently resizing - using signal for better performance */
6476
+ isResizing: i0.WritableSignal<boolean>;
6477
+ /** Cached style objects to avoid recalculation on every change detection */
6478
+ firstPanelStyle: i0.WritableSignal<PanelStyle>;
6479
+ secondPanelStyle: i0.WritableSignal<PanelStyle>;
6470
6480
  /** The first panel max height */
6471
6481
  private firstPanelMaxHeight;
6472
6482
  /** The second panel max height */
6473
6483
  private secondPanelMaxHeight;
6474
6484
  /** The initial split position */
6475
6485
  private initialSplit;
6486
+ /** Bound event listeners for cleanup */
6487
+ private boundMouseMoveHandler;
6488
+ private boundMouseUpHandler;
6489
+ /** ResizeObserver for efficient content size tracking */
6490
+ private resizeObserver;
6491
+ /** Animation frame ID for throttling */
6492
+ private animationFrameId;
6493
+ /** Angular safe document reference */
6494
+ private document;
6495
+ /** Angular zone */
6496
+ private ngZone;
6497
+ constructor();
6476
6498
  /** Initializes the component */
6477
6499
  ngOnInit(): void;
6478
6500
  /** On Changes Lifecycle Hook */
6479
6501
  ngOnChanges(): void;
6480
- /** Gets the style for the first panel */
6481
- getFirstPanelStyle(): any;
6482
- /** Gets the style for the second panel */
6483
- getSecondPanelStyle(): any;
6502
+ /** Cleanup on destroy */
6503
+ ngOnDestroy(): void;
6504
+ /** Setup ResizeObserver for efficient content size tracking */
6505
+ private setupResizeObserver;
6506
+ /** Cleanup ResizeObserver */
6507
+ private cleanupResizeObserver;
6508
+ /** Update cached panel styles - called only when necessary */
6509
+ private updatePanelStyles;
6510
+ /** Calculate and cache first panel style */
6511
+ private updateFirstPanelStyle;
6512
+ /** Calculate and cache second panel style */
6513
+ private updateSecondPanelStyle;
6514
+ /** Add event listeners outside Angular zone */
6515
+ private addEventListeners;
6516
+ /** Remove event listeners */
6517
+ private removeEventListeners;
6484
6518
  /** Start resizing */
6485
6519
  startResize(): void;
6486
6520
  /** Stop resizing on mouse up */