@vectoriox/iox-builder 2.10.3 → 2.10.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.
@@ -17,7 +17,7 @@ import { SelectModule } from 'primeng/select';
17
17
  import { TooltipModule } from 'primeng/tooltip';
18
18
  import { DialogModule } from 'primeng/dialog';
19
19
  import * as i16 from '@vectoriox/iox-ui';
20
- import { DEFAULT_WIDTH_BY_TYPE, ComponentInstanceRegistryService, buildTargetedStateSelector, compileDeclarations, composeVirtualTraits, IS_PREVIEW, planDataSource, dataSourcePlanToRequest, normalizeCollectionResult, resolveRepeaterItems, getByPath, computeRelative, IoxPageModule } from '@vectoriox/iox-ui';
20
+ import { DEFAULT_WIDTH_BY_TYPE, ComponentInstanceRegistryService, buildTargetedStateSelector, compileDeclarations, safeSetInput, composeVirtualTraits, IS_PREVIEW, planDataSource, dataSourcePlanToRequest, normalizeCollectionResult, resolveRepeaterItems, getByPath, computeRelative, IoxPageModule } from '@vectoriox/iox-ui';
21
21
  export { ComponentInstanceRegistryService, VIRTUAL_TRAIT_KEYS, composeVirtualTraits } from '@vectoriox/iox-ui';
22
22
  import Lenis from 'lenis';
23
23
  import { Subject, BehaviorSubject, of, forkJoin } from 'rxjs';
@@ -3478,14 +3478,16 @@ class RenderDirective {
3478
3478
  else {
3479
3479
  componentRef = this.vcr.createComponent(componentClass, { injector: this.injector });
3480
3480
  }
3481
- // Apply regular trait defaults (title, image, description, etc.)
3482
- // Use setInput() (Angular 14+) — it marks the view dirty and
3483
- // integrates with Angular's CD tracking, unlike direct assignment.
3484
- // Skip SectionLabel traits — they are UI-only panel headers with no matching @Input().
3481
+ // Apply regular trait defaults (title, image, description, etc.). safeSetInput() uses
3482
+ // setInput() for declared inputs (marks the view dirty, integrates with CD + signal inputs)
3483
+ // and falls back to direct assignment for anything the component doesn't declare — so a
3484
+ // trait that has no matching @Input (e.g. `sourcePath` on a SliderContainer) never emits the
3485
+ // NG0303 console error that a bare setInput() would. Skip SectionLabel traits — they are
3486
+ // UI-only panel headers with no matching input.
3485
3487
  Object.values(node.traits || {}).forEach((trait) => {
3486
3488
  if (trait.type === 'sectionLabel')
3487
3489
  return;
3488
- componentRef.setInput(trait.name, trait.default);
3490
+ safeSetInput(componentRef, trait.name, trait.default);
3489
3491
  });
3490
3492
  // Build initial style map from styleTraits defaults.
3491
3493
  const initialStyle = {};
@@ -3659,15 +3661,6 @@ class RenderDirective {
3659
3661
  this.interactionEngine.attachTo(node, nativeEl);
3660
3662
  }
3661
3663
  }
3662
- /** Try setInput(); fall back to direct assignment for non-@Input properties. */
3663
- safeSetInput(ref, name, value) {
3664
- try {
3665
- ref.setInput(name, value);
3666
- }
3667
- catch {
3668
- ref.instance[name] = value;
3669
- }
3670
- }
3671
3664
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: RenderDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i0.EnvironmentInjector }, { token: DOCUMENT }, { token: ComponentRegistryService }, { token: OverlayService }, { token: StyleRegistryService }, { token: InteractionEngineService }, { token: i0.ChangeDetectorRef }, { token: PanelEventService }, { token: DragEngineService }], target: i0.ɵɵFactoryTarget.Directive }); }
3672
3665
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.11", type: RenderDirective, isStandalone: false, selector: "[ioxRender]", inputs: { ioxRender: "ioxRender", ioxDragSourceId: "ioxDragSourceId" }, outputs: { onClick: "onClick", onMouseEnter: "onMouseEnter", onMouseLeave: "onMouseLeave" }, ngImport: i0 }); }
3673
3666
  }