kitchen-simulator 11.0.0-react.18 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/AppContext.js +1 -4
- package/es/LiteKitchenConfigurator.js +67 -23
- package/es/LiteRenderer.js +15 -64
- package/es/actions/export.js +25 -12
- package/es/actions/items-actions.js +18 -2
- package/es/analytics/ga4.js +188 -0
- package/es/analytics/posthog.js +60 -0
- package/es/assets/Window.hdr +2100 -0
- package/es/assets/img/default/maple.jpg +0 -0
- package/es/assets/img/default/steel.jpg +0 -0
- package/es/assets/img/loading/loading.gif +0 -0
- package/es/catalog/cabinet/cabinet-assembly-order.js +36 -0
- package/es/catalog/catalog.js +0 -2
- package/es/catalog/factories/area-factory-3d.js +1 -5
- package/es/catalog/factories/wall-factory.js +1 -1
- package/es/catalog/holes/door-double/door_double.png +0 -0
- package/es/catalog/holes/door-panic/panicDoor.png +0 -0
- package/es/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
- package/es/catalog/holes/gate/gate.jpg +0 -0
- package/es/catalog/holes/window-clear/texture.png +0 -0
- package/es/catalog/holes/window-cross/texture.png +0 -0
- package/es/catalog/holes/window-double-hung/texture.png +0 -0
- package/es/catalog/holes/window-vertical/texture.png +0 -0
- package/es/catalog/utils/exporter.js +4 -0
- package/es/catalog/utils/item-loader.js +12 -25
- package/es/class/area.js +0 -1
- package/es/class/export.js +1 -3
- package/es/class/item.js +207 -89
- package/es/class/line.js +1 -3
- package/es/class/project.js +15 -19
- package/es/components/content.js +20 -6
- package/es/components/export.js +3 -5
- package/es/components/style/export.js +2 -28
- package/es/components/style/form-number-input.js +34 -43
- package/es/components/viewer2d/group.js +12 -7
- package/es/components/viewer2d/item.js +159 -168
- package/es/components/viewer2d/line.js +18 -51
- package/es/components/viewer2d/rulerX.js +3 -0
- package/es/components/viewer2d/rulerY.js +3 -0
- package/es/components/viewer2d/scene.js +67 -47
- package/es/components/viewer2d/state.js +1 -1
- package/es/components/viewer2d/utils.js +0 -6
- package/es/components/viewer2d/viewer2d.js +566 -508
- package/es/components/viewer3d/front3D.js +1 -2
- package/es/components/viewer3d/pointer-lock-navigation.js +0 -90
- package/es/components/viewer3d/ruler-utils/layer3D.js +2 -2
- package/es/components/viewer3d/scene-creator.js +113 -120
- package/es/components/viewer3d/three-memory-cleaner.js +0 -14
- package/es/components/viewer3d/viewer3d-first-person.js +132 -134
- package/es/components/viewer3d/viewer3d.js +40 -28
- package/es/constants/catalog/skinPanel.js +9 -0
- package/es/constants.js +19 -8
- package/es/{WorkSpaceOriginal.js → devLiteRenderer.js} +241 -173
- package/es/events/external/handleExternalEvent.js +141 -0
- package/es/events/external/handleExternalEvent.util.js +1099 -0
- package/es/events/external/handlers.addItem.js +47 -0
- package/es/events/external/handlers.changeDoorStyle.js +140 -0
- package/es/events/external/handlers.elementOps.js +8 -0
- package/es/events/external/handlers.finishing.js +26 -0
- package/es/events/external/handlers.hole.js +4 -0
- package/es/events/external/handlers.loadProject.js +128 -0
- package/es/events/external/handlers.molding.js +24 -0
- package/es/events/external/handlers.projectLifecycle.js +11 -0
- package/es/events/external/handlers.projectSettings.js +32 -0
- package/es/events/external/handlers.replaceCabinet.js +41 -0
- package/es/events/external/handlers.roomShape.js +8 -0
- package/es/events/external/handlers.syncScene.js +21 -0
- package/es/events/external/handlers.updateSelectedElements.js +11 -0
- package/es/events/external/handlers.viewMode.js +11 -0
- package/es/events/external/handlers.viewerNavigation.js +108 -0
- package/es/events/external/handlers.wall.js +7 -0
- package/es/index.js +36 -76
- package/es/mappings/external-events/mapExternalEventPayload.js +28 -0
- package/es/mappings/external-events/mappers/addItemMapper.js +97 -0
- package/es/mappings/external-events/mappers/ccdfMapper.js +100 -0
- package/es/mappings/external-events/mappers/ccdfToCDSMapper.js +49 -0
- package/es/mappings/external-events/mappers/changeDoorStyleMapper.js +37 -0
- package/es/mappings/external-events/mappers/loadProjectMapper.js +62 -0
- package/es/mappings/holesToCatalog.js +139 -0
- package/es/models.js +16 -1
- package/es/plugins/keyboard.js +1 -1
- package/es/reducers/export.js +2 -4
- package/es/reducers/items-reducer.js +4 -2
- package/es/reducers/project-reducer.js +1 -1
- package/es/reducers/reducer.js +2 -3
- package/es/reducers/viewer2d-reducer.js +0 -2
- package/es/shared/domain/cabinet-warning.js +15 -0
- package/es/shared/objects/immutable.js +3 -0
- package/es/utils/geometry.js +418 -95
- package/es/utils/helper.js +41 -35
- package/es/utils/history.js +2 -2
- package/es/utils/molding.js +12 -241
- package/es/utils/name-generator.js +0 -3
- package/es/utils/skinPanelEngine.js +522 -0
- package/lib/@history.js +11 -0
- package/lib/AppContext.js +11 -0
- package/lib/LiteKitchenConfigurator.js +527 -0
- package/lib/LiteRenderer.js +323 -0
- package/lib/actions/area-actions.js +21 -0
- package/lib/actions/export.js +36 -0
- package/lib/actions/groups-actions.js +107 -0
- package/lib/actions/holes-actions.js +140 -0
- package/lib/actions/items-actions.js +383 -0
- package/lib/actions/lines-actions.js +98 -0
- package/lib/actions/project-actions.js +351 -0
- package/lib/actions/scene-actions.js +43 -0
- package/lib/actions/vertices-actions.js +35 -0
- package/lib/actions/viewer2d-actions.js +73 -0
- package/lib/actions/viewer3d-actions.js +32 -0
- package/lib/analytics/ga4.js +194 -0
- package/lib/analytics/posthog.js +68 -0
- package/lib/assets/Window.hdr +2100 -0
- package/lib/assets/brown_photostudio_02_1k.hdr +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Black Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Black.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Bold Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Bold.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Book Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Book.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard ExtraBold Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard ExtraBold.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard ExtraLight Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard ExtraLight.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Hairline Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Hairline.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Heavy Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Heavy.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Light Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Light.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Medium Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Medium.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard SemiBold Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard SemiBold.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Thin Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Thin.woff +0 -0
- package/lib/assets/fonts/style.css +177 -0
- package/lib/assets/gltf/door_closet.gltf +1 -0
- package/lib/assets/gltf/door_exterior.gltf +1 -0
- package/lib/assets/gltf/door_interior.gltf +1 -0
- package/lib/assets/gltf/door_sliding.gltf +1 -0
- package/lib/assets/gltf/doorway_framed.bin +0 -0
- package/lib/assets/gltf/doorway_framed.fbx +0 -0
- package/lib/assets/gltf/doorway_framed.gltf +1 -0
- package/lib/assets/gltf/window_clear.bin +0 -0
- package/lib/assets/gltf/window_clear.fbx +0 -0
- package/lib/assets/gltf/window_clear.gltf +1 -0
- package/lib/assets/gltf/window_cross.bin +0 -0
- package/lib/assets/gltf/window_cross.fbx +0 -0
- package/lib/assets/gltf/window_cross.gltf +1 -0
- package/lib/assets/gltf/window_double_hung.bin +0 -0
- package/lib/assets/gltf/window_double_hung.fbx +0 -0
- package/lib/assets/gltf/window_double_hung.gltf +1 -0
- package/lib/assets/gltf/window_vertical.bin +0 -0
- package/lib/assets/gltf/window_vertical.fbx +0 -0
- package/lib/assets/gltf/window_vertical.gltf +1 -0
- package/lib/assets/img/TKC_thumbnail.png +0 -0
- package/lib/assets/img/Toggle.png +0 -0
- package/lib/assets/img/default/maple.jpg +0 -0
- package/lib/assets/img/default/steel.jpg +0 -0
- package/lib/assets/img/loading/loading.gif +0 -0
- package/lib/assets/img/loading/loading_1.svg +11 -0
- package/lib/assets/img/loading_large.gif +0 -0
- package/lib/assets/img/png/door/closet.png +0 -0
- package/lib/assets/img/png/door/doorwaysframed.png +0 -0
- package/lib/assets/img/png/door/doorwaysframeles.png +0 -0
- package/lib/assets/img/png/door/doorwaysframeless.png +0 -0
- package/lib/assets/img/png/door/exterior.png +0 -0
- package/lib/assets/img/png/door/interior.png +0 -0
- package/lib/assets/img/png/door/sliding.png +0 -0
- package/lib/assets/img/png/helper/outcome.png +0 -0
- package/lib/assets/img/project_img.png +0 -0
- package/lib/assets/img/rta/rta_logo_box_blue.jpg +0 -0
- package/lib/assets/img/rta/rta_logo_box_blue_ico.jpg +0 -0
- package/lib/assets/img/rta/rta_logo_box_blue_ico.svg +55 -0
- package/lib/assets/img/rta/rta_logo_box_darkGray.jpg +0 -0
- package/lib/assets/img/rta/rta_logo_box_lightblue.png +0 -0
- package/lib/assets/img/rta/rta_logo_box_lightmaroon.png +0 -0
- package/lib/assets/img/rta/rta_logo_box_maroon.png +0 -0
- package/lib/assets/img/rta/rta_logo_box_white.png +0 -0
- package/lib/assets/img/rta_menu.png +0 -0
- package/lib/assets/img/step2.jpg +0 -0
- package/lib/assets/img/step3.jpg +0 -0
- package/lib/assets/img/step4.jpg +0 -0
- package/lib/assets/img/step5.jpg +0 -0
- package/lib/assets/img/step6.jpg +0 -0
- package/lib/assets/img/step7.jpg +0 -0
- package/lib/assets/img/step8.jpg +0 -0
- package/lib/assets/img/svg/2d_delete_object.svg +33 -0
- package/lib/assets/img/svg/2d_delete_object1.svg +33 -0
- package/lib/assets/img/svg/2d_lock_object.svg +33 -0
- package/lib/assets/img/svg/3d_item_move.svg +106 -0
- package/lib/assets/img/svg/3d_item_rotation.svg +76 -0
- package/lib/assets/img/svg/3d_item_warning_edit.svg +77 -0
- package/lib/assets/img/svg/3d_item_warning_info.svg +81 -0
- package/lib/assets/img/svg/accessories.svg +4 -0
- package/lib/assets/img/svg/angle_icon.svg +39 -0
- package/lib/assets/img/svg/blank_div.svg +14 -0
- package/lib/assets/img/svg/bottombar/2d3d_button.svg +3 -0
- package/lib/assets/img/svg/bottombar/2d3d_button_active.svg +3 -0
- package/lib/assets/img/svg/bottombar/2d3d_toggle.svg +4 -0
- package/lib/assets/img/svg/bottombar/2d3d_toggle_active.svg +4 -0
- package/lib/assets/img/svg/bottombar/arrow-down.svg +3 -0
- package/lib/assets/img/svg/bottombar/arrow-left.svg +3 -0
- package/lib/assets/img/svg/bottombar/arrow-minus.svg +3 -0
- package/lib/assets/img/svg/bottombar/arrow-plus.svg +11 -0
- package/lib/assets/img/svg/bottombar/arrow-right.svg +3 -0
- package/lib/assets/img/svg/bottombar/arrow-up.svg +3 -0
- package/lib/assets/img/svg/bottombar/collapse.svg +3 -0
- package/lib/assets/img/svg/bottombar/elevation-back.svg +6 -0
- package/lib/assets/img/svg/bottombar/elevation-front.svg +6 -0
- package/lib/assets/img/svg/bottombar/elevation-left.svg +6 -0
- package/lib/assets/img/svg/bottombar/elevation-right.svg +7 -0
- package/lib/assets/img/svg/bottombar/elevation.svg +13 -0
- package/lib/assets/img/svg/bottombar/expand.svg +3 -0
- package/lib/assets/img/svg/bottombar/help.svg +72 -0
- package/lib/assets/img/svg/bottombar/incm_toggle.svg +39 -0
- package/lib/assets/img/svg/bottombar/pan_1.svg +57 -0
- package/lib/assets/img/svg/bottombar/pan_2.svg +27 -0
- package/lib/assets/img/svg/bottombar/pan_3.svg +27 -0
- package/lib/assets/img/svg/bottombar/pan_4.svg +27 -0
- package/lib/assets/img/svg/bottombar/pan_5.svg +27 -0
- package/lib/assets/img/svg/bottombar/settings.svg +23 -0
- package/lib/assets/img/svg/bottombar/spin-down.svg +76 -0
- package/lib/assets/img/svg/bottombar/spin-left.svg +75 -0
- package/lib/assets/img/svg/bottombar/spin-right.svg +75 -0
- package/lib/assets/img/svg/bottombar/spin-up.svg +76 -0
- package/lib/assets/img/svg/bottombar/spin_1.svg +48 -0
- package/lib/assets/img/svg/bottombar/spin_2.svg +31 -0
- package/lib/assets/img/svg/bottombar/spin_3.svg +31 -0
- package/lib/assets/img/svg/bottombar/spin_4.svg +31 -0
- package/lib/assets/img/svg/bottombar/spin_5.svg +31 -0
- package/lib/assets/img/svg/bottombar/zoomin.svg +29 -0
- package/lib/assets/img/svg/bottombar/zoomout.svg +26 -0
- package/lib/assets/img/svg/check.svg +10 -0
- package/lib/assets/img/svg/close.svg +11 -0
- package/lib/assets/img/svg/color/Black.svg +3 -0
- package/lib/assets/img/svg/color/Blue.svg +3 -0
- package/lib/assets/img/svg/color/Cream.svg +3 -0
- package/lib/assets/img/svg/color/Gray.svg +3 -0
- package/lib/assets/img/svg/color/Green.svg +3 -0
- package/lib/assets/img/svg/color/White.svg +3 -0
- package/lib/assets/img/svg/color/White.svg.bak +3 -0
- package/lib/assets/img/svg/color/stone2.jpg +0 -0
- package/lib/assets/img/svg/color/wood2.jpg +0 -0
- package/lib/assets/img/svg/copy.svg +11 -0
- package/lib/assets/img/svg/delete.svg +3 -0
- package/lib/assets/img/svg/detail.svg +77 -0
- package/lib/assets/img/svg/disclaimer/background.svg +758 -0
- package/lib/assets/img/svg/disclaimer/logo-dots.svg +11 -0
- package/lib/assets/img/svg/door/Closet.svg +11 -0
- package/lib/assets/img/svg/door/Exterior.svg +5 -0
- package/lib/assets/img/svg/door/Framed_dorway.svg +5 -0
- package/lib/assets/img/svg/door/Frameless_dorway.svg +5 -0
- package/lib/assets/img/svg/door/Interior.svg +7 -0
- package/lib/assets/img/svg/door/Sliding.svg +5 -0
- package/lib/assets/img/svg/doors_closet.svg +47 -0
- package/lib/assets/img/svg/doors_exterior.svg +25 -0
- package/lib/assets/img/svg/doors_interior.svg +29 -0
- package/lib/assets/img/svg/doors_patio.svg +26 -0
- package/lib/assets/img/svg/duplicate.svg +11 -0
- package/lib/assets/img/svg/duplicate_object_left.svg +32 -0
- package/lib/assets/img/svg/duplicate_object_right.svg +32 -0
- package/lib/assets/img/svg/filtersActive.svg +19 -0
- package/lib/assets/img/svg/firstsetting/L.svg +3 -0
- package/lib/assets/img/svg/firstsetting/L2.svg +3 -0
- package/lib/assets/img/svg/firstsetting/Open.svg +3 -0
- package/lib/assets/img/svg/firstsetting/Square.svg +3 -0
- package/lib/assets/img/svg/firstsetting/bar-active.svg +9 -0
- package/lib/assets/img/svg/firstsetting/bar-normal.svg +3 -0
- package/lib/assets/img/svg/firstsetting/bullet-current.svg +3 -0
- package/lib/assets/img/svg/firstsetting/bullet-done.svg +3 -0
- package/lib/assets/img/svg/firstsetting/bullet-not-done.svg +3 -0
- package/lib/assets/img/svg/firstsetting/check-active.svg +3 -0
- package/lib/assets/img/svg/firstsetting/check-normal.svg +3 -0
- package/lib/assets/img/svg/firstsetting/pencil.svg +11 -0
- package/lib/assets/img/svg/green_checkmark.svg +27 -0
- package/lib/assets/img/svg/headerbar/assist.svg +3 -0
- package/lib/assets/img/svg/headerbar/cart.svg +3 -0
- package/lib/assets/img/svg/headerbar/check.svg +10 -0
- package/lib/assets/img/svg/headerbar/consult_designer.svg +45 -0
- package/lib/assets/img/svg/headerbar/edit_name.svg +26 -0
- package/lib/assets/img/svg/headerbar/file-dollar.svg +13 -0
- package/lib/assets/img/svg/headerbar/hamburger_menu.svg +32 -0
- package/lib/assets/img/svg/headerbar/plus.svg +11 -0
- package/lib/assets/img/svg/headerbar/review_quote.svg +44 -0
- package/lib/assets/img/svg/headerbar/ruler-measure.svg +11 -0
- package/lib/assets/img/svg/headerbar/save.svg +3 -0
- package/lib/assets/img/svg/headerbar/setting.svg +75 -0
- package/lib/assets/img/svg/help/check.svg +10 -0
- package/lib/assets/img/svg/help/search.svg +76 -0
- package/lib/assets/img/svg/intro/1-start-with-floorplan-whole.svg +27 -0
- package/lib/assets/img/svg/intro/1-start-with-floorplan.svg +26 -0
- package/lib/assets/img/svg/intro/2-start-from-scratch-whole.svg +28 -0
- package/lib/assets/img/svg/intro/2-start-from-scratch.svg +27 -0
- package/lib/assets/img/svg/intro/3-retrieve-project-whole.svg +19 -0
- package/lib/assets/img/svg/intro/3-retrieve-project.svg +18 -0
- package/lib/assets/img/svg/invert.svg +127 -0
- package/lib/assets/img/svg/lefttoolbar/appliance-active.svg +13 -0
- package/lib/assets/img/svg/lefttoolbar/appliance.svg +13 -0
- package/lib/assets/img/svg/lefttoolbar/cabinet-active.svg +10 -0
- package/lib/assets/img/svg/lefttoolbar/cabinet-category.svg +3 -0
- package/lib/assets/img/svg/lefttoolbar/cabinet-one.svg +3 -0
- package/lib/assets/img/svg/lefttoolbar/cabinet.svg +10 -0
- package/lib/assets/img/svg/lefttoolbar/disigner_assistance.svg +89 -0
- package/lib/assets/img/svg/lefttoolbar/door-style-active.svg +20 -0
- package/lib/assets/img/svg/lefttoolbar/door-style.svg +20 -0
- package/lib/assets/img/svg/lefttoolbar/door.svg +12 -0
- package/lib/assets/img/svg/lefttoolbar/error_icon.svg +81 -0
- package/lib/assets/img/svg/lefttoolbar/finishing-active.svg +13 -0
- package/lib/assets/img/svg/lefttoolbar/finishing.svg +13 -0
- package/lib/assets/img/svg/lefttoolbar/reviewforquote-active.svg +86 -0
- package/lib/assets/img/svg/lefttoolbar/reviewforquote.svg +12 -0
- package/lib/assets/img/svg/lefttoolbar/room-shape-L.svg +3 -0
- package/lib/assets/img/svg/lefttoolbar/room-shape-active.svg +18 -0
- package/lib/assets/img/svg/lefttoolbar/room-shape-custom.svg +12 -0
- package/lib/assets/img/svg/lefttoolbar/room-shape-irregular.svg +3 -0
- package/lib/assets/img/svg/lefttoolbar/room-shape-open.svg +3 -0
- package/lib/assets/img/svg/lefttoolbar/room-shape-square.svg +3 -0
- package/lib/assets/img/svg/lefttoolbar/room-shape.svg +18 -0
- package/lib/assets/img/svg/lefttoolbar/search.svg +76 -0
- package/lib/assets/img/svg/lefttoolbar/view_more.svg +86 -0
- package/lib/assets/img/svg/lefttoolbar/warning_icon.svg +81 -0
- package/lib/assets/img/svg/lefttoolbar/window.svg +12 -0
- package/lib/assets/img/svg/logo.svg +11 -0
- package/lib/assets/img/svg/logo_with_text.svg +25 -0
- package/lib/assets/img/svg/menubar/login.svg +84 -0
- package/lib/assets/img/svg/menubar/my_projects.svg +85 -0
- package/lib/assets/img/svg/menubar/new_project.svg +110 -0
- package/lib/assets/img/svg/menubar/save_project.svg +84 -0
- package/lib/assets/img/svg/options.svg +3 -0
- package/lib/assets/img/svg/positioning.svg +3 -0
- package/lib/assets/img/svg/rotate.png +0 -0
- package/lib/assets/img/svg/rotate.svg +17 -0
- package/lib/assets/img/svg/rotate_object_clockwise.svg +26 -0
- package/lib/assets/img/svg/rotate_object_counterclockwise.svg +26 -0
- package/lib/assets/img/svg/toggleFilters.svg +19 -0
- package/lib/assets/img/svg/toolbar/add_appliances_active.svg +64 -0
- package/lib/assets/img/svg/toolbar/add_appliances_inactive.svg +52 -0
- package/lib/assets/img/svg/toolbar/add_button.svg +36 -0
- package/lib/assets/img/svg/toolbar/add_cabinets_active.svg +59 -0
- package/lib/assets/img/svg/toolbar/add_cabinets_inactive.svg +49 -0
- package/lib/assets/img/svg/toolbar/add_items_doors.svg +25 -0
- package/lib/assets/img/svg/toolbar/add_items_doorways.svg +24 -0
- package/lib/assets/img/svg/toolbar/add_items_refrigerator.svg +32 -0
- package/lib/assets/img/svg/toolbar/add_items_windows.svg +28 -0
- package/lib/assets/img/svg/toolbar/apply_button.svg +38 -0
- package/lib/assets/img/svg/toolbar/arrow-plus.svg +11 -0
- package/lib/assets/img/svg/toolbar/backsplash.svg +8 -0
- package/lib/assets/img/svg/toolbar/cancel_button.svg +37 -0
- package/lib/assets/img/svg/toolbar/consult_a_designer_button.svg +47 -0
- package/lib/assets/img/svg/toolbar/countertop.svg +7 -0
- package/lib/assets/img/svg/toolbar/dcm.png +0 -0
- package/lib/assets/img/svg/toolbar/dcm_off.svg +12 -0
- package/lib/assets/img/svg/toolbar/dcm_on.svg +474 -0
- package/lib/assets/img/svg/toolbar/delete_button.svg +37 -0
- package/lib/assets/img/svg/toolbar/download.svg +77 -0
- package/lib/assets/img/svg/toolbar/draw_custom_floor.svg +31 -0
- package/lib/assets/img/svg/toolbar/edit_button.svg +75 -0
- package/lib/assets/img/svg/toolbar/email_quote_button.svg +44 -0
- package/lib/assets/img/svg/toolbar/fbm.png +0 -0
- package/lib/assets/img/svg/toolbar/finishing_touches_active.svg +54 -0
- package/lib/assets/img/svg/toolbar/finishing_touches_inactive.svg +42 -0
- package/lib/assets/img/svg/toolbar/floorstyle.svg +9 -0
- package/lib/assets/img/svg/toolbar/fmb.png +0 -0
- package/lib/assets/img/svg/toolbar/fmb_off.svg +12 -0
- package/lib/assets/img/svg/toolbar/fmb_on.svg +489 -0
- package/lib/assets/img/svg/toolbar/furnishings_icon.svg +6 -0
- package/lib/assets/img/svg/toolbar/get_started_button.svg +41 -0
- package/lib/assets/img/svg/toolbar/handles.svg +5 -0
- package/lib/assets/img/svg/toolbar/lighting.svg +7 -0
- package/lib/assets/img/svg/toolbar/lrm.png +0 -0
- package/lib/assets/img/svg/toolbar/lrm_off.svg +12 -0
- package/lib/assets/img/svg/toolbar/lrm_on.svg +470 -0
- package/lib/assets/img/svg/toolbar/make_floorplan_active.svg +66 -0
- package/lib/assets/img/svg/toolbar/make_floorplan_inactive.svg +52 -0
- package/lib/assets/img/svg/toolbar/predefined_room_l_shaped.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_layout.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_long_narrow.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_open_l_shape.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_open_pentagon.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_open_rectangle.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_open_rectangle_2.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_pentagon.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_rectangle.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_rectangle_with_alcove.svg +20 -0
- package/lib/assets/img/svg/toolbar/redo_button.svg +75 -0
- package/lib/assets/img/svg/toolbar/redo_button1.svg +75 -0
- package/lib/assets/img/svg/toolbar/review_quote_active.svg +14 -0
- package/lib/assets/img/svg/toolbar/review_quote_inactive.svg +44 -0
- package/lib/assets/img/svg/toolbar/save_project_button.svg +44 -0
- package/lib/assets/img/svg/toolbar/select_doorstyle_active.svg +67 -0
- package/lib/assets/img/svg/toolbar/select_doorstyle_inactive.svg +57 -0
- package/lib/assets/img/svg/toolbar/shopping-cart.svg +13 -0
- package/lib/assets/img/svg/toolbar/style_change_button.svg +47 -0
- package/lib/assets/img/svg/toolbar/take_picture.svg +75 -0
- package/lib/assets/img/svg/toolbar/undo_button.svg +76 -0
- package/lib/assets/img/svg/toolbar/undo_button1.svg +76 -0
- package/lib/assets/img/svg/toolbar/use_button.svg +37 -0
- package/lib/assets/img/svg/toolbar/wall_color_icon.svg +6 -0
- package/lib/assets/img/svg/topbar/edit_active.svg +10 -0
- package/lib/assets/img/svg/topbar/edit_inactive.svg +10 -0
- package/lib/assets/img/svg/topbar/redo_active.svg +42 -0
- package/lib/assets/img/svg/topbar/redo_inactive.svg +23 -0
- package/lib/assets/img/svg/topbar/select_all_active.svg +50 -0
- package/lib/assets/img/svg/topbar/select_all_inactive.svg +32 -0
- package/lib/assets/img/svg/topbar/take_picture_active.svg +51 -0
- package/lib/assets/img/svg/topbar/take_picture_inactive.svg +26 -0
- package/lib/assets/img/svg/topbar/undo_active.svg +42 -0
- package/lib/assets/img/svg/topbar/undo_inactive.svg +23 -0
- package/lib/assets/img/svg/warning_info_2d.svg +81 -0
- package/lib/assets/img/svg/window/Clear.svg +3 -0
- package/lib/assets/img/svg/window/Cross.svg +5 -0
- package/lib/assets/img/svg/window/Double_hung.svg +4 -0
- package/lib/assets/img/svg/window/Vertical.svg +4 -0
- package/lib/assets/img/svg/windows_clear.svg +23 -0
- package/lib/assets/img/svg/windows_cross.svg +28 -0
- package/lib/assets/img/svg/windows_double_hung.svg +24 -0
- package/lib/assets/img/svg/windows_vertical.svg +24 -0
- package/lib/assets/img/svg/wizardstep/Custom.svg +3 -0
- package/lib/assets/img/svg/wizardstep/Dashed_line.svg +3 -0
- package/lib/assets/img/svg/wizardstep/L.svg +3 -0
- package/lib/assets/img/svg/wizardstep/L2.svg +3 -0
- package/lib/assets/img/svg/wizardstep/Open.svg +3 -0
- package/lib/assets/img/svg/wizardstep/Square.svg +3 -0
- package/lib/assets/img/svg/wizardstep/bar-active.svg +9 -0
- package/lib/assets/img/svg/wizardstep/bar-normal.svg +3 -0
- package/lib/assets/img/svg/wizardstep/bullet-current.svg +3 -0
- package/lib/assets/img/svg/wizardstep/bullet-done.svg +3 -0
- package/lib/assets/img/svg/wizardstep/bullet-not-done.svg +3 -0
- package/lib/assets/img/svg/wizardstep/check-active.svg +3 -0
- package/lib/assets/img/svg/wizardstep/check-normal.svg +3 -0
- package/lib/assets/img/svg/wizardstep/detail_view.svg +87 -0
- package/lib/assets/img/svg/wizardstep/pencil.svg +11 -0
- package/lib/assets/img/svg/wizardstep/tile_view.svg +95 -0
- package/lib/assets/img/texture/glass.jpg +0 -0
- package/lib/assets/img/texture/steel.jpg +0 -0
- package/lib/assets/img/texture/white1px.jpg +0 -0
- package/lib/assets/img/texture/wood.jpg +0 -0
- package/lib/assets/model/DCM.bin +0 -0
- package/lib/assets/model/DCM.fbx +0 -0
- package/lib/assets/model/DCM.gltf +1 -0
- package/lib/assets/model/FBM.bin +0 -0
- package/lib/assets/model/FBM.fbx +0 -0
- package/lib/assets/model/FBM.gltf +1 -0
- package/lib/assets/model/LRM.bin +0 -0
- package/lib/assets/model/LRM.fbx +0 -0
- package/lib/assets/model/LRM.gltf +1 -0
- package/lib/assets/rtastore_logo.png +0 -0
- package/lib/catalog/areas/area/planner-element.js +53 -0
- package/lib/catalog/areas/area/textures/ceramic-tile.jpg +0 -0
- package/lib/catalog/areas/area/textures/grass.jpg +0 -0
- package/lib/catalog/areas/area/textures/parquet.jpg +0 -0
- package/lib/catalog/areas/area/textures/strand-porcelain.jpg +0 -0
- package/lib/catalog/areas/area/textures/tile1.jpg +0 -0
- package/lib/catalog/back.png +0 -0
- package/lib/catalog/cabinet/cabinet-assembly-order.js +42 -0
- package/lib/catalog/catalog.js +270 -0
- package/lib/catalog/doors.png +0 -0
- package/lib/catalog/doorways.png +0 -0
- package/lib/catalog/envMap/nx.hdr +0 -0
- package/lib/catalog/envMap/ny.hdr +0 -0
- package/lib/catalog/envMap/nz.hdr +0 -0
- package/lib/catalog/envMap/px.hdr +0 -0
- package/lib/catalog/envMap/py.hdr +0 -0
- package/lib/catalog/envMap/pz.hdr +0 -0
- package/lib/catalog/export.js +1 -0
- package/lib/catalog/factories/area-factory-3d.js +187 -0
- package/lib/catalog/factories/area-factory.js +88 -0
- package/lib/catalog/factories/export.js +25 -0
- package/lib/catalog/factories/wall-factory-3d.js +212 -0
- package/lib/catalog/factories/wall-factory.js +279 -0
- package/lib/catalog/holes/door-closet/planner-element.js +232 -0
- package/lib/catalog/holes/door-double/door_double.png +0 -0
- package/lib/catalog/holes/door-double/planner-element.js +325 -0
- package/lib/catalog/holes/door-exterior/planner-element.js +225 -0
- package/lib/catalog/holes/door-interior/planner-element.js +237 -0
- package/lib/catalog/holes/door-panic/panicDoor.png +0 -0
- package/lib/catalog/holes/door-panic/planner-element.js +513 -0
- package/lib/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
- package/lib/catalog/holes/door-panic-double/planner-element.js +473 -0
- package/lib/catalog/holes/door-sliding/planner-element.js +235 -0
- package/lib/catalog/holes/doorway-framed/planner-element.js +155 -0
- package/lib/catalog/holes/doorway-frameless/planner-element.js +114 -0
- package/lib/catalog/holes/export.js +97 -0
- package/lib/catalog/holes/gate/gate.jpg +0 -0
- package/lib/catalog/holes/window-clear/planner-element.js +176 -0
- package/lib/catalog/holes/window-clear/texture.png +0 -0
- package/lib/catalog/holes/window-cross/planner-element.js +175 -0
- package/lib/catalog/holes/window-cross/texture.png +0 -0
- package/lib/catalog/holes/window-double-hung/planner-element.js +313 -0
- package/lib/catalog/holes/window-double-hung/texture.png +0 -0
- package/lib/catalog/holes/window-vertical/planner-element.js +286 -0
- package/lib/catalog/holes/window-vertical/texture.png +0 -0
- package/lib/catalog/lines/wall/planner-element.js +87 -0
- package/lib/catalog/lines/wall/textures/bricks-normal.jpg +0 -0
- package/lib/catalog/lines/wall/textures/bricks.jpg +0 -0
- package/lib/catalog/lines/wall/textures/bricks2.jpg +0 -0
- package/lib/catalog/lines/wall/textures/morden-normal.jpg +0 -0
- package/lib/catalog/lines/wall/textures/morden.jpg +0 -0
- package/lib/catalog/lines/wall/textures/painted.jpg +0 -0
- package/lib/catalog/lines/wall/textures/plaster-normal.jpg +0 -0
- package/lib/catalog/lines/wall/textures/plaster.jpg +0 -0
- package/lib/catalog/lines/wall/wall.png +0 -0
- package/lib/catalog/molding/molding-dcm/planner-element.js +33 -0
- package/lib/catalog/molding/molding-dcm/texture.png +0 -0
- package/lib/catalog/molding/molding-fbm/planner-element.js +33 -0
- package/lib/catalog/molding/molding-fbm/texture.png +0 -0
- package/lib/catalog/molding/molding-lrm/planner-element.js +33 -0
- package/lib/catalog/molding/molding-lrm/texture.png +0 -0
- package/lib/catalog/utils/exporter.js +173 -0
- package/lib/catalog/utils/geom-utils.js +205 -0
- package/lib/catalog/utils/item-loader.js +1603 -0
- package/lib/catalog/utils/load-obj.js +99 -0
- package/lib/catalog/utils/mtl-loader.js +366 -0
- package/lib/catalog/utils/obj-loader.js +486 -0
- package/lib/catalog/windows.png +0 -0
- package/lib/class/area.js +147 -0
- package/lib/class/export.js +88 -0
- package/lib/class/group.js +438 -0
- package/lib/class/guide.js +64 -0
- package/lib/class/hole.js +930 -0
- package/lib/class/item.js +2009 -0
- package/lib/class/layer.js +670 -0
- package/lib/class/line.js +1236 -0
- package/lib/class/project.js +949 -0
- package/lib/class/vertex.js +205 -0
- package/lib/components/content.js +160 -0
- package/lib/components/export.js +7 -0
- package/lib/components/style/export.js +17 -0
- package/lib/components/style/form-number-input.js +192 -0
- package/lib/components/style/form-submit-button.js +35 -0
- package/lib/components/viewer2d/area.js +89 -0
- package/lib/components/viewer2d/export.js +121 -0
- package/lib/components/viewer2d/grids/grid-horizontal-streak.js +44 -0
- package/lib/components/viewer2d/grids/grid-streak.js +44 -0
- package/lib/components/viewer2d/grids/grid-vertical-streak.js +44 -0
- package/lib/components/viewer2d/grids/grids.js +40 -0
- package/lib/components/viewer2d/group.js +63 -0
- package/lib/components/viewer2d/item.js +244 -0
- package/lib/components/viewer2d/layer.js +172 -0
- package/lib/components/viewer2d/line.js +975 -0
- package/lib/components/viewer2d/ruler.js +92 -0
- package/lib/components/viewer2d/rulerDist.js +110 -0
- package/lib/components/viewer2d/rulerX.js +154 -0
- package/lib/components/viewer2d/rulerY.js +156 -0
- package/lib/components/viewer2d/scene.js +137 -0
- package/lib/components/viewer2d/snap.js +84 -0
- package/lib/components/viewer2d/state.js +83 -0
- package/lib/components/viewer2d/utils.js +200 -0
- package/lib/components/viewer2d/vertex.js +76 -0
- package/lib/components/viewer2d/viewer2d.js +1472 -0
- package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +2591 -0
- package/lib/components/viewer3d/dcm.js +408 -0
- package/lib/components/viewer3d/fbm.js +421 -0
- package/lib/components/viewer3d/front3D.js +71 -0
- package/lib/components/viewer3d/grid-creator.js +35 -0
- package/lib/components/viewer3d/grids/grid-horizontal-streak.js +45 -0
- package/lib/components/viewer3d/grids/grid-streak.js +36 -0
- package/lib/components/viewer3d/grids/grid-vertical-streak.js +45 -0
- package/lib/components/viewer3d/libs/first-person-controls.js +74 -0
- package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js +1287 -0
- package/lib/components/viewer3d/libs/mtl-loader.js +366 -0
- package/lib/components/viewer3d/libs/obj-loader.js +471 -0
- package/lib/components/viewer3d/libs/orbit-controls.js +706 -0
- package/lib/components/viewer3d/libs/pointer-lock-controls.js +53 -0
- package/lib/components/viewer3d/lrm.js +312 -0
- package/lib/components/viewer3d/model.js +714 -0
- package/lib/components/viewer3d/pointer-lock-navigation.js +32 -0
- package/lib/components/viewer3d/ruler-utils/itemRect.js +69 -0
- package/lib/components/viewer3d/ruler-utils/layer3D.js +503 -0
- package/lib/components/viewer3d/ruler-utils/ruler3D.js +232 -0
- package/lib/components/viewer3d/ruler-utils/scene3D.js +67 -0
- package/lib/components/viewer3d/ruler-utils/state3D.js +26 -0
- package/lib/components/viewer3d/scene-creator.js +3850 -0
- package/lib/components/viewer3d/three-memory-cleaner.js +46 -0
- package/lib/components/viewer3d/viewer3d-first-person.js +316 -0
- package/lib/components/viewer3d/viewer3d.js +2673 -0
- package/lib/constants/catalog/skinPanel.js +15 -0
- package/lib/constants.js +791 -0
- package/lib/devLiteRenderer.js +917 -0
- package/lib/events/external/handleExternalEvent.js +148 -0
- package/lib/events/external/handleExternalEvent.util.js +1110 -0
- package/lib/events/external/handlers.addItem.js +54 -0
- package/lib/events/external/handlers.changeDoorStyle.js +147 -0
- package/lib/events/external/handlers.elementOps.js +15 -0
- package/lib/events/external/handlers.finishing.js +32 -0
- package/lib/events/external/handlers.hole.js +10 -0
- package/lib/events/external/handlers.loadProject.js +135 -0
- package/lib/events/external/handlers.molding.js +31 -0
- package/lib/events/external/handlers.projectLifecycle.js +19 -0
- package/lib/events/external/handlers.projectSettings.js +38 -0
- package/lib/events/external/handlers.replaceCabinet.js +48 -0
- package/lib/events/external/handlers.roomShape.js +14 -0
- package/lib/events/external/handlers.syncScene.js +27 -0
- package/lib/events/external/handlers.updateSelectedElements.js +17 -0
- package/lib/events/external/handlers.viewMode.js +19 -0
- package/lib/events/external/handlers.viewerNavigation.js +117 -0
- package/lib/events/external/handlers.wall.js +13 -0
- package/lib/index.js +637 -0
- package/lib/mappings/external-events/mapExternalEventPayload.js +33 -0
- package/lib/mappings/external-events/mappers/addItemMapper.js +103 -0
- package/lib/mappings/external-events/mappers/ccdfMapper.js +107 -0
- package/lib/mappings/external-events/mappers/ccdfToCDSMapper.js +55 -0
- package/lib/mappings/external-events/mappers/changeDoorStyleMapper.js +44 -0
- package/lib/mappings/external-events/mappers/loadProjectMapper.js +70 -0
- package/lib/mappings/holesToCatalog.js +148 -0
- package/lib/models.js +534 -0
- package/lib/plugins/SVGLoader.js +1419 -0
- package/lib/plugins/console-debugger.js +42 -0
- package/lib/plugins/export.js +25 -0
- package/lib/plugins/keyboard.js +117 -0
- package/lib/reducers/areas-reducer.js +19 -0
- package/lib/reducers/export.js +89 -0
- package/lib/reducers/groups-reducer.js +45 -0
- package/lib/reducers/holes-reducer.js +69 -0
- package/lib/reducers/items-reducer.js +152 -0
- package/lib/reducers/lines-reducer.js +52 -0
- package/lib/reducers/project-reducer.js +143 -0
- package/lib/reducers/reducer.js +25 -0
- package/lib/reducers/scene-reducer.js +35 -0
- package/lib/reducers/vertices-reducer.js +26 -0
- package/lib/reducers/viewer2d-reducer.js +84 -0
- package/lib/reducers/viewer3d-reducer.js +65 -0
- package/lib/shared/domain/cabinet-warning.js +20 -0
- package/lib/shared/objects/immutable.js +9 -0
- package/lib/shared-style.js +72 -0
- package/lib/translator/en.js +111 -0
- package/lib/translator/it.js +86 -0
- package/lib/translator/ru.js +86 -0
- package/lib/translator/translator.js +87 -0
- package/lib/utils/browser.js +40 -0
- package/lib/utils/convert-units-lite.js +44 -0
- package/lib/utils/email-validator.js +10 -0
- package/lib/utils/export.js +56 -0
- package/lib/utils/geometry.js +3230 -0
- package/lib/utils/get-edges-of-subgraphs.js +33 -0
- package/lib/utils/graph-cycles.js +239 -0
- package/lib/utils/graph-inner-cycles.js +54 -0
- package/lib/utils/graph.js +153 -0
- package/lib/utils/helper.js +480 -0
- package/lib/utils/history.js +48 -0
- package/lib/utils/id-broker.js +22 -0
- package/lib/utils/logger.js +14 -0
- package/lib/utils/math.js +57 -0
- package/lib/utils/molding.js +1146 -0
- package/lib/utils/name-generator.js +21 -0
- package/lib/utils/objects-utils.js +62 -0
- package/lib/utils/phone-validator.js +10 -0
- package/lib/utils/process-black-list.js +22 -0
- package/lib/utils/react-if.js +25 -0
- package/lib/utils/ruler.js +63 -0
- package/lib/utils/skinPanelEngine.js +530 -0
- package/lib/utils/snap-scene.js +101 -0
- package/lib/utils/snap.js +245 -0
- package/lib/utils/summarizeCart.js +30 -0
- package/lib/utils/threeCSG.es6.js +504 -0
- package/lib/version.js +7 -0
- package/package.json +29 -24
- package/es/WorkSpace.js +0 -30
- package/es/WorkSpaceHostMimic.js +0 -132
- package/es/assets/gltf/door_closet.bin +0 -0
- package/es/assets/gltf/door_closet.fbx +0 -0
- package/es/assets/gltf/door_exterior.bin +0 -0
- package/es/assets/gltf/door_exterior.fbx +0 -0
- package/es/assets/gltf/door_interior.bin +0 -0
- package/es/assets/gltf/door_interior.fbx +0 -0
- package/es/assets/gltf/door_sliding.bin +0 -0
- package/es/assets/gltf/door_sliding.fbx +0 -0
- package/es/assets/img/png/helper/video_preview_3d.png +0 -0
- package/es/assets/img/png/helper/video_preview_start.png +0 -0
- package/es/assets/img/svg/color/Brown.svg +0 -9
- package/es/assets/img/svg/color/Dark.svg +0 -9
- package/es/assets/img/svg/color/Light.svg +0 -9
- package/es/assets/img/svg/color/Medium.svg +0 -9
- package/es/assets/img/svg/color/Unfinished.svg +0 -9
- package/es/catalog/lines/wall/textures/bricks3.jpg +0 -0
- package/es/catalog/properties/export.js +0 -21
- package/es/catalog/properties/property-checkbox.js +0 -68
- package/es/catalog/properties/property-color.js +0 -39
- package/es/catalog/properties/property-enum.js +0 -50
- package/es/catalog/properties/property-hidden.js +0 -19
- package/es/catalog/properties/property-lenght-measure.js +0 -96
- package/es/catalog/properties/property-length-measure.js +0 -80
- package/es/catalog/properties/property-length-measure_hole.js +0 -96
- package/es/catalog/properties/property-number.js +0 -48
- package/es/catalog/properties/property-read-only.js +0 -26
- package/es/catalog/properties/property-string.js +0 -48
- package/es/catalog/properties/property-toggle.js +0 -39
- package/es/catalog/properties/shared-property-style.js +0 -14
- package/es/catalog/utils/FuseUtils.js +0 -79
- package/es/class/FuseUtils.js +0 -79
- package/es/components/style/button.js +0 -106
- package/es/components/style/cancel-button.js +0 -21
- package/es/components/style/content-container.js +0 -30
- package/es/components/style/content-title.js +0 -25
- package/es/components/style/delete-button.js +0 -24
- package/es/components/style/form-block.js +0 -20
- package/es/components/style/form-color-input.js +0 -26
- package/es/components/style/form-label.js +0 -22
- package/es/components/style/form-number-input_2.js +0 -238
- package/es/components/style/form-select.js +0 -19
- package/es/components/style/form-slider.js +0 -60
- package/es/components/style/form-text-input.js +0 -69
- package/es/index.html.ejs +0 -264
- package/es/reducers/user-reducer.js +0 -41
- package/es/utils/isolate-event-handler.js +0 -1622
- /package/{es/catalog/lines/wall/textures/bricks-normal2.jpg → lib/catalog/lines/wall/textures/painted-normal.jpg} +0 -0
package/es/AppContext.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
4
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
5
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
5
6
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
6
7
|
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
@@ -15,20 +16,20 @@ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstruct
|
|
|
15
16
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
16
17
|
// LiteKitchenConfigurator.jsx
|
|
17
18
|
import styled from 'styled-components';
|
|
19
|
+
import { convert } from "./utils/convert-units-lite";
|
|
18
20
|
import PropTypes from 'prop-types';
|
|
19
21
|
import React, { Component } from 'react';
|
|
20
22
|
import { connect } from 'react-redux';
|
|
21
23
|
import { bindActionCreators } from 'redux';
|
|
22
24
|
import * as constants from "./constants";
|
|
23
25
|
import { base64Decode } from "./utils/helper";
|
|
24
|
-
import actions
|
|
26
|
+
import actions from "./actions/export";
|
|
25
27
|
import Catalog from "./catalog/catalog";
|
|
26
28
|
import { Content } from "./components/export";
|
|
27
29
|
import Translator from "./translator/translator";
|
|
28
30
|
import { objectsMap } from "./utils/objects-utils";
|
|
29
31
|
import { VERSION } from "./version";
|
|
30
|
-
import { handleExternalEvent } from "./
|
|
31
|
-
import AppContext from "./AppContext";
|
|
32
|
+
import { handleExternalEvent } from "./events/external/handleExternalEvent";
|
|
32
33
|
var toolbarW = 0;
|
|
33
34
|
var wrapperStyle = {
|
|
34
35
|
display: 'flex',
|
|
@@ -40,9 +41,23 @@ var SubCategoryItemImage = styled.img(_templateObject2 || (_templateObject2 = _t
|
|
|
40
41
|
});
|
|
41
42
|
var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
42
43
|
function LiteKitchenConfigurator(props) {
|
|
44
|
+
var _utmRequestData2, _utmRequestData3, _utmRequestData4, _utmRequestData5, _utmRequestData6, _utmRequestData7, _utmRequestData8, _utmRequestData9, _utmRequestData0;
|
|
43
45
|
var _this;
|
|
44
46
|
_classCallCheck(this, LiteKitchenConfigurator);
|
|
45
47
|
_this = _callSuper(this, LiteKitchenConfigurator, [props]);
|
|
48
|
+
var utmDetailParams = new URLSearchParams(_this.props.location && _this.props.location.search);
|
|
49
|
+
var utmStrEncoded = utmDetailParams.get('details');
|
|
50
|
+
var utmRequestData = null;
|
|
51
|
+
if (utmStrEncoded) {
|
|
52
|
+
try {
|
|
53
|
+
var _utmRequestData;
|
|
54
|
+
utmRequestData = JSON.parse(base64Decode(utmStrEncoded));
|
|
55
|
+
utmRequestData = JSON.parse((_utmRequestData = utmRequestData) === null || _utmRequestData === void 0 ? void 0 : _utmRequestData.utm);
|
|
56
|
+
} catch (e) {
|
|
57
|
+
console.error('Cannot parse utm parameter: ', e);
|
|
58
|
+
utmRequestData = null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
46
61
|
_this.state = {
|
|
47
62
|
savePopupVisible: false,
|
|
48
63
|
quotePopupVisible: false,
|
|
@@ -75,6 +90,17 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
75
90
|
isSaved: false,
|
|
76
91
|
isLeaving: false
|
|
77
92
|
};
|
|
93
|
+
_this.utm = {
|
|
94
|
+
utm_source: ((_utmRequestData2 = utmRequestData) === null || _utmRequestData2 === void 0 ? void 0 : _utmRequestData2.source) || 'source',
|
|
95
|
+
utm_medium: ((_utmRequestData3 = utmRequestData) === null || _utmRequestData3 === void 0 ? void 0 : _utmRequestData3.medium) || 'medium',
|
|
96
|
+
utm_campaign: ((_utmRequestData4 = utmRequestData) === null || _utmRequestData4 === void 0 ? void 0 : _utmRequestData4.campaign) || 'campaign',
|
|
97
|
+
utm_term: ((_utmRequestData5 = utmRequestData) === null || _utmRequestData5 === void 0 ? void 0 : _utmRequestData5.term) || 'term',
|
|
98
|
+
utm_content: ((_utmRequestData6 = utmRequestData) === null || _utmRequestData6 === void 0 ? void 0 : _utmRequestData6.content) || 'content',
|
|
99
|
+
gclid: ((_utmRequestData7 = utmRequestData) === null || _utmRequestData7 === void 0 ? void 0 : _utmRequestData7.gclid) || 'gclid',
|
|
100
|
+
msclkid: ((_utmRequestData8 = utmRequestData) === null || _utmRequestData8 === void 0 ? void 0 : _utmRequestData8.msclkid) || 'msclkid',
|
|
101
|
+
fbclid: ((_utmRequestData9 = utmRequestData) === null || _utmRequestData9 === void 0 ? void 0 : _utmRequestData9.fbclid) || 'fbclid',
|
|
102
|
+
ttclid: ((_utmRequestData0 = utmRequestData) === null || _utmRequestData0 === void 0 ? void 0 : _utmRequestData0.ttclid) || 'ttclid'
|
|
103
|
+
};
|
|
78
104
|
_this.openFloor = _this.openFloor.bind(_this);
|
|
79
105
|
_this.openCabinet = _this.openCabinet.bind(_this);
|
|
80
106
|
_this.openFinishing = _this.openFinishing.bind(_this);
|
|
@@ -288,22 +314,36 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
288
314
|
var el = document.getElementById('add_appliances_inactive');
|
|
289
315
|
if (el !== null && el !== void 0 && (_el$parentElement0 = el.parentElement) !== null && _el$parentElement0 !== void 0 && _el$parentElement0.parentElement) el.parentElement.parentElement.style.zIndex = 6;
|
|
290
316
|
}
|
|
317
|
+
}, {
|
|
318
|
+
key: "getChildContext",
|
|
319
|
+
value: function getChildContext() {
|
|
320
|
+
var _this2 = this;
|
|
321
|
+
return _objectSpread(_objectSpread({}, objectsMap(actions, function (actionNamespace) {
|
|
322
|
+
return _this2.props[actionNamespace];
|
|
323
|
+
})), {}, {
|
|
324
|
+
translator: this.props.translator,
|
|
325
|
+
catalog: this.props.catalog
|
|
326
|
+
});
|
|
327
|
+
}
|
|
291
328
|
}, {
|
|
292
329
|
key: "componentDidMount",
|
|
293
330
|
value: function componentDidMount() {
|
|
294
|
-
var _extractedState$getIn;
|
|
295
331
|
window.forRedo = [];
|
|
332
|
+
var store = this.context.store;
|
|
296
333
|
var _this$props = this.props,
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
334
|
+
stateExtractor = _this$props.stateExtractor,
|
|
335
|
+
plugins = _this$props.plugins;
|
|
336
|
+
|
|
337
|
+
// keep old behavior: run plugins once on mount
|
|
338
|
+
var newplugins = _toConsumableArray(plugins);
|
|
339
|
+
newplugins.forEach(function (newplugin) {
|
|
340
|
+
return newplugin(store, stateExtractor);
|
|
341
|
+
});
|
|
302
342
|
}
|
|
303
343
|
}, {
|
|
304
344
|
key: "componentDidUpdate",
|
|
305
345
|
value: function componentDidUpdate(prevProps) {
|
|
306
|
-
var _extractedState$
|
|
346
|
+
var _extractedState$getIn;
|
|
307
347
|
var _this$props2 = this.props,
|
|
308
348
|
externalEvent = _this$props2.externalEvent,
|
|
309
349
|
extractedState = _this$props2.extractedState,
|
|
@@ -314,7 +354,9 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
314
354
|
if (prevProps.externalEvent !== externalEvent) {
|
|
315
355
|
handleExternalEvent(this.props);
|
|
316
356
|
}
|
|
317
|
-
|
|
357
|
+
|
|
358
|
+
// same behavior: init catalog until ready
|
|
359
|
+
var catalogReady = extractedState === null || extractedState === void 0 || (_extractedState$getIn = extractedState.getIn) === null || _extractedState$getIn === void 0 ? void 0 : _extractedState$getIn.call(extractedState, ['catalog', 'ready']);
|
|
318
360
|
if (!catalogReady) projectActions.initCatalog(catalog);
|
|
319
361
|
}
|
|
320
362
|
}, {
|
|
@@ -365,7 +407,6 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
365
407
|
}, {
|
|
366
408
|
key: "render",
|
|
367
409
|
value: function render() {
|
|
368
|
-
var _this2 = this;
|
|
369
410
|
var _this$props3 = this.props,
|
|
370
411
|
width = _this$props3.width,
|
|
371
412
|
height = _this$props3.height,
|
|
@@ -380,15 +421,9 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
380
421
|
var contentW = width - toolbarW;
|
|
381
422
|
var contentH = height;
|
|
382
423
|
var extracted = this.getExtractedStateWithViewer2DInit(extractedState, width, height);
|
|
383
|
-
var
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
translator: this.props.translator,
|
|
387
|
-
catalog: this.props.catalog
|
|
388
|
-
});
|
|
389
|
-
return /*#__PURE__*/React.createElement(AppContext.Provider, {
|
|
390
|
-
value: ctxValue
|
|
391
|
-
}, /*#__PURE__*/React.createElement("section", null, /*#__PURE__*/React.createElement("div", {
|
|
424
|
+
var firstVisit = this.state.wizardStepOpend && this.isProjectEmpty(extracted.scene);
|
|
425
|
+
var allVisible = firstVisit || signOpen || myProjectsOpen;
|
|
426
|
+
return /*#__PURE__*/React.createElement("section", null, /*#__PURE__*/React.createElement("div", {
|
|
392
427
|
style: _objectSpread(_objectSpread({}, wrapperStyle), {}, {
|
|
393
428
|
height: height,
|
|
394
429
|
display: 'flex',
|
|
@@ -422,7 +457,7 @@ var LiteKitchenConfigurator = /*#__PURE__*/function (_Component) {
|
|
|
422
457
|
height: 30,
|
|
423
458
|
width: 30
|
|
424
459
|
}
|
|
425
|
-
}), "This item is not available in the current door style. Replace it with another one.")))
|
|
460
|
+
}), "This item is not available in the current door style. Replace it with another one.")));
|
|
426
461
|
}
|
|
427
462
|
}]);
|
|
428
463
|
}(Component);
|
|
@@ -442,6 +477,15 @@ LiteKitchenConfigurator.propTypes = {
|
|
|
442
477
|
// ✅ injected by connect
|
|
443
478
|
externalEvent: PropTypes.object
|
|
444
479
|
};
|
|
480
|
+
LiteKitchenConfigurator.contextTypes = {
|
|
481
|
+
store: PropTypes.object.isRequired
|
|
482
|
+
};
|
|
483
|
+
LiteKitchenConfigurator.childContextTypes = _objectSpread(_objectSpread({}, objectsMap(actions, function () {
|
|
484
|
+
return PropTypes.object;
|
|
485
|
+
})), {}, {
|
|
486
|
+
translator: PropTypes.object,
|
|
487
|
+
catalog: PropTypes.object
|
|
488
|
+
});
|
|
445
489
|
LiteKitchenConfigurator.defaultProps = {
|
|
446
490
|
translator: new Translator(),
|
|
447
491
|
catalog: new Catalog(),
|
package/es/LiteRenderer.js
CHANGED
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
|
-
|
|
5
|
-
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
6
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
7
|
-
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
8
|
-
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
9
|
-
var _excluded = ["width", "height", "configData", "externalEvent", "onInternalEvent", "onError"];
|
|
4
|
+
var _excluded = ["width", "height", "configData", "externalEvent", "onInternalEvent", "onError", "holes"];
|
|
10
5
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
6
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
7
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
13
8
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
14
9
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
15
|
-
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
16
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
17
10
|
// LiteRenderer.jsx
|
|
18
11
|
import React, { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
19
12
|
import PropTypes from 'prop-types';
|
|
@@ -29,7 +22,7 @@ import AppContext from "./AppContext";
|
|
|
29
22
|
import Catalog from "./catalog/catalog";
|
|
30
23
|
import * as Areas from "./catalog/areas/area/planner-element";
|
|
31
24
|
import * as Lines from "./catalog/lines/wall/planner-element";
|
|
32
|
-
import
|
|
25
|
+
import { buildHoleElements, registerDynamicHoles } from "./mappings/holesToCatalog";
|
|
33
26
|
import { ConsoleDebugger, Keyboard } from "./plugins/export";
|
|
34
27
|
import LiteKitchenConfigurator from "./LiteKitchenConfigurator";
|
|
35
28
|
var isBrowser = typeof window !== 'undefined';
|
|
@@ -80,50 +73,15 @@ function serializeError(err) {
|
|
|
80
73
|
}
|
|
81
74
|
}
|
|
82
75
|
|
|
83
|
-
/* ---------- Error Boundary that pushes into buffer ---------- */
|
|
84
|
-
var ToolErrorBoundary = /*#__PURE__*/function (_React$Component) {
|
|
85
|
-
function ToolErrorBoundary() {
|
|
86
|
-
_classCallCheck(this, ToolErrorBoundary);
|
|
87
|
-
return _callSuper(this, ToolErrorBoundary, arguments);
|
|
88
|
-
}
|
|
89
|
-
_inherits(ToolErrorBoundary, _React$Component);
|
|
90
|
-
return _createClass(ToolErrorBoundary, [{
|
|
91
|
-
key: "componentDidCatch",
|
|
92
|
-
value: function componentDidCatch(error, info) {
|
|
93
|
-
var pushError = this.props.pushError;
|
|
94
|
-
pushError({
|
|
95
|
-
type: 'render-error',
|
|
96
|
-
error: serializeError(error),
|
|
97
|
-
info: {
|
|
98
|
-
componentStack: info === null || info === void 0 ? void 0 : info.componentStack
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
}, {
|
|
103
|
-
key: "render",
|
|
104
|
-
value: function render() {
|
|
105
|
-
return this.props.children;
|
|
106
|
-
}
|
|
107
|
-
}]);
|
|
108
|
-
}(React.Component);
|
|
109
|
-
ToolErrorBoundary.propTypes = {
|
|
110
|
-
pushError: PropTypes.func.isRequired,
|
|
111
|
-
children: PropTypes.any
|
|
112
|
-
};
|
|
113
|
-
|
|
114
76
|
// ----------------- catalog init -----------------
|
|
115
77
|
function initCatalogOnce(catalog) {
|
|
116
78
|
if (!catalog) return;
|
|
117
|
-
if (catalog.__ksInitialized)
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
catalog.registerCategory('Doors', 'Doors', [Holes.doorInterior, Holes.doorExterior, Holes.doorCloset, Holes.doorSliding, Holes.doorwayFramed, Holes.doorwayFrameless]);
|
|
123
|
-
catalog.__ksInitialized = true;
|
|
79
|
+
if (!catalog.__ksInitialized) {
|
|
80
|
+
for (var x in Areas) catalog.registerElement(Areas[x]);
|
|
81
|
+
for (var _x in Lines) catalog.registerElement(Lines[_x]);
|
|
82
|
+
catalog.__ksInitialized = true;
|
|
83
|
+
}
|
|
124
84
|
}
|
|
125
|
-
|
|
126
|
-
// ----------------- store factory -----------------
|
|
127
85
|
function createInstanceStore() {
|
|
128
86
|
var AppState = Map({
|
|
129
87
|
KitchenConfigurator: new State()
|
|
@@ -164,15 +122,11 @@ export default function LiteRenderer(props) {
|
|
|
164
122
|
externalEvent = props.externalEvent,
|
|
165
123
|
onInternalEvent = props.onInternalEvent,
|
|
166
124
|
onError = props.onError,
|
|
125
|
+
holes = props.holes,
|
|
167
126
|
passThrough = _objectWithoutProperties(props, _excluded);
|
|
168
|
-
|
|
169
|
-
return
|
|
170
|
-
|
|
171
|
-
clearTimeout(flushTimerRef.current);
|
|
172
|
-
flushTimerRef.current = null;
|
|
173
|
-
}
|
|
174
|
-
};
|
|
175
|
-
}, []);
|
|
127
|
+
var holePayload = useMemo(function () {
|
|
128
|
+
return buildHoleElements(holes);
|
|
129
|
+
}, [holes]);
|
|
176
130
|
|
|
177
131
|
// ✅ instance-scoped store (no module singleton)
|
|
178
132
|
var storeRef = useRef(null);
|
|
@@ -182,8 +136,9 @@ export default function LiteRenderer(props) {
|
|
|
182
136
|
var catalogRef = useRef(null);
|
|
183
137
|
if (!catalogRef.current) {
|
|
184
138
|
catalogRef.current = new Catalog();
|
|
185
|
-
initCatalogOnce(catalogRef.current);
|
|
186
139
|
}
|
|
140
|
+
initCatalogOnce(catalogRef.current);
|
|
141
|
+
registerDynamicHoles(catalogRef.current, holePayload);
|
|
187
142
|
|
|
188
143
|
// ✅ stable plugins array
|
|
189
144
|
var plugins = useMemo(function () {
|
|
@@ -319,13 +274,8 @@ export default function LiteRenderer(props) {
|
|
|
319
274
|
var _ref = configData || {},
|
|
320
275
|
logoImg = _ref.logoImg,
|
|
321
276
|
companyUrl = _ref.companyUrl;
|
|
322
|
-
|
|
323
|
-
return null;
|
|
324
|
-
}
|
|
325
|
-
return /*#__PURE__*/React.createElement(Provider, {
|
|
277
|
+
return /*#__PURE__*/React.createElement(AppContext.Provider, null, /*#__PURE__*/React.createElement(Provider, {
|
|
326
278
|
store: storeRef.current
|
|
327
|
-
}, /*#__PURE__*/React.createElement(ToolErrorBoundary, {
|
|
328
|
-
pushError: pushError
|
|
329
279
|
}, /*#__PURE__*/React.createElement(LiteKitchenConfigurator, _extends({
|
|
330
280
|
catalog: catalogRef.current,
|
|
331
281
|
width: width,
|
|
@@ -359,5 +309,6 @@ LiteRenderer.propTypes = {
|
|
|
359
309
|
externalEvent: PropTypes.object,
|
|
360
310
|
onInternalEvent: PropTypes.func,
|
|
361
311
|
onError: PropTypes.func,
|
|
312
|
+
holes: PropTypes.array,
|
|
362
313
|
store: PropTypes.object
|
|
363
314
|
};
|
package/es/actions/export.js
CHANGED
|
@@ -8,16 +8,29 @@ import * as verticesActions from "./vertices-actions";
|
|
|
8
8
|
import * as itemsActions from "./items-actions";
|
|
9
9
|
import * as areaActions from "./area-actions";
|
|
10
10
|
import * as groupsActions from "./groups-actions";
|
|
11
|
-
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
projectActions,
|
|
14
|
+
viewer2DActions,
|
|
15
|
+
viewer3DActions,
|
|
16
|
+
linesActions,
|
|
17
|
+
holesActions,
|
|
18
|
+
sceneActions,
|
|
19
|
+
verticesActions,
|
|
20
|
+
itemsActions,
|
|
21
|
+
areaActions,
|
|
22
|
+
groupsActions
|
|
23
|
+
};
|
|
24
|
+
|
|
12
25
|
export default {
|
|
13
|
-
projectActions
|
|
14
|
-
viewer2DActions
|
|
15
|
-
viewer3DActions
|
|
16
|
-
linesActions
|
|
17
|
-
holesActions
|
|
18
|
-
sceneActions
|
|
19
|
-
verticesActions
|
|
20
|
-
itemsActions
|
|
21
|
-
areaActions
|
|
22
|
-
groupsActions
|
|
23
|
-
};
|
|
26
|
+
projectActions,
|
|
27
|
+
viewer2DActions,
|
|
28
|
+
viewer3DActions,
|
|
29
|
+
linesActions,
|
|
30
|
+
holesActions,
|
|
31
|
+
sceneActions,
|
|
32
|
+
verticesActions,
|
|
33
|
+
itemsActions,
|
|
34
|
+
areaActions,
|
|
35
|
+
groupsActions
|
|
36
|
+
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TOGGLE_LOADING_CABINET, SELECT_ITEM, SELECT_TOOL_DRAWING_ITEM, UPDATE_DRAWING_ITEM, END_DRAWING_ITEM, BEGIN_DRAGGING_ITEM, BEGIN_DRAGGING_ITEM_3D, UPDATE_DRAGGING_ITEM, UPDATE_DRAGGING_ITEM_3DX, UPDATE_DRAGGING_ITEM_3DY, END_DRAGGING_ITEM, END_DRAGGING_ITEM_3D, UPDATE_DRAGGING_ITEM_CHANGED, UPDATE_ROTATING_ITEM_CHANGED, BEGIN_ROTATING_ITEM, BEGIN_ROTATING_ITEM_3D, UPDATE_ROTATING_ITEM, UPDATE_ROTATING, END_ROTATING_ITEM, END_ROTATING_ITEM_3D, REPLACE_SUBMODULE, ANIMATE_OBJECT, REMOVE_REPLACE_SUBMODULE, ITEM_MOVE_UP, SELECT_TOOL_DRAWING_ITEM_3D, SET_DOOR_STYLE, SET_HANDLE_MATERIAL, SET_INITIAL_DOOR_STYLE, SET_DISTANT, SET_DOOR_HANDLE, SET_WALL_COLOR, END_CREATING_CABINET, UPDATE_POPUP_OPEN, SET_MODELLING, SET_COUNTER_TOP, SET_BACKSPLASH, SET_BACKSPLASH_VISIBLE, SET_APPLIANCE_MATERIAL, DUPLICATE_SELECTED, EDIT_WIDTH, END_LOADING, STORE_DIST_ARRAY, SET_MOLDING, UPDATE_MOLDING, VALIDATE_ITEM_POSTIONS, REPLACE_ITEM, SET_MOVE_STATUS, SET_ROTATE_STATUS } from "../constants";
|
|
2
|
+
import { SET_ITEMS_CCDF } from "../constants";
|
|
2
3
|
export function storeDistArray(layerID, itemID, distArray) {
|
|
3
4
|
return {
|
|
4
5
|
type: STORE_DIST_ARRAY,
|
|
@@ -227,12 +228,13 @@ export function updateItemsAltitude(layerID, itemID, value) {
|
|
|
227
228
|
value: value
|
|
228
229
|
};
|
|
229
230
|
}
|
|
230
|
-
export function setDoorStyle(doorStyle, itemCDS,
|
|
231
|
+
export function setDoorStyle(doorStyle, itemCDS, applyScope, itemIds) {
|
|
231
232
|
return {
|
|
232
233
|
type: SET_DOOR_STYLE,
|
|
233
234
|
doorStyle: doorStyle,
|
|
234
235
|
itemCDS: itemCDS,
|
|
235
|
-
|
|
236
|
+
applyScope: applyScope,
|
|
237
|
+
itemIds: itemIds
|
|
236
238
|
};
|
|
237
239
|
}
|
|
238
240
|
export function setCounterTop(counterTop) {
|
|
@@ -313,4 +315,18 @@ export function setRotateStatus(status) {
|
|
|
313
315
|
type: SET_ROTATE_STATUS,
|
|
314
316
|
status: status
|
|
315
317
|
};
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
// Persist selected ccdf onto placed scene items (instances) so SYNC can return it.
|
|
321
|
+
// ccdf_list entries are matched by `door_finish_id` (== doorStyle.id).
|
|
322
|
+
export function setItemsCCDF(ccdf_list, applyScope) {
|
|
323
|
+
var itemIds = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
324
|
+
var doorFinishId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
325
|
+
return {
|
|
326
|
+
type: SET_ITEMS_CCDF,
|
|
327
|
+
ccdf_list: ccdf_list,
|
|
328
|
+
applyScope: applyScope,
|
|
329
|
+
itemIds: itemIds,
|
|
330
|
+
doorFinishId: doorFinishId
|
|
331
|
+
};
|
|
316
332
|
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
import ReactGA from 'react-ga4';
|
|
5
|
+
|
|
6
|
+
// ---------- Helpers ----------
|
|
7
|
+
function nowMs() {
|
|
8
|
+
return Date.now();
|
|
9
|
+
}
|
|
10
|
+
function getClientName() {
|
|
11
|
+
return sessionStorage.getItem('visualizerName');
|
|
12
|
+
}
|
|
13
|
+
function isDesktopUA() {
|
|
14
|
+
// Lightweight heuristic; GA4 also provides device.category. This flag can help ad-hoc filtering.
|
|
15
|
+
var ua = navigator.userAgent.toLowerCase();
|
|
16
|
+
var isMobile = /mobi|android|iphone|ipad|ipod|windows phone/.test(ua);
|
|
17
|
+
return !isMobile;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// ---------- Keys for storage ----------
|
|
21
|
+
var SSN_KEYS = {
|
|
22
|
+
sessionStartMs: 'ga4_session_start_ms',
|
|
23
|
+
introChoiceMs: 'ga4_intro_choice_ms',
|
|
24
|
+
firstCabinetPlaced: 'ga4_first_cabinet_placed',
|
|
25
|
+
contextBooted: 'ga4_context_booted',
|
|
26
|
+
enteredCanvasSent: 'ga4_entered_canvas_sent'
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// ---------- Core GA wrapper ----------
|
|
30
|
+
export var GA = {
|
|
31
|
+
init: function init(_ref) {
|
|
32
|
+
var measurementId = _ref.measurementId;
|
|
33
|
+
ReactGA.initialize([{
|
|
34
|
+
trackingId: measurementId
|
|
35
|
+
}], {
|
|
36
|
+
testMode: false
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
resetSessionKeys: function resetSessionKeys() {
|
|
40
|
+
Object.values(SSN_KEYS).forEach(function (key) {
|
|
41
|
+
sessionStorage.removeItem(key);
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
/**
|
|
45
|
+
* Must be called ONCE per page load, *before* other events.
|
|
46
|
+
* Sets user properties (project_entry, cross_auth) and sends an initial page_view with client_name.
|
|
47
|
+
*/
|
|
48
|
+
bootSessionContext: function bootSessionContext(_ref2) {
|
|
49
|
+
var projectEntry = _ref2.projectEntry,
|
|
50
|
+
crossAuth = _ref2.crossAuth;
|
|
51
|
+
try {
|
|
52
|
+
var resolvedClient = getClientName();
|
|
53
|
+
|
|
54
|
+
// Persist session start for timing metrics (if not already set for this tab)
|
|
55
|
+
if (!sessionStorage.getItem(SSN_KEYS.sessionStartMs)) {
|
|
56
|
+
sessionStorage.setItem(SSN_KEYS.sessionStartMs, String(nowMs()));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Mark context as booted to avoid duplicate property sets on hot reloads
|
|
60
|
+
if (!sessionStorage.getItem(SSN_KEYS.contextBooted)) {
|
|
61
|
+
sessionStorage.setItem(SSN_KEYS.contextBooted, '1');
|
|
62
|
+
|
|
63
|
+
// Set GA4 user_properties (user-scoped dimensions)
|
|
64
|
+
ReactGA.gtag('set', 'user_properties', {
|
|
65
|
+
project_entry: projectEntry,
|
|
66
|
+
// user scope dimension
|
|
67
|
+
cross_auth: crossAuth // user scope dimension (boolean serialized)
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Send first page_view hit enriched with event-scoped client_name
|
|
72
|
+
ReactGA.send({
|
|
73
|
+
hitType: 'pageview',
|
|
74
|
+
page: window.location.pathname + window.location.search,
|
|
75
|
+
// @ts-expect-error react-ga4 passes along additional params into gtag
|
|
76
|
+
client_name: resolvedClient
|
|
77
|
+
});
|
|
78
|
+
} catch (e) {
|
|
79
|
+
// eslint-disable-next-line no-console
|
|
80
|
+
console.warn('GA.bootSessionContext error', e);
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
// Utility to derive cross_auth from URL (token or details query params)
|
|
84
|
+
deriveCrossAuthFromUrl: function deriveCrossAuthFromUrl(search) {
|
|
85
|
+
var sp = new URLSearchParams(search);
|
|
86
|
+
return sp.has('token') || sp.has('details');
|
|
87
|
+
},
|
|
88
|
+
// Utility to derive project entry (best-effort). You can also pass explicitly from router logic.
|
|
89
|
+
deriveProjectEntry: function deriveProjectEntry() {
|
|
90
|
+
var projectId = sessionStorage.getItem('projectId');
|
|
91
|
+
|
|
92
|
+
// If a project id exists, consider it "open_existing"; otherwise fallback to "new"
|
|
93
|
+
if (projectId) return 'open_existing';
|
|
94
|
+
return 'new';
|
|
95
|
+
},
|
|
96
|
+
// ---------- Event API ----------
|
|
97
|
+
events: {
|
|
98
|
+
/**
|
|
99
|
+
* intro_choice(option) — records the user's entry choice.
|
|
100
|
+
* Also stores a timestamp for later time_to_canvas calculation.
|
|
101
|
+
*/
|
|
102
|
+
introChoice: function introChoice(option, extra) {
|
|
103
|
+
var client_name = getClientName();
|
|
104
|
+
sessionStorage.setItem(SSN_KEYS.introChoiceMs, String(nowMs()));
|
|
105
|
+
ReactGA.event('intro_choice', _objectSpread({
|
|
106
|
+
client_name: client_name,
|
|
107
|
+
option: option
|
|
108
|
+
}, extra || {}));
|
|
109
|
+
},
|
|
110
|
+
/**
|
|
111
|
+
* entered_canvas(time_to_canvas) — compute (now - intro_choice)
|
|
112
|
+
*/
|
|
113
|
+
enteredCanvas: function enteredCanvas() {
|
|
114
|
+
// fire only once per tab/session
|
|
115
|
+
if (sessionStorage.getItem(SSN_KEYS.enteredCanvasSent)) return;
|
|
116
|
+
var client_name = getClientName();
|
|
117
|
+
var introMs = Number(sessionStorage.getItem(SSN_KEYS.introChoiceMs) || 0);
|
|
118
|
+
var timeSec = introMs ? Math.max(0, Math.round((Date.now() - introMs) / 1000)) : undefined;
|
|
119
|
+
ReactGA.event('entered_canvas', _objectSpread({
|
|
120
|
+
client_name: client_name
|
|
121
|
+
}, typeof timeSec === 'number' ? {
|
|
122
|
+
time_to_canvas: timeSec
|
|
123
|
+
} : {}));
|
|
124
|
+
sessionStorage.setItem(SSN_KEYS.enteredCanvasSent, '1'); // 👈 lock it
|
|
125
|
+
},
|
|
126
|
+
/**
|
|
127
|
+
* cabinet_placed(time_to_first_cabinet) — send only for the *first* cabinet of the session.
|
|
128
|
+
*/
|
|
129
|
+
cabinetPlaced: function cabinetPlaced() {
|
|
130
|
+
var already = sessionStorage.getItem(SSN_KEYS.firstCabinetPlaced);
|
|
131
|
+
var client_name = getClientName();
|
|
132
|
+
var params = {
|
|
133
|
+
client_name: client_name
|
|
134
|
+
};
|
|
135
|
+
if (!already) {
|
|
136
|
+
var startMs = Number(sessionStorage.getItem(SSN_KEYS.sessionStartMs) || 0);
|
|
137
|
+
var timeSec = startMs ? Math.max(0, Math.round((nowMs() - startMs) / 1000)) : undefined;
|
|
138
|
+
if (typeof timeSec === 'number') params.time_to_first_cabinet = timeSec; // custom metric (seconds)
|
|
139
|
+
sessionStorage.setItem(SSN_KEYS.firstCabinetPlaced, '1');
|
|
140
|
+
}
|
|
141
|
+
ReactGA.event('cabinet_placed', params);
|
|
142
|
+
},
|
|
143
|
+
/**
|
|
144
|
+
* door_changed(door_id)
|
|
145
|
+
*/
|
|
146
|
+
doorChanged: function doorChanged(door_id) {
|
|
147
|
+
var client_name = getClientName();
|
|
148
|
+
ReactGA.event('door_changed', {
|
|
149
|
+
client_name: client_name,
|
|
150
|
+
door_id: door_id
|
|
151
|
+
});
|
|
152
|
+
},
|
|
153
|
+
/**
|
|
154
|
+
* project_saved(project_id, save_method) — mark as conversion in GA UI.
|
|
155
|
+
*/
|
|
156
|
+
projectSaved: function projectSaved(project_id, save_method) {
|
|
157
|
+
var client_name = getClientName();
|
|
158
|
+
ReactGA.event('project_saved', {
|
|
159
|
+
client_name: client_name,
|
|
160
|
+
project_id: project_id,
|
|
161
|
+
save_method: save_method
|
|
162
|
+
});
|
|
163
|
+
},
|
|
164
|
+
/**
|
|
165
|
+
* assistance_requested(method, project_id) — mark as conversion in GA UI.
|
|
166
|
+
*/
|
|
167
|
+
assistanceRequested: function assistanceRequested(method, project_id) {
|
|
168
|
+
var client_name = getClientName();
|
|
169
|
+
ReactGA.event('assistance_requested', {
|
|
170
|
+
client_name: client_name,
|
|
171
|
+
method: method,
|
|
172
|
+
project_id: project_id
|
|
173
|
+
});
|
|
174
|
+
},
|
|
175
|
+
/**
|
|
176
|
+
* add_to_cart(project_id, sku_count, price_total) — mark as conversion in GA UI.
|
|
177
|
+
*/
|
|
178
|
+
addToCart: function addToCart(project_id, sku_count, price_total) {
|
|
179
|
+
var client_name = getClientName();
|
|
180
|
+
ReactGA.event('add_to_cart', {
|
|
181
|
+
client_name: client_name,
|
|
182
|
+
project_id: project_id,
|
|
183
|
+
sku_count: sku_count,
|
|
184
|
+
price_total: price_total
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import posthog from 'posthog-js';
|
|
2
|
+
|
|
3
|
+
// ---- session context ----
|
|
4
|
+
export function bootSessionContext() {
|
|
5
|
+
var url = new URL(window.location.href);
|
|
6
|
+
var client_name = sessionStorage.getItem('visualizerName');
|
|
7
|
+
var project_entry = sessionStorage.getItem('projectId') ? 'open_existing' : 'new';
|
|
8
|
+
var cross_auth = url.searchParams.has('token') || url.searchParams.has('details');
|
|
9
|
+
|
|
10
|
+
// Persist context on the client/session
|
|
11
|
+
posthog.register({
|
|
12
|
+
client_name: client_name,
|
|
13
|
+
project_entry: project_entry,
|
|
14
|
+
cross_auth: cross_auth
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
// First-hit event for qualitative flow
|
|
18
|
+
posthog.capture('session_started', {
|
|
19
|
+
client_name: client_name,
|
|
20
|
+
project_entry: project_entry,
|
|
21
|
+
cross_auth: cross_auth
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Optional: expose session id for replay linkage
|
|
26
|
+
export function getSessionId() {
|
|
27
|
+
try {
|
|
28
|
+
return posthog.get_session_id();
|
|
29
|
+
} catch (_unused) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// ---- event wrappers (mirror GA4 conversions) ----
|
|
35
|
+
export var PH = {
|
|
36
|
+
projectSaved: function projectSaved(project_id) {
|
|
37
|
+
posthog.capture('project_saved', {
|
|
38
|
+
project_id: project_id,
|
|
39
|
+
client_name: sessionStorage.getItem('visualizerName'),
|
|
40
|
+
session_id: getSessionId()
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
assistanceRequested: function assistanceRequested(method, project_id) {
|
|
44
|
+
posthog.capture('assistance_requested', {
|
|
45
|
+
method: method,
|
|
46
|
+
project_id: project_id,
|
|
47
|
+
client_name: sessionStorage.getItem('visualizerName'),
|
|
48
|
+
session_id: getSessionId()
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
addToCart: function addToCart(project_id, sku_count, price_total) {
|
|
52
|
+
posthog.capture('add_to_cart', {
|
|
53
|
+
project_id: project_id,
|
|
54
|
+
sku_count: sku_count,
|
|
55
|
+
price_total: price_total,
|
|
56
|
+
client_name: sessionStorage.getItem('visualizerName'),
|
|
57
|
+
session_id: getSessionId()
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
};
|