@vectoriox/iox-builder 1.6.4 → 1.6.5

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.
@@ -6009,35 +6009,43 @@ class SliderContainerComponent {
6009
6009
  [style.--swiper-navigation-size.px]="navigationSize || null"
6010
6010
  [style.--swiper-pagination-color]="paginationColor || null">
6011
6011
  <div class="swiper-wrapper">
6012
- <!-- NORMAL: all children (each SliderSlide renders .swiper-slide itself in preview mode) -->
6012
+ <!-- Swiper requires .swiper-slide as a DIRECT child of .swiper-wrapper.
6013
+ Wrap each rendered slide in one (same structure as edit mode) so the
6014
+ app-slider-slide host sits INSIDE the slide, not between it and the wrapper. -->
6013
6015
  <ng-container *ngIf="!source">
6014
- <ng-container *ngFor="let child of children">
6016
+ <div *ngFor="let child of children"
6017
+ class="swiper-slide"
6018
+ [ngClass]="['iox-outer-' + (child.styleId ?? child.id)]">
6015
6019
  <ng-container
6016
6020
  [ioxRender]="child"
6017
6021
  (onClick)="childClick.emit($event)"
6018
6022
  (onMouseEnter)="childMouseEnter.emit($event)"
6019
6023
  (onMouseLeave)="childMouseLeave.emit()">
6020
6024
  </ng-container>
6021
- </ng-container>
6025
+ </div>
6022
6026
  </ng-container>
6023
6027
  <!-- REPEAT: template slide + preview slides -->
6024
6028
  <ng-container *ngIf="source">
6025
- <ng-container *ngIf="children.length">
6029
+ <div *ngIf="children.length"
6030
+ class="swiper-slide"
6031
+ [ngClass]="['iox-outer-' + (children[0].styleId ?? children[0].id)]">
6026
6032
  <ng-container
6027
6033
  [ioxRender]="children[0]"
6028
6034
  (onClick)="childClick.emit($event)"
6029
6035
  (onMouseEnter)="childMouseEnter.emit($event)"
6030
6036
  (onMouseLeave)="childMouseLeave.emit()">
6031
6037
  </ng-container>
6032
- </ng-container>
6033
- <ng-container *ngFor="let slide of previewSlides; trackBy: trackByNodeId">
6038
+ </div>
6039
+ <div *ngFor="let slide of previewSlides; trackBy: trackByNodeId"
6040
+ class="swiper-slide"
6041
+ [ngClass]="['iox-outer-' + (slide.styleId ?? slide.id)]">
6034
6042
  <ng-container
6035
6043
  [ioxRender]="slide"
6036
6044
  (onClick)="childClick.emit($event)"
6037
6045
  (onMouseEnter)="childMouseEnter.emit($event)"
6038
6046
  (onMouseLeave)="childMouseLeave.emit()">
6039
6047
  </ng-container>
6040
- </ng-container>
6048
+ </div>
6041
6049
  </ng-container>
6042
6050
  </div>
6043
6051
  <div *ngIf="enableNavigation" class="swiper-button-prev"></div>
@@ -6151,35 +6159,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
6151
6159
  [style.--swiper-navigation-size.px]="navigationSize || null"
6152
6160
  [style.--swiper-pagination-color]="paginationColor || null">
6153
6161
  <div class="swiper-wrapper">
6154
- <!-- NORMAL: all children (each SliderSlide renders .swiper-slide itself in preview mode) -->
6162
+ <!-- Swiper requires .swiper-slide as a DIRECT child of .swiper-wrapper.
6163
+ Wrap each rendered slide in one (same structure as edit mode) so the
6164
+ app-slider-slide host sits INSIDE the slide, not between it and the wrapper. -->
6155
6165
  <ng-container *ngIf="!source">
6156
- <ng-container *ngFor="let child of children">
6166
+ <div *ngFor="let child of children"
6167
+ class="swiper-slide"
6168
+ [ngClass]="['iox-outer-' + (child.styleId ?? child.id)]">
6157
6169
  <ng-container
6158
6170
  [ioxRender]="child"
6159
6171
  (onClick)="childClick.emit($event)"
6160
6172
  (onMouseEnter)="childMouseEnter.emit($event)"
6161
6173
  (onMouseLeave)="childMouseLeave.emit()">
6162
6174
  </ng-container>
6163
- </ng-container>
6175
+ </div>
6164
6176
  </ng-container>
6165
6177
  <!-- REPEAT: template slide + preview slides -->
6166
6178
  <ng-container *ngIf="source">
6167
- <ng-container *ngIf="children.length">
6179
+ <div *ngIf="children.length"
6180
+ class="swiper-slide"
6181
+ [ngClass]="['iox-outer-' + (children[0].styleId ?? children[0].id)]">
6168
6182
  <ng-container
6169
6183
  [ioxRender]="children[0]"
6170
6184
  (onClick)="childClick.emit($event)"
6171
6185
  (onMouseEnter)="childMouseEnter.emit($event)"
6172
6186
  (onMouseLeave)="childMouseLeave.emit()">
6173
6187
  </ng-container>
6174
- </ng-container>
6175
- <ng-container *ngFor="let slide of previewSlides; trackBy: trackByNodeId">
6188
+ </div>
6189
+ <div *ngFor="let slide of previewSlides; trackBy: trackByNodeId"
6190
+ class="swiper-slide"
6191
+ [ngClass]="['iox-outer-' + (slide.styleId ?? slide.id)]">
6176
6192
  <ng-container
6177
6193
  [ioxRender]="slide"
6178
6194
  (onClick)="childClick.emit($event)"
6179
6195
  (onMouseEnter)="childMouseEnter.emit($event)"
6180
6196
  (onMouseLeave)="childMouseLeave.emit()">
6181
6197
  </ng-container>
6182
- </ng-container>
6198
+ </div>
6183
6199
  </ng-container>
6184
6200
  </div>
6185
6201
  <div *ngIf="enableNavigation" class="swiper-button-prev"></div>
@@ -6338,9 +6354,11 @@ class SliderSlideComponent {
6338
6354
  }
6339
6355
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: SliderSlideComponent, deps: [{ token: DragEngineService }, { token: i0.ChangeDetectorRef }, { token: IS_PREVIEW, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
6340
6356
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.11", type: SliderSlideComponent, isStandalone: false, selector: "app-slider-slide", inputs: { children: "children", style: "style", nodeId: "nodeId", dropListId: "dropListId" }, outputs: { childClick: "childClick", childMouseEnter: "childMouseEnter", childMouseLeave: "childMouseLeave" }, ngImport: i0, template: `
6341
- <!-- PREVIEW: native Swiper slide wrapper -->
6357
+ <!-- PREVIEW: slide content. The .swiper-slide wrapper is provided by SliderContainer
6358
+ (Swiper needs it as a direct child of .swiper-wrapper), so this is just the styled
6359
+ inner block — same role as .slide-edit-block in edit mode. -->
6342
6360
  <div *ngIf="isPreview"
6343
- class="swiper-slide"
6361
+ class="slide-edit-block"
6344
6362
  [ngClass]="['iox-node-' + nodeId]"
6345
6363
  [ngStyle]="style"
6346
6364
  ioxDropzone
@@ -6398,14 +6416,16 @@ class SliderSlideComponent {
6398
6416
  </ng-container>
6399
6417
  </div>
6400
6418
  </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"] }] }); }
6419
+ `, isInline: true, styles: [".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"] }] }); }
6402
6420
  }
6403
6421
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: SliderSlideComponent, decorators: [{
6404
6422
  type: Component,
6405
6423
  args: [{ selector: 'app-slider-slide', template: `
6406
- <!-- PREVIEW: native Swiper slide wrapper -->
6424
+ <!-- PREVIEW: slide content. The .swiper-slide wrapper is provided by SliderContainer
6425
+ (Swiper needs it as a direct child of .swiper-wrapper), so this is just the styled
6426
+ inner block — same role as .slide-edit-block in edit mode. -->
6407
6427
  <div *ngIf="isPreview"
6408
- class="swiper-slide"
6428
+ class="slide-edit-block"
6409
6429
  [ngClass]="['iox-node-' + nodeId]"
6410
6430
  [ngStyle]="style"
6411
6431
  ioxDropzone
@@ -6463,7 +6483,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
6463
6483
  </ng-container>
6464
6484
  </div>
6465
6485
  </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"] }]
6486
+ `, standalone: false, styles: [".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"] }]
6467
6487
  }], ctorParameters: () => [{ type: DragEngineService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
6468
6488
  type: Optional
6469
6489
  }, {