@vectoriox/iox-builder 1.6.0 → 1.6.2

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,24 +6306,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
6306
6306
  }] } });
6307
6307
 
6308
6308
  class SliderSlideComponent {
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
- }
6309
+ set style(v) { this._style = v; }
6318
6310
  get style() { return this._style; }
6319
- get slideEditStyle() { return this._slideEditStyle; }
6320
6311
  constructor(dragEngine, cdr, isPreview) {
6321
6312
  this.dragEngine = dragEngine;
6322
6313
  this.cdr = cdr;
6323
6314
  this.isPreview = isPreview;
6324
6315
  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.
6325
6320
  this._style = {};
6326
- this._slideEditStyle = {};
6327
6321
  this.nodeId = '';
6328
6322
  this.dropListId = '';
6329
6323
  this.childClick = new EventEmitter();
@@ -6342,7 +6336,6 @@ class SliderSlideComponent {
6342
6336
  <div *ngIf="isPreview"
6343
6337
  class="swiper-slide"
6344
6338
  [ngClass]="['iox-node-' + nodeId]"
6345
- [ngStyle]="style"
6346
6339
  ioxDropzone
6347
6340
  [ioxDropzoneId]="dropListId"
6348
6341
  [ioxDropzoneData]="children"
@@ -6367,14 +6360,13 @@ class SliderSlideComponent {
6367
6360
  </div>
6368
6361
  </div>
6369
6362
 
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%. -->
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. -->
6374
6366
  <div *ngIf="!isPreview"
6375
6367
  class="slide-edit-block"
6368
+ [class.slide-empty]="!children.length"
6376
6369
  [ngClass]="['iox-node-' + nodeId]"
6377
- [ngStyle]="slideEditStyle"
6378
6370
  ioxDropzone
6379
6371
  [ioxDropzoneId]="dropListId"
6380
6372
  [ioxDropzoneData]="children"
@@ -6398,7 +6390,7 @@ class SliderSlideComponent {
6398
6390
  </ng-container>
6399
6391
  </div>
6400
6392
  </div>
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"] }] }); }
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"] }] }); }
6402
6394
  }
6403
6395
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: SliderSlideComponent, decorators: [{
6404
6396
  type: Component,
@@ -6407,7 +6399,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
6407
6399
  <div *ngIf="isPreview"
6408
6400
  class="swiper-slide"
6409
6401
  [ngClass]="['iox-node-' + nodeId]"
6410
- [ngStyle]="style"
6411
6402
  ioxDropzone
6412
6403
  [ioxDropzoneId]="dropListId"
6413
6404
  [ioxDropzoneData]="children"
@@ -6432,14 +6423,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
6432
6423
  </div>
6433
6424
  </div>
6434
6425
 
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%. -->
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. -->
6439
6429
  <div *ngIf="!isPreview"
6440
6430
  class="slide-edit-block"
6431
+ [class.slide-empty]="!children.length"
6441
6432
  [ngClass]="['iox-node-' + nodeId]"
6442
- [ngStyle]="slideEditStyle"
6443
6433
  ioxDropzone
6444
6434
  [ioxDropzoneId]="dropListId"
6445
6435
  [ioxDropzoneData]="children"
@@ -6463,7 +6453,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
6463
6453
  </ng-container>
6464
6454
  </div>
6465
6455
  </div>
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"] }]
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"] }]
6467
6457
  }], ctorParameters: () => [{ type: DragEngineService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
6468
6458
  type: Optional
6469
6459
  }, {