@vectoriox/iox-builder 3.1.0 → 3.2.0

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.
@@ -827,6 +827,11 @@ var PanelEventTypes;
827
827
  * id). Emitted when the overlay interaction badge is clicked so that badge → "edit THIS
828
828
  * interaction", without firing the element's (live) animation. */
829
829
  PanelEventTypes["INTERACTION_EDIT"] = "interactionedit";
830
+ /** A node's `interactions` were added/removed/edited. Carries `{ node }`.
831
+ * Repeater/Slider listen so their PREVIEW CLONES are re-cloned with the new interactions —
832
+ * clones are attached by ELEMENT at render time, so without this a new interaction only starts
833
+ * working after a save + reload. */
834
+ PanelEventTypes["INTERACTION_CHANGED"] = "interactionchanged";
830
835
  })(PanelEventTypes || (PanelEventTypes = {}));
831
836
  class PanelEventService {
832
837
  constructor() {
@@ -6321,7 +6326,12 @@ class BuilderRepeaterComponent {
6321
6326
  }
6322
6327
  ngOnInit() {
6323
6328
  this.bindingSub = this.panelEventService.subscribe(event => {
6324
- if (event.type !== PanelEventTypes.BINDING_CHANGED)
6329
+ // A binding OR an interaction change on a template node must re-clone the preview rows.
6330
+ // Interactions matter because clones are attached by ELEMENT at render time, so a newly
6331
+ // added interaction never reaches an existing clone — it would appear to work only after
6332
+ // a save + reload. See element-context-state-plan.md.
6333
+ if (event.type !== PanelEventTypes.BINDING_CHANGED
6334
+ && event.type !== PanelEventTypes.INTERACTION_CHANGED)
6325
6335
  return;
6326
6336
  const changedNode = event.data?.node;
6327
6337
  if (!changedNode || !this.items.length)