kitchen-simulator 5.0.0-test.4 → 5.0.0-test.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/package.json +23 -41
- package/es/@history.js +0 -3
- package/es/@history.js.map +0 -1
- package/es/AppContext.js +0 -4
- package/es/AppContext.js.map +0 -1
- package/es/KitchenConfigurator.js +0 -1345
- package/es/KitchenConfigurator.js.map +0 -1
- package/es/KitchenConfiguratorApp.js +0 -532
- package/es/KitchenConfiguratorApp.js.map +0 -1
- package/es/actions/area-actions.js +0 -15
- package/es/actions/area-actions.js.map +0 -1
- package/es/actions/export.js +0 -26
- package/es/actions/export.js.map +0 -1
- package/es/actions/groups-actions.js +0 -90
- package/es/actions/groups-actions.js.map +0 -1
- package/es/actions/holes-actions.js +0 -120
- package/es/actions/holes-actions.js.map +0 -1
- package/es/actions/items-actions.js +0 -314
- package/es/actions/items-actions.js.map +0 -1
- package/es/actions/lines-actions.js +0 -83
- package/es/actions/lines-actions.js.map +0 -1
- package/es/actions/project-actions.js +0 -282
- package/es/actions/project-actions.js.map +0 -1
- package/es/actions/scene-actions.js +0 -34
- package/es/actions/scene-actions.js.map +0 -1
- package/es/actions/user-actions.js +0 -59
- package/es/actions/user-actions.js.map +0 -1
- package/es/actions/vertices-actions.js +0 -28
- package/es/actions/vertices-actions.js.map +0 -1
- package/es/actions/viewer2d-actions.js +0 -59
- package/es/actions/viewer2d-actions.js.map +0 -1
- package/es/actions/viewer3d-actions.js +0 -24
- package/es/actions/viewer3d-actions.js.map +0 -1
- package/es/catalog/areas/area/planner-element.js +0 -41
- package/es/catalog/areas/area/planner-element.js.map +0 -1
- package/es/catalog/areas/area/textures/ceramic-tile.jpg +0 -0
- package/es/catalog/areas/area/textures/grass.jpg +0 -0
- package/es/catalog/areas/area/textures/parquet.jpg +0 -0
- package/es/catalog/areas/area/textures/strand-porcelain.jpg +0 -0
- package/es/catalog/areas/area/textures/tile1.jpg +0 -0
- package/es/catalog/back.png +0 -0
- package/es/catalog/catalog.js +0 -278
- package/es/catalog/catalog.js.map +0 -1
- package/es/catalog/doors.png +0 -0
- package/es/catalog/doorways.png +0 -0
- package/es/catalog/envMap/nx.hdr +0 -0
- package/es/catalog/envMap/ny.hdr +0 -0
- package/es/catalog/envMap/nz.hdr +0 -0
- package/es/catalog/envMap/px.hdr +0 -0
- package/es/catalog/envMap/py.hdr +0 -0
- package/es/catalog/envMap/pz.hdr +0 -0
- package/es/catalog/factories/area-factory-3d.js +0 -183
- package/es/catalog/factories/area-factory-3d.js.map +0 -1
- package/es/catalog/factories/area-factory.js +0 -82
- package/es/catalog/factories/area-factory.js.map +0 -1
- package/es/catalog/factories/export.js +0 -8
- package/es/catalog/factories/export.js.map +0 -1
- package/es/catalog/factories/wall-factory-3d.js +0 -203
- package/es/catalog/factories/wall-factory-3d.js.map +0 -1
- package/es/catalog/factories/wall-factory.js +0 -269
- package/es/catalog/factories/wall-factory.js.map +0 -1
- package/es/catalog/holes/door-closet/planner-element.js +0 -223
- package/es/catalog/holes/door-closet/planner-element.js.map +0 -1
- package/es/catalog/holes/door-double/door_double.png +0 -0
- package/es/catalog/holes/door-double/planner-element.js +0 -316
- package/es/catalog/holes/door-double/planner-element.js.map +0 -1
- package/es/catalog/holes/door-exterior/planner-element.js +0 -216
- package/es/catalog/holes/door-exterior/planner-element.js.map +0 -1
- package/es/catalog/holes/door-interior/planner-element.js +0 -228
- package/es/catalog/holes/door-interior/planner-element.js.map +0 -1
- package/es/catalog/holes/door-panic/panicDoor.png +0 -0
- package/es/catalog/holes/door-panic/planner-element.js +0 -504
- package/es/catalog/holes/door-panic/planner-element.js.map +0 -1
- package/es/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
- package/es/catalog/holes/door-panic-double/planner-element.js +0 -464
- package/es/catalog/holes/door-panic-double/planner-element.js.map +0 -1
- package/es/catalog/holes/door-sliding/planner-element.js +0 -226
- package/es/catalog/holes/door-sliding/planner-element.js.map +0 -1
- package/es/catalog/holes/doorway-framed/planner-element.js +0 -146
- package/es/catalog/holes/doorway-framed/planner-element.js.map +0 -1
- package/es/catalog/holes/doorway-frameless/planner-element.js +0 -105
- package/es/catalog/holes/doorway-frameless/planner-element.js.map +0 -1
- package/es/catalog/holes/gate/gate.jpg +0 -0
- package/es/catalog/holes/window-clear/planner-element.js +0 -167
- package/es/catalog/holes/window-clear/planner-element.js.map +0 -1
- package/es/catalog/holes/window-clear/texture.png +0 -0
- package/es/catalog/holes/window-cross/planner-element.js +0 -166
- package/es/catalog/holes/window-cross/planner-element.js.map +0 -1
- package/es/catalog/holes/window-cross/texture.png +0 -0
- package/es/catalog/holes/window-double-hung/planner-element.js +0 -304
- package/es/catalog/holes/window-double-hung/planner-element.js.map +0 -1
- package/es/catalog/holes/window-double-hung/texture.png +0 -0
- package/es/catalog/holes/window-vertical/planner-element.js +0 -277
- package/es/catalog/holes/window-vertical/planner-element.js.map +0 -1
- package/es/catalog/holes/window-vertical/texture.png +0 -0
- package/es/catalog/lines/wall/planner-element.js +0 -71
- package/es/catalog/lines/wall/planner-element.js.map +0 -1
- package/es/catalog/lines/wall/textures/bricks-normal.jpg +0 -0
- package/es/catalog/lines/wall/textures/bricks-normal2.jpg +0 -0
- package/es/catalog/lines/wall/textures/bricks.jpg +0 -0
- package/es/catalog/lines/wall/textures/bricks2.jpg +0 -0
- package/es/catalog/lines/wall/textures/bricks3.jpg +0 -0
- package/es/catalog/lines/wall/textures/morden-normal.jpg +0 -0
- package/es/catalog/lines/wall/textures/morden.jpg +0 -0
- package/es/catalog/lines/wall/textures/painted-normal.jpg +0 -0
- package/es/catalog/lines/wall/textures/painted.jpg +0 -0
- package/es/catalog/lines/wall/textures/plaster-normal.jpg +0 -0
- package/es/catalog/lines/wall/textures/plaster.jpg +0 -0
- package/es/catalog/lines/wall/wall.png +0 -0
- package/es/catalog/molding/molding-dcm/planner-element.js +0 -30
- package/es/catalog/molding/molding-dcm/planner-element.js.map +0 -1
- package/es/catalog/molding/molding-dcm/texture.png +0 -0
- package/es/catalog/molding/molding-fbm/planner-element.js +0 -30
- package/es/catalog/molding/molding-fbm/planner-element.js.map +0 -1
- package/es/catalog/molding/molding-fbm/texture.png +0 -0
- package/es/catalog/molding/molding-lrm/planner-element.js +0 -30
- package/es/catalog/molding/molding-lrm/planner-element.js.map +0 -1
- package/es/catalog/molding/molding-lrm/texture.png +0 -0
- package/es/catalog/properties/export.js +0 -22
- package/es/catalog/properties/export.js.map +0 -1
- package/es/catalog/properties/property-checkbox.js +0 -72
- package/es/catalog/properties/property-checkbox.js.map +0 -1
- package/es/catalog/properties/property-color.js +0 -40
- package/es/catalog/properties/property-color.js.map +0 -1
- package/es/catalog/properties/property-enum.js +0 -56
- package/es/catalog/properties/property-enum.js.map +0 -1
- package/es/catalog/properties/property-hidden.js +0 -20
- package/es/catalog/properties/property-hidden.js.map +0 -1
- package/es/catalog/properties/property-lenght-measure.js +0 -102
- package/es/catalog/properties/property-lenght-measure.js.map +0 -1
- package/es/catalog/properties/property-length-measure.js +0 -86
- package/es/catalog/properties/property-length-measure.js.map +0 -1
- package/es/catalog/properties/property-length-measure_hole.js +0 -102
- package/es/catalog/properties/property-length-measure_hole.js.map +0 -1
- package/es/catalog/properties/property-number.js +0 -49
- package/es/catalog/properties/property-number.js.map +0 -1
- package/es/catalog/properties/property-read-only.js +0 -27
- package/es/catalog/properties/property-read-only.js.map +0 -1
- package/es/catalog/properties/property-string.js +0 -49
- package/es/catalog/properties/property-string.js.map +0 -1
- package/es/catalog/properties/property-toggle.js +0 -40
- package/es/catalog/properties/property-toggle.js.map +0 -1
- package/es/catalog/properties/shared-property-style.js +0 -15
- package/es/catalog/properties/shared-property-style.js.map +0 -1
- package/es/catalog/utils/FuseUtils.js +0 -83
- package/es/catalog/utils/FuseUtils.js.map +0 -1
- package/es/catalog/utils/exporter.js +0 -149
- package/es/catalog/utils/exporter.js.map +0 -1
- package/es/catalog/utils/geom-utils.js +0 -190
- package/es/catalog/utils/geom-utils.js.map +0 -1
- package/es/catalog/utils/item-loader.js +0 -1522
- package/es/catalog/utils/item-loader.js.map +0 -1
- package/es/catalog/utils/load-obj.js +0 -92
- package/es/catalog/utils/load-obj.js.map +0 -1
- package/es/catalog/utils/mtl-loader.js +0 -358
- package/es/catalog/utils/mtl-loader.js.map +0 -1
- package/es/catalog/utils/obj-loader.js +0 -477
- package/es/catalog/utils/obj-loader.js.map +0 -1
- package/es/catalog/windows.png +0 -0
- package/es/class/FuseUtils.js +0 -83
- package/es/class/FuseUtils.js.map +0 -1
- package/es/class/area.js +0 -146
- package/es/class/area.js.map +0 -1
- package/es/class/export.js +0 -25
- package/es/class/export.js.map +0 -1
- package/es/class/group.js +0 -441
- package/es/class/group.js.map +0 -1
- package/es/class/guide.js +0 -63
- package/es/class/guide.js.map +0 -1
- package/es/class/hole.js +0 -931
- package/es/class/hole.js.map +0 -1
- package/es/class/item.js +0 -1888
- package/es/class/item.js.map +0 -1
- package/es/class/layer.js +0 -668
- package/es/class/layer.js.map +0 -1
- package/es/class/line.js +0 -1290
- package/es/class/line.js.map +0 -1
- package/es/class/project.js +0 -823
- package/es/class/project.js.map +0 -1
- package/es/class/vertex.js +0 -267
- package/es/class/vertex.js.map +0 -1
- package/es/components/atoms/Snackbar/index.js +0 -50
- package/es/components/atoms/Snackbar/index.js.map +0 -1
- package/es/components/atoms/radio-button/index.js +0 -26
- package/es/components/atoms/radio-button/index.js.map +0 -1
- package/es/components/atoms/radio-button/styles.js +0 -5
- package/es/components/atoms/radio-button/styles.js.map +0 -1
- package/es/components/button/MainButton.js +0 -92
- package/es/components/button/MainButton.js.map +0 -1
- package/es/components/button/ToggleMeasureButton.js +0 -56
- package/es/components/button/ToggleMeasureButton.js.map +0 -1
- package/es/components/catalog-view/catalog-breadcrumb.js +0 -53
- package/es/components/catalog-view/catalog-breadcrumb.js.map +0 -1
- package/es/components/catalog-view/catalog-item.js +0 -226
- package/es/components/catalog-view/catalog-item.js.map +0 -1
- package/es/components/catalog-view/catalog-list.js +0 -182
- package/es/components/catalog-view/catalog-list.js.map +0 -1
- package/es/components/catalog-view/catalog-page-item.js +0 -130
- package/es/components/catalog-view/catalog-page-item.js.map +0 -1
- package/es/components/catalog-view/catalog-turn-back-page-item.js +0 -106
- package/es/components/catalog-view/catalog-turn-back-page-item.js.map +0 -1
- package/es/components/configurator/custom-configurator.js +0 -94
- package/es/components/configurator/custom-configurator.js.map +0 -1
- package/es/components/configurator/project-configurator.js +0 -131
- package/es/components/configurator/project-configurator.js.map +0 -1
- package/es/components/content.js +0 -123
- package/es/components/content.js.map +0 -1
- package/es/components/export.js +0 -24
- package/es/components/export.js.map +0 -1
- package/es/components/firstsetting/button/styles.js +0 -27
- package/es/components/firstsetting/button/styles.js.map +0 -1
- package/es/components/firstsetting/export.js +0 -9
- package/es/components/firstsetting/export.js.map +0 -1
- package/es/components/firstsetting/firstsetting-content-button.js +0 -217
- package/es/components/firstsetting/firstsetting-content-button.js.map +0 -1
- package/es/components/firstsetting/firstsetting-toggle-button.js +0 -126
- package/es/components/firstsetting/firstsetting-toggle-button.js.map +0 -1
- package/es/components/firstsetting/firstsetting.js +0 -626
- package/es/components/firstsetting/firstsetting.js.map +0 -1
- package/es/components/footerbar/button/ControlButton.js +0 -72
- package/es/components/footerbar/button/ControlButton.js.map +0 -1
- package/es/components/footerbar/button/DirectionButton.js +0 -69
- package/es/components/footerbar/button/DirectionButton.js.map +0 -1
- package/es/components/footerbar/button/DirectionPanSpinButton.js +0 -50
- package/es/components/footerbar/button/DirectionPanSpinButton.js.map +0 -1
- package/es/components/footerbar/button/ToggleButton.js +0 -76
- package/es/components/footerbar/button/ToggleButton.js.map +0 -1
- package/es/components/footerbar/button/ToggleConvertButton.js +0 -73
- package/es/components/footerbar/button/ToggleConvertButton.js.map +0 -1
- package/es/components/footerbar/button/ToggleMeasureButton.js +0 -52
- package/es/components/footerbar/button/ToggleMeasureButton.js.map +0 -1
- package/es/components/footerbar/button/styles.js +0 -22
- package/es/components/footerbar/button/styles.js.map +0 -1
- package/es/components/footerbar/export.js +0 -9
- package/es/components/footerbar/export.js.map +0 -1
- package/es/components/footerbar/footer-content-button.js +0 -217
- package/es/components/footerbar/footer-content-button.js.map +0 -1
- package/es/components/footerbar/footer-toggle-button.js +0 -126
- package/es/components/footerbar/footer-toggle-button.js.map +0 -1
- package/es/components/footerbar/footerbar.js +0 -801
- package/es/components/footerbar/footerbar.js.map +0 -1
- package/es/components/footerbar/styles.js +0 -34
- package/es/components/footerbar/styles.js.map +0 -1
- package/es/components/header/button/MenuButton.js +0 -70
- package/es/components/header/button/MenuButton.js.map +0 -1
- package/es/components/header/button/SaveButton.js +0 -48
- package/es/components/header/button/SaveButton.js.map +0 -1
- package/es/components/header/button/styles.js +0 -59
- package/es/components/header/button/styles.js.map +0 -1
- package/es/components/header/export.js +0 -5
- package/es/components/header/export.js.map +0 -1
- package/es/components/header/header.js +0 -550
- package/es/components/header/header.js.map +0 -1
- package/es/components/header/header.style.css +0 -47
- package/es/components/header/styles.js +0 -41
- package/es/components/header/styles.js.map +0 -1
- package/es/components/login/Login.js +0 -86
- package/es/components/login/Login.js.map +0 -1
- package/es/components/login/LoginForm/index.js +0 -132
- package/es/components/login/LoginForm/index.js.map +0 -1
- package/es/components/login/Register.js +0 -96
- package/es/components/login/Register.js.map +0 -1
- package/es/components/login/RegisterForm/index.js +0 -230
- package/es/components/login/RegisterForm/index.js.map +0 -1
- package/es/components/login/jwtService.js +0 -232
- package/es/components/login/jwtService.js.map +0 -1
- package/es/components/login/style.css +0 -158
- package/es/components/login/style.scss +0 -260
- package/es/components/molecules/slider/index.js +0 -13
- package/es/components/molecules/slider/index.js.map +0 -1
- package/es/components/molecules/slider/styles.js +0 -2
- package/es/components/molecules/slider/styles.js.map +0 -1
- package/es/components/molecules/slider/styles.scss +0 -3
- package/es/components/myprojects/export.js +0 -5
- package/es/components/myprojects/export.js.map +0 -1
- package/es/components/myprojects/index.js +0 -446
- package/es/components/myprojects/index.js.map +0 -1
- package/es/components/myprojects/styles.js +0 -24
- package/es/components/myprojects/styles.js.map +0 -1
- package/es/components/sidebar/custom-accordion.js +0 -38
- package/es/components/sidebar/custom-accordion.js.map +0 -1
- package/es/components/sidebar/export.js +0 -14
- package/es/components/sidebar/export.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js +0 -65
- package/es/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js +0 -116
- package/es/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js +0 -126
- package/es/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js +0 -251
- package/es/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js +0 -75
- package/es/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/element-editor.js +0 -878
- package/es/components/sidebar/panel-element-editor/element-editor.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/multi-elements-editor.js +0 -2
- package/es/components/sidebar/panel-element-editor/multi-elements-editor.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/panel-element-editor.js +0 -49
- package/es/components/sidebar/panel-element-editor/panel-element-editor.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/panel-multi-elements-editor.js +0 -118
- package/es/components/sidebar/panel-element-editor/panel-multi-elements-editor.js.map +0 -1
- package/es/components/sidebar/panel-group-editor.js +0 -211
- package/es/components/sidebar/panel-group-editor.js.map +0 -1
- package/es/components/sidebar/panel-groups.js +0 -267
- package/es/components/sidebar/panel-groups.js.map +0 -1
- package/es/components/sidebar/panel-guides.js +0 -185
- package/es/components/sidebar/panel-guides.js.map +0 -1
- package/es/components/sidebar/panel-layer-elements.js +0 -251
- package/es/components/sidebar/panel-layer-elements.js.map +0 -1
- package/es/components/sidebar/panel-layers.js +0 -340
- package/es/components/sidebar/panel-layers.js.map +0 -1
- package/es/components/sidebar/panel.js +0 -103
- package/es/components/sidebar/panel.js.map +0 -1
- package/es/components/sidebar/sidebar.js +0 -109
- package/es/components/sidebar/sidebar.js.map +0 -1
- package/es/components/sidebar/toolbar-panel.js +0 -164
- package/es/components/sidebar/toolbar-panel.js.map +0 -1
- package/es/components/sign/export.js +0 -6
- package/es/components/sign/export.js.map +0 -1
- package/es/components/sign/main/index.js +0 -560
- package/es/components/sign/main/index.js.map +0 -1
- package/es/components/sign/main/styles.js +0 -20
- package/es/components/sign/main/styles.js.map +0 -1
- package/es/components/style/button.js +0 -114
- package/es/components/style/button.js.map +0 -1
- package/es/components/style/cancel-button.js +0 -23
- package/es/components/style/cancel-button.js.map +0 -1
- package/es/components/style/content-container.js +0 -34
- package/es/components/style/content-container.js.map +0 -1
- package/es/components/style/content-title.js +0 -30
- package/es/components/style/content-title.js.map +0 -1
- package/es/components/style/delete-button.js +0 -26
- package/es/components/style/delete-button.js.map +0 -1
- package/es/components/style/export.js +0 -32
- package/es/components/style/export.js.map +0 -1
- package/es/components/style/form-block.js +0 -25
- package/es/components/style/form-block.js.map +0 -1
- package/es/components/style/form-color-input.js +0 -28
- package/es/components/style/form-color-input.js.map +0 -1
- package/es/components/style/form-label.js +0 -27
- package/es/components/style/form-label.js.map +0 -1
- package/es/components/style/form-number-input.js +0 -190
- package/es/components/style/form-number-input.js.map +0 -1
- package/es/components/style/form-number-input_2.js +0 -207
- package/es/components/style/form-number-input_2.js.map +0 -1
- package/es/components/style/form-select.js +0 -21
- package/es/components/style/form-select.js.map +0 -1
- package/es/components/style/form-slider.js +0 -46
- package/es/components/style/form-slider.js.map +0 -1
- package/es/components/style/form-submit-button.js +0 -27
- package/es/components/style/form-submit-button.js.map +0 -1
- package/es/components/style/form-text-input.js +0 -77
- package/es/components/style/form-text-input.js.map +0 -1
- package/es/components/toolbar/button/ControlButton.js +0 -69
- package/es/components/toolbar/button/ControlButton.js.map +0 -1
- package/es/components/toolbar/button/DirectionButton.js +0 -50
- package/es/components/toolbar/button/DirectionButton.js.map +0 -1
- package/es/components/toolbar/button/RightButton.js +0 -133
- package/es/components/toolbar/button/RightButton.js.map +0 -1
- package/es/components/toolbar/button/ToggleButton.js +0 -59
- package/es/components/toolbar/button/ToggleButton.js.map +0 -1
- package/es/components/toolbar/button/index.js +0 -88
- package/es/components/toolbar/button/index.js.map +0 -1
- package/es/components/toolbar/button/styles.js +0 -14
- package/es/components/toolbar/button/styles.js.map +0 -1
- package/es/components/toolbar/components/DoorStyleMenu.js +0 -105
- package/es/components/toolbar/components/DoorStyleMenu.js.map +0 -1
- package/es/components/toolbar/components/Pricing.js +0 -101
- package/es/components/toolbar/components/Pricing.js.map +0 -1
- package/es/components/toolbar/components/ReviewForQuote.js +0 -476
- package/es/components/toolbar/components/ReviewForQuote.js.map +0 -1
- package/es/components/toolbar/export.js +0 -14
- package/es/components/toolbar/export.js.map +0 -1
- package/es/components/toolbar/main/Alert.js +0 -125
- package/es/components/toolbar/main/Alert.js.map +0 -1
- package/es/components/toolbar/main/TakePictureModal.js +0 -100
- package/es/components/toolbar/main/TakePictureModal.js.map +0 -1
- package/es/components/toolbar/main/confirm-popup.js +0 -88
- package/es/components/toolbar/main/confirm-popup.js.map +0 -1
- package/es/components/toolbar/main/index.js +0 -4612
- package/es/components/toolbar/main/index.js.map +0 -1
- package/es/components/toolbar/main/lShaped.json +0 -311
- package/es/components/toolbar/main/longNarrow.json +0 -238
- package/es/components/toolbar/main/myComponents.js +0 -118
- package/es/components/toolbar/main/myComponents.js.map +0 -1
- package/es/components/toolbar/main/oRectangle.json +0 -220
- package/es/components/toolbar/main/rectangle.json +0 -238
- package/es/components/toolbar/main/style.css +0 -107
- package/es/components/toolbar/main/styles.js +0 -64
- package/es/components/toolbar/main/styles.js.map +0 -1
- package/es/components/toolbar/plugin-item.js +0 -150
- package/es/components/toolbar/plugin-item.js.map +0 -1
- package/es/components/toolbar/popup/appliance/appliance-category/index.js +0 -77
- package/es/components/toolbar/popup/appliance/appliance-category/index.js.map +0 -1
- package/es/components/toolbar/popup/appliance/choose-appliance/index.js +0 -76
- package/es/components/toolbar/popup/appliance/choose-appliance/index.js.map +0 -1
- package/es/components/toolbar/popup/appliance/index.js +0 -81
- package/es/components/toolbar/popup/appliance/index.js.map +0 -1
- package/es/components/toolbar/popup/autosaveprompt/index.js +0 -91
- package/es/components/toolbar/popup/autosaveprompt/index.js.map +0 -1
- package/es/components/toolbar/popup/autosaveprompt/styles.css +0 -64
- package/es/components/toolbar/popup/autosaveprompt/styles.js +0 -9
- package/es/components/toolbar/popup/autosaveprompt/styles.js.map +0 -1
- package/es/components/toolbar/popup/cabinet/cabinet-category/index.js +0 -77
- package/es/components/toolbar/popup/cabinet/cabinet-category/index.js.map +0 -1
- package/es/components/toolbar/popup/cabinet/choose-product/index.js +0 -98
- package/es/components/toolbar/popup/cabinet/choose-product/index.js.map +0 -1
- package/es/components/toolbar/popup/cabinet/index.js +0 -83
- package/es/components/toolbar/popup/cabinet/index.js.map +0 -1
- package/es/components/toolbar/popup/doorStyle/choose-style/index.js +0 -50
- package/es/components/toolbar/popup/doorStyle/choose-style/index.js.map +0 -1
- package/es/components/toolbar/popup/doorStyle/index.js +0 -61
- package/es/components/toolbar/popup/doorStyle/index.js.map +0 -1
- package/es/components/toolbar/popup/doorStyle/style-category/index.js +0 -143
- package/es/components/toolbar/popup/doorStyle/style-category/index.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +0 -3
- package/es/components/toolbar/popup/downloadsummary/downloadSummaryContext.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js +0 -119
- package/es/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/index.js +0 -564
- package/es/components/toolbar/popup/downloadsummary/index.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/show2D/show2DView.js +0 -51
- package/es/components/toolbar/popup/downloadsummary/show2D/show2DView.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js +0 -191
- package/es/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/show3D/show3DView.js +0 -245
- package/es/components/toolbar/popup/downloadsummary/show3D/show3DView.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js +0 -1758
- package/es/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/showCabinetInfo.js +0 -87
- package/es/components/toolbar/popup/downloadsummary/showCabinetInfo.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js +0 -116
- package/es/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js +0 -1710
- package/es/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js +0 -175
- package/es/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/showWarranty.js +0 -106
- package/es/components/toolbar/popup/downloadsummary/showWarranty.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/styles.css +0 -177
- package/es/components/toolbar/popup/downloadsummary/styles.js +0 -40
- package/es/components/toolbar/popup/downloadsummary/styles.js.map +0 -1
- package/es/components/toolbar/popup/finishingtouch/category/index.js +0 -35
- package/es/components/toolbar/popup/finishingtouch/category/index.js.map +0 -1
- package/es/components/toolbar/popup/finishingtouch/index.js +0 -47
- package/es/components/toolbar/popup/finishingtouch/index.js.map +0 -1
- package/es/components/toolbar/popup/finishingtouch/material-edit.js +0 -156
- package/es/components/toolbar/popup/finishingtouch/material-edit.js.map +0 -1
- package/es/components/toolbar/popup/finishingtouch/product/index.js +0 -56
- package/es/components/toolbar/popup/finishingtouch/product/index.js.map +0 -1
- package/es/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js +0 -116
- package/es/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js.map +0 -1
- package/es/components/toolbar/popup/floorplan/choose-floor/index.js +0 -246
- package/es/components/toolbar/popup/floorplan/choose-floor/index.js.map +0 -1
- package/es/components/toolbar/popup/floorplan/choose-floor/lShaped.json +0 -311
- package/es/components/toolbar/popup/floorplan/choose-floor/longNarrow.json +0 -238
- package/es/components/toolbar/popup/floorplan/choose-floor/oRectangle.json +0 -220
- package/es/components/toolbar/popup/floorplan/choose-floor/rectangle.json +0 -238
- package/es/components/toolbar/popup/floorplan/choose-floor/styles.js +0 -11
- package/es/components/toolbar/popup/floorplan/choose-floor/styles.js.map +0 -1
- package/es/components/toolbar/popup/floorplan/floor-category/index.js +0 -90
- package/es/components/toolbar/popup/floorplan/floor-category/index.js.map +0 -1
- package/es/components/toolbar/popup/floorplan/index.js +0 -49
- package/es/components/toolbar/popup/floorplan/index.js.map +0 -1
- package/es/components/toolbar/popup/index.js +0 -188
- package/es/components/toolbar/popup/index.js.map +0 -1
- package/es/components/toolbar/popup/newproject/index.js +0 -67
- package/es/components/toolbar/popup/newproject/index.js.map +0 -1
- package/es/components/toolbar/popup/newproject/styles.css +0 -64
- package/es/components/toolbar/popup/newproject/styles.js +0 -9
- package/es/components/toolbar/popup/newproject/styles.js.map +0 -1
- package/es/components/toolbar/popup/product/appliance.js +0 -65
- package/es/components/toolbar/popup/product/appliance.js.map +0 -1
- package/es/components/toolbar/popup/product/cabinetproduct.js +0 -25
- package/es/components/toolbar/popup/product/cabinetproduct.js.map +0 -1
- package/es/components/toolbar/popup/product/doorstyle.js +0 -50
- package/es/components/toolbar/popup/product/doorstyle.js.map +0 -1
- package/es/components/toolbar/popup/product/doorstyleproduct.js +0 -51
- package/es/components/toolbar/popup/product/doorstyleproduct.js.map +0 -1
- package/es/components/toolbar/popup/product/floor.js +0 -52
- package/es/components/toolbar/popup/product/floor.js.map +0 -1
- package/es/components/toolbar/popup/product/floorproduct.js +0 -61
- package/es/components/toolbar/popup/product/floorproduct.js.map +0 -1
- package/es/components/toolbar/popup/product/index.js +0 -52
- package/es/components/toolbar/popup/product/index.js.map +0 -1
- package/es/components/toolbar/popup/product/primary.js +0 -63
- package/es/components/toolbar/popup/product/primary.js.map +0 -1
- package/es/components/toolbar/popup/product/productline.js +0 -120
- package/es/components/toolbar/popup/product/productline.js.map +0 -1
- package/es/components/toolbar/popup/product/reviewItem.js +0 -338
- package/es/components/toolbar/popup/product/reviewItem.js.map +0 -1
- package/es/components/toolbar/popup/product/reviewMolding.js +0 -282
- package/es/components/toolbar/popup/product/reviewMolding.js.map +0 -1
- package/es/components/toolbar/popup/product/style.css +0 -54
- package/es/components/toolbar/popup/product/styles.js +0 -71
- package/es/components/toolbar/popup/product/styles.js.map +0 -1
- package/es/components/toolbar/popup/savedesign/FullPictureForm.js +0 -161
- package/es/components/toolbar/popup/savedesign/FullPictureForm.js.map +0 -1
- package/es/components/toolbar/popup/savedesign/index.js +0 -508
- package/es/components/toolbar/popup/savedesign/index.js.map +0 -1
- package/es/components/toolbar/popup/savedesign/savedesign.style.css +0 -16
- package/es/components/toolbar/popup/savedesign/styles.js +0 -19
- package/es/components/toolbar/popup/savedesign/styles.js.map +0 -1
- package/es/components/toolbar/popup/setDoorStyleOption/index.js +0 -57
- package/es/components/toolbar/popup/setDoorStyleOption/index.js.map +0 -1
- package/es/components/toolbar/popup/styles.js +0 -98
- package/es/components/toolbar/popup/styles.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/AddToCartOptions.js +0 -157
- package/es/components/toolbar/popup/submitforquote/AddToCartOptions.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/CustomerRequestsForm.js +0 -85
- package/es/components/toolbar/popup/submitforquote/CustomerRequestsForm.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/SkipDesignerReview.js +0 -36
- package/es/components/toolbar/popup/submitforquote/SkipDesignerReview.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/StepDots.js +0 -33
- package/es/components/toolbar/popup/submitforquote/StepDots.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/cart-choice.js +0 -132
- package/es/components/toolbar/popup/submitforquote/cart-choice.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/doorstyle-menus.js +0 -43
- package/es/components/toolbar/popup/submitforquote/doorstyle-menus.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/index.js +0 -690
- package/es/components/toolbar/popup/submitforquote/index.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/styles.css +0 -105
- package/es/components/toolbar/popup/submitforquote/styles.js +0 -31
- package/es/components/toolbar/popup/submitforquote/styles.js.map +0 -1
- package/es/components/toolbar/popup/submitprompt/index.js +0 -71
- package/es/components/toolbar/popup/submitprompt/index.js.map +0 -1
- package/es/components/toolbar/popup/submitprompt/styles.css +0 -64
- package/es/components/toolbar/popup/submitprompt/styles.js +0 -9
- package/es/components/toolbar/popup/submitprompt/styles.js.map +0 -1
- package/es/components/toolbar/toolbar-button.js +0 -105
- package/es/components/toolbar/toolbar-button.js.map +0 -1
- package/es/components/toolbar/toolbar-load-button.js +0 -29
- package/es/components/toolbar/toolbar-load-button.js.map +0 -1
- package/es/components/toolbar/toolbar-save-button.js +0 -27
- package/es/components/toolbar/toolbar-save-button.js.map +0 -1
- package/es/components/tutorial-view/Modal.js +0 -498
- package/es/components/tutorial-view/Modal.js.map +0 -1
- package/es/components/tutorial-view/style.css +0 -111
- package/es/components/tutorial-view/styles.js +0 -6
- package/es/components/tutorial-view/styles.js.map +0 -1
- package/es/components/viewer2d/area.js +0 -83
- package/es/components/viewer2d/area.js.map +0 -1
- package/es/components/viewer2d/export.js +0 -32
- package/es/components/viewer2d/export.js.map +0 -1
- package/es/components/viewer2d/grids/grid-horizontal-streak.js +0 -38
- package/es/components/viewer2d/grids/grid-horizontal-streak.js.map +0 -1
- package/es/components/viewer2d/grids/grid-streak.js +0 -38
- package/es/components/viewer2d/grids/grid-streak.js.map +0 -1
- package/es/components/viewer2d/grids/grid-vertical-streak.js +0 -38
- package/es/components/viewer2d/grids/grid-vertical-streak.js.map +0 -1
- package/es/components/viewer2d/grids/grids.js +0 -36
- package/es/components/viewer2d/grids/grids.js.map +0 -1
- package/es/components/viewer2d/group.js +0 -54
- package/es/components/viewer2d/group.js.map +0 -1
- package/es/components/viewer2d/item.js +0 -514
- package/es/components/viewer2d/item.js.map +0 -1
- package/es/components/viewer2d/layer.js +0 -165
- package/es/components/viewer2d/layer.js.map +0 -1
- package/es/components/viewer2d/line.js +0 -889
- package/es/components/viewer2d/line.js.map +0 -1
- package/es/components/viewer2d/ruler.js +0 -101
- package/es/components/viewer2d/ruler.js.map +0 -1
- package/es/components/viewer2d/rulerDist.js +0 -147
- package/es/components/viewer2d/rulerDist.js.map +0 -1
- package/es/components/viewer2d/rulerX.js +0 -152
- package/es/components/viewer2d/rulerX.js.map +0 -1
- package/es/components/viewer2d/rulerY.js +0 -154
- package/es/components/viewer2d/rulerY.js.map +0 -1
- package/es/components/viewer2d/scene.js +0 -141
- package/es/components/viewer2d/scene.js.map +0 -1
- package/es/components/viewer2d/snap.js +0 -75
- package/es/components/viewer2d/snap.js.map +0 -1
- package/es/components/viewer2d/state.js +0 -79
- package/es/components/viewer2d/state.js.map +0 -1
- package/es/components/viewer2d/utils.js +0 -163
- package/es/components/viewer2d/utils.js.map +0 -1
- package/es/components/viewer2d/vertex.js +0 -67
- package/es/components/viewer2d/vertex.js.map +0 -1
- package/es/components/viewer2d/viewer2d.js +0 -1402
- package/es/components/viewer2d/viewer2d.js.map +0 -1
- package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +0 -2593
- package/es/components/viewer3d/camera-controls-module/camera-controls.module.js.map +0 -1
- package/es/components/viewer3d/dcm.js +0 -402
- package/es/components/viewer3d/dcm.js.map +0 -1
- package/es/components/viewer3d/fbm.js +0 -415
- package/es/components/viewer3d/fbm.js.map +0 -1
- package/es/components/viewer3d/front3D.js +0 -67
- package/es/components/viewer3d/front3D.js.map +0 -1
- package/es/components/viewer3d/grid-creator.js +0 -26
- package/es/components/viewer3d/grid-creator.js.map +0 -1
- package/es/components/viewer3d/grids/grid-horizontal-streak.js +0 -37
- package/es/components/viewer3d/grids/grid-horizontal-streak.js.map +0 -1
- package/es/components/viewer3d/grids/grid-streak.js +0 -28
- package/es/components/viewer3d/grids/grid-streak.js.map +0 -1
- package/es/components/viewer3d/grids/grid-vertical-streak.js +0 -37
- package/es/components/viewer3d/grids/grid-vertical-streak.js.map +0 -1
- package/es/components/viewer3d/libs/first-person-controls.js +0 -68
- package/es/components/viewer3d/libs/first-person-controls.js.map +0 -1
- package/es/components/viewer3d/libs/helvetiker_regular.typeface.js +0 -1282
- package/es/components/viewer3d/libs/helvetiker_regular.typeface.js.map +0 -1
- package/es/components/viewer3d/libs/mtl-loader.js +0 -358
- package/es/components/viewer3d/libs/mtl-loader.js.map +0 -1
- package/es/components/viewer3d/libs/obj-loader.js +0 -463
- package/es/components/viewer3d/libs/obj-loader.js.map +0 -1
- package/es/components/viewer3d/libs/orbit-controls.js +0 -699
- package/es/components/viewer3d/libs/orbit-controls.js.map +0 -1
- package/es/components/viewer3d/libs/pointer-lock-controls.js +0 -46
- package/es/components/viewer3d/libs/pointer-lock-controls.js.map +0 -1
- package/es/components/viewer3d/lrm.js +0 -306
- package/es/components/viewer3d/lrm.js.map +0 -1
- package/es/components/viewer3d/model.js +0 -709
- package/es/components/viewer3d/model.js.map +0 -1
- package/es/components/viewer3d/pointer-lock-navigation.js +0 -116
- package/es/components/viewer3d/pointer-lock-navigation.js.map +0 -1
- package/es/components/viewer3d/ruler-utils/itemRect.js +0 -62
- package/es/components/viewer3d/ruler-utils/itemRect.js.map +0 -1
- package/es/components/viewer3d/ruler-utils/layer3D.js +0 -496
- package/es/components/viewer3d/ruler-utils/layer3D.js.map +0 -1
- package/es/components/viewer3d/ruler-utils/ruler3D.js +0 -228
- package/es/components/viewer3d/ruler-utils/ruler3D.js.map +0 -1
- package/es/components/viewer3d/ruler-utils/scene3D.js +0 -62
- package/es/components/viewer3d/ruler-utils/scene3D.js.map +0 -1
- package/es/components/viewer3d/ruler-utils/state3D.js +0 -19
- package/es/components/viewer3d/ruler-utils/state3D.js.map +0 -1
- package/es/components/viewer3d/scene-creator.js +0 -3607
- package/es/components/viewer3d/scene-creator.js.map +0 -1
- package/es/components/viewer3d/three-memory-cleaner.js +0 -52
- package/es/components/viewer3d/three-memory-cleaner.js.map +0 -1
- package/es/components/viewer3d/viewer3d-first-person.js +0 -316
- package/es/components/viewer3d/viewer3d-first-person.js.map +0 -1
- package/es/components/viewer3d/viewer3d.js +0 -2504
- package/es/components/viewer3d/viewer3d.js.map +0 -1
- package/es/components/wizardstep/button/styles.js +0 -60
- package/es/components/wizardstep/button/styles.js.map +0 -1
- package/es/components/wizardstep/export.js +0 -5
- package/es/components/wizardstep/export.js.map +0 -1
- package/es/components/wizardstep/index.js +0 -971
- package/es/components/wizardstep/index.js.map +0 -1
- package/es/components/wizardstep/styles.js +0 -61
- package/es/components/wizardstep/styles.js.map +0 -1
- package/es/components/wizardstep/wizardstep-content-button.js +0 -217
- package/es/components/wizardstep/wizardstep-content-button.js.map +0 -1
- package/es/components/wizardstep/wizardstep-toggle-button.js +0 -126
- package/es/components/wizardstep/wizardstep-toggle-button.js.map +0 -1
- package/es/constants.js +0 -637
- package/es/constants.js.map +0 -1
- package/es/hooks/useCheckCart.js +0 -53
- package/es/hooks/useCheckCart.js.map +0 -1
- package/es/hooks/useGetPricesBySku.js +0 -74
- package/es/hooks/useGetPricesBySku.js.map +0 -1
- package/es/hooks/useValidateToken.js +0 -201
- package/es/hooks/useValidateToken.js.map +0 -1
- package/es/index.js +0 -17
- package/es/index.js.map +0 -1
- package/es/models.js +0 -511
- package/es/models.js.map +0 -1
- package/es/plugins/SVGLoader.js +0 -1413
- package/es/plugins/SVGLoader.js.map +0 -1
- package/es/plugins/autosave.js +0 -34
- package/es/plugins/autosave.js.map +0 -1
- package/es/plugins/console-debugger.js +0 -38
- package/es/plugins/console-debugger.js.map +0 -1
- package/es/plugins/export.js +0 -10
- package/es/plugins/export.js.map +0 -1
- package/es/plugins/keyboard.js +0 -102
- package/es/plugins/keyboard.js.map +0 -1
- package/es/reducers/areas-reducer.js +0 -13
- package/es/reducers/areas-reducer.js.map +0 -1
- package/es/reducers/export.js +0 -26
- package/es/reducers/export.js.map +0 -1
- package/es/reducers/groups-reducer.js +0 -39
- package/es/reducers/groups-reducer.js.map +0 -1
- package/es/reducers/holes-reducer.js +0 -63
- package/es/reducers/holes-reducer.js.map +0 -1
- package/es/reducers/items-reducer.js +0 -144
- package/es/reducers/items-reducer.js.map +0 -1
- package/es/reducers/lines-reducer.js +0 -46
- package/es/reducers/lines-reducer.js.map +0 -1
- package/es/reducers/project-reducer.js +0 -130
- package/es/reducers/project-reducer.js.map +0 -1
- package/es/reducers/reducer.js +0 -20
- package/es/reducers/reducer.js.map +0 -1
- package/es/reducers/scene-reducer.js +0 -29
- package/es/reducers/scene-reducer.js.map +0 -1
- package/es/reducers/user-reducer.js +0 -42
- package/es/reducers/user-reducer.js.map +0 -1
- package/es/reducers/vertices-reducer.js +0 -20
- package/es/reducers/vertices-reducer.js.map +0 -1
- package/es/reducers/viewer2d-reducer.js +0 -76
- package/es/reducers/viewer2d-reducer.js.map +0 -1
- package/es/reducers/viewer3d-reducer.js +0 -57
- package/es/reducers/viewer3d-reducer.js.map +0 -1
- package/es/shared-style.js +0 -67
- package/es/shared-style.js.map +0 -1
- package/es/styles/export.js +0 -6
- package/es/styles/export.js.map +0 -1
- package/es/styles/tabs.css +0 -40
- package/es/translator/en.js +0 -105
- package/es/translator/en.js.map +0 -1
- package/es/translator/it.js +0 -80
- package/es/translator/it.js.map +0 -1
- package/es/translator/ru.js +0 -80
- package/es/translator/ru.js.map +0 -1
- package/es/translator/translator.js +0 -85
- package/es/translator/translator.js.map +0 -1
- package/es/utils/browser.js +0 -34
- package/es/utils/browser.js.map +0 -1
- package/es/utils/email-validator.js +0 -5
- package/es/utils/email-validator.js.map +0 -1
- package/es/utils/export.js +0 -26
- package/es/utils/export.js.map +0 -1
- package/es/utils/geometry.js +0 -2237
- package/es/utils/geometry.js.map +0 -1
- package/es/utils/get-edges-of-subgraphs.js +0 -27
- package/es/utils/get-edges-of-subgraphs.js.map +0 -1
- package/es/utils/graph-cycles.js +0 -239
- package/es/utils/graph-cycles.js.map +0 -1
- package/es/utils/graph-inner-cycles.js +0 -47
- package/es/utils/graph-inner-cycles.js.map +0 -1
- package/es/utils/graph.js +0 -150
- package/es/utils/graph.js.map +0 -1
- package/es/utils/helper.js +0 -337
- package/es/utils/helper.js.map +0 -1
- package/es/utils/history.js +0 -30
- package/es/utils/history.js.map +0 -1
- package/es/utils/id-broker.js +0 -20
- package/es/utils/id-broker.js.map +0 -1
- package/es/utils/logger.js +0 -9
- package/es/utils/logger.js.map +0 -1
- package/es/utils/math.js +0 -51
- package/es/utils/math.js.map +0 -1
- package/es/utils/molding.js +0 -840
- package/es/utils/molding.js.map +0 -1
- package/es/utils/name-generator.js +0 -19
- package/es/utils/name-generator.js.map +0 -1
- package/es/utils/objects-utils.js +0 -51
- package/es/utils/objects-utils.js.map +0 -1
- package/es/utils/phone-validator.js +0 -5
- package/es/utils/phone-validator.js.map +0 -1
- package/es/utils/process-black-list.js +0 -19
- package/es/utils/process-black-list.js.map +0 -1
- package/es/utils/react-if.js +0 -19
- package/es/utils/react-if.js.map +0 -1
- package/es/utils/snap-scene.js +0 -100
- package/es/utils/snap-scene.js.map +0 -1
- package/es/utils/snap.js +0 -238
- package/es/utils/snap.js.map +0 -1
- package/es/utils/threeCSG.es6.js +0 -499
- package/es/utils/threeCSG.es6.js.map +0 -1
- package/es/version.js +0 -2
- package/es/version.js.map +0 -1
package/es/class/line.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"line.js","names":["Map","List","fromJS","Group","Layer","Hole","Vertex","IDBroker","NameGenerator","GeometryUtils","history","SnapUtils","SnapSceneUtils","Three","MODE_IDLE","MODE_WAITING_DRAWING_LINE","MODE_DRAWING_LINE","MODE_DRAGGING_LINE","MIN_ANGLE_DISALLOW_DRAW_WALL","UNIT_ANGLE","getRelatedLines","isEmpty","timeGlobal","TimeRecorder","name","_classCallCheck","console","log","_createClass","key","value","start","first","Date","now","end","second","elapsed","includes","Line","create","state","layerID","type","x0","y0","x1","y1","properties","lineCreatedDateTime","arguments","length","undefined","getTime","lineID","acquireID","_Vertex$add","add","stateV0","updatedState","v0","vertex","_Vertex$add2","stateV1","v1","line","catalog","factoryElement","id","generateName","getIn","vertices","set","setIn","defaultTexture","textureA","textureB","setJsProperties","select","_line$vertices","_line$vertices$get","_line$vertices2","_line$vertices2$get","layerResult","lineSelectResult","selectElement","firstVertex","get","call","v1Result","secondVertex","v2Result","remove","unselect","holes","forEach","holeID","removeElement","vertexID","group","setRelatedLine","intersection","curIntersection","isEqualIntersection","a","b","index","point","x","y","equal","size","every","curint","mergeIn","split","_Line$create","createdDateTime","stateL1","line0","_Line$create2","stateL2","line1","splitPointOffset","pointPositionOnLineSegment","minVertex","hole","holeOffset","offset","lineGroups","filter","lines","contains","addElement","addFromPoints","points","_this","pointsPair","zip","skip","filterNot","_ref","_ref2","_slicedToArray","_ref2$","_ref2$2","x2","y2","usedObjects","objectsArray","element","so","JSON","stringify","so1","newLine","_ref3","_ref4","_ref4$","_ref4$2","_this$create","stateL","lineLength","pointsDistance","alpha","absAngleBetweenTwoPoints","cosAlpha","cosWithThreshold","Math","abs","sinAlpha","sinWithThreshold","holeWithOffsetPoint","toJS","_holeWithOffsetPoint$","offsetPosition","xp","yp","isPointOnLineSegment","newOffset","temp","holeX","holeY","almostEqual","push","newline","createAvoidingIntersections","oldProperties","oldHoles","_this2","reduce","reducedState","_line$vertices$map$to","map","toArray","_line$vertices$map$to2","hasCommonEndpoint","samePoints","twoLineSegmentsIntersection","orderedVertices","orderVertices","oldLineLength","extendLine","_Line$addFromPoints","replaceVertex","vertexIndex","_Vertex$add3","stateV","selectToolDrawingLine","sceneComponentType","merge","mode","drawingSupport","beginDrawingLine","snapElements","sceneSnapElements","scene","snapMask","snap","nearestSnap","_snap$point","withMutations","c","_GeometryUtils$horizo","horizontalLine","addLineSnap","_GeometryUtils$vertic","verticalLine","_GeometryUtils$upcros","upcrossLine","_GeometryUtils$downcr","downcrossLine","unselectAll","_Line$create3","activeSnapElement","updateDrawingLine","relatedLines","_snap$point2","drawingLine","moveFlag","tx","ty","absAngle","lineAngle","angleBetweenTwoLines","rest","ox","oy","res","rotatePointAroundPoint","result","snapAngleByUnit","_Line$replaceVertex","stateLV","drawLineByAttributes","lineAttributes","lAttr","vertexOne","vertexTwo","layer","holesWithOffsetPosition","i","j","_loop","k","minV","maxV","maxVertex","atan2","pointOnLine","cos","sin","v2","v3","checkVertex","ret","areaCount","areas","detectAndUpdateAreas","sceneHistory","historyPush","endsWith","stopDrawingLine","hasColinearTwoLines","curVertId","lineGroup","some","v","mergeTwoColinearLines","line2","lineProperties","nv0","nv1","nv2","drawingInfor","endDrawingLine","_this3","_snap$point3","vertexGroup","colinearLines","vertexId","beginDraggingLine","layers","vertex0","vertex1","draggingSupport","startPointX","startPointY","startVertex0X","startVertex0Y","startVertex1X","startVertex1Y","getNewDraggedPoints","newPoints","allVertices","draggingLine","Array","isArray","draggingVertices","mvFlag","relLine","_newPoints$newVertex","_newPoints$newVertex2","_newPoints$newVertex3","_newPoints$newVertex4","_vData$x","_vData$y","_newPoints$newVertex5","_newPoints$newVertex6","_newPoints$newVertex7","_newPoints$newVertex8","vData","center","Vector2","newVertex0X","newVertex0Y","newVertex1X","newVertex1Y","pos1","pos2","cen","clone","vec1","sub","normalize","vec2","angle","floor","PI","updateDraggingLine","diffX","diffY","curSnap0","curSnap1","deltaX","deltaY","distance","newResult","updateIn","lineVertices","endDraggingLine","_this4","_state","drawedLine","verticesDistance","mergeEqualsVertices","addedLine","oldLineGroup","draggingLineID","setProperties","updateProperties","hasIn","updateJsProperties","setAttributes","vertexThree","vertexFour","lineToExtend","_unitLength","_unit","setVerticesCoords","default"],"sources":["../../src/class/line.js"],"sourcesContent":["import { Map, List, fromJS } from 'immutable';\r\nimport { Group, Layer, Hole, Vertex } from './export';\r\nimport {\r\n IDBroker,\r\n NameGenerator,\r\n GeometryUtils,\r\n history,\r\n SnapUtils,\r\n SnapSceneUtils\r\n} from '../utils/export';\r\nimport * as Three from 'three';\r\nimport {\r\n MODE_IDLE,\r\n MODE_WAITING_DRAWING_LINE,\r\n MODE_DRAWING_LINE,\r\n MODE_DRAGGING_LINE,\r\n MIN_ANGLE_DISALLOW_DRAW_WALL,\r\n UNIT_ANGLE\r\n} from '../constants';\r\nimport { getRelatedLines } from '../../src/utils/geometry';\r\nimport { isEmpty } from '../../src/utils/helper';\r\n\r\nlet timeGlobal = 0;\r\n\r\nclass TimeRecorder {\r\n constructor(name) {\r\n this.name = name;\r\n\r\n if (name === \"beginDrawingLine\") {\r\n console.log(\"time__ Start Drawing\");\r\n }\r\n }\r\n\r\n start() {\r\n this.first = Date.now();\r\n }\r\n\r\n end() {\r\n this.second = Date.now();\r\n const elapsed = this.second - this.first;\r\n console.log(\"time__ \", this.name, \" : \", elapsed, \"ms\");\r\n \r\n if ([\"beginDrawingLine\", \"updateDrawingLine\", \"endDrawingLine\"].includes(this.name))\r\n timeGlobal += elapsed;\r\n\r\n if (this.name === \"endDrawingLine\") {\r\n console.log(\"time__ Drawing Ended. Passed Time : \", timeGlobal, \"ms\");\r\n timeGlobal = 0;\r\n }\r\n }\r\n}\r\n\r\nclass Line {\r\n static create(\r\n state,\r\n layerID,\r\n type,\r\n x0,\r\n y0,\r\n x1,\r\n y1,\r\n properties,\r\n lineCreatedDateTime = new Date().getTime()\r\n ) {\r\n // if end drawing by created area\r\n // if (state.mode == MODE_IDLE) {\r\n // return { updatedState: state };\r\n // }\r\n // ///////////////\r\n let lineID = IDBroker.acquireID();\r\n let { updatedState: stateV0, vertex: v0 } = Vertex.add(\r\n state,\r\n layerID,\r\n x0,\r\n y0,\r\n 'lines',\r\n lineID\r\n );\r\n let { updatedState: stateV1, vertex: v1 } = Vertex.add(\r\n stateV0,\r\n layerID,\r\n x1,\r\n y1,\r\n 'lines',\r\n lineID\r\n );\r\n state = stateV1;\r\n\r\n let line = state.catalog.factoryElement(\r\n type,\r\n {\r\n id: lineID,\r\n name: NameGenerator.generateName(\r\n 'lines',\r\n state.catalog.getIn(['elements', type, 'info', 'title'])\r\n ),\r\n vertices: new List([v0.id, v1.id]),\r\n type\r\n },\r\n properties\r\n );\r\n line = line.set(\r\n 'createdDateTime',\r\n lineCreatedDateTime !== undefined\r\n ? lineCreatedDateTime\r\n : new Date().getTime()\r\n );\r\n state = state.setIn(['scene', 'layers', layerID, 'lines', lineID], line);\r\n // set default texture//\r\n let defaultTexture = {\r\n textureA: 'plaster',\r\n textureB: 'plaster'\r\n };\r\n state = this.setJsProperties(\r\n state,\r\n layerID,\r\n lineID,\r\n defaultTexture\r\n ).updatedState;\r\n // /////////////////////\r\n return { updatedState: state, line };\r\n }\r\n\r\n static select(state, layerID, lineID) {\r\n // Try selecting the layer first\r\n const layerResult = Layer.select(state, layerID);\r\n if (!layerResult || !layerResult.updatedState) {\r\n return { updatedState: state }; // no update if layer not found\r\n }\r\n state = layerResult.updatedState;\r\n\r\n // Try getting the line\r\n const line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n if (!line) {\r\n return { updatedState: state }; // no update if line not found\r\n }\r\n\r\n // Select the line element\r\n const lineSelectResult = Layer.selectElement(\r\n state,\r\n layerID,\r\n 'lines',\r\n lineID\r\n );\r\n if (lineSelectResult?.updatedState) {\r\n state = lineSelectResult.updatedState;\r\n }\r\n\r\n // Select the first vertex (if available)\r\n const firstVertex = line.vertices?.get?.(0);\r\n if (firstVertex !== undefined) {\r\n const v1Result = Layer.selectElement(\r\n state,\r\n layerID,\r\n 'vertices',\r\n firstVertex\r\n );\r\n if (v1Result?.updatedState) {\r\n state = v1Result.updatedState;\r\n }\r\n }\r\n\r\n // Select the second vertex (if available)\r\n const secondVertex = line.vertices?.get?.(1);\r\n if (secondVertex !== undefined) {\r\n const v2Result = Layer.selectElement(\r\n state,\r\n layerID,\r\n 'vertices',\r\n secondVertex\r\n );\r\n if (v2Result?.updatedState) {\r\n state = v2Result.updatedState;\r\n }\r\n }\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static remove(state, layerID, lineID) {\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n\r\n if (line) {\r\n state = this.unselect(state, layerID, lineID).updatedState;\r\n line.holes.forEach(\r\n holeID => (state = Hole.remove(state, layerID, holeID).updatedState)\r\n );\r\n state = Layer.removeElement(state, layerID, 'lines', lineID).updatedState;\r\n\r\n line.vertices.forEach(\r\n vertexID =>\r\n (state = Vertex.remove(\r\n state,\r\n layerID,\r\n vertexID,\r\n 'lines',\r\n lineID\r\n ).updatedState)\r\n );\r\n\r\n state\r\n .getIn(['scene', 'groups'])\r\n .forEach(\r\n group =>\r\n (state = Group.removeElement(\r\n state,\r\n group.id,\r\n layerID,\r\n 'lines',\r\n lineID\r\n ).updatedState)\r\n );\r\n }\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setRelatedLine(state, layerID, lineID, intersection) {\r\n let curIntersection = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'lines',\r\n lineID,\r\n 'relatedVertices'\r\n ]);\r\n if (curIntersection == undefined) return { updatedState: state };\r\n\r\n let isEqualIntersection = (a, b) => {\r\n return (\r\n a.index == b.index && a.point.x == b.point.x && a.point.y == b.point.y\r\n );\r\n };\r\n let equal =\r\n curIntersection.size == intersection.length &&\r\n curIntersection.every((curint, index) => {\r\n return isEqualIntersection(curint, intersection[index]);\r\n });\r\n if (!equal)\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'lines', lineID, 'relatedVertices'],\r\n intersection\r\n );\r\n return { updatedState: state };\r\n }\r\n\r\n static unselect(state, layerID, lineID) {\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n if (line) {\r\n state = Layer.unselect(\r\n state,\r\n layerID,\r\n 'vertices',\r\n line.vertices.get(0)\r\n ).updatedState;\r\n state = Layer.unselect(\r\n state,\r\n layerID,\r\n 'vertices',\r\n line.vertices.get(1)\r\n ).updatedState;\r\n state = Layer.unselect(state, layerID, 'lines', lineID).updatedState;\r\n }\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static split(state, layerID, lineID, x, y) {\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n let v0 = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'vertices',\r\n line.vertices.get(0)\r\n ]);\r\n let v1 = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'vertices',\r\n line.vertices.get(1)\r\n ]);\r\n let { x: x0, y: y0 } = v0;\r\n let { x: x1, y: y1 } = v1;\r\n\r\n let { updatedState: stateL1, line: line0 } = Line.create(\r\n state,\r\n layerID,\r\n line.type,\r\n x0,\r\n y0,\r\n x,\r\n y,\r\n line.get('properties'),\r\n line.createdDateTime !== undefined\r\n ? line.createdDateTime - 2\r\n : new Date().getTime()\r\n );\r\n let { updatedState: stateL2, line: line1 } = Line.create(\r\n stateL1,\r\n layerID,\r\n line.type,\r\n x1,\r\n y1,\r\n x,\r\n y,\r\n line.get('properties'),\r\n line.createdDateTime !== undefined\r\n ? line.createdDateTime - 1\r\n : new Date().getTime()\r\n );\r\n state = stateL2;\r\n\r\n let splitPointOffset = GeometryUtils.pointPositionOnLineSegment(\r\n x0,\r\n y0,\r\n x1,\r\n y1,\r\n x,\r\n y\r\n );\r\n let minVertex = GeometryUtils.minVertex(v0, v1);\r\n\r\n line.holes.forEach(holeID => {\r\n let hole = state.getIn(['scene', 'layers', layerID, 'holes', holeID]);\r\n\r\n let holeOffset = hole.offset;\r\n if (minVertex.x === x1 && minVertex.y === y1) {\r\n splitPointOffset = 1 - splitPointOffset;\r\n holeOffset = 1 - hole.offset;\r\n }\r\n\r\n if (holeOffset < splitPointOffset) {\r\n let offset = holeOffset / splitPointOffset;\r\n /*\r\n if (minVertex.x === x1 && minVertex.y === y1) {\r\n offset = 1 - offset;\r\n }\r\n */\r\n state = Hole.create(\r\n state,\r\n layerID,\r\n hole.type,\r\n line0.id,\r\n offset,\r\n hole.properties\r\n ).updatedState;\r\n } else {\r\n let offset = (holeOffset - splitPointOffset) / (1 - splitPointOffset);\r\n /*\r\n if (minVertex.x === x1 && minVertex.y === y1) {\r\n offset = 1 - offset;\r\n }\r\n */\r\n state = Hole.create(\r\n state,\r\n layerID,\r\n hole.type,\r\n line1.id,\r\n offset,\r\n hole.properties\r\n ).updatedState;\r\n }\r\n });\r\n\r\n //add splitted lines to the original line's group\r\n let lineGroups = state.getIn(['scene', 'groups']).filter(group => {\r\n const lines = group.getIn(['elements', layerID, 'lines']);\r\n return lines && lines.contains(lineID);\r\n });\r\n\r\n lineGroups.forEach(group => {\r\n state = Group.addElement(\r\n state,\r\n group.id,\r\n layerID,\r\n 'lines',\r\n line0.id\r\n ).updatedState;\r\n state = Group.addElement(\r\n state,\r\n group.id,\r\n layerID,\r\n 'lines',\r\n line1.id\r\n ).updatedState;\r\n });\r\n\r\n state = Line.remove(state, layerID, lineID).updatedState;\r\n\r\n return { updatedState: state, lines: new List([line0, line1]) };\r\n }\r\n\r\n static addFromPoints(\r\n state,\r\n layerID,\r\n type,\r\n points,\r\n properties,\r\n holes,\r\n lineCreatedDateTime = new Date().getTime()\r\n ) {\r\n points = new List(points);\r\n //.sort(({ x: x1, y: y1 }, { x: x2, y: y2 }) => x1 === x2 ? y1 - y2 : x1 - x2);\r\n\r\n let pointsPair = points\r\n .zip(points.skip(1))\r\n .filterNot(\r\n ([{ x: x1, y: y1 }, { x: x2, y: y2 }]) => x1 === x2 && y1 === y2\r\n );\r\n\r\n let usedObjects = {};\r\n let objectsArray = pointsPair;\r\n pointsPair = objectsArray.filter(element => {\r\n let so = JSON.stringify(element[0]);\r\n let so1 = JSON.stringify(element[1]);\r\n if (!usedObjects[so] && !usedObjects[so1]) {\r\n usedObjects[so] = true;\r\n usedObjects[so1] = true;\r\n return element;\r\n }\r\n });\r\n\r\n let lines = [];\r\n let newLine;\r\n\r\n pointsPair.forEach(([{ x: x1, y: y1 }, { x: x2, y: y2 }]) => {\r\n let { updatedState: stateL, line } = this.create(\r\n state,\r\n layerID,\r\n type,\r\n x1,\r\n y1,\r\n x2,\r\n y2,\r\n properties,\r\n lineCreatedDateTime\r\n );\r\n state = stateL;\r\n let lineLength = GeometryUtils.pointsDistance(x1, y1, x2, y2);\r\n let alpha = GeometryUtils.absAngleBetweenTwoPoints(x1, y1, x2, y2);\r\n let cosAlpha = GeometryUtils.cosWithThreshold(Math.abs(alpha), 0.0000001);\r\n let sinAlpha = GeometryUtils.sinWithThreshold(Math.abs(alpha), 0.0000001);\r\n\r\n if (holes) {\r\n holes.forEach(holeWithOffsetPoint => {\r\n let offset = holeWithOffsetPoint.hole.toJS().offset;\r\n // if (invert) offset = 1 - offset;\r\n let { x: xp, y: yp } = holeWithOffsetPoint.offsetPosition;\r\n\r\n if (GeometryUtils.isPointOnLineSegment(x1, y1, x2, y2, xp, yp)) {\r\n let newOffset = GeometryUtils.pointPositionOnLineSegment(\r\n x1,\r\n y1,\r\n x2,\r\n y2,\r\n xp,\r\n yp\r\n );\r\n\r\n if (newOffset >= 0 && newOffset <= 1) {\r\n //add the position of hole\r\n let temp = Hole.create(\r\n state,\r\n layerID,\r\n holeWithOffsetPoint.hole.type,\r\n line.id,\r\n newOffset,\r\n holeWithOffsetPoint.hole.properties,\r\n xp,\r\n yp\r\n );\r\n state = temp.updatedState;\r\n let holeX = 0,\r\n holeY = 0,\r\n holeID = temp.hole.id;\r\n\r\n if (GeometryUtils.almostEqual(y1, y2)) {\r\n if (x1 > x2) {\r\n holeX = x1 - lineLength * newOffset;\r\n holeY = y1;\r\n } else {\r\n holeX = x1 + lineLength * newOffset;\r\n holeY = y1;\r\n }\r\n } else if (GeometryUtils.almostEqual(x1, x2)) {\r\n if (y1 > y2) {\r\n holeX = x1;\r\n holeY = y1 - lineLength * newOffset;\r\n } else {\r\n holeX = x1;\r\n holeY = y1 + lineLength * newOffset;\r\n }\r\n } else if (x1 > x2) {\r\n if (y1 > y2) {\r\n holeX = x1 - lineLength * newOffset * cosAlpha;\r\n holeY = y1 - lineLength * newOffset * sinAlpha;\r\n } else if (y1 < y2) {\r\n holeX = x1 - lineLength * newOffset * cosAlpha;\r\n holeY = y1 + lineLength * newOffset * sinAlpha;\r\n }\r\n } else if (x1 < x2) {\r\n if (y1 > y2) {\r\n holeX = x1 + lineLength * newOffset * cosAlpha;\r\n holeY = y1 - lineLength * newOffset * sinAlpha;\r\n } else if (y1 < y2) {\r\n holeX = x1 + lineLength * newOffset * cosAlpha;\r\n holeY = y1 + lineLength * newOffset * sinAlpha;\r\n }\r\n }\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'holes', holeID, 'x'],\r\n holeX\r\n );\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'holes', holeID, 'y'],\r\n holeY\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n lines.push(line);\r\n newLine = line;\r\n });\r\n\r\n return { updatedState: state, lines: new List(lines), newline: newLine };\r\n }\r\n\r\n static createAvoidingIntersections(\r\n state,\r\n layerID,\r\n type,\r\n x0,\r\n y0,\r\n x1,\r\n y1,\r\n oldProperties,\r\n oldHoles,\r\n lineCreatedDateTime = new Date().getTime()\r\n ) {\r\n let points = [\r\n { x: x0, y: y0 },\r\n { x: x1, y: y1 }\r\n ];\r\n\r\n state = state\r\n .getIn(['scene', 'layers', layerID, 'lines'])\r\n .reduce((reducedState, line) => {\r\n let [v0, v1] = line.vertices\r\n .map(vertexID =>\r\n reducedState\r\n .getIn(['scene', 'layers', layerID, 'vertices'])\r\n .get(vertexID)\r\n )\r\n .toArray();\r\n\r\n let hasCommonEndpoint =\r\n GeometryUtils.samePoints(v0, points[0]) ||\r\n GeometryUtils.samePoints(v0, points[1]) ||\r\n GeometryUtils.samePoints(v1, points[0]) ||\r\n GeometryUtils.samePoints(v1, points[1]);\r\n\r\n let intersection = GeometryUtils.twoLineSegmentsIntersection(\r\n points[0],\r\n points[1],\r\n v0,\r\n v1\r\n );\r\n\r\n if (intersection.type === 'colinear' && !hasCommonEndpoint) {\r\n if (!oldHoles) {\r\n oldHoles = [];\r\n }\r\n\r\n let orderedVertices = GeometryUtils.orderVertices(points);\r\n\r\n reducedState\r\n .getIn(['scene', 'layers', layerID, 'lines', line.id, 'holes'])\r\n .forEach(holeID => {\r\n let hole = reducedState.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'holes',\r\n holeID\r\n ]);\r\n let oldLineLength = GeometryUtils.pointsDistance(\r\n v0.x,\r\n v0.y,\r\n v1.x,\r\n v1.y\r\n );\r\n let offset = GeometryUtils.samePoints(\r\n orderedVertices[1],\r\n line.vertices.get(1)\r\n )\r\n ? 1 - hole.offset\r\n : hole.offset;\r\n let offsetPosition = GeometryUtils.extendLine(\r\n v0.x,\r\n v0.y,\r\n v1.x,\r\n v1.y,\r\n oldLineLength * offset\r\n );\r\n\r\n oldHoles.push({ hole, offsetPosition });\r\n });\r\n\r\n reducedState = this.remove(\r\n reducedState,\r\n layerID,\r\n line.id\r\n ).updatedState;\r\n\r\n points.push(v0, v1);\r\n }\r\n\r\n if (intersection.type === 'intersecting' && !hasCommonEndpoint) {\r\n reducedState = this.split(\r\n reducedState,\r\n layerID,\r\n line.id,\r\n intersection.point.x,\r\n intersection.point.y\r\n ).updatedState;\r\n points.push(intersection.point);\r\n }\r\n\r\n return reducedState;\r\n }, state);\r\n\r\n let { updatedState, lines, newline } = Line.addFromPoints(\r\n state,\r\n layerID,\r\n type,\r\n points,\r\n oldProperties,\r\n oldHoles,\r\n lineCreatedDateTime\r\n );\r\n\r\n return { updatedState, lines, newline };\r\n }\r\n\r\n static replaceVertex(state, layerID, lineID, vertexIndex, x, y) {\r\n let vertexID = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'lines',\r\n lineID,\r\n 'vertices',\r\n vertexIndex\r\n ]);\r\n\r\n state = Vertex.remove(\r\n state,\r\n layerID,\r\n vertexID,\r\n 'lines',\r\n lineID\r\n ).updatedState;\r\n let { updatedState: stateV, vertex } = Vertex.add(\r\n state,\r\n layerID,\r\n x,\r\n y,\r\n 'lines',\r\n lineID\r\n );\r\n state = stateV;\r\n\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'lines', lineID, 'vertices', vertexIndex],\r\n vertex.id\r\n );\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'lines', lineID],\r\n state.getIn(['scene', 'layers', layerID, 'lines', lineID])\r\n );\r\n\r\n return {\r\n updatedState: state,\r\n line: state.getIn(['scene', 'layers', layerID, 'lines', lineID]),\r\n vertex\r\n };\r\n }\r\n\r\n static selectToolDrawingLine(state, sceneComponentType) {\r\n state = state.merge({\r\n mode: MODE_WAITING_DRAWING_LINE,\r\n drawingSupport: new Map({\r\n type: sceneComponentType\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static beginDrawingLine(state, layerID, x, y) {\r\n // if end drawing by created area\r\n if (state.mode == MODE_IDLE) {\r\n return { updatedState: state };\r\n }\r\n // ///////////////\r\n let snapElements = SnapSceneUtils.sceneSnapElements(\r\n state.scene,\r\n new List(),\r\n state.snapMask\r\n );\r\n let snap = null;\r\n if (state.snapMask && !state.snapMask.isEmpty()) {\r\n snap = SnapUtils.nearestSnap(snapElements, x, y, state.snapMask);\r\n if (snap) ({ x, y } = snap.point);\r\n\r\n snapElements = snapElements.withMutations(snapElements => {\r\n let a, b, c;\r\n ({ a, b, c } = GeometryUtils.horizontalLine(y));\r\n SnapUtils.addLineSnap(snapElements, a, b, c, 10, 3, null);\r\n ({ a, b, c } = GeometryUtils.verticalLine(x));\r\n SnapUtils.addLineSnap(snapElements, a, b, c, 10, 3, null);\r\n ({ a, b, c } = GeometryUtils.upcrossLine(x, y));\r\n SnapUtils.addLineSnap(snapElements, a, b, c, 10, 3, null);\r\n ({ a, b, c } = GeometryUtils.downcrossLine(x, y));\r\n SnapUtils.addLineSnap(snapElements, a, b, c, 10, 3, null);\r\n });\r\n }\r\n\r\n let drawingSupport = state.get('drawingSupport').set('layerID', layerID);\r\n\r\n state = Layer.unselectAll(state, layerID).updatedState;\r\n\r\n let { updatedState: stateL, line } = Line.create(\r\n state,\r\n layerID,\r\n drawingSupport.get('type'),\r\n x,\r\n y,\r\n x,\r\n y\r\n );\r\n state = Line.select(stateL, layerID, line.id).updatedState;\r\n\r\n state = state.merge({\r\n mode: MODE_DRAWING_LINE,\r\n snapElements,\r\n activeSnapElement: snap ? snap.snap : null,\r\n drawingSupport\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateDrawingLine(state, x, y, relatedLines) {\r\n let snap = null;\r\n if (state.snapMask && !state.snapMask.isEmpty()) {\r\n snap = SnapUtils.nearestSnap(state.snapElements, x, y, state.snapMask);\r\n if (snap) ({ x, y } = snap.point);\r\n }\r\n let layerID = state.getIn(['drawingSupport', 'layerID']);\r\n let lineID = state\r\n .getIn(['scene', 'layers', layerID, 'selected', 'lines'])\r\n .first();\r\n\r\n // let relatedLines = [];\r\n let vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();\r\n let drawingLine = state\r\n .getIn(['scene', 'layers', layerID, 'lines', lineID])\r\n .toJS();\r\n let moveFlag = true;\r\n let tx = vertices[drawingLine.vertices[1]].x;\r\n let ty = vertices[drawingLine.vertices[1]].y;\r\n\r\n if (!isEmpty(relatedLines)) {\r\n vertices[drawingLine.vertices[1]].x = x;\r\n vertices[drawingLine.vertices[1]].y = y;\r\n }\r\n\r\n let absAngle, lineAngle;\r\n\r\n // get the angle of two lines and check the angle\r\n if (drawingLine.vertices[0] !== drawingLine.vertices[1]) {\r\n relatedLines.forEach(line => {\r\n // get the points of two lines(drawing line and related line)\r\n if (!isEmpty(line)) {\r\n // the angle between two lines(line, drawingLine)\r\n lineAngle = GeometryUtils.angleBetweenTwoLines(\r\n line,\r\n drawingLine,\r\n vertices\r\n );\r\n // check whether the angle is less than or bigger than specific value.\r\n absAngle = Math.abs(lineAngle);\r\n if (\r\n absAngle < MIN_ANGLE_DISALLOW_DRAW_WALL ||\r\n absAngle > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL\r\n ) {\r\n moveFlag = false;\r\n } else moveFlag = true;\r\n }\r\n });\r\n }\r\n\r\n // if the angle is bigger or less than specific value, the wall mustn't be drawn at new position\r\n if (moveFlag) {\r\n tx = x;\r\n ty = y;\r\n } else {\r\n let rest = MIN_ANGLE_DISALLOW_DRAW_WALL - absAngle;\r\n // the origin point of rotation(snapping)\r\n let ox = vertices[drawingLine.vertices[0]].x;\r\n let oy = vertices[drawingLine.vertices[0]].y;\r\n // determine the direction of rotation.\r\n rest = lineAngle > 0 ? -rest : rest;\r\n // rotate the current point to last point around the first point of drawing line.\r\n let res = GeometryUtils.rotatePointAroundPoint(x, y, ox, oy, rest);\r\n tx = res.x;\r\n ty = res.y;\r\n }\r\n // angle snapping as a value of UNIT_ANGLE\r\n if (moveFlag && !isEmpty(absAngle) && absAngle % UNIT_ANGLE !== 0) {\r\n let result = GeometryUtils.snapAngleByUnit(\r\n lineAngle,\r\n vertices,\r\n drawingLine,\r\n tx,\r\n ty,\r\n drawingLine.vertices[1]\r\n );\r\n tx = result.x;\r\n ty = result.y;\r\n }\r\n let { updatedState: stateLV, vertex } = Line.replaceVertex(\r\n state,\r\n layerID,\r\n lineID,\r\n 1,\r\n tx,\r\n ty\r\n );\r\n state = stateLV;\r\n state = this.select(state, layerID, lineID).updatedState;\r\n state = state.merge({ activeSnapElement: snap ? snap.snap : null });\r\n state = state.setIn(['scene', 'setLineAttributes'], false);\r\n return { updatedState: state };\r\n }\r\n\r\n static drawLineByAttributes(state, layerID, lineID, lineAttributes) {\r\n let lAttr = lineAttributes.toJS();\r\n let { vertexOne, vertexTwo } = lAttr;\r\n // state = state.mergeIn(\r\n // ['scene', 'layers', layerID, 'lines', lineID],\r\n // fromJS(lAttr)\r\n // );\r\n\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n\r\n // let relatedLines = layer.lines.toArray().filter(line => {\r\n // return line.vertices.includes(vertexOne.id) && line.id != lineID;\r\n // });\r\n let lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();\r\n let vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();\r\n let relatedLines = [];\r\n let drawingLine = line.toJS();\r\n getRelatedLines(relatedLines, drawingLine, vertices, lines);\r\n\r\n //if lineAngle is 180 degree between two lines\r\n let lineAngle;\r\n let holesWithOffsetPosition = [];\r\n let v0;\r\n for (let i = 0; i < relatedLines.length; i++) {\r\n // A variable j, k is the number of points in the line\r\n for (let j = 0; j < 2; j++) {\r\n for (let k = 0; k < 2; k++) {\r\n // lineAngle is that angle between the two lines\r\n lineAngle = Math.abs(\r\n GeometryUtils.angleBetweenTwoLines(\r\n relatedLines[i],\r\n drawingLine,\r\n vertices\r\n )\r\n );\r\n //when the related line is one, drawing a new line\r\n if (lineAngle === 180 && relatedLines.length === 1) {\r\n if (relatedLines[i].vertices[j] !== drawingLine.vertices[k]) {\r\n continue;\r\n } else {\r\n v0 = layer.vertices.get(relatedLines[i].vertices[1 - j]);\r\n let v1 = layer.vertices.get(relatedLines[i].vertices[j]);\r\n //remove the drawing line and related line\r\n state = Line.remove(\r\n state,\r\n layerID,\r\n relatedLines[i].id\r\n ).updatedState;\r\n //get the data of hole included in the related line\r\n layer.lines.get(relatedLines[i].id).holes.forEach(holeID => {\r\n let lineLength = GeometryUtils.pointsDistance(\r\n v0.x,\r\n v0.y,\r\n v1.x,\r\n v1.y\r\n );\r\n let minV = GeometryUtils.minVertex(v0, v1);\r\n let maxV = GeometryUtils.maxVertex(v0, v1);\r\n let alpha = Math.atan2(maxV.y - minV.y, maxV.x - minV.x);\r\n let hole = layer.holes.get(holeID);\r\n let pointOnLine = lineLength * hole.offset;\r\n // Calculate the hole position\r\n let offsetPosition = {\r\n x: pointOnLine * Math.cos(alpha) + minV.x,\r\n y: pointOnLine * Math.sin(alpha) + minV.y\r\n };\r\n\r\n holesWithOffsetPosition.push({ hole, offsetPosition });\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // state = state.mergeIn(\r\n // ['scene', 'layers', layerID, 'lines', lineID, 'focus'],\r\n // true\r\n // );\r\n let v2 = layer.vertices.get(line.vertices.get(0));\r\n let v3 = layer.vertices.get(line.vertices.get(1));\r\n state = this.select(state, layerID, lineID).updatedState;\r\n state = Line.remove(state, layerID, lineID).updatedState;\r\n let minV = GeometryUtils.minVertex(v2, v3);\r\n let maxV = GeometryUtils.maxVertex(v2, v3);\r\n let alpha = Math.atan2(maxV.y - minV.y, maxV.x - minV.x);\r\n layer.lines.get(lineID).holes.forEach(holeID => {\r\n let lineLength = GeometryUtils.pointsDistance(v2.x, v2.y, v3.x, v3.y);\r\n let hole = layer.holes.get(holeID);\r\n let pointOnLine = lineLength * hole.offset;\r\n\r\n let offsetPosition = {\r\n x: pointOnLine * Math.cos(alpha) + minV.x,\r\n y: pointOnLine * Math.sin(alpha) + minV.y\r\n };\r\n\r\n holesWithOffsetPosition.push({ hole, offsetPosition });\r\n });\r\n let checkVertex = lineAngle === 180 && relatedLines.length === 1 ? v0 : v2;\r\n if (\r\n !GeometryUtils.samePoints(checkVertex, {\r\n x: vertexTwo.x,\r\n y: vertexTwo.y\r\n })\r\n ) {\r\n let ret = Line.createAvoidingIntersections(\r\n state,\r\n layerID,\r\n line.type,\r\n checkVertex.x,\r\n checkVertex.y,\r\n vertexTwo.x,\r\n vertexTwo.y,\r\n line.properties,\r\n holesWithOffsetPosition,\r\n line.createdDateTime\r\n );\r\n state = ret.updatedState;\r\n }\r\n // state = Line.createAvoidingIntersections(state, layerID, line.type, v0.x, v0.y, x, y).updatedState;\r\n\r\n // origin area count\r\n let areaCount = layer.areas.size;\r\n\r\n state = Layer.detectAndUpdateAreas(state, layerID).updatedState;\r\n\r\n state = state.merge({\r\n sceneHistory: history.historyPush(state.sceneHistory, state.scene)\r\n });\r\n\r\n // state = state.merge({\r\n // mode: MODE_WAITING_DRAWING_LINE,\r\n // snapElements: new List(),\r\n // activeSnapElement: null\r\n // });\r\n\r\n if (state.mode.endsWith('_LINE')) {\r\n state = state.setIn(['scene', 'setLineAttributes'], true);\r\n state = this.beginDrawingLine(\r\n state,\r\n layerID,\r\n vertexTwo.x,\r\n vertexTwo.y\r\n ).updatedState;\r\n }\r\n\r\n // update area//\r\n layer = state.getIn(['scene', 'layers', layerID]);\r\n // if new area created\r\n // this.interiorsurfacedetect(state);\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static stopDrawingLine(state) {\r\n console.log('line aCtion');\r\n }\r\n\r\n /**\r\n * check the [curVertId] point\r\n * @param {*} state scene state\r\n * @param {*} curVertId id of vertex\r\n * returns colinear two line array - [line1, line2]\r\n * if there is no colinear lines or the count of colinear lines more than\r\n */\r\n static hasColinearTwoLines(state, curVertId, layerID) {\r\n let lineGroup = [];\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n let vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();\r\n\r\n layer.lines.forEach(line => {\r\n if (line.vertices.some(v => v === curVertId)) lineGroup.push(line.toJS());\r\n });\r\n if (lineGroup.length !== 2) return null;\r\n\r\n let lineAngle = Math.abs(\r\n GeometryUtils.angleBetweenTwoLines(lineGroup[0], lineGroup[1], vertices)\r\n );\r\n if (lineAngle === 180) return lineGroup;\r\n\r\n return null;\r\n }\r\n\r\n static mergeTwoColinearLines(state, line1, line2, layerID, lineProperties) {\r\n let nv0, nv1, nv2;\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n\r\n let holesWithOffsetPosition = [];\r\n\r\n line1.vertices.forEach(v1 => {\r\n line2.vertices.forEach(v2 => {\r\n if (v2 === v1) {\r\n nv1 = layer.vertices.get(v1);\r\n }\r\n });\r\n });\r\n line1.vertices.forEach(v1 => {\r\n if (v1 !== nv1.id) nv0 = layer.vertices.get(v1);\r\n });\r\n line2.vertices.forEach(v2 => {\r\n if (v2 !== nv1.id) nv2 = layer.vertices.get(v2);\r\n });\r\n\r\n state = Line.remove(state, layerID, line1.id).updatedState;\r\n //get the data of hole included in the related line\r\n layer.lines.get(line1.id).holes.forEach(holeID => {\r\n let lineLength = GeometryUtils.pointsDistance(nv0.x, nv0.y, nv1.x, nv1.y);\r\n let minV = GeometryUtils.minVertex(nv0, nv1);\r\n let maxV = GeometryUtils.maxVertex(nv0, nv1);\r\n let alpha = Math.atan2(maxV.y - minV.y, maxV.x - minV.x);\r\n let hole = layer.holes.get(holeID);\r\n let pointOnLine = lineLength * hole.offset;\r\n // Calculate the hole position\r\n let offsetPosition = {\r\n x: pointOnLine * Math.cos(alpha) + minV.x,\r\n y: pointOnLine * Math.sin(alpha) + minV.y\r\n };\r\n\r\n holesWithOffsetPosition.push({ hole, offsetPosition });\r\n });\r\n state = Line.remove(state, layerID, line2.id).updatedState;\r\n layer.lines.get(line2.id).holes.forEach(holeID => {\r\n let lineLength = GeometryUtils.pointsDistance(nv1.x, nv1.y, nv2.x, nv2.y);\r\n let minV = GeometryUtils.minVertex(nv1, nv2);\r\n let maxV = GeometryUtils.maxVertex(nv1, nv2);\r\n let alpha = Math.atan2(maxV.y - minV.y, maxV.x - minV.x);\r\n let hole = layer.holes.get(holeID);\r\n let pointOnLine = lineLength * hole.offset;\r\n // Calculate the hole position\r\n let offsetPosition = {\r\n x: pointOnLine * Math.cos(alpha) + minV.x,\r\n y: pointOnLine * Math.sin(alpha) + minV.y\r\n };\r\n\r\n holesWithOffsetPosition.push({ hole, offsetPosition });\r\n });\r\n let ret = Line.createAvoidingIntersections(\r\n state,\r\n layerID,\r\n line1.type,\r\n nv0.x,\r\n nv0.y,\r\n nv2.x,\r\n nv2.y,\r\n lineProperties,\r\n holesWithOffsetPosition,\r\n line1.createdDateTime\r\n );\r\n state = ret.updatedState;\r\n\r\n // origin area count\r\n let areaCount = layer.areas.size;\r\n\r\n let drawingInfor = {\r\n drawingLine: ret.newline,\r\n vertices: layer.vertices\r\n };\r\n state = Layer.detectAndUpdateAreas(\r\n state,\r\n layerID,\r\n drawingInfor\r\n ).updatedState;\r\n\r\n //update area//\r\n layer = state.getIn(['scene', 'layers', layerID]);\r\n // if new area created\r\n // this.interiorsurfacedetect(state);\r\n\r\n return { updatedState: state, drawingInfor };\r\n }\r\n\r\n static endDrawingLine(state, x, y, relatedLines) {\r\n if (state.snapMask && !state.snapMask.isEmpty()) {\r\n let snap = SnapUtils.nearestSnap(\r\n state.snapElements,\r\n x,\r\n y,\r\n state.snapMask\r\n );\r\n if (snap) ({ x, y } = snap.point);\r\n }\r\n\r\n let layerID = state.getIn(['drawingSupport', 'layerID']);\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n let lineID = state\r\n .getIn(['scene', 'layers', layerID, 'selected', 'lines'])\r\n .first();\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n\r\n let drawingLine = line.toJS();\r\n\r\n if (drawingLine.vertices[0] === drawingLine.vertices[1]) {\r\n state = Line.remove(state, layerID, lineID).updatedState;\r\n state = state.merge({\r\n mode: MODE_IDLE,\r\n snapElements: new List(),\r\n activeSnapElement: null\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n\r\n /// 180 merge lines - start ////\r\n let vertexGroup = [];\r\n let drawingInfor = {};\r\n\r\n line.vertices.forEach(vertexID => {\r\n let colinearLines = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'vertices',\r\n vertexID,\r\n 'lines'\r\n ]);\r\n colinearLines.forEach(lineID => {\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n\r\n line.vertices.forEach(vertex => {\r\n if (vertex !== vertexID) vertexGroup.push(vertex);\r\n });\r\n });\r\n });\r\n\r\n vertexGroup.forEach(vertexId => {\r\n let lineGroup = [];\r\n\r\n lineGroup = this.hasColinearTwoLines(state, vertexId, layerID);\r\n if (!isEmpty(lineGroup)) {\r\n let ret = this.mergeTwoColinearLines(\r\n state,\r\n lineGroup[0],\r\n lineGroup[1],\r\n layerID,\r\n line.properties\r\n );\r\n state = ret.updatedState;\r\n drawingInfor = ret.drawingInfor;\r\n }\r\n });\r\n\r\n /// 180 merge lines - end ////\r\n\r\n if (isEmpty(drawingInfor)) {\r\n drawingInfor = {\r\n drawingLine: line,\r\n vertices: layer.vertices\r\n };\r\n state = Layer.detectAndUpdateAreas(\r\n state,\r\n layerID,\r\n drawingInfor\r\n ).updatedState;\r\n }\r\n\r\n //update area//\r\n layer = state.getIn(['scene', 'layers', layerID]);\r\n // if new area created\r\n // this.interiorsurfacedetect(state);\r\n\r\n state = state.merge({\r\n mode: MODE_WAITING_DRAWING_LINE,\r\n snapElements: new List(),\r\n activeSnapElement: null\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static beginDraggingLine(state, layerID, lineID, x, y) {\r\n let snapElements = SnapSceneUtils.sceneSnapElements(\r\n state.scene,\r\n new List(),\r\n state.snapMask\r\n );\r\n\r\n let layer = state.scene.layers.get(layerID);\r\n let line = layer.lines.get(lineID);\r\n\r\n let vertex0 = layer.vertices.get(line.vertices.get(0));\r\n let vertex1 = layer.vertices.get(line.vertices.get(1));\r\n\r\n state = state.merge({\r\n mode: MODE_DRAGGING_LINE,\r\n snapElements,\r\n draggingSupport: Map({\r\n layerID,\r\n lineID,\r\n startPointX: x,\r\n startPointY: y,\r\n startVertex0X: vertex0.x,\r\n startVertex0Y: vertex0.y,\r\n startVertex1X: vertex1.x,\r\n startVertex1Y: vertex1.y\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static getNewDraggedPoints(\r\n newPoints,\r\n allVertices,\r\n draggingLine,\r\n relatedLines\r\n ) {\r\n if (\r\n !newPoints ||\r\n !allVertices ||\r\n !draggingLine ||\r\n !Array.isArray(relatedLines)\r\n ) {\r\n return newPoints; // Invalid input, just return\r\n }\r\n\r\n const draggingVertices = Array.isArray(draggingLine.vertices)\r\n ? draggingLine.vertices\r\n : [];\r\n const mvFlag = [];\r\n\r\n relatedLines.forEach(relLine => {\r\n if (!relLine || !Array.isArray(relLine.vertices)) return;\r\n\r\n relLine.vertices.forEach((vertexId, i) => {\r\n if (draggingVertices.includes(vertexId)) return; // skip shared vertices\r\n const vData = allVertices[vertexId];\r\n if (!vData) return; // guard: vertex missing\r\n\r\n const center =\r\n i === 0\r\n ? new Three.Vector2(\r\n newPoints?.newVertex0X ?? 0,\r\n newPoints?.newVertex0Y ?? 0\r\n )\r\n : new Three.Vector2(\r\n newPoints?.newVertex1X ?? 0,\r\n newPoints?.newVertex1Y ?? 0\r\n );\r\n\r\n const pos1 = new Three.Vector2(vData.x ?? 0, vData.y ?? 0);\r\n const pos2 =\r\n i === 0\r\n ? new Three.Vector2(\r\n newPoints?.newVertex1X ?? 0,\r\n newPoints?.newVertex1Y ?? 0\r\n )\r\n : new Three.Vector2(\r\n newPoints?.newVertex0X ?? 0,\r\n newPoints?.newVertex0Y ?? 0\r\n );\r\n\r\n const cen = center.clone();\r\n const vec1 = pos1.clone().sub(cen).normalize();\r\n const vec2 = pos2.clone().sub(cen).normalize();\r\n\r\n const angle = Math.floor(\r\n (vec1.angle() * 180) / Math.PI - (vec2.angle() * 180) / Math.PI + 0.5\r\n );\r\n\r\n if (\r\n Math.abs(angle) < MIN_ANGLE_DISALLOW_DRAW_WALL ||\r\n Math.abs(angle) > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL\r\n ) {\r\n mvFlag.push(false);\r\n } else {\r\n mvFlag.push(true);\r\n }\r\n });\r\n });\r\n\r\n // If any flag is false, revert newPoints to original dragging line positions\r\n if (mvFlag.includes(false) && draggingVertices.length >= 2) {\r\n const v0 = allVertices[draggingVertices[0]];\r\n const v1 = allVertices[draggingVertices[1]];\r\n if (v0 && v1) {\r\n newPoints.newVertex0X = v0.x;\r\n newPoints.newVertex0Y = v0.y;\r\n newPoints.newVertex1X = v1.x;\r\n newPoints.newVertex1Y = v1.y;\r\n }\r\n }\r\n\r\n return newPoints;\r\n }\r\n\r\n static updateDraggingLine(state, x, y, relatedLines) {\r\n let draggingSupport = state.draggingSupport;\r\n let snapElements = state.snapElements;\r\n\r\n let layerID = draggingSupport.get('layerID');\r\n let lineID = draggingSupport.get('lineID');\r\n let diffX = x - draggingSupport.get('startPointX');\r\n let diffY = y - draggingSupport.get('startPointY');\r\n let newVertex0X = draggingSupport.get('startVertex0X') + diffX;\r\n let newVertex0Y = draggingSupport.get('startVertex0Y') + diffY;\r\n let newVertex1X = draggingSupport.get('startVertex1X') + diffX;\r\n let newVertex1Y = draggingSupport.get('startVertex1Y') + diffY;\r\n let drawingLine = state\r\n .getIn(['scene', 'layers', layerID, 'lines', lineID])\r\n .toJS();\r\n let allVertices = state\r\n .getIn(['scene', 'layers', layerID, 'vertices'])\r\n .toJS();\r\n\r\n let activeSnapElement = null;\r\n let curSnap0 = null,\r\n curSnap1 = null;\r\n if (state.snapMask && !state.snapMask.isEmpty()) {\r\n curSnap0 = SnapUtils.nearestSnap(\r\n snapElements,\r\n newVertex0X,\r\n newVertex0Y,\r\n state.snapMask\r\n );\r\n curSnap1 = SnapUtils.nearestSnap(\r\n snapElements,\r\n newVertex1X,\r\n newVertex1Y,\r\n state.snapMask\r\n );\r\n }\r\n\r\n let deltaX = 0,\r\n deltaY = 0;\r\n if (curSnap0 && curSnap1) {\r\n if (curSnap0.point.distance < curSnap1.point.distance) {\r\n deltaX = curSnap0.point.x - newVertex0X;\r\n deltaY = curSnap0.point.y - newVertex0Y;\r\n activeSnapElement = curSnap0.snap;\r\n } else {\r\n deltaX = curSnap1.point.x - newVertex1X;\r\n deltaY = curSnap1.point.y - newVertex1Y;\r\n activeSnapElement = curSnap1.snap;\r\n }\r\n } else {\r\n if (curSnap0) {\r\n deltaX = curSnap0.point.x - newVertex0X;\r\n deltaY = curSnap0.point.y - newVertex0Y;\r\n activeSnapElement = curSnap0.snap;\r\n }\r\n if (curSnap1) {\r\n deltaX = curSnap1.point.x - newVertex1X;\r\n deltaY = curSnap1.point.y - newVertex1Y;\r\n activeSnapElement = curSnap1.snap;\r\n }\r\n }\r\n\r\n newVertex0X += deltaX;\r\n newVertex0Y += deltaY;\r\n newVertex1X += deltaX;\r\n newVertex1Y += deltaY;\r\n let newPoints = {\r\n newVertex0X: newVertex0X,\r\n newVertex0Y: newVertex0Y,\r\n newVertex1X: newVertex1X,\r\n newVertex1Y: newVertex1Y\r\n };\r\n let newResult = this.getNewDraggedPoints(\r\n newPoints,\r\n allVertices,\r\n drawingLine,\r\n relatedLines\r\n );\r\n newVertex0X = newResult.newVertex0X;\r\n newVertex0Y = newResult.newVertex0Y;\r\n newVertex1X = newResult.newVertex1X;\r\n newVertex1Y = newResult.newVertex1Y;\r\n\r\n state = state.merge({\r\n activeSnapElement,\r\n scene: state.scene.updateIn(['layers', layerID], layer =>\r\n layer.withMutations(layer => {\r\n let lineVertices = layer.getIn(['lines', lineID, 'vertices']);\r\n layer.updateIn(['vertices', lineVertices.get(0)], vertex =>\r\n vertex.merge({ x: newVertex0X, y: newVertex0Y })\r\n );\r\n layer.updateIn(['vertices', lineVertices.get(1)], vertex =>\r\n vertex.merge({ x: newVertex1X, y: newVertex1Y })\r\n );\r\n return layer;\r\n })\r\n )\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static endDraggingLine(state, x, y, relatedLines) {\r\n let { draggingSupport } = state;\r\n\r\n let layerID = draggingSupport.get('layerID');\r\n let layer = state.scene.layers.get(layerID);\r\n let lineID = draggingSupport.get('lineID');\r\n let line = layer.lines.get(lineID);\r\n let drawedLine = line.toJS();\r\n let allVertices = state\r\n .getIn(['scene', 'layers', layerID, 'vertices'])\r\n .toJS();\r\n\r\n let vertex0 = layer.vertices.get(line.vertices.get(0));\r\n let vertex1 = layer.vertices.get(line.vertices.get(1));\r\n let maxV = GeometryUtils.maxVertex(vertex0, vertex1);\r\n let minV = GeometryUtils.minVertex(vertex0, vertex1);\r\n let lineLength = GeometryUtils.verticesDistance(minV, maxV);\r\n let alpha = Math.atan2(maxV.y - minV.y, maxV.x - minV.x);\r\n let holesWithOffsetPosition = [];\r\n layer.lines.get(lineID).holes.forEach(holeID => {\r\n let hole = layer.holes.get(holeID);\r\n let pointOnLine = lineLength * hole.offset;\r\n let offsetPosition = {\r\n x: pointOnLine * Math.cos(alpha) + minV.x,\r\n y: pointOnLine * Math.sin(alpha) + minV.y\r\n };\r\n holesWithOffsetPosition.push({ hole, offsetPosition });\r\n });\r\n\r\n let diffX = x - draggingSupport.get('startPointX');\r\n let diffY = y - draggingSupport.get('startPointY');\r\n let newVertex0X = draggingSupport.get('startVertex0X') + diffX;\r\n let newVertex0Y = draggingSupport.get('startVertex0Y') + diffY;\r\n let newVertex1X = draggingSupport.get('startVertex1X') + diffX;\r\n let newVertex1Y = draggingSupport.get('startVertex1Y') + diffY;\r\n\r\n if (state.snapMask && !state.snapMask.isEmpty()) {\r\n let curSnap0 = SnapUtils.nearestSnap(\r\n state.snapElements,\r\n newVertex0X,\r\n newVertex0Y,\r\n state.snapMask\r\n );\r\n let curSnap1 = SnapUtils.nearestSnap(\r\n state.snapElements,\r\n newVertex1X,\r\n newVertex1Y,\r\n state.snapMask\r\n );\r\n\r\n let deltaX = 0,\r\n deltaY = 0;\r\n if (curSnap0 && curSnap1) {\r\n if (curSnap0.point.distance < curSnap1.point.distance) {\r\n deltaX = curSnap0.point.x - newVertex0X;\r\n deltaY = curSnap0.point.y - newVertex0Y;\r\n } else {\r\n deltaX = curSnap1.point.x - newVertex1X;\r\n deltaY = curSnap1.point.y - newVertex1Y;\r\n }\r\n } else {\r\n if (curSnap0) {\r\n deltaX = curSnap0.point.x - newVertex0X;\r\n deltaY = curSnap0.point.y - newVertex0Y;\r\n }\r\n if (curSnap1) {\r\n deltaX = curSnap1.point.x - newVertex1X;\r\n deltaY = curSnap1.point.y - newVertex1Y;\r\n }\r\n }\r\n\r\n newVertex0X += deltaX;\r\n newVertex0Y += deltaY;\r\n newVertex1X += deltaX;\r\n newVertex1Y += deltaY;\r\n }\r\n let newPoints = {\r\n newVertex0X: newVertex0X,\r\n newVertex0Y: newVertex0Y,\r\n newVertex1X: newVertex1X,\r\n newVertex1Y: newVertex1Y\r\n };\r\n let newResult = this.getNewDraggedPoints(\r\n newPoints,\r\n allVertices,\r\n drawedLine,\r\n relatedLines\r\n );\r\n newVertex0X = newResult.newVertex0X;\r\n newVertex0Y = newResult.newVertex0Y;\r\n newVertex1X = newResult.newVertex1X;\r\n newVertex1Y = newResult.newVertex1Y;\r\n\r\n let lineGroups = state //get groups membership if present\r\n .getIn(['scene', 'groups'])\r\n .filter(group => {\r\n const lines = group.getIn(['elements', layerID, 'lines']);\r\n return lines && lines.contains(lineID);\r\n });\r\n\r\n state = Layer.mergeEqualsVertices(\r\n state,\r\n layerID,\r\n line.vertices.get(0)\r\n ).updatedState;\r\n state = Layer.mergeEqualsVertices(\r\n state,\r\n layerID,\r\n line.vertices.get(1)\r\n ).updatedState;\r\n state = Line.remove(state, layerID, lineID).updatedState;\r\n if (\r\n !GeometryUtils.samePoints(\r\n { newVertex0X, newVertex0Y },\r\n { newVertex1X, newVertex1Y }\r\n )\r\n ) {\r\n let ret = Line.createAvoidingIntersections(\r\n state,\r\n layerID,\r\n line.type,\r\n newVertex0X,\r\n newVertex0Y,\r\n newVertex1X,\r\n newVertex1Y,\r\n line.properties,\r\n holesWithOffsetPosition,\r\n line.createdDateTime\r\n );\r\n\r\n state = ret.updatedState;\r\n //re-add to old line's groups if present\r\n ret.lines.forEach(addedLine => {\r\n lineGroups.forEach(oldLineGroup => {\r\n state = Group.addElement(\r\n state,\r\n oldLineGroup.id,\r\n layerID,\r\n 'lines',\r\n addedLine.id\r\n ).updatedState;\r\n });\r\n });\r\n }\r\n\r\n /// merge line if line angle is 180 degree ----> start\r\n let draggingLineID = state.draggingSupport.get('lineID');\r\n let draggingLine = layer.lines.get(draggingLineID);\r\n let vertexGroup = [];\r\n\r\n draggingLine.vertices.forEach(vertexID => {\r\n let colinearLines = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'vertices',\r\n vertexID,\r\n 'lines'\r\n ]);\r\n if (!isEmpty(colinearLines)) {\r\n colinearLines.forEach(lineID => {\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n\r\n line.vertices.forEach(vertex => {\r\n if (vertex !== vertexID) vertexGroup.push(vertex);\r\n });\r\n });\r\n }\r\n });\r\n\r\n vertexGroup.forEach(vertexId => {\r\n let lineGroup = [];\r\n\r\n lineGroup = this.hasColinearTwoLines(state, vertexId, layerID);\r\n if (!isEmpty(lineGroup)) {\r\n state = this.mergeTwoColinearLines(\r\n state,\r\n lineGroup[0],\r\n lineGroup[1],\r\n layerID,\r\n line.properties\r\n ).updatedState;\r\n }\r\n });\r\n\r\n /// ------> end\r\n state = Layer.detectAndUpdateAreas(state, layerID, {}).updatedState;\r\n\r\n state = state.merge({\r\n mode: MODE_IDLE,\r\n draggingSupport: null,\r\n activeSnapElement: null,\r\n snapElements: new List()\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setProperties(state, layerID, lineID, properties) {\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'lines', lineID, 'properties'],\r\n properties\r\n );\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setJsProperties(state, layerID, lineID, properties) {\r\n return this.setProperties(state, layerID, lineID, fromJS(properties));\r\n }\r\n\r\n static updateProperties(state, layerID, lineID, properties) {\r\n properties.forEach((v, k) => {\r\n if (\r\n state.hasIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'lines',\r\n lineID,\r\n 'properties',\r\n k\r\n ])\r\n )\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'lines', lineID, 'properties', k],\r\n v\r\n );\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateJsProperties(state, layerID, lineID, properties) {\r\n return this.updateProperties(state, layerID, lineID, fromJS(properties));\r\n }\r\n\r\n static setAttributes(state, layerID, lineID, lineAttributes) {\r\n if (state.mode === MODE_WAITING_DRAWING_LINE)\r\n return this.drawLineByAttributes(state, layerID, lineID, lineAttributes);\r\n\r\n let lAttr = lineAttributes.toJS();\r\n let {\r\n vertexOne,\r\n vertexTwo,\r\n vertexThree,\r\n vertexFour,\r\n lineLength,\r\n lineToExtend\r\n } = lAttr;\r\n delete lAttr['vertexOne'];\r\n delete lAttr['vertexTwo'];\r\n delete lAttr['vertexThree'];\r\n delete lAttr['vertexFour'];\r\n delete lAttr['lineToExtend'];\r\n delete lAttr['lineLength'];\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n state = state\r\n .mergeIn(['scene', 'layers', layerID, 'lines', lineID], fromJS(lAttr))\r\n .mergeIn(['scene', 'layers', layerID, 'vertices', vertexOne.id], {\r\n x: vertexOne.x,\r\n y: vertexOne.y\r\n })\r\n .mergeIn(['scene', 'layers', layerID, 'vertices', vertexTwo.id], {\r\n x: vertexTwo.x,\r\n y: vertexTwo.y\r\n })\r\n .mergeIn(\r\n ['scene', 'layers', layerID, 'lines', lineID, 'misc'],\r\n new Map({ _unitLength: lineLength._unit })\r\n )\r\n .mergeIn(['scene', 'layers', layerID, 'lines', lineID, 'focus'], true);\r\n if (lineToExtend) {\r\n state = state\r\n .mergeIn(\r\n ['scene', 'layers', layerID, 'lines', lineToExtend.id],\r\n fromJS(lAttr)\r\n )\r\n .mergeIn(\r\n ['scene', 'layers', layerID, 'lines', lineToExtend.id, 'misc'],\r\n new Map({ _unitLength: lineLength._unit })\r\n );\r\n }\r\n if (vertexThree) {\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'vertices', vertexThree.id],\r\n { x: vertexThree.x, y: vertexThree.y }\r\n );\r\n }\r\n if (vertexFour) {\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'vertices', vertexFour.id],\r\n { x: vertexFour.x, y: vertexFour.y }\r\n );\r\n }\r\n state = Layer.mergeEqualsVertices(\r\n state,\r\n layerID,\r\n vertexOne.id\r\n ).updatedState;\r\n if (vertexOne.x != vertexTwo.x && vertexOne.y != vertexTwo.y) {\r\n state = Layer.mergeEqualsVertices(\r\n state,\r\n layerID,\r\n vertexTwo.id\r\n ).updatedState;\r\n }\r\n state = Layer.detectAndUpdateAreas(state, layerID, {}).updatedState;\r\n state = state.merge({\r\n sceneHistory: history.historyPush(state.sceneHistory, state.scene)\r\n });\r\n if (state.mode.endsWith('_LINE')) {\r\n state = this.beginDrawingLine(\r\n state,\r\n layerID,\r\n vertexTwo.x,\r\n vertexTwo.y\r\n ).updatedState;\r\n }\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setVerticesCoords(state, layerID, lineID, x1, y1, x2, y2) {\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n state = Vertex.setAttributes(\r\n state,\r\n layerID,\r\n line.vertices.get(0),\r\n new Map({ x: x1, y: y1 })\r\n ).updatedState;\r\n state = Vertex.setAttributes(\r\n state,\r\n layerID,\r\n line.vertices.get(1),\r\n new Map({ x: x2, y: y2 })\r\n ).updatedState;\r\n\r\n return { updatedState: state };\r\n }\r\n}\r\n\r\nexport { Line as default };\r\n"],"mappings":"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","ignoreList":[]}
|