Skip to content

Changelog

v5.3.0

July 29th 2026

  • New
    • Plan graphics added with addGraphic can now be made interactive. Pass interaction to make a graphic clickable or draggable:
      ts
      const layer = floorPlan.addLayer({ id: 'handles' })
      layer.addGraphic({
        shapes: [{ type: 'curve:circle', radius: 0.5, position: [0, 0], style: { fill: '#ff9955' } }],
        position: [-2, 5],
        fixedScreenSize: true,
        interaction: { drag: true }
      })
      Use drag: true for a handle that follows the pointer, or drag: 'event-only' to receive drag events while repositioning the graphic yourself.
    • New fixedScreenSize option keeps a graphic at a constant screen size regardless of zoom. Set it to true, or to a [min, max] ZoomRange to only apply the scaling within a zoom range.
    • Granular visibility control for elements and spaces. Show or hide nodes by byType, byId or byFilter — the same composition as theme:
      ts
      floorPlan.set({
        visibility: {
          byFilter: [
            { where: { type: 'element:asset' }, show: false },
            { where: { subCategory: 'workstation' }, show: true }
          ]
        }
      })
      Combine a broad hide with a narrow show to display only a subset. Hidden nodes are left out of the rendered plan and exportImage.
    • Asset stamps label assets on the plan, configured with label on the element:asset theme entry:
      ts
      floorPlan.set({
        theme: {
          byType: {
            'element:asset': {
              label: { display: ['customId'], visible: [40, 300] }
            }
          }
        }
      })
      Use visible to restrict stamps to a ZoomRange, and fixedScreenSize to control how they scale with zoom.
  • Changes
    • The addGraphic options scaleOnZoom, interactive, isHandler and updatePositionOnDrag are deprecated — use fixedScreenSize and interaction instead.
    • hideElements is deprecated — use visibility instead. hideElements: ['element:asset'] maps onto visibility: { byType: { 'element:asset': { show: false } } } and still works.

v5.2.1

March 6th 2026

  • Fixes
    • Better handling of html markers position updates on canvas resize
    • Shapes with image fill now support opacity
    • All closed curve types are now supported for shape with image fill

v5.2.0

February 25th 2026

  • New
    • Support for layout query methods floorPlan.getElements, floorPlan.getSpaces etc
      ts
      // find all meet spaces that are larger than 50 sqm
      const largeSpaces = floorPlan.getSpaces({
        where: { category: 'meet', area: { gte: 50 } }
      })
    • Floor plans can now be styled using theme filters
      ts
      // highlight all workstations with
      // custom attribute 'isBooked = true' in red
      floorPlan.set({
        theme: {
          byFilter: [
            {
              where: {
                subCategory: 'workstation',
                customAttributes: { isBooked: true }
              },
              style: { fill: '#ff8855' }
            }
          ]
        }
      })
    • Load a specific layout via loadLayoutById
  • Changes
    • floorPlan.layout is deprecated in favour of the new query methods
    • floorPlan.getResourcesFromPosition is deprecated use floorPlan.getElements({ where: { at: [x, z] }}) instead
    • theme.elements is deprecated use theme.byType instead
  • Fixes
    • if no style is provided for a shape it falls back to stroke with constant 1px width
    • setting theme by id or filter now applies to child elements

v5.1.17

January 26th 2026

  • Fixes

v5.1.16

January 7th 2026

  • Fixes
    • Improved handling of floor plan instance reinitialization

v5.1.15

December 22nd 2025

  • Fixes
    • Prevent accessing destroyed floorplan instance

v5.1.14

December 18th 2025

  • Fixes

v5.1.13

October 24th 2025

  • Changes
    • Updated Space Graph version
    • Performance improvements for loading the layout
  • Fixes
    • Replaced canvas element title attribute with alt-text fallback

v5.1.12

October 17th 2025

  • Changes
    • Improvements to component instance handling

v5.1.11

July 17th 2025

  • Fixes
    • Performance improvements for drawing components without asset textures

v5.1.10

July 9th 2025

  • Fixes
    • Improved hit test for assets

v5.1.9

July 4th 2025

  • Changes
    • Support product components
  • Fixes
    • Get product component drawing order from nested asset's products

v5.1.8

April 29th 2025

  • Fixes
    • Better handle small shapes for polygon label point used for room stamps

v5.1.7

April 15th 2025

  • Changes
    • Support custom attribute definitions with the same api field name for different resource types

v5.1.6

March 26th 2025

  • Fixes
    • Inherit space relation for nested assets

v5.1.5

March 3rd 2025

  • Fixes
    • Solve artifacts with thin intersecting walls
    • Updated Space Graph version

v5.1.4

February 27th 2025

  • Changes
    • Custom attribute values of type boolean and number are no longer stringified
  • Fixes
    • Unified bounding box calculations
    • Updated Space Graph version

v5.1.3

January 30th 2025

  • Fixes
    • Stability improvements for wall geometries
    • Updated Space Graph version

v5.1.2

January 27th 2025

  • Changes
    • Default font switched from Avenir to Inter

v5.1.1

January 16th 2025

  • Changes
    • spaces and elements can now be filtered by node.isExternal: boolean
    • updated Space Graph version
    • optimized layout loading

v5.1.0

November 14th 2024

v5.0.2

October 2nd 2024

  • Changes
    • minor type improvements
    • update Space Graph version

v5.0.1

September 24th 2024

  • Changes
    • supporting walls with multiple edges

v5.0.0

September 3rd 2024

  • New
    • native Space Graph support
    • drawing shapes on top of the floor plan

Looking for older versions or the V3 Migration guide ?