@m1z23r/ngx-ui 1.1.17 → 1.1.19

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.
@@ -5401,9 +5401,11 @@ class SplitComponent {
5401
5401
  default:
5402
5402
  return;
5403
5403
  }
5404
- const newLeftSize = Math.max(leftPane.minSize(), Math.min(leftPane.maxSize(), sizes[gutterIndex] + delta));
5405
- const actualDelta = newLeftSize - sizes[gutterIndex];
5406
- const newRightSize = Math.max(rightPane.minSize(), Math.min(rightPane.maxSize(), sizes[gutterIndex + 1] - actualDelta));
5404
+ const originalTotal = sizes[gutterIndex] + sizes[gutterIndex + 1];
5405
+ let newLeftSize = Math.max(leftPane.minSize(), Math.min(leftPane.maxSize(), sizes[gutterIndex] + delta));
5406
+ let newRightSize = Math.max(rightPane.minSize(), Math.min(rightPane.maxSize(), originalTotal - newLeftSize));
5407
+ // Recalculate left after right is clamped to preserve total
5408
+ newLeftSize = Math.max(leftPane.minSize(), Math.min(leftPane.maxSize(), originalTotal - newRightSize));
5407
5409
  sizes[gutterIndex] = newLeftSize;
5408
5410
  sizes[gutterIndex + 1] = newRightSize;
5409
5411
  this.paneSizes.set(sizes);
