@pascal-app/core 1.0.4 → 1.0.6
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/agent-operations/__fixtures__/add-object-cases.d.ts +102 -90
- package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/add-object-cases.js +301 -1
- package/dist/agent-operations/__fixtures__/add-stair-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/add-stair-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/add-stair-cases.js +176 -0
- package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/build-room-cases.js +410 -40
- package/dist/agent-operations/__fixtures__/cases.d.ts +18 -3
- package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/cases.js +183 -4
- package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/corner-window-cases.js +155 -0
- package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts +14 -0
- package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/design-brief-cases.js +709 -0
- package/dist/agent-operations/__fixtures__/finish-cases.d.ts +7 -0
- package/dist/agent-operations/__fixtures__/finish-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/finish-cases.js +758 -0
- package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/lot-info-cases.js +370 -0
- package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/merge-windows-cases.js +321 -0
- package/dist/agent-operations/__fixtures__/native-materials.d.ts +2237 -0
- package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/native-materials.js +82 -0
- package/dist/agent-operations/__fixtures__/node-read-cases.d.ts +4 -0
- package/dist/agent-operations/__fixtures__/node-read-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/node-read-cases.js +639 -0
- package/dist/agent-operations/__fixtures__/notation-cases.d.ts +24 -0
- package/dist/agent-operations/__fixtures__/notation-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/notation-cases.js +356 -0
- package/dist/agent-operations/__fixtures__/place-items-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/place-items-cases.js +80 -2
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +19726 -0
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.js +106 -0
- package/dist/agent-operations/__fixtures__/roof-cases.d.ts +9 -0
- package/dist/agent-operations/__fixtures__/roof-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/roof-cases.js +382 -0
- package/dist/agent-operations/__fixtures__/room-cases.d.ts +2 -1
- package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/room-cases.js +136 -1
- package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts +4 -0
- package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/scene-check-cases.js +417 -0
- package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/search-assets-cases.js +15 -3
- package/dist/agent-operations/__fixtures__/site-cases.d.ts +290 -0
- package/dist/agent-operations/__fixtures__/site-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/site-cases.js +780 -0
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts +1 -0
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/structure-cases.js +630 -3
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +311 -1
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/verify-scene-cases.js +59 -11
- package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/view-assets-cases.js +155 -0
- package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts +50 -0
- package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/view-scene-cases.js +425 -0
- package/dist/agent-operations/achieved.d.ts +5 -0
- package/dist/agent-operations/achieved.d.ts.map +1 -1
- package/dist/agent-operations/achieved.js +21 -1
- package/dist/agent-operations/add-column.d.ts.map +1 -1
- package/dist/agent-operations/add-column.js +3 -1
- package/dist/agent-operations/add-fence.d.ts +18 -0
- package/dist/agent-operations/add-fence.d.ts.map +1 -0
- package/dist/agent-operations/add-fence.js +48 -0
- package/dist/agent-operations/add-level.d.ts +4 -1
- package/dist/agent-operations/add-level.d.ts.map +1 -1
- package/dist/agent-operations/add-level.js +48 -12
- package/dist/agent-operations/add-object.d.ts +38 -9
- package/dist/agent-operations/add-object.d.ts.map +1 -1
- package/dist/agent-operations/add-object.js +172 -11
- package/dist/agent-operations/add-wall.d.ts +1 -3
- package/dist/agent-operations/add-wall.d.ts.map +1 -1
- package/dist/agent-operations/add-wall.js +35 -9
- package/dist/agent-operations/apply-changes.d.ts +7 -1
- package/dist/agent-operations/apply-changes.d.ts.map +1 -1
- package/dist/agent-operations/apply-changes.js +54 -22
- package/dist/agent-operations/apply-outcome.d.ts +6 -0
- package/dist/agent-operations/apply-outcome.d.ts.map +1 -1
- package/dist/agent-operations/apply-outcome.js +23 -8
- package/dist/agent-operations/asset-views.d.ts +75 -0
- package/dist/agent-operations/asset-views.d.ts.map +1 -0
- package/dist/agent-operations/asset-views.js +234 -0
- package/dist/agent-operations/author-scene.d.ts +157 -0
- package/dist/agent-operations/author-scene.d.ts.map +1 -0
- package/dist/agent-operations/author-scene.js +1076 -0
- package/dist/agent-operations/authored-scene-merge.d.ts +4 -0
- package/dist/agent-operations/authored-scene-merge.d.ts.map +1 -0
- package/dist/agent-operations/authored-scene-merge.js +96 -0
- package/dist/agent-operations/batch.d.ts +22 -0
- package/dist/agent-operations/batch.d.ts.map +1 -0
- package/dist/agent-operations/batch.js +104 -0
- package/dist/agent-operations/ceiling-object-observations.d.ts +31 -0
- package/dist/agent-operations/ceiling-object-observations.d.ts.map +1 -0
- package/dist/agent-operations/ceiling-object-observations.js +111 -0
- package/dist/agent-operations/corner-window.d.ts +19 -0
- package/dist/agent-operations/corner-window.d.ts.map +1 -0
- package/dist/agent-operations/corner-window.js +84 -0
- package/dist/agent-operations/create-roof.d.ts +32 -0
- package/dist/agent-operations/create-roof.d.ts.map +1 -0
- package/dist/agent-operations/create-roof.js +304 -0
- package/dist/agent-operations/create-room.d.ts +2 -0
- package/dist/agent-operations/create-room.d.ts.map +1 -1
- package/dist/agent-operations/create-room.js +73 -5
- package/dist/agent-operations/create-stair.d.ts +6 -28
- package/dist/agent-operations/create-stair.d.ts.map +1 -1
- package/dist/agent-operations/create-stair.js +187 -104
- package/dist/agent-operations/design-brief.d.ts +38 -0
- package/dist/agent-operations/design-brief.d.ts.map +1 -0
- package/dist/agent-operations/design-brief.js +300 -0
- package/dist/agent-operations/designs.d.ts +24 -0
- package/dist/agent-operations/designs.d.ts.map +1 -0
- package/dist/agent-operations/designs.js +48 -0
- package/dist/agent-operations/door-clearance.d.ts +16 -1
- package/dist/agent-operations/door-clearance.d.ts.map +1 -1
- package/dist/agent-operations/door-clearance.js +61 -4
- package/dist/agent-operations/duplicate-level.d.ts.map +1 -1
- package/dist/agent-operations/duplicate-level.js +2 -1
- package/dist/agent-operations/find-by-type.d.ts +14 -7
- package/dist/agent-operations/find-by-type.d.ts.map +1 -1
- package/dist/agent-operations/find-by-type.js +266 -43
- package/dist/agent-operations/furnish-room.d.ts +22 -1
- package/dist/agent-operations/furnish-room.d.ts.map +1 -1
- package/dist/agent-operations/furnish-room.js +66 -19
- package/dist/agent-operations/furniture-kind.d.ts +22 -0
- package/dist/agent-operations/furniture-kind.d.ts.map +1 -0
- package/dist/agent-operations/furniture-kind.js +69 -0
- package/dist/agent-operations/get-node.d.ts +5 -2
- package/dist/agent-operations/get-node.d.ts.map +1 -1
- package/dist/agent-operations/get-node.js +82 -10
- package/dist/agent-operations/hosted-services.d.ts +2 -1
- package/dist/agent-operations/hosted-services.d.ts.map +1 -1
- package/dist/agent-operations/index.d.ts +281 -69
- package/dist/agent-operations/index.d.ts.map +1 -1
- package/dist/agent-operations/index.js +66 -5
- package/dist/agent-operations/item-space.d.ts +22 -0
- package/dist/agent-operations/item-space.d.ts.map +1 -0
- package/dist/agent-operations/item-space.js +69 -0
- package/dist/agent-operations/layout-clearance.d.ts +52 -3
- package/dist/agent-operations/layout-clearance.d.ts.map +1 -1
- package/dist/agent-operations/layout-clearance.js +340 -30
- package/dist/agent-operations/level-height-fill.d.ts +12 -0
- package/dist/agent-operations/level-height-fill.d.ts.map +1 -0
- package/dist/agent-operations/level-height-fill.js +59 -0
- package/dist/agent-operations/level-reads.d.ts +5 -1
- package/dist/agent-operations/level-reads.d.ts.map +1 -1
- package/dist/agent-operations/level-reads.js +10 -3
- package/dist/agent-operations/list-levels.d.ts.map +1 -1
- package/dist/agent-operations/list-levels.js +23 -0
- package/dist/agent-operations/material-preset.d.ts.map +1 -1
- package/dist/agent-operations/material-preset.js +3 -9
- package/dist/agent-operations/material-refs.d.ts +7 -1
- package/dist/agent-operations/material-refs.d.ts.map +1 -1
- package/dist/agent-operations/material-refs.js +10 -5
- package/dist/agent-operations/merge-windows.d.ts +6 -0
- package/dist/agent-operations/merge-windows.d.ts.map +1 -0
- package/dist/agent-operations/merge-windows.js +27 -0
- package/dist/agent-operations/move-roofs.d.ts +9 -0
- package/dist/agent-operations/move-roofs.d.ts.map +1 -0
- package/dist/agent-operations/move-roofs.js +29 -0
- package/dist/agent-operations/paint.d.ts +2 -1
- package/dist/agent-operations/paint.d.ts.map +1 -1
- package/dist/agent-operations/paint.js +163 -53
- package/dist/agent-operations/photo-elevation.d.ts +155 -0
- package/dist/agent-operations/photo-elevation.d.ts.map +1 -0
- package/dist/agent-operations/photo-elevation.js +761 -0
- package/dist/agent-operations/place-in-room.d.ts +29 -0
- package/dist/agent-operations/place-in-room.d.ts.map +1 -0
- package/dist/agent-operations/place-in-room.js +403 -0
- package/dist/agent-operations/place-items.d.ts.map +1 -1
- package/dist/agent-operations/place-items.js +15 -2
- package/dist/agent-operations/plan-geometry.d.ts.map +1 -1
- package/dist/agent-operations/plan-geometry.js +3 -0
- package/dist/agent-operations/point-context.d.ts +139 -0
- package/dist/agent-operations/point-context.d.ts.map +1 -0
- package/dist/agent-operations/point-context.js +1 -0
- package/dist/agent-operations/project-files.d.ts +9 -0
- package/dist/agent-operations/project-files.d.ts.map +1 -0
- package/dist/agent-operations/project-files.js +25 -0
- package/dist/agent-operations/record-made.d.ts +18 -0
- package/dist/agent-operations/record-made.d.ts.map +1 -0
- package/dist/agent-operations/record-made.js +28 -0
- package/dist/agent-operations/roof-footprint.d.ts +24 -0
- package/dist/agent-operations/roof-footprint.d.ts.map +1 -0
- package/dist/agent-operations/roof-footprint.js +242 -0
- package/dist/agent-operations/roof-writes.d.ts +20 -0
- package/dist/agent-operations/roof-writes.d.ts.map +1 -0
- package/dist/agent-operations/roof-writes.js +165 -0
- package/dist/agent-operations/room-findings.d.ts +54 -0
- package/dist/agent-operations/room-findings.d.ts.map +1 -0
- package/dist/agent-operations/room-findings.js +143 -0
- package/dist/agent-operations/room-floor-script.d.ts +23 -0
- package/dist/agent-operations/room-floor-script.d.ts.map +1 -0
- package/dist/agent-operations/room-floor-script.js +54 -0
- package/dist/agent-operations/room-structure.d.ts +2 -2
- package/dist/agent-operations/room-structure.d.ts.map +1 -1
- package/dist/agent-operations/scene-checkpoint.d.ts +94 -0
- package/dist/agent-operations/scene-checkpoint.d.ts.map +1 -0
- package/dist/agent-operations/scene-checkpoint.js +176 -0
- package/dist/agent-operations/scene-queries.d.ts +3750 -3319
- package/dist/agent-operations/scene-queries.d.ts.map +1 -1
- package/dist/agent-operations/scene-queries.js +13 -23
- package/dist/agent-operations/scene-review.d.ts +52 -0
- package/dist/agent-operations/scene-review.d.ts.map +1 -0
- package/dist/agent-operations/scene-review.js +106 -0
- package/dist/agent-operations/scene-view.d.ts +82 -15
- package/dist/agent-operations/scene-view.d.ts.map +1 -1
- package/dist/agent-operations/scene-view.js +408 -51
- package/dist/agent-operations/search-assets.d.ts +2 -2
- package/dist/agent-operations/search-assets.d.ts.map +1 -1
- package/dist/agent-operations/search-assets.js +4 -3
- package/dist/agent-operations/search-materials.d.ts +9 -3
- package/dist/agent-operations/search-materials.d.ts.map +1 -1
- package/dist/agent-operations/search-materials.js +83 -29
- package/dist/agent-operations/set-checkpoint.d.ts +9 -0
- package/dist/agent-operations/set-checkpoint.d.ts.map +1 -0
- package/dist/agent-operations/set-checkpoint.js +31 -0
- package/dist/agent-operations/set-ground-level.d.ts +12 -0
- package/dist/agent-operations/set-ground-level.d.ts.map +1 -0
- package/dist/agent-operations/set-ground-level.js +61 -0
- package/dist/agent-operations/site.d.ts +21 -0
- package/dist/agent-operations/site.d.ts.map +1 -0
- package/dist/agent-operations/site.js +123 -0
- package/dist/agent-operations/types.d.ts +66 -7
- package/dist/agent-operations/types.d.ts.map +1 -1
- package/dist/agent-operations/verify-scene.d.ts +39 -5
- package/dist/agent-operations/verify-scene.d.ts.map +1 -1
- package/dist/agent-operations/verify-scene.js +223 -44
- package/dist/agent-operations/wall-face-script.d.ts +28 -0
- package/dist/agent-operations/wall-face-script.d.ts.map +1 -0
- package/dist/agent-operations/wall-face-script.js +62 -0
- package/dist/agent-operations/wall-object-observations.d.ts +41 -0
- package/dist/agent-operations/wall-object-observations.d.ts.map +1 -0
- package/dist/agent-operations/wall-object-observations.js +249 -0
- package/dist/agent-operations/wall-opening.d.ts +23 -23
- package/dist/agent-operations/wall-opening.d.ts.map +1 -1
- package/dist/agent-operations/wall-skirting.d.ts +24 -0
- package/dist/agent-operations/wall-skirting.d.ts.map +1 -0
- package/dist/agent-operations/wall-skirting.js +85 -0
- package/dist/agent-tools/add-object.d.ts +11 -7
- package/dist/agent-tools/add-object.d.ts.map +1 -1
- package/dist/agent-tools/add-object.js +17 -11
- package/dist/agent-tools/assets.d.ts +8 -0
- package/dist/agent-tools/assets.d.ts.map +1 -1
- package/dist/agent-tools/assets.js +13 -1
- package/dist/agent-tools/author-scene.d.ts +651 -0
- package/dist/agent-tools/author-scene.d.ts.map +1 -0
- package/dist/agent-tools/author-scene.js +252 -0
- package/dist/agent-tools/batch.d.ts +25 -0
- package/dist/agent-tools/batch.d.ts.map +1 -0
- package/dist/agent-tools/batch.js +61 -0
- package/dist/agent-tools/checkpoints.d.ts +13 -0
- package/dist/agent-tools/checkpoints.d.ts.map +1 -0
- package/dist/agent-tools/checkpoints.js +16 -0
- package/dist/agent-tools/clear-scene.d.ts.map +1 -1
- package/dist/agent-tools/collections.d.ts +6 -6
- package/dist/agent-tools/collections.d.ts.map +1 -1
- package/dist/agent-tools/columns.d.ts +18 -18
- package/dist/agent-tools/columns.js +2 -2
- package/dist/agent-tools/corner-window.d.ts +46 -0
- package/dist/agent-tools/corner-window.d.ts.map +1 -0
- package/dist/agent-tools/corner-window.js +47 -0
- package/dist/agent-tools/create-room.d.ts +26 -25
- package/dist/agent-tools/create-room.d.ts.map +1 -1
- package/dist/agent-tools/create-room.js +11 -4
- package/dist/agent-tools/design-brief.d.ts +408 -0
- package/dist/agent-tools/design-brief.d.ts.map +1 -0
- package/dist/agent-tools/design-brief.js +149 -0
- package/dist/agent-tools/designs.d.ts +34 -0
- package/dist/agent-tools/designs.d.ts.map +1 -0
- package/dist/agent-tools/designs.js +50 -0
- package/dist/agent-tools/fences.d.ts +28 -0
- package/dist/agent-tools/fences.d.ts.map +1 -0
- package/dist/agent-tools/fences.js +31 -0
- package/dist/agent-tools/find-by-type.d.ts +8 -1
- package/dist/agent-tools/find-by-type.d.ts.map +1 -1
- package/dist/agent-tools/find-by-type.js +23 -2
- package/dist/agent-tools/furnish-room.d.ts +10 -8
- package/dist/agent-tools/furnish-room.d.ts.map +1 -1
- package/dist/agent-tools/furnish-room.js +3 -1
- package/dist/agent-tools/hosted-services.d.ts +177 -141
- package/dist/agent-tools/hosted-services.d.ts.map +1 -1
- package/dist/agent-tools/hosted-services.js +47 -14
- package/dist/agent-tools/index.d.ts +894 -215
- package/dist/agent-tools/index.d.ts.map +1 -1
- package/dist/agent-tools/index.js +47 -3
- package/dist/agent-tools/levels.d.ts +11 -3
- package/dist/agent-tools/levels.d.ts.map +1 -1
- package/dist/agent-tools/levels.js +16 -5
- package/dist/agent-tools/measurement.d.ts +38 -20
- package/dist/agent-tools/measurement.d.ts.map +1 -1
- package/dist/agent-tools/measurement.js +117 -67
- package/dist/agent-tools/merge-windows.d.ts +10 -0
- package/dist/agent-tools/merge-windows.d.ts.map +1 -0
- package/dist/agent-tools/merge-windows.js +12 -0
- package/dist/agent-tools/nodes.d.ts.map +1 -1
- package/dist/agent-tools/nodes.js +1 -1
- package/dist/agent-tools/notation-inventory.d.ts +16 -0
- package/dist/agent-tools/notation-inventory.d.ts.map +1 -0
- package/dist/agent-tools/notation-inventory.js +105 -0
- package/dist/agent-tools/paint.d.ts +5 -5
- package/dist/agent-tools/paint.d.ts.map +1 -1
- package/dist/agent-tools/paint.js +1 -1
- package/dist/agent-tools/photo-elevation.d.ts +32 -0
- package/dist/agent-tools/photo-elevation.d.ts.map +1 -0
- package/dist/agent-tools/photo-elevation.js +73 -0
- package/dist/agent-tools/place-in-room.d.ts +35 -0
- package/dist/agent-tools/place-in-room.d.ts.map +1 -0
- package/dist/agent-tools/place-in-room.js +61 -0
- package/dist/agent-tools/place-items.d.ts +1 -1
- package/dist/agent-tools/place-items.js +2 -2
- package/dist/agent-tools/project-files.d.ts +189 -0
- package/dist/agent-tools/project-files.d.ts.map +1 -0
- package/dist/agent-tools/project-files.js +99 -0
- package/dist/agent-tools/refusal.d.ts.map +1 -1
- package/dist/agent-tools/retired.d.ts +21 -0
- package/dist/agent-tools/retired.d.ts.map +1 -0
- package/dist/agent-tools/retired.js +29 -0
- package/dist/agent-tools/roofs.d.ts +100 -0
- package/dist/agent-tools/roofs.d.ts.map +1 -0
- package/dist/agent-tools/roofs.js +96 -0
- package/dist/agent-tools/room-structure.d.ts +46 -38
- package/dist/agent-tools/room-structure.d.ts.map +1 -1
- package/dist/agent-tools/room-structure.js +30 -27
- package/dist/agent-tools/search-materials.d.ts +22 -3
- package/dist/agent-tools/search-materials.d.ts.map +1 -1
- package/dist/agent-tools/search-materials.js +13 -14
- package/dist/agent-tools/site.d.ts +27 -0
- package/dist/agent-tools/site.d.ts.map +1 -0
- package/dist/agent-tools/site.js +40 -0
- package/dist/agent-tools/sources.d.ts +12 -0
- package/dist/agent-tools/sources.d.ts.map +1 -0
- package/dist/agent-tools/sources.js +11 -0
- package/dist/agent-tools/stairs.d.ts +48 -28
- package/dist/agent-tools/stairs.d.ts.map +1 -1
- package/dist/agent-tools/stairs.js +65 -22
- package/dist/agent-tools/verify-scene.d.ts.map +1 -1
- package/dist/agent-tools/verify-scene.js +1 -1
- package/dist/agent-tools/view-scene.d.ts +50 -12
- package/dist/agent-tools/view-scene.d.ts.map +1 -1
- package/dist/agent-tools/view-scene.js +74 -31
- package/dist/agent-tools/wall-openings.d.ts +77 -73
- package/dist/agent-tools/wall-openings.d.ts.map +1 -1
- package/dist/agent-tools/wall-openings.js +9 -5
- package/dist/agent-tools/walls.d.ts +4 -4
- package/dist/agent-tools/walls.d.ts.map +1 -1
- package/dist/agent-tools/walls.js +7 -2
- package/dist/building/__fixtures__/wall-opening-cases.d.ts +454 -250
- package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -1
- package/dist/building/__fixtures__/wall-opening-cases.js +62 -2
- package/dist/building/corner-window.d.ts +56 -0
- package/dist/building/corner-window.d.ts.map +1 -0
- package/dist/building/corner-window.js +179 -0
- package/dist/building/ground-level.d.ts +26 -0
- package/dist/building/ground-level.d.ts.map +1 -0
- package/dist/building/ground-level.js +58 -0
- package/dist/building/index.d.ts +5 -0
- package/dist/building/index.d.ts.map +1 -1
- package/dist/building/index.js +5 -0
- package/dist/building/level-duplication.d.ts +7472 -6613
- package/dist/building/level-duplication.d.ts.map +1 -1
- package/dist/building/level-duplication.js +18 -4
- package/dist/building/level-insertion.d.ts +55 -0
- package/dist/building/level-insertion.d.ts.map +1 -0
- package/dist/building/level-insertion.js +35 -0
- package/dist/building/merge-windows.d.ts +58 -0
- package/dist/building/merge-windows.d.ts.map +1 -0
- package/dist/building/merge-windows.js +189 -0
- package/dist/building/opening-style-presets.d.ts +2 -2
- package/dist/building/opening-style-presets.d.ts.map +1 -1
- package/dist/building/photo-elevation.d.ts +125 -0
- package/dist/building/photo-elevation.d.ts.map +1 -0
- package/dist/building/photo-elevation.js +404 -0
- package/dist/building/wall-gaps.d.ts +13 -0
- package/dist/building/wall-gaps.d.ts.map +1 -0
- package/dist/building/wall-gaps.js +158 -0
- package/dist/building/wall-openings.d.ts +154 -119
- package/dist/building/wall-openings.d.ts.map +1 -1
- package/dist/building/wall-openings.js +37 -9
- package/dist/capture/schema.d.ts +22 -22
- package/dist/capture/source.d.ts.map +1 -1
- package/dist/capture/source.js +1 -1
- package/dist/commands/structure/create-zone.d.ts +12 -1
- package/dist/commands/structure/create-zone.d.ts.map +1 -1
- package/dist/commands/structure/create-zone.js +49 -0
- package/dist/commands/structure/divide-zone.d.ts +3 -3
- package/dist/commands/structure/index.d.ts +1 -1
- package/dist/commands/structure/index.d.ts.map +1 -1
- package/dist/commands/structure/index.js +1 -1
- package/dist/commands/structure/set-floor-foundation.d.ts +6 -6
- package/dist/commands/structure/set-zone-intent.d.ts +4 -0
- package/dist/commands/structure/set-zone-intent.d.ts.map +1 -1
- package/dist/commands/structure/set-zone-intent.js +19 -0
- package/dist/commands/structure/shared.d.ts +3642 -3213
- package/dist/commands/structure/shared.d.ts.map +1 -1
- package/dist/commands/structure/zone-wall-merge.d.ts +4149 -3334
- package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -1
- package/dist/contracts/reference-inventory.d.ts.map +1 -1
- package/dist/contracts/reference-inventory.js +106 -26
- package/dist/events/bus.d.ts +22 -3
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/events/capture-sessions.d.ts +5 -0
- package/dist/events/capture-sessions.d.ts.map +1 -0
- package/dist/events/capture-sessions.js +31 -0
- package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +1 -2
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +4 -6
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +3608 -3179
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/support-host-patch.js +11 -2
- package/dist/hooks/spatial-grid/use-spatial-query.d.ts +3 -3
- package/dist/hooks/spatial-grid/wall-spatial-grid.d.ts.map +1 -1
- package/dist/index.d.ts +37 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -9
- package/dist/lib/__fixtures__/mezzanine.d.ts +11800 -10132
- package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -1
- package/dist/lib/absorb-wall-separators.d.ts +3642 -3213
- package/dist/lib/absorb-wall-separators.d.ts.map +1 -1
- package/dist/lib/angle-accumulator.d.ts.map +1 -1
- package/dist/lib/artifact-store.d.ts.map +1 -1
- package/dist/lib/below-grade-footprints.d.ts +65 -0
- package/dist/lib/below-grade-footprints.d.ts.map +1 -0
- package/dist/lib/below-grade-footprints.js +181 -0
- package/dist/lib/building-footprint.d.ts +33 -0
- package/dist/lib/building-footprint.d.ts.map +1 -0
- package/dist/lib/building-footprint.js +89 -0
- package/dist/lib/corner-pair.d.ts +1129 -0
- package/dist/lib/corner-pair.d.ts.map +1 -0
- package/dist/lib/corner-pair.js +130 -0
- package/dist/lib/corner-snap.d.ts +54 -0
- package/dist/lib/corner-snap.d.ts.map +1 -0
- package/dist/lib/corner-snap.js +125 -0
- package/dist/lib/critically-damped.d.ts +11 -0
- package/dist/lib/critically-damped.d.ts.map +1 -0
- package/dist/lib/critically-damped.js +14 -0
- package/dist/lib/deepest-drawn.d.ts +18 -0
- package/dist/lib/deepest-drawn.d.ts.map +1 -0
- package/dist/lib/deepest-drawn.js +65 -0
- package/dist/lib/door-operation.d.ts +1 -1
- package/dist/lib/exterior-wall-loops.d.ts +17 -0
- package/dist/lib/exterior-wall-loops.d.ts.map +1 -0
- package/dist/lib/exterior-wall-loops.js +334 -0
- package/dist/lib/finish-script.d.ts +61 -0
- package/dist/lib/finish-script.d.ts.map +1 -0
- package/dist/lib/finish-script.js +86 -0
- package/dist/lib/floor-intent-changes.d.ts.map +1 -1
- package/dist/lib/floor-intent-changes.js +4 -4
- package/dist/lib/floor-plate-paint.d.ts +3 -1
- package/dist/lib/floor-plate-paint.d.ts.map +1 -1
- package/dist/lib/floor-plate-paint.js +24 -4
- package/dist/lib/floor-plates.d.ts +50 -50
- package/dist/lib/floor-script.d.ts +24 -0
- package/dist/lib/floor-script.d.ts.map +1 -0
- package/dist/lib/floor-script.js +51 -0
- package/dist/lib/foundation-construction.d.ts +73 -0
- package/dist/lib/foundation-construction.d.ts.map +1 -0
- package/dist/lib/foundation-construction.js +242 -0
- package/dist/lib/foundation-standard.d.ts +30 -0
- package/dist/lib/foundation-standard.d.ts.map +1 -0
- package/dist/lib/foundation-standard.js +30 -0
- package/dist/lib/foundation-wall.d.ts +36 -0
- package/dist/lib/foundation-wall.d.ts.map +1 -0
- package/dist/lib/foundation-wall.js +66 -0
- package/dist/lib/generic-foundation.d.ts +40 -0
- package/dist/lib/generic-foundation.d.ts.map +1 -0
- package/dist/lib/generic-foundation.js +200 -0
- package/dist/lib/geometry-script-node.d.ts +32 -3
- package/dist/lib/geometry-script-node.d.ts.map +1 -1
- package/dist/lib/geometry-script-node.js +26 -0
- package/dist/lib/grade-standing.d.ts +38 -0
- package/dist/lib/grade-standing.d.ts.map +1 -0
- package/dist/lib/grade-standing.js +137 -0
- package/dist/lib/ground-level.d.ts +20 -0
- package/dist/lib/ground-level.d.ts.map +1 -0
- package/dist/lib/ground-level.js +49 -0
- package/dist/lib/ground-over-part.d.ts +13 -0
- package/dist/lib/ground-over-part.d.ts.map +1 -0
- package/dist/lib/ground-over-part.js +94 -0
- package/dist/lib/ground-seat.d.ts +47 -0
- package/dist/lib/ground-seat.d.ts.map +1 -0
- package/dist/lib/ground-seat.js +61 -0
- package/dist/lib/ground-window.d.ts +39 -0
- package/dist/lib/ground-window.d.ts.map +1 -0
- package/dist/lib/ground-window.js +147 -0
- package/dist/lib/opening-floor-datum.d.ts.map +1 -1
- package/dist/lib/opening-floor-datum.js +2 -3
- package/dist/lib/own-floor-intent.d.ts.map +1 -1
- package/dist/lib/own-floor-intent.js +4 -4
- package/dist/lib/plate-surface.d.ts.map +1 -1
- package/dist/lib/plate-surface.js +3 -1
- package/dist/lib/point-ask.d.ts +9 -0
- package/dist/lib/point-ask.d.ts.map +1 -0
- package/dist/lib/point-ask.js +36 -0
- package/dist/lib/room-drawn-floor.d.ts +1 -1
- package/dist/lib/room-drawn-floor.d.ts.map +1 -1
- package/dist/lib/room-floor-feasibility.d.ts.map +1 -1
- package/dist/lib/room-floor-feasibility.js +3 -3
- package/dist/lib/room-graph.d.ts.map +1 -1
- package/dist/lib/room-graph.js +2 -0
- package/dist/lib/room-name.d.ts +2 -0
- package/dist/lib/room-name.d.ts.map +1 -1
- package/dist/lib/room-name.js +2 -0
- package/dist/lib/room-topology-index.d.ts.map +1 -1
- package/dist/lib/room-topology-index.js +1 -1
- package/dist/lib/room-zone-adoption.d.ts.map +1 -1
- package/dist/lib/script-inputs-key.d.ts +3 -0
- package/dist/lib/script-inputs-key.d.ts.map +1 -0
- package/dist/lib/script-inputs-key.js +13 -0
- package/dist/lib/setback-envelope.d.ts +95 -5
- package/dist/lib/setback-envelope.d.ts.map +1 -1
- package/dist/lib/setback-envelope.js +351 -35
- package/dist/lib/site-flatwork.d.ts +11 -0
- package/dist/lib/site-flatwork.d.ts.map +1 -0
- package/dist/lib/site-flatwork.js +11 -0
- package/dist/lib/site-ground-height.d.ts +13 -0
- package/dist/lib/site-ground-height.d.ts.map +1 -0
- package/dist/lib/site-ground-height.js +16 -0
- package/dist/lib/site-placement.d.ts +362 -0
- package/dist/lib/site-placement.d.ts.map +1 -0
- package/dist/lib/site-placement.js +942 -0
- package/dist/lib/snap-ease.d.ts +20 -0
- package/dist/lib/snap-ease.d.ts.map +1 -0
- package/dist/lib/snap-ease.js +50 -0
- package/dist/lib/structure-kernel.d.ts +1 -1
- package/dist/lib/structure-kernel.d.ts.map +1 -1
- package/dist/lib/structure-kernel.js +2 -0
- package/dist/lib/surface-support-references.d.ts +4 -0
- package/dist/lib/surface-support-references.d.ts.map +1 -0
- package/dist/lib/surface-support-references.js +19 -0
- package/dist/lib/terrain-support-query.d.ts +10 -0
- package/dist/lib/terrain-support-query.d.ts.map +1 -1
- package/dist/lib/terrain-support-query.js +1 -1
- package/dist/lib/wall-face-script.d.ts +66 -0
- package/dist/lib/wall-face-script.d.ts.map +1 -0
- package/dist/lib/wall-face-script.js +235 -0
- package/dist/lib/zone-colors.d.ts +1 -1
- package/dist/lib/zone-colors.d.ts.map +1 -1
- package/dist/lib/zone-quantities.d.ts.map +1 -1
- package/dist/lib/zone-quantities.js +4 -5
- package/dist/material-kinds.d.ts +9 -0
- package/dist/material-kinds.d.ts.map +1 -0
- package/dist/material-kinds.js +30 -0
- package/dist/material-library.d.ts +4 -4
- package/dist/material-library.d.ts.map +1 -1
- package/dist/material-library.js +72 -26
- package/dist/node-slots/index.d.ts +1 -0
- package/dist/node-slots/index.d.ts.map +1 -1
- package/dist/node-slots/index.js +7 -1
- package/dist/node-slots/roof.d.ts +5 -0
- package/dist/node-slots/roof.d.ts.map +1 -0
- package/dist/node-slots/roof.js +12 -0
- package/dist/node-slots/stair.d.ts +2 -0
- package/dist/node-slots/stair.d.ts.map +1 -1
- package/dist/node-slots/stair.js +6 -2
- package/dist/procedural-items/design-placement.d.ts.map +1 -1
- package/dist/procedural-items/design.d.ts +19 -19
- package/dist/procedural-items/fixtures.d.ts +297 -297
- package/dist/procedural-items/fixtures.d.ts.map +1 -1
- package/dist/procedural-items/integration.d.ts +106 -106
- package/dist/procedural-items/joints.d.ts +4 -4
- package/dist/procedural-items/library-colors.d.ts +22 -22
- package/dist/procedural-items/library-colors.d.ts.map +1 -1
- package/dist/procedural-items/motion-controller.d.ts.map +1 -1
- package/dist/procedural-items/node.d.ts +291 -291
- package/dist/procedural-items/query.d.ts +1 -1
- package/dist/procedural-items/query.d.ts.map +1 -1
- package/dist/procedural-items/recipe.d.ts +11 -11
- package/dist/procedural-items/recipe.d.ts.map +1 -1
- package/dist/procedural-items/section.d.ts.map +1 -1
- package/dist/registry/index.d.ts +1 -1
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/scene-api.d.ts +1 -0
- package/dist/registry/scene-api.d.ts.map +1 -1
- package/dist/registry/scene-api.js +3 -0
- package/dist/registry/subtree.d.ts.map +1 -1
- package/dist/registry/subtree.js +2 -0
- package/dist/registry/types.d.ts +120 -1
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/schema/assembly.d.ts +41 -41
- package/dist/schema/asset-url.d.ts +1 -1
- package/dist/schema/asset-url.d.ts.map +1 -1
- package/dist/schema/base.d.ts +9 -9
- package/dist/schema/base.d.ts.map +1 -1
- package/dist/schema/camera.d.ts +1 -1
- package/dist/schema/collection-templates.d.ts +20 -20
- package/dist/schema/collection-templates.d.ts.map +1 -1
- package/dist/schema/geometry-metadata.d.ts +7 -7
- package/dist/schema/geometry-metadata.d.ts.map +1 -1
- package/dist/schema/geometry-source.d.ts +26 -16
- package/dist/schema/geometry-source.d.ts.map +1 -1
- package/dist/schema/geometry-source.js +14 -0
- package/dist/schema/index.d.ts +10 -7
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +10 -7
- package/dist/schema/material.d.ts +33 -33
- package/dist/schema/nodes/barrel-roof.d.ts +3 -0
- package/dist/schema/nodes/barrel-roof.d.ts.map +1 -0
- package/dist/schema/nodes/barrel-roof.js +11 -0
- package/dist/schema/nodes/block.d.ts +8 -8
- package/dist/schema/nodes/box-vent.d.ts +13 -13
- package/dist/schema/nodes/building.d.ts +9 -8
- package/dist/schema/nodes/building.d.ts.map +1 -1
- package/dist/schema/nodes/building.js +2 -0
- package/dist/schema/nodes/cabinet.d.ts +130 -129
- package/dist/schema/nodes/cabinet.d.ts.map +1 -1
- package/dist/schema/nodes/cabinet.js +1 -1
- package/dist/schema/nodes/ceiling.d.ts +15 -15
- package/dist/schema/nodes/chimney.d.ts +23 -23
- package/dist/schema/nodes/column.d.ts +207 -199
- package/dist/schema/nodes/column.d.ts.map +1 -1
- package/dist/schema/nodes/column.js +2 -0
- package/dist/schema/nodes/construction-dimension.d.ts +34 -34
- package/dist/schema/nodes/cupola.d.ts +15 -15
- package/dist/schema/nodes/curtain-wall.d.ts +21 -20
- package/dist/schema/nodes/curtain-wall.d.ts.map +1 -1
- package/dist/schema/nodes/curtain-wall.js +23 -0
- package/dist/schema/nodes/door.d.ts +50 -43
- package/dist/schema/nodes/door.d.ts.map +1 -1
- package/dist/schema/nodes/door.js +19 -0
- package/dist/schema/nodes/dormer.d.ts +37 -36
- package/dist/schema/nodes/dormer.d.ts.map +1 -1
- package/dist/schema/nodes/downspout.d.ts +17 -17
- package/dist/schema/nodes/duct-fitting.d.ts +24 -24
- package/dist/schema/nodes/duct-segment.d.ts +14 -14
- package/dist/schema/nodes/duct-terminal.d.ts +12 -12
- package/dist/schema/nodes/elevator.d.ts +15 -15
- package/dist/schema/nodes/eyebrow-vent.d.ts +13 -13
- package/dist/schema/nodes/fence-feature.d.ts +37 -37
- package/dist/schema/nodes/fence-types.d.ts +32 -0
- package/dist/schema/nodes/fence-types.d.ts.map +1 -0
- package/dist/schema/nodes/fence-types.js +22 -0
- package/dist/schema/nodes/fence.d.ts +43 -72
- package/dist/schema/nodes/fence.d.ts.map +1 -1
- package/dist/schema/nodes/fence.js +4 -20
- package/dist/schema/nodes/floor-opening.d.ts +8 -8
- package/dist/schema/nodes/guide.d.ts +8 -8
- package/dist/schema/nodes/gutter.d.ts +14 -14
- package/dist/schema/nodes/gutter.d.ts.map +1 -1
- package/dist/schema/nodes/gutter.js +6 -5
- package/dist/schema/nodes/hvac-equipment.d.ts +13 -13
- package/dist/schema/nodes/imported-mesh.d.ts +8 -8
- package/dist/schema/nodes/item.d.ts +30 -25
- package/dist/schema/nodes/item.d.ts.map +1 -1
- package/dist/schema/nodes/lean-to-extension.d.ts +36 -36
- package/dist/schema/nodes/level.d.ts +9 -9
- package/dist/schema/nodes/lineset.d.ts +8 -8
- package/dist/schema/nodes/liquid-line.d.ts +8 -8
- package/dist/schema/nodes/measurement.d.ts +8 -8
- package/dist/schema/nodes/opening-types.d.ts +13 -13
- package/dist/schema/nodes/opening-types.d.ts.map +1 -1
- package/dist/schema/nodes/pipe-fitting.d.ts +15 -15
- package/dist/schema/nodes/pipe-segment.d.ts +11 -11
- package/dist/schema/nodes/pipe-trap.d.ts +9 -9
- package/dist/schema/nodes/ridge-vent.d.ts +14 -14
- package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
- package/dist/schema/nodes/ridge-vent.js +3 -1
- package/dist/schema/nodes/roof-glazing-config.d.ts +90 -0
- package/dist/schema/nodes/roof-glazing-config.d.ts.map +1 -0
- package/dist/schema/nodes/roof-glazing-config.js +34 -0
- package/dist/schema/nodes/roof-glazing.d.ts +57 -0
- package/dist/schema/nodes/roof-glazing.d.ts.map +1 -0
- package/dist/schema/nodes/roof-glazing.js +514 -0
- package/dist/schema/nodes/roof-segment-resize.d.ts +4 -0
- package/dist/schema/nodes/roof-segment-resize.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-resize.js +21 -0
- package/dist/schema/nodes/roof-segment-shape.d.ts +5 -0
- package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment-shape.js +44 -0
- package/dist/schema/nodes/roof-segment-walls.d.ts +1 -1
- package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment-walls.js +24 -0
- package/dist/schema/nodes/roof-segment.d.ts +153 -46
- package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.js +91 -20
- package/dist/schema/nodes/roof-types.d.ts +14 -0
- package/dist/schema/nodes/roof-types.d.ts.map +1 -0
- package/dist/schema/nodes/roof-types.js +14 -0
- package/dist/schema/nodes/roof.d.ts +49 -49
- package/dist/schema/nodes/scan.d.ts +8 -8
- package/dist/schema/nodes/separator.d.ts +8 -8
- package/dist/schema/nodes/shelf.d.ts +16 -16
- package/dist/schema/nodes/site-facts.d.ts +64 -0
- package/dist/schema/nodes/site-facts.d.ts.map +1 -0
- package/dist/schema/nodes/site-facts.js +73 -0
- package/dist/schema/nodes/site.d.ts +105 -63
- package/dist/schema/nodes/site.d.ts.map +1 -1
- package/dist/schema/nodes/site.js +7 -70
- package/dist/schema/nodes/skylight.d.ts +41 -41
- package/dist/schema/nodes/skylight.d.ts.map +1 -1
- package/dist/schema/nodes/slab.d.ts +21 -21
- package/dist/schema/nodes/solar-panel.d.ts +21 -21
- package/dist/schema/nodes/spawn.d.ts +8 -8
- package/dist/schema/nodes/stair-construction.d.ts +3 -3
- package/dist/schema/nodes/stair-defaults.d.ts +16 -0
- package/dist/schema/nodes/stair-defaults.d.ts.map +1 -0
- package/dist/schema/nodes/stair-defaults.js +15 -0
- package/dist/schema/nodes/stair-segment.d.ts +22 -22
- package/dist/schema/nodes/stair-types.d.ts +29 -0
- package/dist/schema/nodes/stair-types.d.ts.map +1 -0
- package/dist/schema/nodes/stair-types.js +23 -0
- package/dist/schema/nodes/stair.d.ts +51 -75
- package/dist/schema/nodes/stair.d.ts.map +1 -1
- package/dist/schema/nodes/stair.js +6 -20
- package/dist/schema/nodes/structural-grid.d.ts +8 -8
- package/dist/schema/nodes/surface-hole-metadata.d.ts +2 -2
- package/dist/schema/nodes/turbine-vent.d.ts +13 -13
- package/dist/schema/nodes/unit.d.ts +10 -10
- package/dist/schema/nodes/unit.d.ts.map +1 -1
- package/dist/schema/nodes/wall.d.ts +479 -146
- package/dist/schema/nodes/wall.d.ts.map +1 -1
- package/dist/schema/nodes/wall.js +19 -0
- package/dist/schema/nodes/window.d.ts +55 -39
- package/dist/schema/nodes/window.d.ts.map +1 -1
- package/dist/schema/nodes/window.js +10 -0
- package/dist/schema/nodes/zone.d.ts +231 -12
- package/dist/schema/nodes/zone.d.ts.map +1 -1
- package/dist/schema/nodes/zone.js +10 -0
- package/dist/schema/provenance.d.ts +21 -21
- package/dist/schema/scene-material.d.ts +5 -5
- package/dist/schema/site-presentation.d.ts +100 -0
- package/dist/schema/site-presentation.d.ts.map +1 -0
- package/dist/schema/site-presentation.js +83 -0
- package/dist/schema/types.d.ts +1954 -1414
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/services/__fixtures__/wall-plane-top-boundary-repro.d.ts.map +1 -1
- package/dist/services/index.d.ts +5 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +5 -1
- package/dist/services/level-height.d.ts.map +1 -1
- package/dist/services/level-height.js +7 -3
- package/dist/services/port-connectivity.d.ts +4 -0
- package/dist/services/port-connectivity.d.ts.map +1 -1
- package/dist/services/port-connectivity.js +35 -0
- package/dist/services/project-file-sink.d.ts +9 -0
- package/dist/services/project-file-sink.d.ts.map +1 -0
- package/dist/services/project-file-sink.js +13 -0
- package/dist/services/roof-bearing.d.ts +62 -0
- package/dist/services/roof-bearing.d.ts.map +1 -0
- package/dist/services/roof-bearing.js +234 -0
- package/dist/services/roof-level.d.ts +121 -0
- package/dist/services/roof-level.d.ts.map +1 -0
- package/dist/services/roof-level.js +280 -0
- package/dist/services/roof-move.d.ts +83 -0
- package/dist/services/roof-move.d.ts.map +1 -0
- package/dist/services/roof-move.js +316 -0
- package/dist/services/stair-surface-snap.d.ts +14 -0
- package/dist/services/stair-surface-snap.d.ts.map +1 -0
- package/dist/services/stair-surface-snap.js +116 -0
- package/dist/services/storey-datum.d.ts +12 -0
- package/dist/services/storey-datum.d.ts.map +1 -0
- package/dist/services/storey-datum.js +18 -0
- package/dist/services/storey.d.ts +51 -5
- package/dist/services/storey.d.ts.map +1 -1
- package/dist/services/storey.js +125 -8
- package/dist/solar-panel-presets.d.ts +2 -2
- package/dist/store/actions/node-actions.d.ts +3613 -3182
- package/dist/store/actions/node-actions.d.ts.map +1 -1
- package/dist/store/actions/node-actions.js +46 -1
- package/dist/store/derived-node-guard.d.ts.map +1 -1
- package/dist/store/history-control.d.ts +39 -0
- package/dist/store/history-control.d.ts.map +1 -1
- package/dist/store/history-control.js +84 -4
- package/dist/store/scene-annotations.d.ts +7267 -6409
- package/dist/store/scene-annotations.d.ts.map +1 -1
- package/dist/store/scene-preview.d.ts +16 -0
- package/dist/store/scene-preview.d.ts.map +1 -0
- package/dist/store/scene-preview.js +144 -0
- package/dist/store/use-live-node-overrides.d.ts.map +1 -1
- package/dist/store/use-live-terrain.d.ts.map +1 -1
- package/dist/store/use-live-transforms.d.ts.map +1 -1
- package/dist/store/use-scene.d.ts.map +1 -1
- package/dist/store/use-scene.js +37 -4
- package/dist/systems/elevator/elevator-dispatch.js +1 -1
- package/dist/systems/fence/fence-features.d.ts.map +1 -1
- package/dist/systems/owned-floor-openings.d.ts.map +1 -1
- package/dist/systems/owned-floor-openings.js +24 -3
- package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -1
- package/dist/systems/roof/roof-elevation-system.js +9 -3
- package/dist/systems/roof/roof-elevation.d.ts +5 -0
- package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
- package/dist/systems/roof/roof-elevation.js +91 -62
- package/dist/systems/slab/__fixtures__/floor-step.d.ts +4623 -3516
- package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -1
- package/dist/systems/slab/__fixtures__/raised-room.d.ts +5149 -4076
- package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -1
- package/dist/systems/slab/slab-support.d.ts +6 -3
- package/dist/systems/slab/slab-support.d.ts.map +1 -1
- package/dist/systems/slab/slab-support.js +78 -10
- package/dist/systems/stair/stair-detail-budget.d.ts +2 -2
- package/dist/systems/stair/stair-detail-budget.d.ts.map +1 -1
- package/dist/systems/stair/stair-footprint.d.ts +6 -0
- package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
- package/dist/systems/stair/stair-footprint.js +27 -14
- package/dist/systems/stair/stair-layout.d.ts +2 -2
- package/dist/systems/stair/stair-opening-preview.d.ts +3643 -3214
- package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
- package/dist/systems/stair/stair-presets.d.ts +73 -65
- package/dist/systems/stair/stair-presets.d.ts.map +1 -1
- package/dist/systems/stair/stair-presets.js +16 -9
- package/dist/systems/stair/stair-rail-path.d.ts +1 -1
- package/dist/systems/stair/stair-rise-query.d.ts +16 -0
- package/dist/systems/stair/stair-rise-query.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise-query.js +57 -7
- package/dist/systems/stair/stair-sizing.d.ts +101 -99
- package/dist/systems/stair/stair-sizing.d.ts.map +1 -1
- package/dist/systems/wall/wall-assembly.d.ts +11 -0
- package/dist/systems/wall/wall-assembly.d.ts.map +1 -1
- package/dist/systems/wall/wall-assembly.js +21 -0
- package/dist/systems/wall/wall-curve.d.ts +5 -0
- package/dist/systems/wall/wall-curve.d.ts.map +1 -1
- package/dist/systems/wall/wall-curve.js +13 -0
- package/dist/systems/wall/wall-frame.d.ts.map +1 -1
- package/dist/systems/wall/wall-frame.js +8 -0
- package/dist/systems/wall/wall-room-sides.d.ts +8 -0
- package/dist/systems/wall/wall-room-sides.d.ts.map +1 -1
- package/dist/systems/wall/wall-room-sides.js +60 -7
- package/dist/systems/wall/wall-top.d.ts +7 -4
- package/dist/systems/wall/wall-top.d.ts.map +1 -1
- package/dist/systems/wall/wall-top.js +14 -6
- package/dist/systems/wall/wall-topology.d.ts +4 -0
- package/dist/systems/wall/wall-topology.d.ts.map +1 -1
- package/dist/systems/wall/wall-topology.js +4 -2
- package/dist/systems/wall/wall-trim.d.ts +7 -0
- package/dist/systems/wall/wall-trim.d.ts.map +1 -0
- package/dist/systems/wall/wall-trim.js +10 -0
- package/dist/utils/clone-scene-graph.d.ts.map +1 -1
- package/dist/utils/clone-scene-graph.js +8 -0
- package/dist/utils/ensure-scene-openings.d.ts +7420 -6562
- package/dist/utils/ensure-scene-openings.d.ts.map +1 -1
- package/dist/utils/floor-piece-adoption.d.ts +2 -2
- package/dist/utils/floor-plate-migration.d.ts +3746 -3317
- package/dist/utils/floor-plate-migration.d.ts.map +1 -1
- package/dist/utils/floor-plate-migration.js +2 -2
- package/dist/utils/heal-scene-graph.d.ts +12 -0
- package/dist/utils/heal-scene-graph.d.ts.map +1 -1
- package/dist/utils/heal-scene-graph.js +40 -23
- package/dist/utils/legacy-wall-datums.d.ts.map +1 -1
- package/dist/utils/legacy-wall-datums.js +2 -2
- package/dist/utils/owned-floor-opening-migration.d.ts +3642 -3213
- package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -1
- package/dist/utils/reconcile-structure-on-load.d.ts +3730 -7777
- package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -1
- package/dist/utils/scene-migrations.d.ts +1 -1
- package/dist/utils/scene-migrations.d.ts.map +1 -1
- package/dist/utils/scene-migrations.js +1 -1
- package/dist/utils/semantic-equal.d.ts +3 -0
- package/dist/utils/semantic-equal.d.ts.map +1 -0
- package/dist/utils/semantic-equal.js +26 -0
- package/dist/utils/structure-id.d.ts.map +1 -1
- package/dist/utils/types.d.ts.map +1 -1
- package/dist/utils/wall-face-migration.d.ts +1 -1
- package/dist/utils/wall-face-migration.d.ts.map +1 -1
- package/package.json +36 -10
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { type AnyNode, LevelNode, type RoofNode } from '../schema/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Roofs and levels, one rule for every path that writes a roof (the editor's roof tool, the
|
|
4
|
+
* agents' create_roof, plugins): a roof lives on the level directly above the storey whose walls
|
|
5
|
+
* carry it. Over a building's top storey that is the building's roof level, kept above every
|
|
6
|
+
* storey, so exploded and solo level views lift the roof off the plan.
|
|
7
|
+
*/
|
|
8
|
+
type Nodes = Readonly<Record<string, AnyNode>>;
|
|
9
|
+
/**
|
|
10
|
+
* Whether a node of this kind belongs on a storey, never on a roof level: a storey's structure and
|
|
11
|
+
* rooms, and every kind that stands on a floor (`capabilities.floorPlaced`: cabinets, shelves,
|
|
12
|
+
* columns, …).
|
|
13
|
+
*/
|
|
14
|
+
export declare const isStoreyContent: (type: string | undefined, metadata: Record<string, unknown> | undefined) => boolean;
|
|
15
|
+
/** Retained roof geometry participates in level presentation without becoming parametric. */
|
|
16
|
+
export declare const isRoofGeometry: (node: AnyNode | undefined) => boolean;
|
|
17
|
+
/** Retained ceiling shells can lift with the roof while native room ceilings keep their hosts. */
|
|
18
|
+
export declare const isCeilingGeometry: (node: AnyNode | undefined) => boolean;
|
|
19
|
+
/** A level declared for its building's roofs (`metadata.role: 'roof'`). */
|
|
20
|
+
export declare function isRoofLevel(node: AnyNode | undefined): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* A level that is its building's roof level: declared, whatever it holds (`verify_scene` reports a
|
|
23
|
+
* declared one someone walled); or, in a building that declares none, a level holding roofs and
|
|
24
|
+
* nothing a storey holds (a roof level written before levels declared it) with only such levels
|
|
25
|
+
* above it. Never the lowest level, a carport's roof on its posts being its ground floor. A level
|
|
26
|
+
* holding only roofs under a storey, or beside a declared roof level, is a storey still to be built
|
|
27
|
+
* with a lower wing's roof on it: it takes walls. The one rule every reader of a level's role goes
|
|
28
|
+
* by (`list_levels`, `verify_scene`, the agents' refusals, the editor's level stack and tools).
|
|
29
|
+
*/
|
|
30
|
+
export declare function servesAsRoofLevel(nodes: Nodes, level: LevelNode): boolean;
|
|
31
|
+
export type RoofLevelPlan =
|
|
32
|
+
/** A storey stands above: it takes a roof over part of the storey below. */
|
|
33
|
+
({
|
|
34
|
+
kind: 'storey';
|
|
35
|
+
levelId: string;
|
|
36
|
+
}
|
|
37
|
+
/** The building's roof level, `create`d first when it has none, `update`d when undeclared. */
|
|
38
|
+
| {
|
|
39
|
+
kind: 'roof';
|
|
40
|
+
levelId: string;
|
|
41
|
+
create: LevelNode | null;
|
|
42
|
+
update: {
|
|
43
|
+
id: string;
|
|
44
|
+
data: Partial<LevelNode>;
|
|
45
|
+
}[];
|
|
46
|
+
}) & {
|
|
47
|
+
/**
|
|
48
|
+
* The storey's floor from the target level's, once the plan is written (m, negative): a roof
|
|
49
|
+
* measured from the storey's floor sits its container this high on the target level.
|
|
50
|
+
*/
|
|
51
|
+
storeyOffset: number;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* The level that takes the roofs over `storeyId`'s walls, as the scene stands. With a storey built
|
|
55
|
+
* above (anything on it), the storey directly above takes the roof over part of the one below: a
|
|
56
|
+
* porch, a lower wing. Else the building's roof level, above every level still to be built and
|
|
57
|
+
* every support level: the roof level there; the empty level directly above when it is the only
|
|
58
|
+
* one; else none yet (`level` null). Reads only, so a panel can ask on every store change.
|
|
59
|
+
*/
|
|
60
|
+
export declare function roofLevelAbove(nodes: Nodes, storeyId: string): {
|
|
61
|
+
kind: 'storey';
|
|
62
|
+
level: LevelNode;
|
|
63
|
+
} | {
|
|
64
|
+
kind: 'roof';
|
|
65
|
+
level: LevelNode | null;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Where a roof carried by `storeyId`'s walls lives (`roofLevelAbove`): the storey directly above,
|
|
69
|
+
* or the building's roof level, declared if it was not, else a new "Roof" level `roofHeight` tall
|
|
70
|
+
* (the roof's rise over its eaves) on top. Pure: the caller writes the plan in the same step as the
|
|
71
|
+
* roof.
|
|
72
|
+
*/
|
|
73
|
+
export declare function planRoofLevel(nodes: Nodes, storeyId: string, roofHeight: number): RoofLevelPlan;
|
|
74
|
+
/**
|
|
75
|
+
* The storey a level stands for: for a level serving as a roof level, the storey it covers
|
|
76
|
+
* (`storeyUnder`); else the level itself. Where storey content aimed at a roof level goes.
|
|
77
|
+
*/
|
|
78
|
+
export declare function storeyOf(nodes: Nodes, levelId: string): string;
|
|
79
|
+
/**
|
|
80
|
+
* The storey a roof covers. On a roof level, the storey under it (`storeyUnder`). On a storey, the
|
|
81
|
+
* storey below when the roof stands near its floor (a porch's or a lower wing's roof, seated on the
|
|
82
|
+
* walls under it, as the rule places it); else the storey itself (a roof written on its own walls'
|
|
83
|
+
* level, before roof levels). Null off a level.
|
|
84
|
+
*/
|
|
85
|
+
export declare function coveredStoreyId(nodes: Nodes, roof: RoofNode): string | null;
|
|
86
|
+
/** The roofs over a storey, wherever they stand (`coveredStoreyId`). */
|
|
87
|
+
export declare function roofsOver(nodes: Nodes, storeyId: string): RoofNode[];
|
|
88
|
+
/**
|
|
89
|
+
* Where a new top storey of `buildingId` goes: on top of its storeys, under the roof levels at the
|
|
90
|
+
* top of its stack, which each move up one (`shift`), so the roof stays above every storey.
|
|
91
|
+
*/
|
|
92
|
+
export declare function storeyInsertIndex(nodes: Nodes, buildingId: string): {
|
|
93
|
+
floorIndex: number;
|
|
94
|
+
shift: {
|
|
95
|
+
id: string;
|
|
96
|
+
data: Pick<LevelNode, 'level'>;
|
|
97
|
+
}[];
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* After a write that adds levels to `buildingId` (`before` to `after`), the floor indexes that keep
|
|
101
|
+
* its roof levels above every other level: the ones topping its stack before, and a roof level the
|
|
102
|
+
* write declares. An update per roof level that has to go up; none for a roof level in the middle
|
|
103
|
+
* of a stack, which a write that does not touch it leaves where it is.
|
|
104
|
+
*/
|
|
105
|
+
export declare function liftRoofLevels(before: Nodes, after: Nodes, buildingId: string): {
|
|
106
|
+
id: string;
|
|
107
|
+
data: Pick<LevelNode, 'level'>;
|
|
108
|
+
}[];
|
|
109
|
+
/**
|
|
110
|
+
* New floor indexes (`floors`: level id to its index) that put a building's roof level under one of
|
|
111
|
+
* its storeys it stood over: that pair, else null. Roles are read as the levels stand
|
|
112
|
+
* (`servesAsRoofLevel`), so an order a legacy stack already had passes, and so does one among
|
|
113
|
+
* storeys only. The one check every reorder goes by (the level selector, the chat's
|
|
114
|
+
* `reorder_level`, the capture app's REST reorder, `apply_patch`).
|
|
115
|
+
*/
|
|
116
|
+
export declare function roofLevelOrderBreach(nodes: Nodes, floors: ReadonlyMap<string, number>): {
|
|
117
|
+
roofId: string;
|
|
118
|
+
storeyId: string;
|
|
119
|
+
} | null;
|
|
120
|
+
export {};
|
|
121
|
+
//# sourceMappingURL=roof-level.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roof-level.d.ts","sourceRoot":"","sources":["../../src/services/roof-level.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAA;AAGlE;;;;;GAKG;AAEH,KAAK,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAY9C;;;;GAIG;AACH,eAAO,MAAM,eAAe,SACpB,MAAM,GAAG,SAAS,YACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KAC5C,OAG4F,CAAA;AAE/F,6FAA6F;AAC7F,eAAO,MAAM,cAAc,SAAU,OAAO,GAAG,SAAS,KAAG,OACyB,CAAA;AAEpF,kGAAkG;AAClG,eAAO,MAAM,iBAAiB,SAAU,OAAO,GAAG,SAAS,KAAG,OAC4B,CAAA;AAE1F,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAE9D;AA4BD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CASzE;AAqBD,MAAM,MAAM,aAAa;AACvB,4EAA4E;AAC5E,CACI;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACrC,8FAA8F;GAC5F;IACE,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,SAAS,GAAG,IAAI,CAAA;IACxB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;KAAE,EAAE,CAAA;CACnD,CACJ,GAAG;IACF;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAiCH;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,GACf;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,CAalF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,CA6B/F;AAmBD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAQ3E;AAED,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAIpE;AAaD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,GACjB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE,CAAA;CAAE,CAajF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,KAAK,EACb,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,GACjB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;CAAE,EAAE,CAYlD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAc7C"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import { getDefaultLevelName, getLevelDisplayName } from '../lib/level-name.js';
|
|
2
|
+
import { nodeRegistry } from '../registry/index.js';
|
|
3
|
+
import { LevelNode } from '../schema/index.js';
|
|
4
|
+
import { getLevelElevations } from './storey.js';
|
|
5
|
+
/** What a storey holds and a roof level must not: its structure and rooms. */
|
|
6
|
+
const STOREY_CONTENT = new Set([
|
|
7
|
+
'wall',
|
|
8
|
+
'zone',
|
|
9
|
+
'slab',
|
|
10
|
+
'ceiling',
|
|
11
|
+
'item',
|
|
12
|
+
'stair',
|
|
13
|
+
]);
|
|
14
|
+
/**
|
|
15
|
+
* Whether a node of this kind belongs on a storey, never on a roof level: a storey's structure and
|
|
16
|
+
* rooms, and every kind that stands on a floor (`capabilities.floorPlaced`: cabinets, shelves,
|
|
17
|
+
* columns, …).
|
|
18
|
+
*/
|
|
19
|
+
export const isStoreyContent = (type, metadata) => type !== undefined &&
|
|
20
|
+
!(type === 'item' && (metadata?.role === 'roof' || metadata?.role === 'ceiling')) &&
|
|
21
|
+
(STOREY_CONTENT.has(type) || nodeRegistry.get(type)?.capabilities?.floorPlaced !== undefined);
|
|
22
|
+
/** Retained roof geometry participates in level presentation without becoming parametric. */
|
|
23
|
+
export const isRoofGeometry = (node) => node?.type === 'roof' || (node?.type === 'item' && node.metadata?.role === 'roof');
|
|
24
|
+
/** Retained ceiling shells can lift with the roof while native room ceilings keep their hosts. */
|
|
25
|
+
export const isCeilingGeometry = (node) => node?.type === 'ceiling' || (node?.type === 'item' && node.metadata?.role === 'ceiling');
|
|
26
|
+
/** A level declared for its building's roofs (`metadata.role: 'roof'`). */
|
|
27
|
+
export function isRoofLevel(node) {
|
|
28
|
+
return node?.type === 'level' && node.metadata?.role === 'roof';
|
|
29
|
+
}
|
|
30
|
+
/** A level declared to carry structure, not rooms (`metadata.role: 'support'`). */
|
|
31
|
+
const isSupportLevel = (level) => level.metadata?.role === 'support';
|
|
32
|
+
const childrenOf = (nodes, level) => level.children.map((id) => nodes[id]).filter((child) => child !== undefined);
|
|
33
|
+
/** A level holding roofs and nothing a storey holds, unless declared a support. */
|
|
34
|
+
const holdsOnlyRoofs = (nodes, level) => {
|
|
35
|
+
if (isSupportLevel(level))
|
|
36
|
+
return false;
|
|
37
|
+
const children = childrenOf(nodes, level);
|
|
38
|
+
return (children.some(isRoofGeometry) &&
|
|
39
|
+
!children.some((child) => isStoreyContent(child.type, child.metadata)));
|
|
40
|
+
};
|
|
41
|
+
/** A building's levels: those it lists, and those naming it as their parent. */
|
|
42
|
+
function levelsOf(nodes, buildingId) {
|
|
43
|
+
const building = buildingId ? nodes[buildingId] : undefined;
|
|
44
|
+
const listed = new Set(building?.type === 'building' ? building.children : []);
|
|
45
|
+
return Object.values(nodes).filter((node) => node.type === 'level' && (node.parentId === (buildingId ?? null) || listed.has(node.id)));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* A level that is its building's roof level: declared, whatever it holds (`verify_scene` reports a
|
|
49
|
+
* declared one someone walled); or, in a building that declares none, a level holding roofs and
|
|
50
|
+
* nothing a storey holds (a roof level written before levels declared it) with only such levels
|
|
51
|
+
* above it. Never the lowest level, a carport's roof on its posts being its ground floor. A level
|
|
52
|
+
* holding only roofs under a storey, or beside a declared roof level, is a storey still to be built
|
|
53
|
+
* with a lower wing's roof on it: it takes walls. The one rule every reader of a level's role goes
|
|
54
|
+
* by (`list_levels`, `verify_scene`, the agents' refusals, the editor's level stack and tools).
|
|
55
|
+
*/
|
|
56
|
+
export function servesAsRoofLevel(nodes, level) {
|
|
57
|
+
if (isRoofLevel(level))
|
|
58
|
+
return true;
|
|
59
|
+
if (!holdsOnlyRoofs(nodes, level))
|
|
60
|
+
return false;
|
|
61
|
+
const stack = levelsOf(nodes, level.parentId);
|
|
62
|
+
return (!stack.some(isRoofLevel) &&
|
|
63
|
+
stack.some((other) => other.level < level.level) &&
|
|
64
|
+
stack.every((other) => other.level <= level.level || holdsOnlyRoofs(nodes, other)));
|
|
65
|
+
}
|
|
66
|
+
const elevationsOf = (nodes) => getLevelElevations(nodes);
|
|
67
|
+
/** The other levels of a level's building, in stack order, below it or above it. */
|
|
68
|
+
function stackOf(nodes, levelId, side) {
|
|
69
|
+
const elevations = elevationsOf(nodes);
|
|
70
|
+
const own = elevations.get(levelId);
|
|
71
|
+
if (!own)
|
|
72
|
+
return [];
|
|
73
|
+
return [...elevations]
|
|
74
|
+
.filter(([, entry]) => entry.buildingId === own.buildingId &&
|
|
75
|
+
(side === 'above' ? entry.ordinal > own.ordinal : entry.ordinal < own.ordinal))
|
|
76
|
+
.sort(([, a], [, b]) => (side === 'above' ? a.ordinal - b.ordinal : b.ordinal - a.ordinal))
|
|
77
|
+
.map(([id]) => nodes[id])
|
|
78
|
+
.filter((node) => node?.type === 'level');
|
|
79
|
+
}
|
|
80
|
+
/** How far `storeyId`'s floor sits from `levelId`'s (m): negative, the storey being below. */
|
|
81
|
+
function storeyOffsetTo(nodes, storeyId, levelId) {
|
|
82
|
+
const elevations = elevationsOf(nodes);
|
|
83
|
+
return (elevations.get(storeyId)?.baseY ?? 0) - (elevations.get(levelId)?.baseY ?? 0);
|
|
84
|
+
}
|
|
85
|
+
/** A level reused as the roof level, declared when it was not. */
|
|
86
|
+
function roofLevelPlan(nodes, storeyId, level) {
|
|
87
|
+
return {
|
|
88
|
+
kind: 'roof',
|
|
89
|
+
levelId: level.id,
|
|
90
|
+
storeyOffset: storeyOffsetTo(nodes, storeyId, level.id),
|
|
91
|
+
create: null,
|
|
92
|
+
update: isRoofLevel(level)
|
|
93
|
+
? []
|
|
94
|
+
: [
|
|
95
|
+
{
|
|
96
|
+
id: level.id,
|
|
97
|
+
data: {
|
|
98
|
+
metadata: { ...level.metadata, role: 'roof' },
|
|
99
|
+
// A name a person gave stays; an unnamed level would read as a floor.
|
|
100
|
+
name: getLevelDisplayName(level) === getDefaultLevelName(level.level)
|
|
101
|
+
? 'Roof'
|
|
102
|
+
: level.name,
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* The level that takes the roofs over `storeyId`'s walls, as the scene stands. With a storey built
|
|
110
|
+
* above (anything on it), the storey directly above takes the roof over part of the one below: a
|
|
111
|
+
* porch, a lower wing. Else the building's roof level, above every level still to be built and
|
|
112
|
+
* every support level: the roof level there; the empty level directly above when it is the only
|
|
113
|
+
* one; else none yet (`level` null). Reads only, so a panel can ask on every store change.
|
|
114
|
+
*/
|
|
115
|
+
export function roofLevelAbove(nodes, storeyId) {
|
|
116
|
+
const above = stackOf(nodes, storeyId, 'above');
|
|
117
|
+
const isPlain = (level) => !servesAsRoofLevel(nodes, level) && !isSupportLevel(level);
|
|
118
|
+
// The roof stands on the storey directly above, an empty one still to be built included.
|
|
119
|
+
if (above.some((level) => isPlain(level) && level.children.length > 0))
|
|
120
|
+
return { kind: 'storey', level: above.find(isPlain) };
|
|
121
|
+
const top = above.filter((level) => !servesAsRoofLevel(nodes, level)).at(-1);
|
|
122
|
+
const roofLevel = above.find((level) => servesAsRoofLevel(nodes, level) && (!top || level.level > top.level));
|
|
123
|
+
if (roofLevel)
|
|
124
|
+
return { kind: 'roof', level: roofLevel };
|
|
125
|
+
if (above.length === 1 && isPlain(above[0]))
|
|
126
|
+
return { kind: 'roof', level: above[0] };
|
|
127
|
+
return { kind: 'roof', level: null };
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Where a roof carried by `storeyId`'s walls lives (`roofLevelAbove`): the storey directly above,
|
|
131
|
+
* or the building's roof level, declared if it was not, else a new "Roof" level `roofHeight` tall
|
|
132
|
+
* (the roof's rise over its eaves) on top. Pure: the caller writes the plan in the same step as the
|
|
133
|
+
* roof.
|
|
134
|
+
*/
|
|
135
|
+
export function planRoofLevel(nodes, storeyId, roofHeight) {
|
|
136
|
+
const storey = nodes[storeyId];
|
|
137
|
+
if (storey?.type !== 'level')
|
|
138
|
+
throw Error(`${storeyId} is not a level`);
|
|
139
|
+
const target = roofLevelAbove(nodes, storeyId);
|
|
140
|
+
if (target.kind === 'storey')
|
|
141
|
+
return {
|
|
142
|
+
kind: 'storey',
|
|
143
|
+
levelId: target.level.id,
|
|
144
|
+
storeyOffset: storeyOffsetTo(nodes, storeyId, target.level.id),
|
|
145
|
+
};
|
|
146
|
+
if (target.level)
|
|
147
|
+
return roofLevelPlan(nodes, storeyId, target.level);
|
|
148
|
+
const top = stackOf(nodes, storeyId, 'above')
|
|
149
|
+
.filter((level) => !servesAsRoofLevel(nodes, level))
|
|
150
|
+
.at(-1);
|
|
151
|
+
const level = LevelNode.parse({
|
|
152
|
+
name: 'Roof',
|
|
153
|
+
parentId: storey.parentId,
|
|
154
|
+
level: (top ?? storey).level + 1,
|
|
155
|
+
height: Math.max(roofHeight, 0.2),
|
|
156
|
+
children: [],
|
|
157
|
+
metadata: { role: 'roof' },
|
|
158
|
+
});
|
|
159
|
+
return {
|
|
160
|
+
kind: 'roof',
|
|
161
|
+
levelId: level.id,
|
|
162
|
+
storeyOffset: storeyOffsetTo({ ...nodes, [level.id]: level }, storeyId, level.id),
|
|
163
|
+
create: level,
|
|
164
|
+
update: [],
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* The storey under a roof level: the highest below it that holds something (levels still to be
|
|
169
|
+
* built and support levels between are passed over), else the level directly below; the level
|
|
170
|
+
* itself with none below.
|
|
171
|
+
*/
|
|
172
|
+
function storeyUnder(nodes, level) {
|
|
173
|
+
const below = stackOf(nodes, level.id, 'below');
|
|
174
|
+
return (below.find((other) => !servesAsRoofLevel(nodes, other) && !isSupportLevel(other) && other.children.length > 0) ??
|
|
175
|
+
below[0] ??
|
|
176
|
+
level).id;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* The storey a level stands for: for a level serving as a roof level, the storey it covers
|
|
180
|
+
* (`storeyUnder`); else the level itself. Where storey content aimed at a roof level goes.
|
|
181
|
+
*/
|
|
182
|
+
export function storeyOf(nodes, levelId) {
|
|
183
|
+
const level = nodes[levelId];
|
|
184
|
+
return level?.type === 'level' && servesAsRoofLevel(nodes, level)
|
|
185
|
+
? storeyUnder(nodes, level)
|
|
186
|
+
: levelId;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* The storey a roof covers. On a roof level, the storey under it (`storeyUnder`). On a storey, the
|
|
190
|
+
* storey below when the roof stands near its floor (a porch's or a lower wing's roof, seated on the
|
|
191
|
+
* walls under it, as the rule places it); else the storey itself (a roof written on its own walls'
|
|
192
|
+
* level, before roof levels). Null off a level.
|
|
193
|
+
*/
|
|
194
|
+
export function coveredStoreyId(nodes, roof) {
|
|
195
|
+
const level = roof.parentId ? nodes[roof.parentId] : undefined;
|
|
196
|
+
if (level?.type !== 'level')
|
|
197
|
+
return null;
|
|
198
|
+
if (servesAsRoofLevel(nodes, level))
|
|
199
|
+
return storeyUnder(nodes, level);
|
|
200
|
+
const below = stackOf(nodes, level.id, 'below');
|
|
201
|
+
if (!below.length)
|
|
202
|
+
return level.id;
|
|
203
|
+
const height = elevationsOf(nodes).get(level.id)?.height ?? 0;
|
|
204
|
+
return roof.position[1] < height / 2 ? below[0].id : level.id;
|
|
205
|
+
}
|
|
206
|
+
/** The roofs over a storey, wherever they stand (`coveredStoreyId`). */
|
|
207
|
+
export function roofsOver(nodes, storeyId) {
|
|
208
|
+
return Object.values(nodes).filter((node) => node.type === 'roof' && coveredStoreyId(nodes, node) === storeyId);
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* The roof levels topping a building's stack (`servesAsRoofLevel`, which keeps an undeclared lowest
|
|
212
|
+
* level a storey), bottom up: a building whose only level is declared the roof level has that one.
|
|
213
|
+
*/
|
|
214
|
+
function topRoofLevels(nodes, buildingId) {
|
|
215
|
+
const levels = levelsOf(nodes, buildingId).sort((a, b) => a.level - b.level);
|
|
216
|
+
let top = levels.length;
|
|
217
|
+
while (top > 0 && servesAsRoofLevel(nodes, levels[top - 1]))
|
|
218
|
+
top--;
|
|
219
|
+
return levels.slice(top);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Where a new top storey of `buildingId` goes: on top of its storeys, under the roof levels at the
|
|
223
|
+
* top of its stack, which each move up one (`shift`), so the roof stays above every storey.
|
|
224
|
+
*/
|
|
225
|
+
export function storeyInsertIndex(nodes, buildingId) {
|
|
226
|
+
const roofLevels = topRoofLevels(nodes, buildingId);
|
|
227
|
+
if (!roofLevels.length) {
|
|
228
|
+
const levels = levelsOf(nodes, buildingId);
|
|
229
|
+
return {
|
|
230
|
+
floorIndex: levels.length ? Math.max(...levels.map((level) => level.level)) + 1 : 0,
|
|
231
|
+
shift: [],
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
return {
|
|
235
|
+
floorIndex: roofLevels[0].level,
|
|
236
|
+
shift: roofLevels.map((level) => ({ id: level.id, data: { level: level.level + 1 } })),
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* After a write that adds levels to `buildingId` (`before` to `after`), the floor indexes that keep
|
|
241
|
+
* its roof levels above every other level: the ones topping its stack before, and a roof level the
|
|
242
|
+
* write declares. An update per roof level that has to go up; none for a roof level in the middle
|
|
243
|
+
* of a stack, which a write that does not touch it leaves where it is.
|
|
244
|
+
*/
|
|
245
|
+
export function liftRoofLevels(before, after, buildingId) {
|
|
246
|
+
const ids = new Set(topRoofLevels(before, buildingId).map((level) => level.id));
|
|
247
|
+
const levels = levelsOf(after, buildingId);
|
|
248
|
+
for (const level of levels)
|
|
249
|
+
if (!before[level.id] && isRoofLevel(level))
|
|
250
|
+
ids.add(level.id);
|
|
251
|
+
const roofs = levels.filter((level) => ids.has(level.id)).sort((a, b) => a.level - b.level);
|
|
252
|
+
const others = levels.filter((level) => !ids.has(level.id));
|
|
253
|
+
if (!(roofs.length && others.length))
|
|
254
|
+
return [];
|
|
255
|
+
const top = Math.max(...others.map((level) => level.level));
|
|
256
|
+
return roofs.flatMap((level, i) => {
|
|
257
|
+
const floor = Math.max(level.level, top + 1 + i);
|
|
258
|
+
return floor === level.level ? [] : [{ id: level.id, data: { level: floor } }];
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* New floor indexes (`floors`: level id to its index) that put a building's roof level under one of
|
|
263
|
+
* its storeys it stood over: that pair, else null. Roles are read as the levels stand
|
|
264
|
+
* (`servesAsRoofLevel`), so an order a legacy stack already had passes, and so does one among
|
|
265
|
+
* storeys only. The one check every reorder goes by (the level selector, the chat's
|
|
266
|
+
* `reorder_level`, the capture app's REST reorder, `apply_patch`).
|
|
267
|
+
*/
|
|
268
|
+
export function roofLevelOrderBreach(nodes, floors) {
|
|
269
|
+
const floorOf = (level) => floors.get(level.id) ?? level.level;
|
|
270
|
+
const buildings = new Set([...floors.keys()].map((id) => nodes[id]).flatMap((node) => (node ? [node.parentId] : [])));
|
|
271
|
+
for (const buildingId of buildings) {
|
|
272
|
+
const levels = levelsOf(nodes, buildingId);
|
|
273
|
+
const roofs = levels.filter((level) => servesAsRoofLevel(nodes, level));
|
|
274
|
+
for (const roof of roofs)
|
|
275
|
+
for (const storey of levels.filter((level) => !roofs.includes(level)))
|
|
276
|
+
if (roof.level > storey.level && floorOf(roof) < floorOf(storey))
|
|
277
|
+
return { roofId: roof.id, storeyId: storey.id };
|
|
278
|
+
}
|
|
279
|
+
return null;
|
|
280
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { SceneChanges } from '../agent-operations/types.js';
|
|
2
|
+
import { type AnyNode, type AnyNodeId, type RoofNode } from '../schema/index.js';
|
|
3
|
+
import { type RoofLevelPlan } from './roof-level.js';
|
|
4
|
+
/**
|
|
5
|
+
* Roofs on the storey whose walls carry them: the repair for those written there before the roof
|
|
6
|
+
* level (or by a tool that ignored it), and the seat each writer runs on its own changes, so that
|
|
7
|
+
* no write leaves one there.
|
|
8
|
+
*/
|
|
9
|
+
type Nodes = Readonly<Record<string, AnyNode>>;
|
|
10
|
+
/**
|
|
11
|
+
* A roof held by the storey whose walls carry it (written there before the rule, or by a tool that
|
|
12
|
+
* ignored it): it hides that storey's plan in solo and exploded views; the seat and
|
|
13
|
+
* `planRoofsOffStorey` move it. Some segment bears on the storey's walls (`segmentBearing`: walls
|
|
14
|
+
* along its edges, open air past them) and the roof follows walls, or a segment's base or eave
|
|
15
|
+
* stands at the eave those walls need (knee walls on the plate, or the segment's own walls rising to
|
|
16
|
+
* it). A lower wing's roof on the storey above is not one (its inner edge has rooms past it), nor a
|
|
17
|
+
* porch or portico on posts (no wall along its outer edges), nor a roof on another roof.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isRoofOnStoreyWalls(nodes: Nodes, roofId: string): boolean;
|
|
20
|
+
export type RoofMove = {
|
|
21
|
+
plan: RoofLevelPlan;
|
|
22
|
+
changes: Required<Pick<SceneChanges, 'create' | 'update'>>;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* The repair for roofs written onto the storey whose walls carry them (`isRoofOnStoreyWalls`):
|
|
26
|
+
* each goes to the level the rule gives it, standing where it stood (`planRoofMove`). Null when the
|
|
27
|
+
* storey holds no such roof. Pure: one set of changes, so one undo step.
|
|
28
|
+
*/
|
|
29
|
+
export declare function planRoofsOffStorey(nodes: Nodes, storeyId: string): RoofMove | null;
|
|
30
|
+
/**
|
|
31
|
+
* A roof on a level above the storey it covers (`coveredStoreyId`), at a height of its own
|
|
32
|
+
* (`support` level, as the agents' and the auto roof's are, measured from that storey's floor),
|
|
33
|
+
* keeps its height over that floor when its level rises or drops over the storey (the storey, or a
|
|
34
|
+
* support level or a level still to be built between them, made taller or shorter), as it did when
|
|
35
|
+
* it lived on the storey. The updates that keep it there from `before` to `after`; a roof moved in
|
|
36
|
+
* between, or whose level stands over another storey or other levels now, is left where it is.
|
|
37
|
+
*/
|
|
38
|
+
export declare function roofsKeptOverStorey(before: Nodes, after: Nodes): {
|
|
39
|
+
id: AnyNodeId;
|
|
40
|
+
data: Pick<RoofNode, 'position'>;
|
|
41
|
+
}[];
|
|
42
|
+
export type RoofSeat = {
|
|
43
|
+
changes: Required<Pick<SceneChanges, 'create' | 'update'>>;
|
|
44
|
+
/** One per roof seated, for the write's answer. */
|
|
45
|
+
notes: string[];
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* The seat over the scene a write produced, `after` as the store leaves it (creates parsed and
|
|
49
|
+
* attached, reparents and cascades applied), for writers that hold the result. A roof the write
|
|
50
|
+
* made, moved, turned or reshaped that stands on its storey's walls (`isRoofOnStoreyWalls`) goes to
|
|
51
|
+
* the level the rule gives it, as the repair moves it; one already on the same storey's walls before
|
|
52
|
+
* stays (an edit does not migrate a legacy roof; `verify_scene` reports it). Storey by storey, each
|
|
53
|
+
* move planned on the scene with the earlier ones applied, so one write makes one roof level per
|
|
54
|
+
* building. Null when no roof needs it.
|
|
55
|
+
*/
|
|
56
|
+
export declare function planRoofSeats(before: Nodes, after: Nodes): RoofSeat | null;
|
|
57
|
+
type CreateEntry = {
|
|
58
|
+
node: AnyNode;
|
|
59
|
+
parentId?: string;
|
|
60
|
+
};
|
|
61
|
+
type NodeChanges = {
|
|
62
|
+
create?: readonly CreateEntry[];
|
|
63
|
+
update?: readonly {
|
|
64
|
+
id: string;
|
|
65
|
+
data: Partial<AnyNode>;
|
|
66
|
+
}[];
|
|
67
|
+
delete?: readonly string[];
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* A write's changes with the roofs it puts on their walls' storey seated by the rule
|
|
71
|
+
* (`planRoofSeats` over the scene they produce), and a note per roof. The seat is written into the
|
|
72
|
+
* changes themselves, so the writer's one store call lands it: a created roof's entry takes its new
|
|
73
|
+
* parent and height (its other fields kept) and leaves a created parent's `children`; an existing
|
|
74
|
+
* roof's move and a level's declaration are updates; a new roof level is created right after its
|
|
75
|
+
* building when the write creates the building, else first, listing its roofs, so a store creating
|
|
76
|
+
* in order and one applying updates first both land it.
|
|
77
|
+
*/
|
|
78
|
+
export declare function seatRoofs<C extends NodeChanges>(nodes: Nodes, changes: C): {
|
|
79
|
+
changes: C;
|
|
80
|
+
notes: string[];
|
|
81
|
+
};
|
|
82
|
+
export {};
|
|
83
|
+
//# sourceMappingURL=roof-move.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roof-move.d.ts","sourceRoot":"","sources":["../../src/services/roof-move.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,SAAS,EAId,KAAK,QAAQ,EAEd,MAAM,WAAW,CAAA;AAGlB,OAAO,EAAkC,KAAK,aAAa,EAAqB,MAAM,cAAc,CAAA;AAGpG;;;;GAIG;AAEH,KAAK,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AA0B9C;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAiBzE;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,aAAa,CAAA;IACnB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAA;CAC3D,CAAA;AAkED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CASlF;AAqCD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,KAAK,EACb,KAAK,EAAE,KAAK,GACX;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;CAAE,EAAE,CA8BvD;AA2BD,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAA;IAC1D,mDAAmD;IACnD,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI,CAkD1E;AAED,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AACvD,KAAK,WAAW,GAAG;IACjB,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IAC/B,MAAM,CAAC,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,EAAE,CAAA;IAC1D,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC3B,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,WAAW,EAC7C,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,CAAC,GACT;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAkDjC"}
|