@vectoriox/iox-builder 1.6.2 → 1.6.4

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.
@@ -6306,18 +6306,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
6306
6306
  }] } });
6307
6307
 
6308
6308
  class SliderSlideComponent {
6309
- set style(v) { this._style = v; }
6309
+ set style(v) {
6310
+ if (v === this._style)
6311
+ return;
6312
+ this._style = v;
6313
+ // Strip width constraints; rebuild cached object so ngStyle only updates DOM
6314
+ // when the input actually changed — prevents spurious MutationObserver triggers.
6315
+ const { width, minWidth, maxWidth, ...rest } = v || {};
6316
+ this._slideEditStyle = rest;
6317
+ }
6310
6318
  get style() { return this._style; }
6319
+ get slideEditStyle() { return this._slideEditStyle; }
6311
6320
  constructor(dragEngine, cdr, isPreview) {
6312
6321
  this.dragEngine = dragEngine;
6313
6322
  this.cdr = cdr;
6314
6323
  this.isPreview = isPreview;
6315
6324
  this.children = [];
6316
- // Slide visual styles are applied via the shared `iox-node-<cssId>` CSS class
6317
- // (StyleRegistryService), not inline — so repeated preview clones inherit master
6318
- // style edits. Kept as an @Input so render.directive / style panel can still set it
6319
- // (read internally for CDK orientation) without an NG0303 warning.
6320
6325
  this._style = {};
6326
+ this._slideEditStyle = {};
6321
6327
  this.nodeId = '';
6322
6328
  this.dropListId = '';
6323
6329
  this.childClick = new EventEmitter();
@@ -6336,6 +6342,7 @@ class SliderSlideComponent {
6336
6342
  <div *ngIf="isPreview"
6337
6343
  class="swiper-slide"
6338
6344
  [ngClass]="['iox-node-' + nodeId]"
6345
+ [ngStyle]="style"
6339
6346
  ioxDropzone
6340
6347
  [ioxDropzoneId]="dropListId"
6341
6348
  [ioxDropzoneData]="children"
@@ -6360,13 +6367,14 @@ class SliderSlideComponent {
6360
6367
  </div>
6361
6368
  </div>
6362
6369
 
6363
- <!-- EDIT: plain block. Visual styles come from the shared iox-node-<cssId> CSS
6364
- class (StyleRegistryService), NOT inline — so repeated preview clones inherit
6365
- master-slide style edits through the shared rule. -->
6370
+ <!-- EDIT: plain block so it sits in the horizontal strip.
6371
+ Width/min-width/max-width are stripped from ngStyle here — they belong on the
6372
+ iox-outer-* wrapper (already applied by StyleRegistryService), not on this inner
6373
+ div. Applying them here too would make the content 33% of 33%. -->
6366
6374
  <div *ngIf="!isPreview"
6367
6375
  class="slide-edit-block"
6368
- [class.slide-empty]="!children.length"
6369
6376
  [ngClass]="['iox-node-' + nodeId]"
6377
+ [ngStyle]="slideEditStyle"
6370
6378
  ioxDropzone
6371
6379
  [ioxDropzoneId]="dropListId"
6372
6380
  [ioxDropzoneData]="children"
@@ -6390,7 +6398,7 @@ class SliderSlideComponent {
6390
6398
  </ng-container>
6391
6399
  </div>
6392
6400
  </div>
6393
- `, isInline: true, styles: [".swiper-slide,.slide-edit-block{position:relative;box-sizing:border-box;display:flex;align-items:center;justify-content:center;overflow:hidden}.slide-edit-block{width:100%}.slide-edit-block.slide-empty{min-height:120px;background-color:var(--p-surface-300)}.slide-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border:1.5px dashed rgba(100,116,139,.35);border-radius:4px;color:#64748b80;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity .15s}:host:hover .slide-placeholder,:host.iox-drag-over .slide-placeholder{opacity:1}.slide-placeholder i{font-size:22px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: RenderDirective, selector: "[ioxRender]", inputs: ["ioxRender"], outputs: ["onClick", "onMouseEnter", "onMouseLeave"] }, { kind: "directive", type: IoxDraggableDirective, selector: "[ioxDraggable]", inputs: ["ioxDragData", "ioxDragSourceId"] }, { kind: "directive", type: IoxDropzoneDirective, selector: "[ioxDropzone]", inputs: ["ioxDropzoneId", "ioxDropzoneData", "ioxDropzonePostDrop"], outputs: ["ioxDrop"] }] }); }
6401
+ `, isInline: true, styles: [".swiper-slide,.slide-edit-block{position:relative;box-sizing:border-box;display:flex;align-items:center;justify-content:center;overflow:hidden;background-color:var(--p-surface-300)}.slide-edit-block{width:100%}.slide-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border:1.5px dashed rgba(100,116,139,.35);border-radius:4px;color:#64748b80;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity .15s}:host:hover .slide-placeholder,:host.iox-drag-over .slide-placeholder{opacity:1}.slide-placeholder i{font-size:22px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: RenderDirective, selector: "[ioxRender]", inputs: ["ioxRender"], outputs: ["onClick", "onMouseEnter", "onMouseLeave"] }, { kind: "directive", type: IoxDraggableDirective, selector: "[ioxDraggable]", inputs: ["ioxDragData", "ioxDragSourceId"] }, { kind: "directive", type: IoxDropzoneDirective, selector: "[ioxDropzone]", inputs: ["ioxDropzoneId", "ioxDropzoneData", "ioxDropzonePostDrop"], outputs: ["ioxDrop"] }] }); }
6394
6402
  }
6395
6403
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: SliderSlideComponent, decorators: [{
6396
6404
  type: Component,
@@ -6399,6 +6407,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
6399
6407
  <div *ngIf="isPreview"
6400
6408
  class="swiper-slide"
6401
6409
  [ngClass]="['iox-node-' + nodeId]"
6410
+ [ngStyle]="style"
6402
6411
  ioxDropzone
6403
6412
  [ioxDropzoneId]="dropListId"
6404
6413
  [ioxDropzoneData]="children"
@@ -6423,13 +6432,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
6423
6432
  </div>
6424
6433
  </div>
6425
6434
 
6426
- <!-- EDIT: plain block. Visual styles come from the shared iox-node-<cssId> CSS
6427
- class (StyleRegistryService), NOT inline — so repeated preview clones inherit
6428
- master-slide style edits through the shared rule. -->
6435
+ <!-- EDIT: plain block so it sits in the horizontal strip.
6436
+ Width/min-width/max-width are stripped from ngStyle here — they belong on the
6437
+ iox-outer-* wrapper (already applied by StyleRegistryService), not on this inner
6438
+ div. Applying them here too would make the content 33% of 33%. -->
6429
6439
  <div *ngIf="!isPreview"
6430
6440
  class="slide-edit-block"
6431
- [class.slide-empty]="!children.length"
6432
6441
  [ngClass]="['iox-node-' + nodeId]"
6442
+ [ngStyle]="slideEditStyle"
6433
6443
  ioxDropzone
6434
6444
  [ioxDropzoneId]="dropListId"
6435
6445
  [ioxDropzoneData]="children"
@@ -6453,7 +6463,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
6453
6463
  </ng-container>
6454
6464
  </div>
6455
6465
  </div>
6456
- `, standalone: false, styles: [".swiper-slide,.slide-edit-block{position:relative;box-sizing:border-box;display:flex;align-items:center;justify-content:center;overflow:hidden}.slide-edit-block{width:100%}.slide-edit-block.slide-empty{min-height:120px;background-color:var(--p-surface-300)}.slide-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border:1.5px dashed rgba(100,116,139,.35);border-radius:4px;color:#64748b80;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity .15s}:host:hover .slide-placeholder,:host.iox-drag-over .slide-placeholder{opacity:1}.slide-placeholder i{font-size:22px}\n"] }]
6466
+ `, standalone: false, styles: [".swiper-slide,.slide-edit-block{position:relative;box-sizing:border-box;display:flex;align-items:center;justify-content:center;overflow:hidden;background-color:var(--p-surface-300)}.slide-edit-block{width:100%}.slide-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border:1.5px dashed rgba(100,116,139,.35);border-radius:4px;color:#64748b80;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity .15s}:host:hover .slide-placeholder,:host.iox-drag-over .slide-placeholder{opacity:1}.slide-placeholder i{font-size:22px}\n"] }]
6457
6467
  }], ctorParameters: () => [{ type: DragEngineService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
6458
6468
  type: Optional
6459
6469
  }, {