@xibosignage/xibo-layout-renderer 1.0.27 → 1.0.28

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.
@@ -75,16 +75,18 @@ declare class ActionController {
75
75
  constructor(parent: ILayout, actions: Action[], options: InactOptions);
76
76
  init(): void;
77
77
  openLayoutInNewTab(layoutCode: string, options: InactOptions): void;
78
- openLayoutInPlayer(layoutCode: string, options: InactOptions): void;
78
+ openLayoutInPlayer(layoutCode: string, _options: InactOptions): void;
79
79
  prevOrNextLayout(targetId: string, actionType: string): void;
80
80
  /** Change media in region (next/previous) */
81
- nextMediaInRegion(regionId: string, actionType: string): void;
81
+ gotoMediaInRegion(regionId: string, actionType: string): void;
82
82
  loadMediaInRegion(regionId: string, widgetId: string): void;
83
83
  /** Run action based on action data */
84
84
  runAction(actionData: {
85
85
  [k: string]: any;
86
86
  }, options: InactOptions): void;
87
87
  initTouchActions(): void;
88
+ /** Dispatch an incoming webhook trigger to any matching actions on this layout. */
89
+ handleWebhookTrigger(triggerCode: string, widgetId?: string): void;
88
90
  initKeyboardActions(): void;
89
91
  }
90
92
 
@@ -221,6 +223,23 @@ interface IXlr {
221
223
  getLayoutById(layoutId: number, layoutIndex?: number): ILayout | undefined;
222
224
  gotoNextLayout(): void;
223
225
  gotoPrevLayout(): void;
226
+ /**
227
+ * Navigate directly to a layout identified by its CMS code string.
228
+ * Searches parsed layouts first, then fetches unparsed XLF files via appHost.
229
+ * No-ops silently if the code is not found in the current loop.
230
+ */
231
+ gotoLayoutByCode(layoutCode: string): Promise<void>;
232
+ /**
233
+ * Play the given layout once as an interrupt, then resume the current loop.
234
+ * Used by non-CMS platforms for Navigate to Layout interactive actions.
235
+ * The interrupt is not part of inputLayouts and is spliced in temporarily.
236
+ */
237
+ playInterruptLayout(inputLayout: InputLayoutType): Promise<void>;
238
+ /**
239
+ * Dispatch an incoming webhook trigger code to the current layout's
240
+ * action controller. Pass an optional widgetId to narrow the match.
241
+ */
242
+ triggerAction(triggerCode: string, widgetId?: string): void;
224
243
  init(): Promise<IXlr>;
225
244
  inputLayouts: InputLayoutType[];
226
245
  isInterrupted: boolean;
@@ -241,7 +260,7 @@ interface IXlr {
241
260
  prepareLayoutXlf(inputLayout: ILayout | undefined): Promise<ILayout>;
242
261
  prepareLayouts(): Promise<IXlr>;
243
262
  renderOverlayLayouts(): Promise<void>;
244
- uniqueLayouts: Record<string, InputLayoutType>;
263
+ uniqueLayouts: Map<string, InputLayoutType>;
245
264
  updateInputLayout(layoutIndex: number, layout: InputLayoutType): void;
246
265
  updateLayouts(inputLayouts: InputLayoutType[]): void;
247
266
  updateLoop(inputLayouts: InputLayoutType[]): Promise<void>;
@@ -475,6 +494,7 @@ type InputLayoutType = {
475
494
  duration?: number;
476
495
  isOverlay?: boolean;
477
496
  shareOfVoice?: number;
497
+ code?: string;
478
498
  };
479
499
  type OptionsType = {
480
500
  xlfUrl: string;