@archilogic/floor-plan-sdk 5.0.0-rc.0 → 5.0.0-rc.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.
package/dist/fpe.d.ts CHANGED
@@ -309,10 +309,10 @@ declare class FloorPlanCore {
309
309
  constructor({ options }?: {
310
310
  options?: FpeConfig;
311
311
  });
312
- on(event: FpeCoreEvent, callback: Function, ctx?: any): this;
313
- once(event: FpeCoreEvent, callback: Function, ctx?: any): this;
314
- off(event: FpeCoreEvent, callback?: Function): this;
315
- emit(event: FpeCoreEvent, ...args: any[]): this;
312
+ on<EventType extends FpeCoreEvent, Context>(event: EventType, handler: FpeCoreEventHandler<EventType>, ctx?: Context): this;
313
+ once<EventType extends FpeCoreEvent, Context>(event: EventType, handler: FpeCoreEventHandler<EventType>, ctx?: Context): this;
314
+ off<EventType extends FpeCoreEvent>(event: EventType, handler?: FpeCoreEventHandler<EventType>): this;
315
+ emit<EventType extends FpeCoreEvent>(event: EventType, ...args: FpeCoreEventMap[EventType]): this;
316
316
  loadLayout(layout: SpaceGraphLayout, { skipGeometryCompute }?: {
317
317
  skipGeometryCompute?: boolean;
318
318
  }): void;
@@ -369,16 +369,17 @@ export declare class FloorPlanEngine extends FloorPlanCore {
369
369
  /**
370
370
  * Subscribe to an event
371
371
  */
372
- on(event: FpeEvent, callback: Function, ctx?: any): this;
372
+ on<EventType extends FpeEvent, Context>(event: EventType, handler: FpeEventHandler<EventType>, ctx?: Context): this;
373
373
  /**
374
374
  * Subscribe to an event once
375
375
  */
376
- once(event: FpeEvent, callback: Function, ctx?: any): this;
376
+ once<EventType extends FpeEvent, Context>(event: EventType, handler: FpeEventHandler<EventType>, ctx?: Context): this;
377
377
  /**
378
+ * Unsubscribe from an event
378
379
  */
379
- off(event: FpeEvent, callback?: Function): this;
380
- emit(event: FpeEvent, ...args: any[]): this;
381
- handleDrop(evt: any): void;
380
+ off<EventType extends FpeEvent, Context>(event: EventType, handler?: FpeEventHandler<EventType>, ctx?: Context): this;
381
+ emit<EventType extends FpeEvent>(event: EventType, ...args: FpeEventMap[EventType]): this;
382
+ handleDrop(evt: DragEvent): void;
382
383
  /**
383
384
  * Change options after the floor plan engine instance has been created
384
385
  * @param args - Startup options
@@ -563,9 +564,55 @@ declare interface FpeConfig extends StartupOptions {
563
564
  destroyOnDomRemove?: boolean;
564
565
  }
565
566
 
566
- declare type FpeCoreEvent = 'update-settings';
567
+ export declare type FpeCoreEvent = keyof FpeCoreEventMap;
567
568
 
568
- declare type FpeEvent = FpeCoreEvent | 'click' | 'dblclick' | 'context-menu' | 'mousemove' | 'drop' | 'drag-move' | 'drag-start' | 'drag-end' | 'key' | 'keyup';
569
+ declare type FpeCoreEventHandler<EventType extends FpeCoreEvent> = FpeCoreEventMap[EventType] extends any[] ? (...args: FpeCoreEventMap[EventType]) => void : never;
570
+
571
+ declare type FpeCoreEventMap = {
572
+ 'update-settings': [event: FpeConfig];
573
+ };
574
+
575
+ export declare type FpeDragEvent = {
576
+ position: Vector2_2;
577
+ screenPos: Vector2_2;
578
+ sourceEvent: FpeInteractionEvent;
579
+ };
580
+
581
+ export declare type FpeDropEvent = {
582
+ position: Vector2_2;
583
+ screenPos: Vector2_2;
584
+ verticalPos: number;
585
+ sourceEvent: DragEvent;
586
+ };
587
+
588
+ export declare type FpeEvent = keyof FpeEventMap;
589
+
590
+ declare type FpeEventHandler<EventType extends FpeEvent> = FpeEventMap[EventType] extends any[] ? (...args: FpeEventMap[EventType]) => void : never;
591
+
592
+ export declare type FpeEventMap = FpeCoreEventMap & {
593
+ click: [event: FpePointerEvent];
594
+ dblclick: [event: FpePointerEvent];
595
+ 'context-menu': [event: FpePointerEvent];
596
+ mousemove: [event: FpePointerEvent];
597
+ drop: [event: FpeDropEvent];
598
+ 'drag-move': [event: FpeDragEvent];
599
+ 'drag-start': [event: FpeDragEvent];
600
+ 'drag-end': [event: FpeDragEvent];
601
+ key: [event: FpeKeyEvent];
602
+ keyup: [event: FpeKeyEvent];
603
+ focus: [event: boolean];
604
+ 'resource-loaded': [event: {
605
+ resourceId: string;
606
+ }];
607
+ 'spaces-loaded': [];
608
+ 'loading-status': [event: {
609
+ totalCount: number;
610
+ doneCount: number;
611
+ }];
612
+ 'loading-done': [event: {
613
+ totalCount: number;
614
+ }];
615
+ };
569
616
 
570
617
  declare interface FpeInteraction {
571
618
  lastSceneClick: Vector2_2;
@@ -587,6 +634,14 @@ declare interface FpeInteraction {
587
634
  preventFocusoutOnAltKeyup: boolean;
588
635
  }
589
636
 
637
+ export declare type FpeInteractionEvent = InteractionEventType[keyof InteractionEventType];
638
+
639
+ export declare type FpeKeyEvent = {
640
+ key: string;
641
+ lowerCaseKey: string;
642
+ sourceEvent: KeyboardEvent;
643
+ };
644
+
590
645
  declare class FpeLoader extends TinyEmitter {
591
646
  promiseCache: Map<string, Promise<any>>;
592
647
  loadStages: {
@@ -602,7 +657,6 @@ declare class FpeLoader extends TinyEmitter {
602
657
  texture: Map<string, TextureData>;
603
658
  };
604
659
  floorPlan: FloorPlanCore;
605
- isSceneStructureLoaded: boolean;
606
660
  productContourCacheAge: number;
607
661
  productDataCacheAge: number;
608
662
  initialLoading: boolean;
@@ -621,6 +675,13 @@ declare class FpeLoader extends TinyEmitter {
621
675
 
622
676
  declare type FpeLoader_2 = FloorPlanCore['loader'];
623
677
 
678
+ export declare type FpePointerEvent = {
679
+ nodeId?: string;
680
+ position: Vector2_2;
681
+ isDoubleClick?: boolean;
682
+ sourceEvent: FpeInteractionEvent;
683
+ };
684
+
624
685
  declare class GeometryBase extends SpaceGraphNodeBase {
625
686
  type: SpaceGraphGeometryType;
626
687
  position: PositionEntry;
@@ -923,6 +984,10 @@ declare interface InfoWindowState extends InfoWindowArgs {
923
984
  floorPlan?: FloorPlanEngine;
924
985
  }
925
986
 
987
+ declare type InteractionEventType = {
988
+ dom: MouseEvent;
989
+ };
990
+
926
991
  declare class Layout2dView extends LayoutViewBase {
927
992
  type: Layout2dViewType;
928
993
  parameters: Layout2dViewParameters;
@@ -2176,6 +2241,7 @@ declare type PolygonCurveType = typeof PolygonCurveTypeValue;
2176
2241
 
2177
2242
  declare const PolygonCurveTypeValue = "curve:polygon";
2178
2243
 
2244
+ /** outer ring counter clockwise, inner rings ( holes ) clockwise */
2179
2245
  declare type PolygonWithHoles = Polygon[];
2180
2246
 
2181
2247
  declare interface PolygonWithHolesCurve extends BaseShape {
@@ -3037,7 +3103,7 @@ declare class WebGlView extends TinyEmitter {
3037
3103
  once: (event: ViewEvent, callback: Function, ctx?: any) => this;
3038
3104
  off: (event: ViewEvent, callback?: Function) => this;
3039
3105
  emit: (event: ViewEvent, ...args: any[]) => this;
3040
- constructor(loader: FpeLoader_2, settings: FpeConfig, fpeId: string);
3106
+ constructor(loader: FpeLoader_2, settings: FpeConfig, parentEl: HTMLElement);
3041
3107
  /**
3042
3108
  * main animation loop
3043
3109
  */