@@ -5423,32 +5425,16 @@ class SplitComponent {
5423
5425
  const paneList = this.panes();
5424
5426
  const leftPane = paneList[this.dragGutterIndex];
5425
5427
  const rightPane = paneList[this.dragGutterIndex + 1];
5428
+ const originalTotal = this.dragStartSizes[this.dragGutterIndex] + this.dragStartSizes[this.dragGutterIndex + 1];
5429
+ // Apply delta and clamp left pane
5426
5430
  let newLeftSize = this.dragStartSizes[this.dragGutterIndex] + deltaPercent;
5427
- let newRightSize = this.dragStartSizes[this.dragGutterIndex + 1] - deltaPercent;
5428
- // Apply min/max constraints
5429
- if (newLeftSize < leftPane.minSize()) {
5430
- const diff = leftPane.minSize() - newLeftSize;
5431
- newLeftSize = leftPane.minSize();
5432
- newRightSize += diff;
5433
- }
5434
- else if (newLeftSize > leftPane.maxSize()) {
5435
- const diff = newLeftSize - leftPane.maxSize();
5436
- newLeftSize = leftPane.maxSize();
5437
- newRightSize += diff;
5438
- }
5439
- if (newRightSize < rightPane.minSize()) {
5440
- const diff = rightPane.minSize() - newRightSize;
5441
- newRightSize = rightPane.minSize();
5442
- newLeftSize -= diff;
5443
- }
5444
- else if (newRightSize > rightPane.maxSize()) {
5445
- const diff = newRightSize - rightPane.maxSize();
5446
- newRightSize = rightPane.maxSize();
5447
- newLeftSize -= diff;
5448
- }
5449
- // Final clamp
5450
5431
  newLeftSize = Math.max(leftPane.minSize(), Math.min(leftPane.maxSize(), newLeftSize));
5432
+ // Calculate right pane from remainder, then clamp
5433
+ let newRightSize = originalTotal - newLeftSize;
5451
5434
  newRightSize = Math.max(rightPane.minSize(), Math.min(rightPane.maxSize(), newRightSize));
5435
+ // Recalculate left from clamped right to preserve total
5436
+ newLeftSize = originalTotal - newRightSize;
5437
+ newLeftSize = Math.max(leftPane.minSize(), Math.min(leftPane.maxSize(), newLeftSize));
5452
5438
  const sizes = [...this.paneSizes()];
5453
5439
  sizes[this.dragGutterIndex] = newLeftSize;
5454
5440
  sizes[this.dragGutterIndex + 1] = newRightSize;
@@ -5513,7 +5499,7 @@ class SplitComponent {
5513
5499
  return [...this.paneSizes()];
5514
5500
  }
5515
5501
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SplitComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5516
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: SplitComponent, isStandalone: true, selector: "ui-split", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, gutterSize: { classPropertyName: "gutterSize", publicName: "gutterSize", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sizeChange: "sizeChange", dragStart: "dragStart", dragEnd: "dragEnd" }, host: { properties: { "class.ui-split--horizontal": "orientation() === \"horizontal\"", "class.ui-split--vertical": "orientation() === \"vertical\"", "class.ui-split--disabled": "disabled()", "class.ui-split--dragging": "isDragging()" }, classAttribute: "ui-split" }, queries: [{ propertyName: "panes", predicate: SplitPaneComponent, isSignal: true }], ngImport: i0, template: "<ng-content />\n@for (gutterIndex of gutterIndices(); track gutterIndex) {\n <div\n class=\"ui-split__gutter\"\n [class]=\"gutterSizeClass()\"\n [style.order]=\"gutterIndex * 2 + 1\"\n role=\"separator\"\n tabindex=\"0\"\n [attr.aria-orientation]=\"orientation() === 'horizontal' ? 'vertical' : 'horizontal'\"\n [attr.aria-valuenow]=\"paneSizes()[gutterIndex] | number:'1.0-1'\"\n [attr.aria-valuemin]=\"panes()[gutterIndex]?.minSize()\"\n [attr.aria-valuemax]=\"panes()[gutterIndex]?.maxSize()\"\n (mousedown)=\"onGutterMouseDown($event, gutterIndex)\"\n (keydown)=\"onGutterKeyDown($event, gutterIndex)\"\n >\n <div class=\"ui-split__gutter-handle\"></div>\n </div>\n}\n", styles: [":host{display:flex;width:100%;height:100%;overflow:hidden}:host.ui-split--horizontal{flex-direction:row}:host.ui-split--vertical{flex-direction:column}:host.ui-split--disabled .ui-split__gutter{cursor:default;pointer-events:none}:host.ui-split--dragging{-webkit-user-select:none;user-select:none}.ui-split__gutter{flex:0 0 auto;display:flex;align-items:center;justify-content:center;background-color:var(--ui-bg-secondary);transition:background-color var(--ui-transition-fast)}.ui-split__gutter:hover,.ui-split__gutter:focus{background-color:var(--ui-bg-tertiary)}.ui-split__gutter:hover .ui-split__gutter-handle,.ui-split__gutter:focus .ui-split__gutter-handle{background-color:var(--ui-primary)}.ui-split__gutter:focus{outline:none;box-shadow:inset 0 0 0 2px var(--ui-primary)}:host(.ui-split--horizontal) .ui-split__gutter--sm{width:4px}:host(.ui-split--horizontal) .ui-split__gutter--md{width:8px}:host(.ui-split--horizontal) .ui-split__gutter--lg{width:12px}:host(.ui-split--vertical) .ui-split__gutter--sm{height:4px}:host(.ui-split--vertical) .ui-split__gutter--md{height:8px}:host(.ui-split--vertical) .ui-split__gutter--lg{height:12px}:host(.ui-split--horizontal) .ui-split__gutter{cursor:col-resize}:host(.ui-split--vertical) .ui-split__gutter{cursor:row-resize}:host(.ui-split--dragging.ui-split--horizontal){cursor:col-resize}:host(.ui-split--dragging.ui-split--vertical){cursor:row-resize}.ui-split__gutter-handle{background-color:var(--ui-border);border-radius:var(--ui-radius-sm);transition:background-color var(--ui-transition-fast)}:host(.ui-split--horizontal) .ui-split__gutter-handle{width:2px;height:24px}:host(.ui-split--vertical) .ui-split__gutter-handle{width:24px;height:2px}\n"], dependencies: [{ kind: "pipe", type: DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5502
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: SplitComponent, isStandalone: true, selector: "ui-split", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, gutterSize: { classPropertyName: "gutterSize", publicName: "gutterSize", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sizeChange: "sizeChange", dragStart: "dragStart", dragEnd: "dragEnd" }, host: { properties: { "class.ui-split--horizontal": "orientation() === \"horizontal\"", "class.ui-split--vertical": "orientation() === \"vertical\"", "class.ui-split--disabled": "disabled()", "class.ui-split--dragging": "isDragging()" }, classAttribute: "ui-split" }, queries: [{ propertyName: "panes", predicate: SplitPaneComponent, isSignal: true }], ngImport: i0, template: "<ng-content />\n@for (gutterIndex of gutterIndices(); track gutterIndex) {\n <div\n class=\"ui-split__gutter\"\n [class]=\"gutterSizeClass()\"\n [style.order]=\"gutterIndex * 2 + 1\"\n role=\"separator\"\n tabindex=\"0\"\n [attr.aria-orientation]=\"orientation() === 'horizontal' ? 'vertical' : 'horizontal'\"\n [attr.aria-valuenow]=\"paneSizes()[gutterIndex] | number:'1.0-1'\"\n [attr.aria-valuemin]=\"panes()[gutterIndex]?.minSize()\"\n [attr.aria-valuemax]=\"panes()[gutterIndex]?.maxSize()\"\n (mousedown)=\"onGutterMouseDown($event, gutterIndex)\"\n (keydown)=\"onGutterKeyDown($event, gutterIndex)\"\n >\n <div class=\"ui-split__gutter-handle\"></div>\n </div>\n}\n", styles: [":host{display:flex;width:100%;height:100%;overflow:hidden}:host.ui-split--horizontal{flex-direction:row}:host.ui-split--vertical{flex-direction:column}:host.ui-split--disabled .ui-split__gutter{cursor:default;pointer-events:none}:host.ui-split--dragging{-webkit-user-select:none;user-select:none}.ui-split__gutter{flex:0 0 auto;display:flex;align-items:center;justify-content:center;background-color:var(--ui-bg-secondary);transition:background-color var(--ui-transition-fast)}.ui-split__gutter:hover,.ui-split__gutter:focus{background-color:var(--ui-bg-tertiary)}.ui-split__gutter:hover .ui-split__gutter-handle,.ui-split__gutter:focus .ui-split__gutter-handle{background-color:var(--ui-primary)}.ui-split__gutter:focus{outline:none;box-shadow:inset 0 0 0 2px var(--ui-primary)}:host(.ui-split--horizontal) .ui-split__gutter--sm{width:4px}:host(.ui-split--horizontal) .ui-split__gutter--md{width:8px}:host(.ui-split--horizontal) .ui-split__gutter--lg{width:12px}:host(.ui-split--vertical) .ui-split__gutter--sm{height:4px}:host(.ui-split--vertical) .ui-split__gutter--md{height:8px}:host(.ui-split--vertical) .ui-split__gutter--lg{height:12px}:host(.ui-split--horizontal) .ui-split__gutter{cursor:col-resize}:host(.ui-split--vertical) .ui-split__gutter{cursor:row-resize;width:100%}:host(.ui-split--dragging.ui-split--horizontal){cursor:col-resize}:host(.ui-split--dragging.ui-split--vertical){cursor:row-resize}.ui-split__gutter-handle{background-color:var(--ui-border);border-radius:var(--ui-radius-sm);transition:background-color var(--ui-transition-fast)}:host(.ui-split--horizontal) .ui-split__gutter-handle{width:2px;height:24px}:host(.ui-split--vertical) .ui-split__gutter-handle{width:24px;height:2px}\n"], dependencies: [{ kind: "pipe", type: DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5517
5503
  }
5518
5504
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SplitComponent, decorators: [{
5519
5505
  type: Component,
@@ -5523,7 +5509,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
5523
5509
  '[class.ui-split--vertical]': 'orientation() === "vertical"',
5524
5510
  '[class.ui-split--disabled]': 'disabled()',
5525
5511
  '[class.ui-split--dragging]': 'isDragging()',
5526
- }, template: "<ng-content />\n@for (gutterIndex of gutterIndices(); track gutterIndex) {\n <div\n class=\"ui-split__gutter\"\n [class]=\"gutterSizeClass()\"\n [style.order]=\"gutterIndex * 2 + 1\"\n role=\"separator\"\n tabindex=\"0\"\n [attr.aria-orientation]=\"orientation() === 'horizontal' ? 'vertical' : 'horizontal'\"\n [attr.aria-valuenow]=\"paneSizes()[gutterIndex] | number:'1.0-1'\"\n [attr.aria-valuemin]=\"panes()[gutterIndex]?.minSize()\"\n [attr.aria-valuemax]=\"panes()[gutterIndex]?.maxSize()\"\n (mousedown)=\"onGutterMouseDown($event, gutterIndex)\"\n (keydown)=\"onGutterKeyDown($event, gutterIndex)\"\n >\n <div class=\"ui-split__gutter-handle\"></div>\n </div>\n}\n", styles: [":host{display:flex;width:100%;height:100%;overflow:hidden}:host.ui-split--horizontal{flex-direction:row}:host.ui-split--vertical{flex-direction:column}:host.ui-split--disabled .ui-split__gutter{cursor:default;pointer-events:none}:host.ui-split--dragging{-webkit-user-select:none;user-select:none}.ui-split__gutter{flex:0 0 auto;display:flex;align-items:center;justify-content:center;background-color:var(--ui-bg-secondary);transition:background-color var(--ui-transition-fast)}.ui-split__gutter:hover,.ui-split__gutter:focus{background-color:var(--ui-bg-tertiary)}.ui-split__gutter:hover .ui-split__gutter-handle,.ui-split__gutter:focus .ui-split__gutter-handle{background-color:var(--ui-primary)}.ui-split__gutter:focus{outline:none;box-shadow:inset 0 0 0 2px var(--ui-primary)}:host(.ui-split--horizontal) .ui-split__gutter--sm{width:4px}:host(.ui-split--horizontal) .ui-split__gutter--md{width:8px}:host(.ui-split--horizontal) .ui-split__gutter--lg{width:12px}:host(.ui-split--vertical) .ui-split__gutter--sm{height:4px}:host(.ui-split--vertical) .ui-split__gutter--md{height:8px}:host(.ui-split--vertical) .ui-split__gutter--lg{height:12px}:host(.ui-split--horizontal) .ui-split__gutter{cursor:col-resize}:host(.ui-split--vertical) .ui-split__gutter{cursor:row-resize}:host(.ui-split--dragging.ui-split--horizontal){cursor:col-resize}:host(.ui-split--dragging.ui-split--vertical){cursor:row-resize}.ui-split__gutter-handle{background-color:var(--ui-border);border-radius:var(--ui-radius-sm);transition:background-color var(--ui-transition-fast)}:host(.ui-split--horizontal) .ui-split__gutter-handle{width:2px;height:24px}:host(.ui-split--vertical) .ui-split__gutter-handle{width:24px;height:2px}\n"] }]
5512
+ }, template: "<ng-content />\n@for (gutterIndex of gutterIndices(); track gutterIndex) {\n <div\n class=\"ui-split__gutter\"\n [class]=\"gutterSizeClass()\"\n [style.order]=\"gutterIndex * 2 + 1\"\n role=\"separator\"\n tabindex=\"0\"\n [attr.aria-orientation]=\"orientation() === 'horizontal' ? 'vertical' : 'horizontal'\"\n [attr.aria-valuenow]=\"paneSizes()[gutterIndex] | number:'1.0-1'\"\n [attr.aria-valuemin]=\"panes()[gutterIndex]?.minSize()\"\n [attr.aria-valuemax]=\"panes()[gutterIndex]?.maxSize()\"\n (mousedown)=\"onGutterMouseDown($event, gutterIndex)\"\n (keydown)=\"onGutterKeyDown($event, gutterIndex)\"\n >\n <div class=\"ui-split__gutter-handle\"></div>\n </div>\n}\n", styles: [":host{display:flex;width:100%;height:100%;overflow:hidden}:host.ui-split--horizontal{flex-direction:row}:host.ui-split--vertical{flex-direction:column}:host.ui-split--disabled .ui-split__gutter{cursor:default;pointer-events:none}:host.ui-split--dragging{-webkit-user-select:none;user-select:none}.ui-split__gutter{flex:0 0 auto;display:flex;align-items:center;justify-content:center;background-color:var(--ui-bg-secondary);transition:background-color var(--ui-transition-fast)}.ui-split__gutter:hover,.ui-split__gutter:focus{background-color:var(--ui-bg-tertiary)}.ui-split__gutter:hover .ui-split__gutter-handle,.ui-split__gutter:focus .ui-split__gutter-handle{background-color:var(--ui-primary)}.ui-split__gutter:focus{outline:none;box-shadow:inset 0 0 0 2px var(--ui-primary)}:host(.ui-split--horizontal) .ui-split__gutter--sm{width:4px}:host(.ui-split--horizontal) .ui-split__gutter--md{width:8px}:host(.ui-split--horizontal) .ui-split__gutter--lg{width:12px}:host(.ui-split--vertical) .ui-split__gutter--sm{height:4px}:host(.ui-split--vertical) .ui-split__gutter--md{height:8px}:host(.ui-split--vertical) .ui-split__gutter--lg{height:12px}:host(.ui-split--horizontal) .ui-split__gutter{cursor:col-resize}:host(.ui-split--vertical) .ui-split__gutter{cursor:row-resize;width:100%}:host(.ui-split--dragging.ui-split--horizontal){cursor:col-resize}:host(.ui-split--dragging.ui-split--vertical){cursor:row-resize}.ui-split__gutter-handle{background-color:var(--ui-border);border-radius:var(--ui-radius-sm);transition:background-color var(--ui-transition-fast)}:host(.ui-split--horizontal) .ui-split__gutter-handle{width:2px;height:24px}:host(.ui-split--vertical) .ui-split__gutter-handle{width:24px;height:2px}\n"] }]
5527
5513
  }], ctorParameters: () => [], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], gutterSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "gutterSize", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], sizeChange: [{ type: i0.Output, args: ["sizeChange"] }], dragStart: [{ type: i0.Output, args: ["dragStart"] }], dragEnd: [{ type: i0.Output, args: ["dragEnd"] }], panes: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SplitPaneComponent), { isSignal: true }] }] } });
5528
5514
 
5529
5515
  class TreeNodeComponent {