kitchen-simulator 5.0.0-test.3 → 5.0.0-test.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/KitchenConfigurator.js +1 -1
- package/es/KitchenConfigurator.js.map +1 -1
- package/package.json +8 -12
- package/src/KitchenConfigurator.jsx +1 -1
- package/lib/@history.js +0 -11
- package/lib/@history.js.map +0 -1
- package/lib/AppContext.js +0 -11
- package/lib/AppContext.js.map +0 -1
- package/lib/KitchenConfigurator.js +0 -1353
- package/lib/KitchenConfigurator.js.map +0 -1
- package/lib/KitchenConfiguratorApp.js +0 -539
- package/lib/KitchenConfiguratorApp.js.map +0 -1
- package/lib/actions/area-actions.js +0 -22
- package/lib/actions/area-actions.js.map +0 -1
- package/lib/actions/export.js +0 -44
- package/lib/actions/export.js.map +0 -1
- package/lib/actions/groups-actions.js +0 -108
- package/lib/actions/groups-actions.js.map +0 -1
- package/lib/actions/holes-actions.js +0 -141
- package/lib/actions/holes-actions.js.map +0 -1
- package/lib/actions/items-actions.js +0 -365
- package/lib/actions/items-actions.js.map +0 -1
- package/lib/actions/lines-actions.js +0 -98
- package/lib/actions/lines-actions.js.map +0 -1
- package/lib/actions/project-actions.js +0 -333
- package/lib/actions/project-actions.js.map +0 -1
- package/lib/actions/scene-actions.js +0 -44
- package/lib/actions/scene-actions.js.map +0 -1
- package/lib/actions/user-actions.js +0 -69
- package/lib/actions/user-actions.js.map +0 -1
- package/lib/actions/vertices-actions.js +0 -36
- package/lib/actions/vertices-actions.js.map +0 -1
- package/lib/actions/viewer2d-actions.js +0 -74
- package/lib/actions/viewer2d-actions.js.map +0 -1
- package/lib/actions/viewer3d-actions.js +0 -33
- package/lib/actions/viewer3d-actions.js.map +0 -1
- package/lib/catalog/areas/area/planner-element.js +0 -47
- package/lib/catalog/areas/area/planner-element.js.map +0 -1
- package/lib/catalog/catalog.js +0 -283
- package/lib/catalog/catalog.js.map +0 -1
- package/lib/catalog/factories/area-factory-3d.js +0 -192
- package/lib/catalog/factories/area-factory-3d.js.map +0 -1
- package/lib/catalog/factories/area-factory.js +0 -90
- package/lib/catalog/factories/area-factory.js.map +0 -1
- package/lib/catalog/factories/export.js +0 -26
- package/lib/catalog/factories/export.js.map +0 -1
- package/lib/catalog/factories/wall-factory-3d.js +0 -213
- package/lib/catalog/factories/wall-factory-3d.js.map +0 -1
- package/lib/catalog/factories/wall-factory.js +0 -279
- package/lib/catalog/factories/wall-factory.js.map +0 -1
- package/lib/catalog/holes/door-closet/planner-element.js +0 -232
- package/lib/catalog/holes/door-closet/planner-element.js.map +0 -1
- package/lib/catalog/holes/door-double/planner-element.js +0 -325
- package/lib/catalog/holes/door-double/planner-element.js.map +0 -1
- package/lib/catalog/holes/door-exterior/planner-element.js +0 -225
- package/lib/catalog/holes/door-exterior/planner-element.js.map +0 -1
- package/lib/catalog/holes/door-interior/planner-element.js +0 -237
- package/lib/catalog/holes/door-interior/planner-element.js.map +0 -1
- package/lib/catalog/holes/door-panic/planner-element.js +0 -513
- package/lib/catalog/holes/door-panic/planner-element.js.map +0 -1
- package/lib/catalog/holes/door-panic-double/planner-element.js +0 -473
- package/lib/catalog/holes/door-panic-double/planner-element.js.map +0 -1
- package/lib/catalog/holes/door-sliding/planner-element.js +0 -235
- package/lib/catalog/holes/door-sliding/planner-element.js.map +0 -1
- package/lib/catalog/holes/doorway-framed/planner-element.js +0 -155
- package/lib/catalog/holes/doorway-framed/planner-element.js.map +0 -1
- package/lib/catalog/holes/doorway-frameless/planner-element.js +0 -114
- package/lib/catalog/holes/doorway-frameless/planner-element.js.map +0 -1
- package/lib/catalog/holes/window-clear/planner-element.js +0 -176
- package/lib/catalog/holes/window-clear/planner-element.js.map +0 -1
- package/lib/catalog/holes/window-cross/planner-element.js +0 -175
- package/lib/catalog/holes/window-cross/planner-element.js.map +0 -1
- package/lib/catalog/holes/window-double-hung/planner-element.js +0 -313
- package/lib/catalog/holes/window-double-hung/planner-element.js.map +0 -1
- package/lib/catalog/holes/window-vertical/planner-element.js +0 -286
- package/lib/catalog/holes/window-vertical/planner-element.js.map +0 -1
- package/lib/catalog/lines/wall/planner-element.js +0 -77
- package/lib/catalog/lines/wall/planner-element.js.map +0 -1
- package/lib/catalog/molding/molding-dcm/planner-element.js +0 -39
- package/lib/catalog/molding/molding-dcm/planner-element.js.map +0 -1
- package/lib/catalog/molding/molding-fbm/planner-element.js +0 -39
- package/lib/catalog/molding/molding-fbm/planner-element.js.map +0 -1
- package/lib/catalog/molding/molding-lrm/planner-element.js +0 -39
- package/lib/catalog/molding/molding-lrm/planner-element.js.map +0 -1
- package/lib/catalog/properties/export.js +0 -82
- package/lib/catalog/properties/export.js.map +0 -1
- package/lib/catalog/properties/property-checkbox.js +0 -79
- package/lib/catalog/properties/property-checkbox.js.map +0 -1
- package/lib/catalog/properties/property-color.js +0 -47
- package/lib/catalog/properties/property-color.js.map +0 -1
- package/lib/catalog/properties/property-enum.js +0 -63
- package/lib/catalog/properties/property-enum.js.map +0 -1
- package/lib/catalog/properties/property-hidden.js +0 -27
- package/lib/catalog/properties/property-hidden.js.map +0 -1
- package/lib/catalog/properties/property-lenght-measure.js +0 -109
- package/lib/catalog/properties/property-lenght-measure.js.map +0 -1
- package/lib/catalog/properties/property-length-measure.js +0 -93
- package/lib/catalog/properties/property-length-measure.js.map +0 -1
- package/lib/catalog/properties/property-length-measure_hole.js +0 -109
- package/lib/catalog/properties/property-length-measure_hole.js.map +0 -1
- package/lib/catalog/properties/property-number.js +0 -56
- package/lib/catalog/properties/property-number.js.map +0 -1
- package/lib/catalog/properties/property-read-only.js +0 -34
- package/lib/catalog/properties/property-read-only.js.map +0 -1
- package/lib/catalog/properties/property-string.js +0 -56
- package/lib/catalog/properties/property-string.js.map +0 -1
- package/lib/catalog/properties/property-toggle.js +0 -47
- package/lib/catalog/properties/property-toggle.js.map +0 -1
- package/lib/catalog/properties/shared-property-style.js +0 -21
- package/lib/catalog/properties/shared-property-style.js.map +0 -1
- package/lib/catalog/utils/FuseUtils.js +0 -89
- package/lib/catalog/utils/FuseUtils.js.map +0 -1
- package/lib/catalog/utils/exporter.js +0 -156
- package/lib/catalog/utils/exporter.js.map +0 -1
- package/lib/catalog/utils/geom-utils.js +0 -206
- package/lib/catalog/utils/geom-utils.js.map +0 -1
- package/lib/catalog/utils/item-loader.js +0 -1534
- package/lib/catalog/utils/item-loader.js.map +0 -1
- package/lib/catalog/utils/load-obj.js +0 -100
- package/lib/catalog/utils/load-obj.js.map +0 -1
- package/lib/catalog/utils/mtl-loader.js +0 -360
- package/lib/catalog/utils/mtl-loader.js.map +0 -1
- package/lib/catalog/utils/obj-loader.js +0 -479
- package/lib/catalog/utils/obj-loader.js.map +0 -1
- package/lib/class/FuseUtils.js +0 -89
- package/lib/class/FuseUtils.js.map +0 -1
- package/lib/class/area.js +0 -151
- package/lib/class/area.js.map +0 -1
- package/lib/class/export.js +0 -97
- package/lib/class/export.js.map +0 -1
- package/lib/class/group.js +0 -446
- package/lib/class/group.js.map +0 -1
- package/lib/class/guide.js +0 -68
- package/lib/class/guide.js.map +0 -1
- package/lib/class/hole.js +0 -935
- package/lib/class/hole.js.map +0 -1
- package/lib/class/item.js +0 -1894
- package/lib/class/item.js.map +0 -1
- package/lib/class/layer.js +0 -673
- package/lib/class/layer.js.map +0 -1
- package/lib/class/line.js +0 -1296
- package/lib/class/line.js.map +0 -1
- package/lib/class/project.js +0 -829
- package/lib/class/project.js.map +0 -1
- package/lib/class/vertex.js +0 -272
- package/lib/class/vertex.js.map +0 -1
- package/lib/components/atoms/Snackbar/index.js +0 -57
- package/lib/components/atoms/Snackbar/index.js.map +0 -1
- package/lib/components/atoms/radio-button/index.js +0 -33
- package/lib/components/atoms/radio-button/index.js.map +0 -1
- package/lib/components/atoms/radio-button/styles.js +0 -12
- package/lib/components/atoms/radio-button/styles.js.map +0 -1
- package/lib/components/button/MainButton.js +0 -98
- package/lib/components/button/MainButton.js.map +0 -1
- package/lib/components/button/ToggleMeasureButton.js +0 -63
- package/lib/components/button/ToggleMeasureButton.js.map +0 -1
- package/lib/components/catalog-view/catalog-breadcrumb.js +0 -61
- package/lib/components/catalog-view/catalog-breadcrumb.js.map +0 -1
- package/lib/components/catalog-view/catalog-item.js +0 -233
- package/lib/components/catalog-view/catalog-item.js.map +0 -1
- package/lib/components/catalog-view/catalog-list.js +0 -189
- package/lib/components/catalog-view/catalog-list.js.map +0 -1
- package/lib/components/catalog-view/catalog-page-item.js +0 -137
- package/lib/components/catalog-view/catalog-page-item.js.map +0 -1
- package/lib/components/catalog-view/catalog-turn-back-page-item.js +0 -113
- package/lib/components/catalog-view/catalog-turn-back-page-item.js.map +0 -1
- package/lib/components/configurator/custom-configurator.js +0 -101
- package/lib/components/configurator/custom-configurator.js.map +0 -1
- package/lib/components/configurator/project-configurator.js +0 -138
- package/lib/components/configurator/project-configurator.js.map +0 -1
- package/lib/components/content.js +0 -132
- package/lib/components/content.js.map +0 -1
- package/lib/components/export.js +0 -90
- package/lib/components/export.js.map +0 -1
- package/lib/components/firstsetting/button/styles.js +0 -34
- package/lib/components/firstsetting/button/styles.js.map +0 -1
- package/lib/components/firstsetting/export.js +0 -16
- package/lib/components/firstsetting/export.js.map +0 -1
- package/lib/components/firstsetting/firstsetting-content-button.js +0 -224
- package/lib/components/firstsetting/firstsetting-content-button.js.map +0 -1
- package/lib/components/firstsetting/firstsetting-toggle-button.js +0 -133
- package/lib/components/firstsetting/firstsetting-toggle-button.js.map +0 -1
- package/lib/components/firstsetting/firstsetting.js +0 -633
- package/lib/components/firstsetting/firstsetting.js.map +0 -1
- package/lib/components/footerbar/button/ControlButton.js +0 -79
- package/lib/components/footerbar/button/ControlButton.js.map +0 -1
- package/lib/components/footerbar/button/DirectionButton.js +0 -76
- package/lib/components/footerbar/button/DirectionButton.js.map +0 -1
- package/lib/components/footerbar/button/DirectionPanSpinButton.js +0 -57
- package/lib/components/footerbar/button/DirectionPanSpinButton.js.map +0 -1
- package/lib/components/footerbar/button/ToggleButton.js +0 -83
- package/lib/components/footerbar/button/ToggleButton.js.map +0 -1
- package/lib/components/footerbar/button/ToggleConvertButton.js +0 -80
- package/lib/components/footerbar/button/ToggleConvertButton.js.map +0 -1
- package/lib/components/footerbar/button/ToggleMeasureButton.js +0 -59
- package/lib/components/footerbar/button/ToggleMeasureButton.js.map +0 -1
- package/lib/components/footerbar/button/styles.js +0 -29
- package/lib/components/footerbar/button/styles.js.map +0 -1
- package/lib/components/footerbar/export.js +0 -16
- package/lib/components/footerbar/export.js.map +0 -1
- package/lib/components/footerbar/footer-content-button.js +0 -224
- package/lib/components/footerbar/footer-content-button.js.map +0 -1
- package/lib/components/footerbar/footer-toggle-button.js +0 -133
- package/lib/components/footerbar/footer-toggle-button.js.map +0 -1
- package/lib/components/footerbar/footerbar.js +0 -808
- package/lib/components/footerbar/footerbar.js.map +0 -1
- package/lib/components/footerbar/styles.js +0 -41
- package/lib/components/footerbar/styles.js.map +0 -1
- package/lib/components/header/button/MenuButton.js +0 -77
- package/lib/components/header/button/MenuButton.js.map +0 -1
- package/lib/components/header/button/SaveButton.js +0 -57
- package/lib/components/header/button/SaveButton.js.map +0 -1
- package/lib/components/header/button/styles.js +0 -68
- package/lib/components/header/button/styles.js.map +0 -1
- package/lib/components/header/export.js +0 -12
- package/lib/components/header/export.js.map +0 -1
- package/lib/components/header/header.js +0 -556
- package/lib/components/header/header.js.map +0 -1
- package/lib/components/header/styles.js +0 -47
- package/lib/components/header/styles.js.map +0 -1
- package/lib/components/login/Login.js +0 -94
- package/lib/components/login/Login.js.map +0 -1
- package/lib/components/login/LoginForm/index.js +0 -140
- package/lib/components/login/LoginForm/index.js.map +0 -1
- package/lib/components/login/Register.js +0 -104
- package/lib/components/login/Register.js.map +0 -1
- package/lib/components/login/RegisterForm/index.js +0 -237
- package/lib/components/login/RegisterForm/index.js.map +0 -1
- package/lib/components/login/jwtService.js +0 -239
- package/lib/components/login/jwtService.js.map +0 -1
- package/lib/components/molecules/slider/index.js +0 -22
- package/lib/components/molecules/slider/index.js.map +0 -1
- package/lib/components/molecules/slider/styles.js +0 -2
- package/lib/components/molecules/slider/styles.js.map +0 -1
- package/lib/components/myprojects/export.js +0 -12
- package/lib/components/myprojects/export.js.map +0 -1
- package/lib/components/myprojects/index.js +0 -453
- package/lib/components/myprojects/index.js.map +0 -1
- package/lib/components/myprojects/styles.js +0 -31
- package/lib/components/myprojects/styles.js.map +0 -1
- package/lib/components/sidebar/custom-accordion.js +0 -45
- package/lib/components/sidebar/custom-accordion.js.map +0 -1
- package/lib/components/sidebar/export.js +0 -50
- package/lib/components/sidebar/export.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js +0 -74
- package/lib/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js +0 -124
- package/lib/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js +0 -135
- package/lib/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js +0 -260
- package/lib/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js +0 -84
- package/lib/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/element-editor.js +0 -884
- package/lib/components/sidebar/panel-element-editor/element-editor.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/multi-elements-editor.js +0 -2
- package/lib/components/sidebar/panel-element-editor/multi-elements-editor.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/panel-element-editor.js +0 -56
- package/lib/components/sidebar/panel-element-editor/panel-element-editor.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/panel-multi-elements-editor.js +0 -125
- package/lib/components/sidebar/panel-element-editor/panel-multi-elements-editor.js.map +0 -1
- package/lib/components/sidebar/panel-group-editor.js +0 -218
- package/lib/components/sidebar/panel-group-editor.js.map +0 -1
- package/lib/components/sidebar/panel-groups.js +0 -274
- package/lib/components/sidebar/panel-groups.js.map +0 -1
- package/lib/components/sidebar/panel-guides.js +0 -192
- package/lib/components/sidebar/panel-guides.js.map +0 -1
- package/lib/components/sidebar/panel-layer-elements.js +0 -258
- package/lib/components/sidebar/panel-layer-elements.js.map +0 -1
- package/lib/components/sidebar/panel-layers.js +0 -347
- package/lib/components/sidebar/panel-layers.js.map +0 -1
- package/lib/components/sidebar/panel.js +0 -110
- package/lib/components/sidebar/panel.js.map +0 -1
- package/lib/components/sidebar/sidebar.js +0 -117
- package/lib/components/sidebar/sidebar.js.map +0 -1
- package/lib/components/sidebar/toolbar-panel.js +0 -171
- package/lib/components/sidebar/toolbar-panel.js.map +0 -1
- package/lib/components/sign/export.js +0 -18
- package/lib/components/sign/export.js.map +0 -1
- package/lib/components/sign/main/index.js +0 -567
- package/lib/components/sign/main/index.js.map +0 -1
- package/lib/components/sign/main/styles.js +0 -27
- package/lib/components/sign/main/styles.js.map +0 -1
- package/lib/components/style/button.js +0 -121
- package/lib/components/style/button.js.map +0 -1
- package/lib/components/style/cancel-button.js +0 -30
- package/lib/components/style/cancel-button.js.map +0 -1
- package/lib/components/style/content-container.js +0 -41
- package/lib/components/style/content-container.js.map +0 -1
- package/lib/components/style/content-title.js +0 -38
- package/lib/components/style/content-title.js.map +0 -1
- package/lib/components/style/delete-button.js +0 -35
- package/lib/components/style/delete-button.js.map +0 -1
- package/lib/components/style/export.js +0 -122
- package/lib/components/style/export.js.map +0 -1
- package/lib/components/style/form-block.js +0 -32
- package/lib/components/style/form-block.js.map +0 -1
- package/lib/components/style/form-color-input.js +0 -35
- package/lib/components/style/form-color-input.js.map +0 -1
- package/lib/components/style/form-label.js +0 -34
- package/lib/components/style/form-label.js.map +0 -1
- package/lib/components/style/form-number-input.js +0 -197
- package/lib/components/style/form-number-input.js.map +0 -1
- package/lib/components/style/form-number-input_2.js +0 -214
- package/lib/components/style/form-number-input_2.js.map +0 -1
- package/lib/components/style/form-select.js +0 -30
- package/lib/components/style/form-select.js.map +0 -1
- package/lib/components/style/form-slider.js +0 -53
- package/lib/components/style/form-slider.js.map +0 -1
- package/lib/components/style/form-submit-button.js +0 -36
- package/lib/components/style/form-submit-button.js.map +0 -1
- package/lib/components/style/form-text-input.js +0 -84
- package/lib/components/style/form-text-input.js.map +0 -1
- package/lib/components/toolbar/button/ControlButton.js +0 -76
- package/lib/components/toolbar/button/ControlButton.js.map +0 -1
- package/lib/components/toolbar/button/DirectionButton.js +0 -57
- package/lib/components/toolbar/button/DirectionButton.js.map +0 -1
- package/lib/components/toolbar/button/RightButton.js +0 -140
- package/lib/components/toolbar/button/RightButton.js.map +0 -1
- package/lib/components/toolbar/button/ToggleButton.js +0 -66
- package/lib/components/toolbar/button/ToggleButton.js.map +0 -1
- package/lib/components/toolbar/button/index.js +0 -94
- package/lib/components/toolbar/button/index.js.map +0 -1
- package/lib/components/toolbar/button/styles.js +0 -21
- package/lib/components/toolbar/button/styles.js.map +0 -1
- package/lib/components/toolbar/components/DoorStyleMenu.js +0 -112
- package/lib/components/toolbar/components/DoorStyleMenu.js.map +0 -1
- package/lib/components/toolbar/components/Pricing.js +0 -110
- package/lib/components/toolbar/components/Pricing.js.map +0 -1
- package/lib/components/toolbar/components/ReviewForQuote.js +0 -485
- package/lib/components/toolbar/components/ReviewForQuote.js.map +0 -1
- package/lib/components/toolbar/export.js +0 -50
- package/lib/components/toolbar/export.js.map +0 -1
- package/lib/components/toolbar/main/Alert.js +0 -132
- package/lib/components/toolbar/main/Alert.js.map +0 -1
- package/lib/components/toolbar/main/TakePictureModal.js +0 -109
- package/lib/components/toolbar/main/TakePictureModal.js.map +0 -1
- package/lib/components/toolbar/main/confirm-popup.js +0 -95
- package/lib/components/toolbar/main/confirm-popup.js.map +0 -1
- package/lib/components/toolbar/main/index.js +0 -4619
- package/lib/components/toolbar/main/index.js.map +0 -1
- package/lib/components/toolbar/main/myComponents.js +0 -125
- package/lib/components/toolbar/main/myComponents.js.map +0 -1
- package/lib/components/toolbar/main/styles.js +0 -73
- package/lib/components/toolbar/main/styles.js.map +0 -1
- package/lib/components/toolbar/plugin-item.js +0 -156
- package/lib/components/toolbar/plugin-item.js.map +0 -1
- package/lib/components/toolbar/popup/appliance/appliance-category/index.js +0 -86
- package/lib/components/toolbar/popup/appliance/appliance-category/index.js.map +0 -1
- package/lib/components/toolbar/popup/appliance/choose-appliance/index.js +0 -85
- package/lib/components/toolbar/popup/appliance/choose-appliance/index.js.map +0 -1
- package/lib/components/toolbar/popup/appliance/index.js +0 -89
- package/lib/components/toolbar/popup/appliance/index.js.map +0 -1
- package/lib/components/toolbar/popup/autosaveprompt/index.js +0 -99
- package/lib/components/toolbar/popup/autosaveprompt/index.js.map +0 -1
- package/lib/components/toolbar/popup/autosaveprompt/styles.js +0 -16
- package/lib/components/toolbar/popup/autosaveprompt/styles.js.map +0 -1
- package/lib/components/toolbar/popup/cabinet/cabinet-category/index.js +0 -86
- package/lib/components/toolbar/popup/cabinet/cabinet-category/index.js.map +0 -1
- package/lib/components/toolbar/popup/cabinet/choose-product/index.js +0 -107
- package/lib/components/toolbar/popup/cabinet/choose-product/index.js.map +0 -1
- package/lib/components/toolbar/popup/cabinet/index.js +0 -91
- package/lib/components/toolbar/popup/cabinet/index.js.map +0 -1
- package/lib/components/toolbar/popup/doorStyle/choose-style/index.js +0 -59
- package/lib/components/toolbar/popup/doorStyle/choose-style/index.js.map +0 -1
- package/lib/components/toolbar/popup/doorStyle/index.js +0 -68
- package/lib/components/toolbar/popup/doorStyle/index.js.map +0 -1
- package/lib/components/toolbar/popup/doorStyle/style-category/index.js +0 -152
- package/lib/components/toolbar/popup/doorStyle/style-category/index.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +0 -9
- package/lib/components/toolbar/popup/downloadsummary/downloadSummaryContext.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js +0 -128
- package/lib/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/index.js +0 -572
- package/lib/components/toolbar/popup/downloadsummary/index.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/show2D/show2DView.js +0 -60
- package/lib/components/toolbar/popup/downloadsummary/show2D/show2DView.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js +0 -200
- package/lib/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/show3D/show3DView.js +0 -254
- package/lib/components/toolbar/popup/downloadsummary/show3D/show3DView.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js +0 -1762
- package/lib/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/showCabinetInfo.js +0 -96
- package/lib/components/toolbar/popup/downloadsummary/showCabinetInfo.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js +0 -125
- package/lib/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js +0 -1713
- package/lib/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js +0 -184
- package/lib/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/showWarranty.js +0 -115
- package/lib/components/toolbar/popup/downloadsummary/showWarranty.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/styles.js +0 -47
- package/lib/components/toolbar/popup/downloadsummary/styles.js.map +0 -1
- package/lib/components/toolbar/popup/finishingtouch/category/index.js +0 -44
- package/lib/components/toolbar/popup/finishingtouch/category/index.js.map +0 -1
- package/lib/components/toolbar/popup/finishingtouch/index.js +0 -54
- package/lib/components/toolbar/popup/finishingtouch/index.js.map +0 -1
- package/lib/components/toolbar/popup/finishingtouch/material-edit.js +0 -163
- package/lib/components/toolbar/popup/finishingtouch/material-edit.js.map +0 -1
- package/lib/components/toolbar/popup/finishingtouch/product/index.js +0 -65
- package/lib/components/toolbar/popup/finishingtouch/product/index.js.map +0 -1
- package/lib/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js +0 -124
- package/lib/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js.map +0 -1
- package/lib/components/toolbar/popup/floorplan/choose-floor/index.js +0 -255
- package/lib/components/toolbar/popup/floorplan/choose-floor/index.js.map +0 -1
- package/lib/components/toolbar/popup/floorplan/choose-floor/styles.js +0 -20
- package/lib/components/toolbar/popup/floorplan/choose-floor/styles.js.map +0 -1
- package/lib/components/toolbar/popup/floorplan/floor-category/index.js +0 -99
- package/lib/components/toolbar/popup/floorplan/floor-category/index.js.map +0 -1
- package/lib/components/toolbar/popup/floorplan/index.js +0 -56
- package/lib/components/toolbar/popup/floorplan/index.js.map +0 -1
- package/lib/components/toolbar/popup/index.js +0 -195
- package/lib/components/toolbar/popup/index.js.map +0 -1
- package/lib/components/toolbar/popup/newproject/index.js +0 -75
- package/lib/components/toolbar/popup/newproject/index.js.map +0 -1
- package/lib/components/toolbar/popup/newproject/styles.js +0 -16
- package/lib/components/toolbar/popup/newproject/styles.js.map +0 -1
- package/lib/components/toolbar/popup/product/appliance.js +0 -73
- package/lib/components/toolbar/popup/product/appliance.js.map +0 -1
- package/lib/components/toolbar/popup/product/cabinetproduct.js +0 -33
- package/lib/components/toolbar/popup/product/cabinetproduct.js.map +0 -1
- package/lib/components/toolbar/popup/product/doorstyle.js +0 -59
- package/lib/components/toolbar/popup/product/doorstyle.js.map +0 -1
- package/lib/components/toolbar/popup/product/doorstyleproduct.js +0 -59
- package/lib/components/toolbar/popup/product/doorstyleproduct.js.map +0 -1
- package/lib/components/toolbar/popup/product/floor.js +0 -59
- package/lib/components/toolbar/popup/product/floor.js.map +0 -1
- package/lib/components/toolbar/popup/product/floorproduct.js +0 -68
- package/lib/components/toolbar/popup/product/floorproduct.js.map +0 -1
- package/lib/components/toolbar/popup/product/index.js +0 -59
- package/lib/components/toolbar/popup/product/index.js.map +0 -1
- package/lib/components/toolbar/popup/product/primary.js +0 -71
- package/lib/components/toolbar/popup/product/primary.js.map +0 -1
- package/lib/components/toolbar/popup/product/productline.js +0 -128
- package/lib/components/toolbar/popup/product/productline.js.map +0 -1
- package/lib/components/toolbar/popup/product/reviewItem.js +0 -346
- package/lib/components/toolbar/popup/product/reviewItem.js.map +0 -1
- package/lib/components/toolbar/popup/product/reviewMolding.js +0 -291
- package/lib/components/toolbar/popup/product/reviewMolding.js.map +0 -1
- package/lib/components/toolbar/popup/product/styles.js +0 -79
- package/lib/components/toolbar/popup/product/styles.js.map +0 -1
- package/lib/components/toolbar/popup/savedesign/FullPictureForm.js +0 -169
- package/lib/components/toolbar/popup/savedesign/FullPictureForm.js.map +0 -1
- package/lib/components/toolbar/popup/savedesign/index.js +0 -516
- package/lib/components/toolbar/popup/savedesign/index.js.map +0 -1
- package/lib/components/toolbar/popup/savedesign/styles.js +0 -26
- package/lib/components/toolbar/popup/savedesign/styles.js.map +0 -1
- package/lib/components/toolbar/popup/setDoorStyleOption/index.js +0 -64
- package/lib/components/toolbar/popup/setDoorStyleOption/index.js.map +0 -1
- package/lib/components/toolbar/popup/styles.js +0 -104
- package/lib/components/toolbar/popup/styles.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/AddToCartOptions.js +0 -166
- package/lib/components/toolbar/popup/submitforquote/AddToCartOptions.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/CustomerRequestsForm.js +0 -93
- package/lib/components/toolbar/popup/submitforquote/CustomerRequestsForm.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/SkipDesignerReview.js +0 -45
- package/lib/components/toolbar/popup/submitforquote/SkipDesignerReview.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/StepDots.js +0 -40
- package/lib/components/toolbar/popup/submitforquote/StepDots.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/cart-choice.js +0 -141
- package/lib/components/toolbar/popup/submitforquote/cart-choice.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/doorstyle-menus.js +0 -50
- package/lib/components/toolbar/popup/submitforquote/doorstyle-menus.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/index.js +0 -698
- package/lib/components/toolbar/popup/submitforquote/index.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/styles.js +0 -38
- package/lib/components/toolbar/popup/submitforquote/styles.js.map +0 -1
- package/lib/components/toolbar/popup/submitprompt/index.js +0 -79
- package/lib/components/toolbar/popup/submitprompt/index.js.map +0 -1
- package/lib/components/toolbar/popup/submitprompt/styles.js +0 -16
- package/lib/components/toolbar/popup/submitprompt/styles.js.map +0 -1
- package/lib/components/toolbar/toolbar-button.js +0 -111
- package/lib/components/toolbar/toolbar-button.js.map +0 -1
- package/lib/components/toolbar/toolbar-load-button.js +0 -36
- package/lib/components/toolbar/toolbar-load-button.js.map +0 -1
- package/lib/components/toolbar/toolbar-save-button.js +0 -34
- package/lib/components/toolbar/toolbar-save-button.js.map +0 -1
- package/lib/components/tutorial-view/Modal.js +0 -503
- package/lib/components/tutorial-view/Modal.js.map +0 -1
- package/lib/components/tutorial-view/styles.js +0 -13
- package/lib/components/tutorial-view/styles.js.map +0 -1
- package/lib/components/viewer2d/area.js +0 -90
- package/lib/components/viewer2d/area.js.map +0 -1
- package/lib/components/viewer2d/export.js +0 -122
- package/lib/components/viewer2d/export.js.map +0 -1
- package/lib/components/viewer2d/grids/grid-horizontal-streak.js +0 -45
- package/lib/components/viewer2d/grids/grid-horizontal-streak.js.map +0 -1
- package/lib/components/viewer2d/grids/grid-streak.js +0 -45
- package/lib/components/viewer2d/grids/grid-streak.js.map +0 -1
- package/lib/components/viewer2d/grids/grid-vertical-streak.js +0 -45
- package/lib/components/viewer2d/grids/grid-vertical-streak.js.map +0 -1
- package/lib/components/viewer2d/grids/grids.js +0 -45
- package/lib/components/viewer2d/grids/grids.js.map +0 -1
- package/lib/components/viewer2d/group.js +0 -63
- package/lib/components/viewer2d/group.js.map +0 -1
- package/lib/components/viewer2d/item.js +0 -522
- package/lib/components/viewer2d/item.js.map +0 -1
- package/lib/components/viewer2d/layer.js +0 -172
- package/lib/components/viewer2d/layer.js.map +0 -1
- package/lib/components/viewer2d/line.js +0 -899
- package/lib/components/viewer2d/line.js.map +0 -1
- package/lib/components/viewer2d/ruler.js +0 -108
- package/lib/components/viewer2d/ruler.js.map +0 -1
- package/lib/components/viewer2d/rulerDist.js +0 -154
- package/lib/components/viewer2d/rulerDist.js.map +0 -1
- package/lib/components/viewer2d/rulerX.js +0 -159
- package/lib/components/viewer2d/rulerX.js.map +0 -1
- package/lib/components/viewer2d/rulerY.js +0 -161
- package/lib/components/viewer2d/rulerY.js.map +0 -1
- package/lib/components/viewer2d/scene.js +0 -148
- package/lib/components/viewer2d/scene.js.map +0 -1
- package/lib/components/viewer2d/snap.js +0 -84
- package/lib/components/viewer2d/snap.js.map +0 -1
- package/lib/components/viewer2d/state.js +0 -88
- package/lib/components/viewer2d/state.js.map +0 -1
- package/lib/components/viewer2d/utils.js +0 -174
- package/lib/components/viewer2d/utils.js.map +0 -1
- package/lib/components/viewer2d/vertex.js +0 -76
- package/lib/components/viewer2d/vertex.js.map +0 -1
- package/lib/components/viewer2d/viewer2d.js +0 -1409
- package/lib/components/viewer2d/viewer2d.js.map +0 -1
- package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +0 -2598
- package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js.map +0 -1
- package/lib/components/viewer3d/dcm.js +0 -408
- package/lib/components/viewer3d/dcm.js.map +0 -1
- package/lib/components/viewer3d/fbm.js +0 -421
- package/lib/components/viewer3d/fbm.js.map +0 -1
- package/lib/components/viewer3d/front3D.js +0 -76
- package/lib/components/viewer3d/front3D.js.map +0 -1
- package/lib/components/viewer3d/grid-creator.js +0 -35
- package/lib/components/viewer3d/grid-creator.js.map +0 -1
- package/lib/components/viewer3d/grids/grid-horizontal-streak.js +0 -45
- package/lib/components/viewer3d/grids/grid-horizontal-streak.js.map +0 -1
- package/lib/components/viewer3d/grids/grid-streak.js +0 -36
- package/lib/components/viewer3d/grids/grid-streak.js.map +0 -1
- package/lib/components/viewer3d/grids/grid-vertical-streak.js +0 -45
- package/lib/components/viewer3d/grids/grid-vertical-streak.js.map +0 -1
- package/lib/components/viewer3d/libs/first-person-controls.js +0 -75
- package/lib/components/viewer3d/libs/first-person-controls.js.map +0 -1
- package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js +0 -1288
- package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js.map +0 -1
- package/lib/components/viewer3d/libs/mtl-loader.js +0 -360
- package/lib/components/viewer3d/libs/mtl-loader.js.map +0 -1
- package/lib/components/viewer3d/libs/obj-loader.js +0 -465
- package/lib/components/viewer3d/libs/obj-loader.js.map +0 -1
- package/lib/components/viewer3d/libs/orbit-controls.js +0 -701
- package/lib/components/viewer3d/libs/orbit-controls.js.map +0 -1
- package/lib/components/viewer3d/libs/pointer-lock-controls.js +0 -48
- package/lib/components/viewer3d/libs/pointer-lock-controls.js.map +0 -1
- package/lib/components/viewer3d/lrm.js +0 -312
- package/lib/components/viewer3d/lrm.js.map +0 -1
- package/lib/components/viewer3d/model.js +0 -715
- package/lib/components/viewer3d/model.js.map +0 -1
- package/lib/components/viewer3d/pointer-lock-navigation.js +0 -123
- package/lib/components/viewer3d/pointer-lock-navigation.js.map +0 -1
- package/lib/components/viewer3d/ruler-utils/itemRect.js +0 -69
- package/lib/components/viewer3d/ruler-utils/itemRect.js.map +0 -1
- package/lib/components/viewer3d/ruler-utils/layer3D.js +0 -503
- package/lib/components/viewer3d/ruler-utils/layer3D.js.map +0 -1
- package/lib/components/viewer3d/ruler-utils/ruler3D.js +0 -235
- package/lib/components/viewer3d/ruler-utils/ruler3D.js.map +0 -1
- package/lib/components/viewer3d/ruler-utils/scene3D.js +0 -70
- package/lib/components/viewer3d/ruler-utils/scene3D.js.map +0 -1
- package/lib/components/viewer3d/ruler-utils/state3D.js +0 -26
- package/lib/components/viewer3d/ruler-utils/state3D.js.map +0 -1
- package/lib/components/viewer3d/scene-creator.js +0 -3641
- package/lib/components/viewer3d/scene-creator.js.map +0 -1
- package/lib/components/viewer3d/three-memory-cleaner.js +0 -61
- package/lib/components/viewer3d/three-memory-cleaner.js.map +0 -1
- package/lib/components/viewer3d/viewer3d-first-person.js +0 -321
- package/lib/components/viewer3d/viewer3d-first-person.js.map +0 -1
- package/lib/components/viewer3d/viewer3d.js +0 -2508
- package/lib/components/viewer3d/viewer3d.js.map +0 -1
- package/lib/components/wizardstep/button/styles.js +0 -67
- package/lib/components/wizardstep/button/styles.js.map +0 -1
- package/lib/components/wizardstep/export.js +0 -12
- package/lib/components/wizardstep/export.js.map +0 -1
- package/lib/components/wizardstep/index.js +0 -978
- package/lib/components/wizardstep/index.js.map +0 -1
- package/lib/components/wizardstep/styles.js +0 -68
- package/lib/components/wizardstep/styles.js.map +0 -1
- package/lib/components/wizardstep/wizardstep-content-button.js +0 -224
- package/lib/components/wizardstep/wizardstep-content-button.js.map +0 -1
- package/lib/components/wizardstep/wizardstep-toggle-button.js +0 -133
- package/lib/components/wizardstep/wizardstep-toggle-button.js.map +0 -1
- package/lib/constants.js +0 -646
- package/lib/constants.js.map +0 -1
- package/lib/hooks/useCheckCart.js +0 -60
- package/lib/hooks/useCheckCart.js.map +0 -1
- package/lib/hooks/useGetPricesBySku.js +0 -81
- package/lib/hooks/useGetPricesBySku.js.map +0 -1
- package/lib/hooks/useValidateToken.js +0 -207
- package/lib/hooks/useValidateToken.js.map +0 -1
- package/lib/index.js +0 -102
- package/lib/index.js.map +0 -1
- package/lib/models.js +0 -518
- package/lib/models.js.map +0 -1
- package/lib/plugins/SVGLoader.js +0 -1418
- package/lib/plugins/SVGLoader.js.map +0 -1
- package/lib/plugins/autosave.js +0 -40
- package/lib/plugins/autosave.js.map +0 -1
- package/lib/plugins/console-debugger.js +0 -45
- package/lib/plugins/console-debugger.js.map +0 -1
- package/lib/plugins/export.js +0 -34
- package/lib/plugins/export.js.map +0 -1
- package/lib/plugins/keyboard.js +0 -108
- package/lib/plugins/keyboard.js.map +0 -1
- package/lib/reducers/areas-reducer.js +0 -19
- package/lib/reducers/areas-reducer.js.map +0 -1
- package/lib/reducers/export.js +0 -98
- package/lib/reducers/export.js.map +0 -1
- package/lib/reducers/groups-reducer.js +0 -45
- package/lib/reducers/groups-reducer.js.map +0 -1
- package/lib/reducers/holes-reducer.js +0 -69
- package/lib/reducers/holes-reducer.js.map +0 -1
- package/lib/reducers/items-reducer.js +0 -147
- package/lib/reducers/items-reducer.js.map +0 -1
- package/lib/reducers/lines-reducer.js +0 -52
- package/lib/reducers/lines-reducer.js.map +0 -1
- package/lib/reducers/project-reducer.js +0 -136
- package/lib/reducers/project-reducer.js.map +0 -1
- package/lib/reducers/reducer.js +0 -27
- package/lib/reducers/reducer.js.map +0 -1
- package/lib/reducers/scene-reducer.js +0 -35
- package/lib/reducers/scene-reducer.js.map +0 -1
- package/lib/reducers/user-reducer.js +0 -48
- package/lib/reducers/user-reducer.js.map +0 -1
- package/lib/reducers/vertices-reducer.js +0 -26
- package/lib/reducers/vertices-reducer.js.map +0 -1
- package/lib/reducers/viewer2d-reducer.js +0 -83
- package/lib/reducers/viewer2d-reducer.js.map +0 -1
- package/lib/reducers/viewer3d-reducer.js +0 -64
- package/lib/reducers/viewer3d-reducer.js.map +0 -1
- package/lib/shared-style.js +0 -73
- package/lib/shared-style.js.map +0 -1
- package/lib/styles/export.js +0 -14
- package/lib/styles/export.js.map +0 -1
- package/lib/translator/en.js +0 -111
- package/lib/translator/en.js.map +0 -1
- package/lib/translator/it.js +0 -86
- package/lib/translator/it.js.map +0 -1
- package/lib/translator/ru.js +0 -86
- package/lib/translator/ru.js.map +0 -1
- package/lib/translator/translator.js +0 -91
- package/lib/translator/translator.js.map +0 -1
- package/lib/utils/browser.js +0 -41
- package/lib/utils/browser.js.map +0 -1
- package/lib/utils/email-validator.js +0 -11
- package/lib/utils/email-validator.js.map +0 -1
- package/lib/utils/export.js +0 -57
- package/lib/utils/export.js.map +0 -1
- package/lib/utils/geometry.js +0 -2329
- package/lib/utils/geometry.js.map +0 -1
- package/lib/utils/get-edges-of-subgraphs.js +0 -29
- package/lib/utils/get-edges-of-subgraphs.js.map +0 -1
- package/lib/utils/graph-cycles.js +0 -241
- package/lib/utils/graph-cycles.js.map +0 -1
- package/lib/utils/graph-inner-cycles.js +0 -55
- package/lib/utils/graph-inner-cycles.js.map +0 -1
- package/lib/utils/graph.js +0 -152
- package/lib/utils/graph.js.map +0 -1
- package/lib/utils/helper.js +0 -360
- package/lib/utils/helper.js.map +0 -1
- package/lib/utils/history.js +0 -37
- package/lib/utils/history.js.map +0 -1
- package/lib/utils/id-broker.js +0 -26
- package/lib/utils/id-broker.js.map +0 -1
- package/lib/utils/logger.js +0 -15
- package/lib/utils/logger.js.map +0 -1
- package/lib/utils/math.js +0 -58
- package/lib/utils/math.js.map +0 -1
- package/lib/utils/molding.js +0 -864
- package/lib/utils/molding.js.map +0 -1
- package/lib/utils/name-generator.js +0 -24
- package/lib/utils/name-generator.js.map +0 -1
- package/lib/utils/objects-utils.js +0 -61
- package/lib/utils/objects-utils.js.map +0 -1
- package/lib/utils/phone-validator.js +0 -11
- package/lib/utils/phone-validator.js.map +0 -1
- package/lib/utils/process-black-list.js +0 -25
- package/lib/utils/process-black-list.js.map +0 -1
- package/lib/utils/react-if.js +0 -25
- package/lib/utils/react-if.js.map +0 -1
- package/lib/utils/snap-scene.js +0 -106
- package/lib/utils/snap-scene.js.map +0 -1
- package/lib/utils/snap.js +0 -250
- package/lib/utils/snap.js.map +0 -1
- package/lib/utils/threeCSG.es6.js +0 -504
- package/lib/utils/threeCSG.es6.js.map +0 -1
- package/lib/version.js +0 -8
- package/lib/version.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"viewer2d.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_reactSvgPanZoom","_constants","constants","_state","SharedStyle","_export","_export2","_formNumberInput","_convertUnits","_immutable","_math","_helper","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","Symbol","iterator","Array","from","isArray","_arrayLikeToArray","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","toPrimitive","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","a","toString","slice","constructor","name","test","l","u","next","done","pinFlag","sFlag","sPoint","endPoint","current_sel_obj_id","allItemRect","allItemSnap","allLines","allLineRects","allLineSnap","allRect","holeRect","allArea","mode2Tool","mode","TOOL_NONE","MODE_2D_PAN","TOOL_PAN","MODE_2D_ZOOM_IN","TOOL_ZOOM_IN","MODE_2D_ZOOM_OUT","TOOL_ZOOM_OUT","MODE_IDLE","TOOL_AUTO","mode2PointerEvents","MODE_DRAWING_LINE","MODE_DRAWING_HOLE","MODE_DRAWING_ITEM","MODE_DRAGGING_HOLE","MODE_DRAGGING_ITEM","MODE_DRAGGING_LINE","MODE_DRAGGING_VERTEX","pointerEvents","mode2Cursor","cursor","MODE_ROTATING_ITEM","MODE_WAITING_DRAWING_LINE","mode2DetectAutopan","extractElementData","node","attributes","getNamedItem","tagName","parentNode","parseFloat","part","undefined","layer","prototype","selected","id","direct","Viewer2D","_ref","_ref2","state","width","height","setToolbar","replaceCabinet","viewer2DActions","linesActions","holesActions","verticesActions","itemsActions","areaActions","projectActions","catalog","_useState","useState","_useState2","rulerEdit","setRulerEdit","_useState3","_useState4","rulerEditID","setRulerEditID","Viewer","useRef","viewer2D","scene","_useState5","_useState6","relatedLines","setRelatedLines","_useState7","_useState8","drawStart","setdrawStart","useEffect","selectedLayer","layers","vertices","isEmpty","bottomX","bottomY","topX","topY","vertex","x","y","moveX","moveY","current","setPointOnViewerCenter","layerID","wall_thickness","LINE_THICKNESS","getIn","mapCursorPosition","_ref3","prepareSnap","GeometryUtils","getAllLines","buildRectFromLines","getAllItems","getAllItemSnap","getAllLineSnap","cur","others","concat","validateSnaps","getAllArea","updateRulerDistAttribute","elementData","newVal","oldVal","thisItem","toJS","oldX","oldY","oldRotRad","rotation","Math","PI","rotRad","delta","newX","cos","newY","sin","updateDraggingItemChanged","updateangleChangeAttribute","verArr","split","oldAngle","newAngle","cenId","verId","x0","y0","x1","y1","beginDraggingVertex","snapMask","updateDraggingVertex","endDraggingVertex","updateRulerAttribute","selectedLine","v_0","v_1","_GeometryUtils$orderV","orderVertices","_GeometryUtils$orderV2","v_a","v_b","v_b_new","extendLine","attributesData","lineLength","vertexTwo","merge","vertexOne","attributesFormData","Map","setLinesAttributes","lineID","updateTwoHoleRulerAttribute","elementIds","updateLeftHoleRulerAttribute","updateRightHoleRulerAttribute","beginDraggingHole","updateDraggingHoleChanged","endDraggingHole","updateHoleRulerAttribute","updateDraggingHoleRulerChanged","getRelatedLines","tlines","drawingLine","lines","_loop","_loop2","j","some","line","getEndPoint","selLineID","first","isEndDrag","draggingLine","dragVertexId","vtx","vty","stepUnit","endDrag","absAngle","lineAngle","angleBetweenTwoLines","abs","tmpRelated","tmpAngle","MIN_ANGLE_DISALLOW_DRAW_WALL","flag","rest","originVerId","findIndex","vertice","ox","oy","res","rotatePointAroundPoint","UNIT_ANGLE","result","snapAngleByUnit","getProperties","item","property","_item$properties","properties","unit","convert","to","point","getDistant","curItemInfo","center_h","center_x1","center_y1","pointArray","rectCenterPoint","centerpoint","_centerpoint","pt","angle","rectLine","linePassingThroughTwoPoints","minDist","linerect","rect","p0","clone_point","p1","lineFn","ip","twoLinesIntersection","b","c","segLen","pointsDistance","distToCenter","baseDist","candidate","min","getCalcRectFromItem","pos","size","_item$pos","w","h","mh","mx","my","m2x","m2y","m3x","m3y","m1x","m1y","calcDistanceArray","items","val","depth","storeDistArray","onMouseMove","viewerEvent","_mapCursorPosition","updateMouseCoord","differs","selectAll","updateDrawingLine","updateDrawingHole","counterTop","uri","updateDrawingItem","_GeometryUtils$calcSn","calcSnap","nx","ny","rot","layoutpos","is_corner","_GeometryUtils$getAll","getAllHoleRect","isSect","snap","interSect","validInterSect","isrectSect","updateRotatingItemChanged","itemInfo","includes","updateDraggingHole","updateDraggingLine","_GeometryUtils$calcSn2","_GeometryUtils$getAll2","updateRotatingItem","originalEvent","stopPropagation","onMouseDown","event","_mapCursorPosition2","sCount","areas","holes","nativeEvent","which","rollback","target","beginDraggingLine","beginRotatingItem","selectItem","beginDraggingItem","onMouseUp","bbox","getBoundingClientRect","_mapCursorPosition3","selectArea","remove","MODE_ELEVATION_VIEW","setMode","selectLine","selectHole","currentObject","duplicateSelected","unselectAll","_length1","rulerUnit","distanceText1","formatNumber","DECIMAL_PLACES_2","numberInput1","createElement","style","position","left","top","zIndex","textAlign","paddingRight","fontSize","lineHeight","fontWeight","onChange","_length","_unit","precision","numberInput","_lengthTwoHoleRuler","distanceTextTwoHoleRuler","numberInputTwoHoleRuler","padding","_lengthLeftHoleRuler","distanceTextLeftHoleRuler","toFixed","numberInputLeftHoleRuler","_lengthRulerHole","distanceTextRulerHole","numberInputRulerHole","_lengthRightHoleRuler","distanceTextRightHoleRuler","numberInputRightHoleRuler","_length2","numberInput2","beginDrawingLine","endInfor","endDrawingLine","endDrawingHole","endDrawingItem","endDraggingLine","updateMolding","endRotatingItem","onChangeValue","_zoomValue","parseInt","ZOOM_VARIABLE","isNaN","startX","startY","lastAction","_rulerEdit","document","getElementById","_rect","SVGWidth","viewerWidth","d","SVGHeight","viewerHeight","updateZoomScale","updateCameraView","onChangeTool","tool","selectToolEdit","selectToolPan","selectToolZoomIn","selectToolZoomOut","onZoom","_state$get$toJS","rulerSize","rulerUnitPixelSize","rulerBgColor","PRIMARY_COLOR","main","rulerFnColor","COLORS","white","rulerMkColor","SECONDARY_COLOR","sceneWidth","sceneHeight","sceneZoom","zoom","rulerXElements","ceil","rulerYElements","margin","display","gridRowGap","gridColumnGap","gridTemplateColumns","gridTemplateRows","gridColumn","gridRow","backgroundColor","overflow","RulerX","unitPixelSize","mouseX","mouse","zeroLeftPosition","fontColor","markerColor","positiveUnitsNumber","negativeUnitsNumber","RulerY","mouseY","zeroTopPosition","ReactSVGPanZoom","detectAutoPan","miniaturePosition","toolbarPosition","detectPinchGesture","disableDoubleClickZoomWithToolAuto","ref","patternUnits","fill","stroke","strokeWidth","assign","propTypes","PropTypes","object","isRequired","number","contextTypes"],"sources":["../../../src/components/viewer2d/viewer2d.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n ReactSVGPanZoom,\r\n TOOL_AUTO,\r\n TOOL_NONE,\r\n TOOL_PAN,\r\n TOOL_ZOOM_IN,\r\n TOOL_ZOOM_OUT,\r\n zoom\r\n} from 'react-svg-pan-zoom';\r\nimport * as constants from '../../constants';\r\nimport {\r\n DECIMAL_PLACES_2,\r\n LINE_THICKNESS,\r\n MIN_ANGLE_DISALLOW_DRAW_WALL,\r\n MODE_ELEVATION_VIEW,\r\n MODE_IDLE,\r\n UNIT_ANGLE\r\n} from '../../constants';\r\nimport State from './state';\r\nimport * as SharedStyle from '../../shared-style';\r\nimport { RulerX, RulerY } from './export';\r\nimport { GeometryUtils } from '../../utils/export';\r\nimport FormNumberInput from '../style/form-number-input';\r\nimport convert from 'convert-units';\r\nimport { Map } from 'immutable';\r\nimport { formatNumber } from '../../../src/utils/math';\r\nimport { isEmpty } from '../../utils/helper';\r\n\r\n// variables\r\nlet pinFlag = false;\r\nlet sFlag = false; //for all object move\r\nlet sPoint = {}; //for all object move\r\nlet endPoint = {};\r\nlet current_sel_obj_id = null;\r\nlet allItemRect;\r\nlet allItemSnap;\r\nlet allLines;\r\nlet allLineRects;\r\nlet allLineSnap;\r\nlet allRect;\r\nlet holeRect;\r\nlet allArea;\r\n\r\n// /////////\r\nfunction mode2Tool(mode) {\r\n if (pinFlag) {\r\n return TOOL_NONE;\r\n }\r\n switch (mode) {\r\n case constants.MODE_2D_PAN:\r\n return TOOL_PAN;\r\n case constants.MODE_2D_ZOOM_IN:\r\n return TOOL_ZOOM_IN;\r\n case constants.MODE_2D_ZOOM_OUT:\r\n return TOOL_ZOOM_OUT;\r\n case constants.MODE_IDLE:\r\n return TOOL_AUTO;\r\n default:\r\n return TOOL_NONE;\r\n }\r\n}\r\n\r\nfunction mode2PointerEvents(mode) {\r\n switch (mode) {\r\n case constants.MODE_DRAWING_LINE:\r\n case constants.MODE_DRAWING_HOLE:\r\n case constants.MODE_DRAWING_ITEM:\r\n case constants.MODE_DRAGGING_HOLE:\r\n case constants.MODE_DRAGGING_ITEM:\r\n case constants.MODE_DRAGGING_LINE:\r\n case constants.MODE_DRAGGING_VERTEX:\r\n return { pointerEvents: 'none' };\r\n\r\n default:\r\n return {};\r\n }\r\n}\r\n\r\nfunction mode2Cursor(mode) {\r\n switch (mode) {\r\n case constants.MODE_DRAGGING_HOLE:\r\n case constants.MODE_DRAGGING_LINE:\r\n case constants.MODE_DRAGGING_VERTEX:\r\n case constants.MODE_DRAGGING_ITEM:\r\n return { cursor: 'move' };\r\n\r\n case constants.MODE_ROTATING_ITEM:\r\n return { cursor: 'ew-resize' };\r\n\r\n case constants.MODE_WAITING_DRAWING_LINE:\r\n case constants.MODE_DRAWING_LINE:\r\n return { cursor: 'crosshair' };\r\n default:\r\n return { cursor: 'default' };\r\n }\r\n}\r\n\r\nfunction mode2DetectAutopan(mode) {\r\n switch (mode) {\r\n case constants.MODE_DRAWING_LINE:\r\n case constants.MODE_DRAGGING_LINE:\r\n case constants.MODE_DRAGGING_VERTEX:\r\n case constants.MODE_DRAGGING_HOLE:\r\n case constants.MODE_DRAGGING_ITEM:\r\n case constants.MODE_DRAWING_HOLE:\r\n case constants.MODE_DRAWING_ITEM:\r\n return true;\r\n\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\nfunction extractElementData(node) {\r\n while (\r\n !node.attributes.getNamedItem('data-element-root') &&\r\n node.tagName !== 'svg'\r\n ) {\r\n node = node.parentNode;\r\n }\r\n if (node.tagName === 'svg') return null;\r\n\r\n return {\r\n length: node.attributes.getNamedItem('data-length')\r\n ? parseFloat(node.attributes.getNamedItem('data-length').value)\r\n : 0,\r\n part: node.attributes.getNamedItem('data-part')\r\n ? node.attributes.getNamedItem('data-part').value\r\n : undefined,\r\n layer: node.attributes.getNamedItem('data-layer').value,\r\n prototype: node.attributes.getNamedItem('data-prototype').value,\r\n selected: node.attributes.getNamedItem('data-selected').value === 'true',\r\n id: node.attributes.getNamedItem('data-id').value,\r\n direct: node.attributes.getNamedItem('data-direct')\r\n ? node.attributes.getNamedItem('data-direct').value\r\n : 0\r\n };\r\n}\r\n\r\nexport default function Viewer2D(\r\n { state, width, height, setToolbar, replaceCabinet },\r\n {\r\n viewer2DActions,\r\n linesActions,\r\n holesActions,\r\n verticesActions,\r\n itemsActions,\r\n areaActions,\r\n projectActions,\r\n catalog\r\n }\r\n) {\r\n const [rulerEdit, setRulerEdit] = useState(null);\r\n const [rulerEditID, setRulerEditID] = useState(null);\r\n const Viewer = useRef(null);\r\n\r\n let { viewer2D, mode, scene } = state;\r\n\r\n // let relatedLines = [];\r\n const [relatedLines, setRelatedLines] = useState([]);\r\n const [drawStart, setdrawStart] = useState(false);\r\n\r\n useEffect(() => {\r\n // move viewer point to center\r\n let selectedLayer = state.scene.layers.get(state.scene.selectedLayer);\r\n\r\n if (!selectedLayer) {\r\n return;\r\n }\r\n\r\n const vertices = selectedLayer.vertices;\r\n\r\n if (vertices.isEmpty()) {\r\n return;\r\n }\r\n\r\n let bottomX = 0,\r\n bottomY = 100000,\r\n topX = 100000,\r\n topY = 0;\r\n\r\n vertices.forEach(vertex => {\r\n if (bottomX < vertex.x) bottomX = vertex.x;\r\n if (bottomY > vertex.y) bottomY = vertex.y;\r\n if (topX > vertex.x) topX = vertex.x;\r\n if (topY < vertex.y) topY = vertex.y;\r\n });\r\n\r\n let moveX = topX + (bottomX - topX) / 2;\r\n let moveY = 2000 - (bottomY + (topY - bottomY) / 2);\r\n\r\n Viewer.current.setPointOnViewerCenter(moveX, moveY, viewer2D.get('a'));\r\n }, []);\r\n\r\n let layerID = scene.selectedLayer;\r\n let wall_thickness = LINE_THICKNESS / 2;\r\n const layer = scene.getIn(['layers', layerID]);\r\n\r\n let mapCursorPosition = ({ x, y }) => {\r\n return { x, y: -y + scene.height };\r\n };\r\n // let pinBackColor = pinFlag ? \"#4488ff\" : \"black\";\r\n // let topRightImg = state.mode == MODE_IDLE || state.mode == MODE_2D_PAN ? \"/assets/img/svg/topbar/edit_inactive.svg\" : \"/assets/img/svg/topbar/edit_active.svg\";\r\n // let topBtnAction = state.mode == MODE_IDLE || state.mode == MODE_2D_PAN ? () => linesActions.selectToolDrawingLine(\"wall\") : () => projectActions.setMode(MODE_IDLE);\r\n\r\n let prepareSnap = () => {\r\n let layerID = scene.selectedLayer;\r\n let layer = scene.layers.get(layerID);\r\n\r\n allLines = GeometryUtils.getAllLines(layer);\r\n allLineRects = GeometryUtils.buildRectFromLines(layer, allLines);\r\n allItemRect = GeometryUtils.getAllItems(scene, catalog, allLineRects);\r\n allItemSnap = GeometryUtils.getAllItemSnap(allItemRect);\r\n allLineSnap = GeometryUtils.getAllLineSnap(allLineRects, allItemRect.cur);\r\n allRect = allItemRect.others.concat(allLineRects);\r\n allItemSnap = GeometryUtils.validateSnaps(allItemSnap, allRect);\r\n allLineSnap = GeometryUtils.validateSnaps(allLineSnap, allRect);\r\n allArea = GeometryUtils.getAllArea(layer);\r\n };\r\n\r\n let updateRulerDistAttribute = (elementData, value) => {\r\n let newVal = value.get('length');\r\n let oldVal = elementData.length;\r\n let direct = elementData.direct;\r\n\r\n const thisItem = scene\r\n .getIn(['layers', elementData.layer, 'items', elementData.id])\r\n .toJS();\r\n\r\n let oldX = thisItem.x;\r\n let oldY = thisItem.y;\r\n let oldRotRad = (thisItem.rotation / 180) * Math.PI;\r\n\r\n let rotRad = oldRotRad + (direct / 180) * Math.PI;\r\n let delta = oldVal - newVal;\r\n\r\n let newX = oldX + delta * Math.cos(rotRad);\r\n let newY = oldY + delta * Math.sin(rotRad);\r\n\r\n itemsActions.updateDraggingItemChanged(\r\n newX,\r\n newY,\r\n elementData.layer,\r\n elementData.id\r\n );\r\n\r\n setRulerEdit(null);\r\n };\r\n\r\n let updateangleChangeAttribute = (elementData, value) => {\r\n let verArr = elementData.id.split(',');\r\n let oldAngle = elementData.length;\r\n let newAngle = value.getIn(['_length']);\r\n let cenId = verArr[0];\r\n let verId = verArr[1];\r\n let x0 = state.scene.getIn(['layers', layerID, 'vertices', verArr[0], 'x']);\r\n let y0 = state.scene.getIn(['layers', layerID, 'vertices', verArr[0], 'y']);\r\n let x1 = state.scene.getIn(['layers', layerID, 'vertices', verArr[1], 'x']);\r\n let y1 = state.scene.getIn(['layers', layerID, 'vertices', verArr[1], 'y']);\r\n let x, y, delta;\r\n\r\n delta = newAngle - oldAngle;\r\n\r\n if (verArr[2] === 'true') {\r\n delta = -delta;\r\n }\r\n\r\n x =\r\n (x1 - x0) * Math.cos((delta * Math.PI) / 180) -\r\n (y1 - y0) * Math.sin((delta * Math.PI) / 180) +\r\n x0;\r\n y =\r\n (x1 - x0) * Math.sin((delta * Math.PI) / 180) +\r\n (y1 - y0) * Math.cos((delta * Math.PI) / 180) +\r\n y0;\r\n\r\n setRulerEdit(null);\r\n verticesActions.beginDraggingVertex(\r\n elementData.layer,\r\n verArr[1],\r\n x,\r\n y,\r\n state.snapMask\r\n );\r\n verticesActions.updateDraggingVertex(x, y, state.snapMask);\r\n verticesActions.endDraggingVertex(x, y, state.snapMask);\r\n };\r\n\r\n let updateRulerAttribute = (elementData, value) => {\r\n const selectedLine = scene\r\n .getIn(['layers', elementData.layer, 'lines', elementData.id])\r\n .toJS();\r\n\r\n let v_0 = scene.getIn([\r\n 'layers',\r\n elementData.layer,\r\n 'vertices',\r\n selectedLine.vertices[0]\r\n ]);\r\n\r\n let v_1 = scene.getIn([\r\n 'layers',\r\n elementData.layer,\r\n 'vertices',\r\n selectedLine.vertices[1]\r\n ]);\r\n\r\n let [v_a, v_b] = GeometryUtils.orderVertices([v_0, v_1]);\r\n let v_b_new = GeometryUtils.extendLine(\r\n v_a.x,\r\n v_a.y,\r\n v_b.x,\r\n v_b.y,\r\n value.get('length'),\r\n 2\r\n );\r\n\r\n // Blocked function that as wall changed, opposite wall should changed together.\r\n // let layer = scene.getIn(['layers', elementData.layer]);\r\n // let allLines = layer.lines.toArray()\r\n // let relatedLine = allLines.filter(line => { return line.vertices.toArray().includes(v_b.id) && line.id != selectedLine.id })[0];\r\n // let relatedVertexID = relatedLine && (relatedLine.vertices.toArray()[0] == v_b.id ? relatedLine.vertices.toArray()[1] : relatedLine.vertices.toArray()[0]);\r\n // let v_d = relatedVertexID && layer.getIn(['vertices', relatedVertexID]);\r\n // let delta = {\r\n // x : v_b_new.x - v_b.x,\r\n // y : v_b_new.y - v_b.y\r\n // };\r\n // let newPosition = {\r\n // x : v_d.x + delta.x,\r\n // y : v_d.y + delta.y\r\n // }\r\n\r\n var attributesData = {\r\n // (v_0 === v_a ? 'vertexTwo' : 'vertexOne') : v_b.merge(v_b_new)),\r\n lineLength: value\r\n };\r\n if (v_0 === v_a) {\r\n attributesData = {\r\n ...attributesData,\r\n vertexTwo: v_b.merge(v_b_new),\r\n vertexOne: v_a\r\n };\r\n } else {\r\n attributesData = {\r\n ...attributesData,\r\n vertexOne: v_b.merge(v_b_new),\r\n vertexTwo: v_a\r\n };\r\n }\r\n let attributesFormData = new Map({\r\n ...attributesData\r\n });\r\n setRulerEdit(null);\r\n projectActions.setLinesAttributes(attributesFormData, true, {\r\n layerID: elementData.layer,\r\n lineID: elementData.id\r\n });\r\n\r\n // Blocked function that as wall changed, opposite wall should changed together.\r\n // verticesActions.beginDraggingVertex(elementData.layer, relatedVertexID, newPosition.x, newPosition.y, state.snapMask);\r\n // verticesActions.updateDraggingVertex(newPosition.x, newPosition.y, state.snapMask);\r\n // verticesActions.endDraggingVertex(newPosition.x, newPosition.y, state.snapMask);\r\n };\r\n\r\n let updateTwoHoleRulerAttribute = (elementData, value) => {\r\n let elementIds = elementData.id.split(',');\r\n elementData.id = elementIds[1];\r\n elementData.length /= 2;\r\n updateLeftHoleRulerAttribute(elementData, value);\r\n elementData.id = elementIds[0];\r\n updateRightHoleRulerAttribute(elementData, value);\r\n };\r\n\r\n let updateLeftHoleRulerAttribute = (elementData, value) => {\r\n let newVal = value.get('length');\r\n let oldVal = elementData.length;\r\n const thisItem = scene\r\n .getIn(['layers', elementData.layer, 'holes', elementData.id])\r\n .toJS();\r\n let oldX = thisItem.x;\r\n let oldY = thisItem.y;\r\n let oldRotRad = thisItem.rotation;\r\n let delta = oldVal - newVal;\r\n let newX = oldX - delta * Math.cos(oldRotRad);\r\n let newY = oldY - delta * Math.sin(oldRotRad);\r\n holesActions.beginDraggingHole(\r\n elementData.layer,\r\n elementData.id,\r\n newX,\r\n newY\r\n );\r\n holesActions.updateDraggingHoleChanged(\r\n newX,\r\n newY,\r\n elementData.layer,\r\n elementData.id\r\n );\r\n holesActions.endDraggingHole(newX, newY);\r\n setRulerEdit(null);\r\n };\r\n\r\n let updateHoleRulerAttribute = (elementData, value) => {\r\n let newVal = value.get('length');\r\n const thisItem = scene\r\n .getIn(['layers', elementData.layer, 'holes', elementData.id])\r\n .toJS();\r\n let oldX = thisItem.x;\r\n let oldY = thisItem.y;\r\n holesActions.beginDraggingHole(\r\n elementData.layer,\r\n elementData.id,\r\n oldX,\r\n oldY\r\n );\r\n holesActions.updateDraggingHoleRulerChanged(\r\n newVal,\r\n elementData.layer,\r\n elementData.id\r\n );\r\n holesActions.endDraggingHole(oldX, oldY);\r\n setRulerEdit(null);\r\n };\r\n\r\n let updateRightHoleRulerAttribute = (elementData, value) => {\r\n let newVal = value.get('length');\r\n let oldVal = elementData.length;\r\n const thisItem = scene\r\n .getIn(['layers', elementData.layer, 'holes', elementData.id])\r\n .toJS();\r\n let oldX = thisItem.x;\r\n let oldY = thisItem.y;\r\n let oldRotRad = thisItem.rotation;\r\n let delta = oldVal - newVal;\r\n let newX = oldX + delta * Math.cos(oldRotRad);\r\n let newY = oldY + delta * Math.sin(oldRotRad);\r\n holesActions.beginDraggingHole(\r\n elementData.layer,\r\n elementData.id,\r\n newX,\r\n newY\r\n );\r\n holesActions.updateDraggingHoleChanged(\r\n newX,\r\n newY,\r\n elementData.layer,\r\n elementData.id\r\n );\r\n holesActions.endDraggingHole(newX, newY);\r\n setRulerEdit(null);\r\n };\r\n\r\n const getRelatedLines = (tlines, drawingLine, vertices, lines) => {\r\n // if (drawingLine.vertices[0] !== drawingLine.vertices[1]) {\r\n for (let i = 0; i < drawingLine.vertices.length; i++) {\r\n let vertex = vertices[drawingLine.vertices[i]];\r\n for (let j = 0; j < vertex.lines.length; j++) {\r\n if (vertex.lines[j] !== drawingLine.id) {\r\n if (!tlines.some(line => line.id === lines[vertex.lines[j]].id)) {\r\n tlines.push(lines[vertex.lines[j]]);\r\n }\r\n }\r\n }\r\n }\r\n // }\r\n };\r\n\r\n const getEndPoint = (vertices, x, y, mode) => {\r\n let selLineID = state\r\n .getIn(['scene', 'layers', layerID, 'selected', 'lines'])\r\n .first();\r\n if (isEmpty(selLineID)) {\r\n return {\r\n isEndDrag: true,\r\n x: x,\r\n y: y\r\n };\r\n }\r\n let draggingLine = state\r\n .getIn(['scene', 'layers', layerID, 'lines', selLineID])\r\n .toJS();\r\n let allLines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();\r\n let dragVertexId = state.getIn(['draggingSupport', 'vertexID']);\r\n dragVertexId = !isEmpty(dragVertexId)\r\n ? dragVertexId\r\n : draggingLine.vertices[1];\r\n let vtx, vty;\r\n let stepUnit = false;\r\n vtx = vertices[dragVertexId].x;\r\n vty = vertices[dragVertexId].y;\r\n if (!vertices[dragVertexId].lines.some(line => line !== draggingLine.id)) {\r\n stepUnit = true;\r\n }\r\n let endDrag = [];\r\n if (!isEmpty(relatedLines) && mode !== 'DRAGGING_LINE') {\r\n vertices[dragVertexId].x = x;\r\n vertices[dragVertexId].y = y;\r\n }\r\n let absAngle, lineAngle;\r\n if (draggingLine.vertices[0] !== draggingLine.vertices[1]) {\r\n for (let i = 0; i < relatedLines.length; i++) {\r\n let line = relatedLines[i];\r\n lineAngle = GeometryUtils.angleBetweenTwoLines(\r\n line,\r\n draggingLine,\r\n vertices\r\n );\r\n absAngle = Math.abs(lineAngle);\r\n let tmpRelated = [];\r\n GeometryUtils.getRelatedLines(\r\n tmpRelated,\r\n line,\r\n vertices,\r\n allLines,\r\n draggingLine.id\r\n );\r\n for (let j = 0; j < tmpRelated.length; j++) {\r\n let tmpAngle = Math.abs(\r\n GeometryUtils.angleBetweenTwoLines(tmpRelated[j], line, vertices)\r\n );\r\n if (\r\n tmpAngle < MIN_ANGLE_DISALLOW_DRAW_WALL ||\r\n tmpAngle > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL\r\n ) {\r\n endDrag.push(false);\r\n } else endDrag.push(true);\r\n }\r\n if (\r\n absAngle < MIN_ANGLE_DISALLOW_DRAW_WALL ||\r\n absAngle > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL\r\n ) {\r\n endDrag.push(false);\r\n } else endDrag.push(true);\r\n }\r\n }\r\n\r\n if (!endDrag.some(flag => flag === false)) {\r\n vtx = x;\r\n vty = 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 originVerId = draggingLine.vertices.findIndex(\r\n vertice => vertice !== dragVertexId\r\n );\r\n originVerId =\r\n originVerId < 0\r\n ? draggingLine.vertices[0]\r\n : draggingLine.vertices[originVerId];\r\n if (stepUnit) {\r\n let ox = vertices[originVerId].x;\r\n let oy = vertices[originVerId].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 vtx = res.x;\r\n vty = res.y;\r\n }\r\n }\r\n\r\n // angle snapping as a value of UNIT_ANGLE\r\n if (\r\n !endDrag.some(flag => flag === false) &&\r\n !isEmpty(absAngle) &&\r\n absAngle % UNIT_ANGLE !== 0 &&\r\n stepUnit\r\n ) {\r\n let result = GeometryUtils.snapAngleByUnit(\r\n lineAngle,\r\n vertices,\r\n draggingLine,\r\n vtx,\r\n vty,\r\n dragVertexId\r\n );\r\n vtx = result.x;\r\n vty = result.y;\r\n }\r\n\r\n let result = {\r\n isEndDrag: endDrag,\r\n x: vtx,\r\n y: vty\r\n };\r\n return result;\r\n };\r\n\r\n const getProperties = (item, property) => {\r\n if (!item?.properties?.getIn) return 0;\r\n const length = item.properties.getIn([property, '_length']);\r\n const unit = item.properties.getIn([property, '_unit']);\r\n return length && unit ? convert(length).from(unit).to('cm') : 0;\r\n };\r\n\r\n const point = (x, y) => ({ x, y });\r\n\r\n const getDistant = (x, y, rotRad, curItemInfo, allRect) => {\r\n const center_h = (3 * height) / 8;\r\n const center_x1 = x - center_h * Math.sin(rotRad);\r\n const center_y1 = y + center_h * Math.cos(rotRad);\r\n\r\n const pointArray = [];\r\n\r\n curItemInfo.rectCenterPoint.forEach(centerpoint => {\r\n if (!Array.isArray(centerpoint) || centerpoint.length < 2) return;\r\n\r\n const [pt, angle] = centerpoint;\r\n if (!pt) return;\r\n\r\n // line through centerpoint and reference center\r\n const rectLine =\r\n angle === 180 || angle === 0\r\n ? GeometryUtils.linePassingThroughTwoPoints(\r\n pt.x,\r\n pt.y,\r\n center_x1,\r\n center_y1\r\n )\r\n : GeometryUtils.linePassingThroughTwoPoints(pt.x, pt.y, x, y);\r\n\r\n if (!rectLine) return;\r\n\r\n let minDist;\r\n allRect.forEach(linerect => {\r\n if (!linerect?.rect || linerect.rect.length < 4) return;\r\n\r\n const p0 = GeometryUtils.clone_point(linerect.rect[2]);\r\n const p1 = GeometryUtils.clone_point(linerect.rect[3]);\r\n if (!p0 || !p1 || (p0.x === p1.x && p0.y === p1.y)) return;\r\n\r\n const lineFn = GeometryUtils.linePassingThroughTwoPoints(\r\n p0.x,\r\n p0.y,\r\n p1.x,\r\n p1.y\r\n );\r\n if (!lineFn) return;\r\n\r\n const ip = GeometryUtils.twoLinesIntersection(\r\n lineFn.a,\r\n lineFn.b,\r\n lineFn.c,\r\n rectLine.a,\r\n rectLine.b,\r\n rectLine.c\r\n );\r\n if (!ip) return;\r\n\r\n // intersection must lie within line segment\r\n const segLen = GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y);\r\n if (\r\n segLen <= GeometryUtils.pointsDistance(p0.x, p0.y, ip.x, ip.y) ||\r\n segLen <= GeometryUtils.pointsDistance(p1.x, p1.y, ip.x, ip.y)\r\n )\r\n return;\r\n\r\n // ensure intersection is farther than pt→center\r\n const distToCenter = GeometryUtils.pointsDistance(ip.x, ip.y, x, y);\r\n const baseDist = GeometryUtils.pointsDistance(pt.x, pt.y, ip.x, ip.y);\r\n if (distToCenter <= baseDist) return;\r\n\r\n const candidate = baseDist;\r\n minDist =\r\n minDist !== undefined ? Math.min(minDist, candidate) : candidate;\r\n });\r\n\r\n pointArray.push([minDist ?? 0, angle]);\r\n });\r\n\r\n return pointArray;\r\n };\r\n\r\n const getCalcRectFromItem = item => {\r\n if (!item?.pos || !item?.size) return { rectCenterPoint: [] };\r\n\r\n const { x, y } = item.pos;\r\n const w = item.size.width / 2;\r\n const h = item.size.height / 2;\r\n const rotRad = item.rotRad;\r\n const mh = (3 * h) / 4;\r\n\r\n const mx = x - w * Math.cos(rotRad) - mh * Math.sin(rotRad);\r\n const my = y - w * Math.sin(rotRad) + mh * Math.cos(rotRad);\r\n const m2x = x + w * Math.cos(rotRad) - mh * Math.sin(rotRad);\r\n const m2y = y + w * Math.sin(rotRad) + mh * Math.cos(rotRad);\r\n const m3x = x - h * Math.sin(rotRad);\r\n const m3y = y + h * Math.cos(rotRad);\r\n const m1x = x + h * Math.sin(rotRad);\r\n const m1y = y - h * Math.cos(rotRad);\r\n\r\n return {\r\n rectCenterPoint: [\r\n [point(mx, my), 180],\r\n [point(m1x, m1y), -90],\r\n [point(m2x, m2y), 0],\r\n [point(m3x, m3y), 90]\r\n ]\r\n };\r\n };\r\n\r\n const calcDistanceArray = () => {\r\n const items = layer?.get('items');\r\n if (!items) return;\r\n\r\n items.forEach(item => {\r\n if (item?.selected === true) {\r\n const { x, y, rotation, id } = item;\r\n if (x == null || y == null) return;\r\n\r\n const val = {\r\n pos: { x, y },\r\n rotRad: (rotation / 180) * Math.PI\r\n };\r\n\r\n const width = getProperties(item, 'width');\r\n const depth = getProperties(item, 'depth');\r\n val.size = { width, height: depth };\r\n\r\n // collect geometry\r\n const allLines = GeometryUtils.getAllLines(layer) || [];\r\n const allLineRects =\r\n GeometryUtils.buildRectFromLines(layer, allLines) || [];\r\n const allItemRect = GeometryUtils.getAllItems(\r\n scene,\r\n catalog,\r\n allLineRects\r\n ) || { others: [] };\r\n const allRect = [...(allItemRect.others || []), ...allLineRects];\r\n\r\n // current item\r\n const curItemInfo = getCalcRectFromItem(val);\r\n const pointArray = getDistant(x, y, val.rotRad, curItemInfo, allRect);\r\n\r\n // store results safely\r\n if (Array.isArray(pointArray)) {\r\n itemsActions.storeDistArray(layerID, id, pointArray);\r\n }\r\n }\r\n });\r\n };\r\n\r\n let onMouseMove = viewerEvent => {\r\n //workaround that allow imageful component to work\r\n\r\n // let evt = new Event('mousemove-planner-event');\r\n // evt.viewerEvent = viewerEvent;\r\n // document.dispatchEvent(evt);\r\n let { x, y } = mapCursorPosition(viewerEvent);\r\n projectActions.updateMouseCoord({ x, y });\r\n if (sFlag) {\r\n let differs = { x: x - sPoint.x, y: y - sPoint.y };\r\n projectActions.selectAll(differs);\r\n } else\r\n switch (mode) {\r\n case constants.MODE_DRAWING_LINE:\r\n // check whether the drawing line is started.\r\n if (drawStart || state.getIn(['scene', 'setLineAttributes'])) {\r\n let lineID = state\r\n .getIn(['scene', 'layers', layerID, 'selected', 'lines'])\r\n .first();\r\n\r\n let vertices = state\r\n .getIn(['scene', 'layers', layerID, 'vertices'])\r\n .toJS();\r\n let lines = state\r\n .getIn(['scene', 'layers', layerID, 'lines'])\r\n .toJS();\r\n let drawingLine = state\r\n .getIn(['scene', 'layers', layerID, 'lines', lineID])\r\n .toJS();\r\n let tlines = [];\r\n\r\n setdrawStart(false);\r\n // get the lines that have same points with drawing line.\r\n getRelatedLines(tlines, drawingLine, vertices, lines);\r\n setRelatedLines(tlines);\r\n linesActions.updateDrawingLine(x, y, tlines, state.snapMask);\r\n } else {\r\n linesActions.updateDrawingLine(x, y, relatedLines, state.snapMask);\r\n }\r\n // Blocked 90 degree snap.\r\n // let prevVertexID = state.getIn(['scene', 'layers', layerID, 'selected', 'vertices']).toJS()[0];\r\n // let prevVertex = state.getIn(['scene', 'layers', layerID, 'vertices', prevVertexID]);\r\n // let dx = Math.abs(x - prevVertex.x);\r\n // let dy = Math.abs(y - prevVertex.y);\r\n // if (dx > dy) y = prevVertex.y\r\n // else x = prevVertex.x;\r\n break;\r\n\r\n case constants.MODE_DRAWING_HOLE:\r\n holesActions.updateDrawingHole(layerID, x, y);\r\n break;\r\n\r\n case constants.MODE_DRAWING_ITEM:\r\n calcDistanceArray();\r\n let layer = scene.layers.get(layerID);\r\n let flag = false;\r\n layer.items.some(item => {\r\n if (item.selected) {\r\n item.counterTop.uri = layer.counterTop.uri;\r\n current_sel_obj_id = item.id;\r\n flag = true;\r\n }\r\n });\r\n if (current_sel_obj_id === null || !flag) {\r\n itemsActions.updateDrawingItem(layerID, x, y);\r\n endPoint.x = x;\r\n endPoint.y = y;\r\n } else {\r\n prepareSnap();\r\n var { nx, ny, rot, rotRad } = GeometryUtils.calcSnap(\r\n allItemRect,\r\n allItemSnap,\r\n allLineRects,\r\n allLineSnap,\r\n allRect,\r\n x,\r\n y,\r\n allArea\r\n );\r\n let val = {\r\n pos: { x, y },\r\n rotRad,\r\n size: allItemRect.cur && allItemRect.cur.size,\r\n layoutpos: allItemRect.cur && allItemRect.cur.layoutpos,\r\n is_corner: allItemRect.cur && allItemRect.cur.is_corner\r\n };\r\n let { isSect, snap } = GeometryUtils.getAllHoleRect(scene, val);\r\n if (!isEmpty(snap) && isSect) {\r\n if (snap.length == 1) val.pos = { x: snap[0].x, y: snap[0].y };\r\n else {\r\n if (\r\n (snap[0].x - x) * (snap[0].x - x) +\r\n (snap[0].y - y) * (snap[0].y - y) <\r\n (snap[1].x - x) * (snap[1].x - x) +\r\n (snap[1].y - y) * (snap[1].y - y)\r\n )\r\n val.pos = { x: snap[0].x, y: snap[0].y };\r\n else val.pos = { x: snap[1].x, y: snap[1].y };\r\n }\r\n let interSect = GeometryUtils.validInterSect(\r\n allItemRect.others,\r\n val\r\n );\r\n if (interSect) {\r\n nx = val.pos.x;\r\n ny = val.pos.y;\r\n }\r\n }\r\n\r\n val.pos = { x: nx, y: ny };\r\n let isrectSect = GeometryUtils.validInterSect(\r\n allItemRect.others,\r\n val\r\n );\r\n if (isrectSect && isSect) {\r\n itemsActions.updateDraggingItemChanged(\r\n nx,\r\n ny,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n itemsActions.updateRotatingItemChanged(\r\n rot,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n endPoint.x = nx;\r\n endPoint.y = ny;\r\n }\r\n if (\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Cook Top')) ||\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('cabinet'))\r\n ) {\r\n itemsActions.updateDraggingItemChanged(\r\n nx,\r\n ny,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n itemsActions.updateRotatingItemChanged(\r\n rot,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n endPoint.x = nx;\r\n endPoint.y = ny;\r\n }\r\n if (\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Hood')) ||\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Range')) ||\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Cook Top'))\r\n ) {\r\n itemsActions.updateDraggingItemChanged(\r\n nx,\r\n ny,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n itemsActions.updateRotatingItemChanged(\r\n rot,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n endPoint.x = nx;\r\n endPoint.y = ny;\r\n }\r\n }\r\n break;\r\n\r\n case constants.MODE_DRAGGING_HOLE:\r\n holesActions.updateDraggingHole(x, y);\r\n break;\r\n\r\n case constants.MODE_DRAGGING_LINE:\r\n linesActions.updateDraggingLine(x, y, relatedLines, state.snapMask);\r\n break;\r\n\r\n case constants.MODE_DRAGGING_VERTEX:\r\n let vertices = state\r\n .getIn(['scene', 'layers', layerID, 'vertices'])\r\n .toJS();\r\n let result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');\r\n verticesActions.updateDraggingVertex(\r\n result.x,\r\n result.y,\r\n state.snapMask\r\n );\r\n break;\r\n\r\n case constants.MODE_DRAGGING_ITEM:\r\n calcDistanceArray();\r\n prepareSnap();\r\n var { nx, ny, rot, rotRad } = GeometryUtils.calcSnap(\r\n allItemRect,\r\n allItemSnap,\r\n allLineRects,\r\n allLineSnap,\r\n allRect,\r\n x,\r\n y,\r\n allArea\r\n );\r\n let val = {\r\n pos: { x, y },\r\n rotRad,\r\n size: allItemRect.cur && allItemRect.cur.size,\r\n layoutpos: allItemRect.cur && allItemRect.cur.layoutpos,\r\n is_corner: allItemRect.cur && allItemRect.cur.is_corner\r\n };\r\n let { isSect, snap } = GeometryUtils.getAllHoleRect(scene, val);\r\n if (!isEmpty(snap) && isSect) {\r\n if (snap.length == 1) val.pos = { x: snap[0].x, y: snap[0].y };\r\n else if (snap.length == 2) {\r\n if (\r\n (snap[0].x - x) * (snap[0].x - x) +\r\n (snap[0].y - y) * (snap[0].y - y) <\r\n (snap[1].x - x) * (snap[1].x - x) +\r\n (snap[1].y - y) * (snap[1].y - y)\r\n )\r\n val.pos = { x: snap[0].x, y: snap[0].y };\r\n else val.pos = { x: snap[1].x, y: snap[1].y };\r\n }\r\n let interSect = GeometryUtils.validInterSect(\r\n allItemRect.others,\r\n val\r\n );\r\n if (interSect) {\r\n nx = val.pos.x;\r\n ny = val.pos.y;\r\n }\r\n }\r\n\r\n val.pos = { x: nx, y: ny };\r\n let isrectSect = GeometryUtils.validInterSect(\r\n allItemRect.others,\r\n val\r\n );\r\n if (isrectSect && isSect) {\r\n itemsActions.updateDraggingItemChanged(\r\n nx,\r\n ny,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n itemsActions.updateRotatingItemChanged(\r\n rot,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n }\r\n if (\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Cook Top')) ||\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Cabinet'))\r\n ) {\r\n itemsActions.updateDraggingItemChanged(\r\n nx,\r\n ny,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n itemsActions.updateRotatingItemChanged(\r\n rot,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n }\r\n if (\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Hood')) ||\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Range')) ||\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Cook Top'))\r\n ) {\r\n itemsActions.updateDraggingItemChanged(\r\n nx,\r\n ny,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n itemsActions.updateRotatingItemChanged(\r\n rot,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n }\r\n break;\r\n\r\n case constants.MODE_ROTATING_ITEM:\r\n itemsActions.updateRotatingItem(x, y);\r\n break;\r\n }\r\n\r\n viewerEvent.originalEvent.stopPropagation();\r\n };\r\n\r\n let onMouseDown = viewerEvent => {\r\n let event = viewerEvent.originalEvent;\r\n //workaround that allow imageful component to work\r\n // let evt = new Event('mousedown-planner-event');\r\n // evt.viewerEvent = viewerEvent;\r\n // document.dispatchEvent(evt);\r\n let { x, y } = mapCursorPosition(viewerEvent);\r\n let layer = state.scene.getIn(['layers', state.scene.selectedLayer]);\r\n let sCount =\r\n layer.selected.areas.size +\r\n layer.selected.holes.size +\r\n layer.selected.items.size +\r\n layer.selected.lines.size;\r\n if (mode === constants.MODE_DRAWING_LINE) {\r\n if (event.nativeEvent.which === 3) {\r\n projectActions.rollback();\r\n event.stopPropagation();\r\n return;\r\n }\r\n }\r\n if (mode === constants.MODE_IDLE) {\r\n let elementData = extractElementData(event.target);\r\n if (!elementData) return;\r\n\r\n if (sCount < 2)\r\n switch (elementData.prototype) {\r\n case 'lines':\r\n if (elementData.selected) {\r\n if (elementData.part === 'remove') break;\r\n else if (elementData.part === 'elevation') break;\r\n linesActions.beginDraggingLine(\r\n elementData.layer,\r\n elementData.id,\r\n x,\r\n y,\r\n state.snapMask\r\n );\r\n }\r\n break;\r\n case 'vertices':\r\n verticesActions.beginDraggingVertex(\r\n elementData.layer,\r\n elementData.id,\r\n x,\r\n y,\r\n state.snapMask\r\n );\r\n break;\r\n\r\n case 'items':\r\n setToolbar('');\r\n current_sel_obj_id = elementData.id;\r\n if (elementData.part === 'rotation-anchor')\r\n itemsActions.beginRotatingItem(\r\n elementData.layer,\r\n elementData.id,\r\n x,\r\n y\r\n );\r\n else if (elementData.part === 'remove') break;\r\n else if (elementData.part === 'duplicate') break;\r\n else if (elementData.part === 'warning_edit') break;\r\n else {\r\n // closes the setting dialog\r\n // document.getElementById('setting_dialog').style.display = 'none';\r\n\r\n itemsActions.selectItem(elementData.layer, elementData.id);\r\n // projectActions.setMode(constants.MODE_DRAGGING_ITEM);\r\n itemsActions.beginDraggingItem(\r\n elementData.layer,\r\n elementData.id,\r\n x,\r\n y\r\n );\r\n replaceCabinet(false);\r\n }\r\n break;\r\n\r\n case 'holes':\r\n if (elementData.selected)\r\n holesActions.beginDraggingHole(\r\n elementData.layer,\r\n elementData.id,\r\n x,\r\n y\r\n );\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n else {\r\n sPoint.x = x;\r\n sPoint.y = y;\r\n sFlag = true;\r\n }\r\n }\r\n event.stopPropagation();\r\n };\r\n\r\n let onMouseUp = viewerEvent => {\r\n //set move all flag false\r\n sFlag = false;\r\n // //////////////////////\r\n // setRulerEdit(null);\r\n let event = viewerEvent.originalEvent;\r\n let bbox = event.target.getBoundingClientRect();\r\n if (!mode.includes('ING')) {\r\n setToolbar('');\r\n }\r\n // bbox.width = event.target.getBBox().width;\r\n // bbox.height = event.target.getBBox().height;\r\n if (event.target.tagName === 'rect') {\r\n if (event.target.id) {\r\n setRulerEditID(event.target.id);\r\n }\r\n }\r\n setRulerEdit(null);\r\n // let evt = new Event('mouseup-planner-event');\r\n // evt.viewerEvent = viewerEvent;\r\n // document.dispatchEvent(evt);\r\n\r\n let { x, y } = mapCursorPosition(viewerEvent);\r\n\r\n let vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();\r\n let lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();\r\n\r\n switch (mode) {\r\n case constants.MODE_IDLE:\r\n let elementData = extractElementData(event.target);\r\n let selectedLayer = scene.getIn(['layers', layerID]);\r\n switch (elementData ? elementData.prototype : 'none') {\r\n case 'areas':\r\n // document.getElementById('setting_dialog').style.display = 'none';\r\n areaActions.selectArea(elementData.layer, elementData.id);\r\n break;\r\n\r\n case 'lines':\r\n // document.getElementById('setting_dialog').style.display = 'none';\r\n if (elementData.part === 'remove') {\r\n projectActions.remove();\r\n break;\r\n } else if (elementData.part === 'elevation') {\r\n // handle action when click elevation about selected line\r\n let mode = MODE_ELEVATION_VIEW;\r\n projectActions.setMode(mode);\r\n break;\r\n } else {\r\n let tlines = [];\r\n let drawingLine = state\r\n .getIn(['scene', 'layers', layerID, 'lines', elementData.id])\r\n .toJS();\r\n getRelatedLines(tlines, drawingLine, vertices, lines);\r\n setRelatedLines(tlines);\r\n linesActions.selectLine(elementData.layer, elementData.id);\r\n break;\r\n }\r\n\r\n case 'holes':\r\n // document.getElementById('setting_dialog').style.display = 'none';\r\n holesActions.selectHole(elementData.layer, elementData.id);\r\n break;\r\n\r\n case 'items':\r\n if (elementData.part === 'duplicate') {\r\n let currentObject = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n elementData.id\r\n ]);\r\n itemsActions.duplicateSelected(currentObject);\r\n break;\r\n } else if (elementData.part === 'remove') {\r\n projectActions.remove();\r\n break;\r\n } else if (elementData.part === 'warning_edit') {\r\n // closes the setting dialog\r\n // document.getElementById('setting_dialog').style.display = 'none';\r\n\r\n itemsActions.selectItem(elementData.layer, elementData.id);\r\n replaceCabinet(true);\r\n break;\r\n } else {\r\n projectActions.unselectAll();\r\n break;\r\n }\r\n case 'rulerDist':\r\n let _length1 = convert(elementData.length)\r\n .from(scene.unit)\r\n .to(scene.rulerUnit);\r\n let distanceText1 = `${formatNumber(_length1, DECIMAL_PLACES_2)}`;\r\n const numberInput1 = (\r\n <div\r\n id=\"ruler_numberInput\"\r\n style={{\r\n position: 'absolute',\r\n left: bbox.left - (150 - bbox.width) / 2,\r\n top: bbox.top - (50 - bbox.height) / 2,\r\n zIndex: 1000\r\n }}\r\n >\r\n <FormNumberInput\r\n style={{\r\n width: 150,\r\n height: 50,\r\n textAlign: 'center',\r\n paddingRight: 10,\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n fontWeight: 600\r\n }}\r\n value={distanceText1}\r\n onChange={event => {\r\n const value = new Map({\r\n length: convert(event.target.value)\r\n .from(scene.rulerUnit)\r\n .to(scene.unit),\r\n _length: event.target.value,\r\n _unit: scene.rulerUnit\r\n });\r\n updateRulerDistAttribute(elementData, value);\r\n }}\r\n precision={2}\r\n />\r\n </div>\r\n );\r\n setRulerEdit(numberInput1);\r\n projectActions.unselectAll();\r\n break;\r\n case 'ruler':\r\n let _length = convert(elementData.length)\r\n .from(scene.unit)\r\n .to(selectedLayer.unit);\r\n const numberInput = (\r\n <div\r\n id=\"ruler_numberInput\"\r\n style={{\r\n position: 'absolute',\r\n left: bbox.left - (150 - bbox.width) / 2,\r\n top: bbox.top - (50 - bbox.height) / 2,\r\n zIndex: 1000\r\n }}\r\n >\r\n <FormNumberInput\r\n style={{\r\n width: 150,\r\n height: 50,\r\n textAlign: 'center',\r\n paddingRight: 10,\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n fontWeight: 600\r\n }}\r\n value={formatNumber(_length, DECIMAL_PLACES_2)}\r\n onChange={event => {\r\n const value = new Map({\r\n length: convert(event.target.value)\r\n .from(selectedLayer.unit)\r\n .to(scene.unit),\r\n _length: event.target.value,\r\n _unit: selectedLayer.unit\r\n });\r\n updateRulerAttribute(elementData, value);\r\n }}\r\n precision={2}\r\n />\r\n </div>\r\n );\r\n setRulerEdit(numberInput);\r\n projectActions.unselectAll();\r\n break;\r\n case 'twoHoleRuler':\r\n let _lengthTwoHoleRuler = convert(elementData.length)\r\n .from(scene.unit)\r\n .to(scene.rulerUnit);\r\n let distanceTextTwoHoleRuler = `${formatNumber(\r\n _lengthTwoHoleRuler,\r\n DECIMAL_PLACES_2\r\n )}`;\r\n const numberInputTwoHoleRuler = (\r\n <div\r\n id=\"ruler_numberInput\"\r\n style={{\r\n position: 'absolute',\r\n left: bbox.left - (150 - bbox.width) / 2,\r\n top: bbox.top - (50 - bbox.height) / 2,\r\n zIndex: 1000\r\n }}\r\n >\r\n <FormNumberInput\r\n style={{\r\n width: 150,\r\n height: 50,\r\n textAlign: 'center',\r\n padding: 'auto',\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n fontWeight: 600\r\n }}\r\n value={distanceTextTwoHoleRuler}\r\n onChange={event => {\r\n const value = new Map({\r\n length: convert(event.target.value / 2)\r\n .from(scene.rulerUnit)\r\n .to(scene.unit),\r\n _length: event.target.value / 2,\r\n _unit: scene.rulerUnit\r\n });\r\n updateTwoHoleRulerAttribute(elementData, value);\r\n }}\r\n precision={2}\r\n />\r\n </div>\r\n );\r\n setRulerEdit(numberInputTwoHoleRuler);\r\n projectActions.unselectAll();\r\n break;\r\n case 'leftHoleRuler':\r\n let _lengthLeftHoleRuler = convert(elementData.length)\r\n .from(scene.unit)\r\n .to(scene.rulerUnit);\r\n let distanceTextLeftHoleRuler = `${_lengthLeftHoleRuler.toFixed(\r\n 2\r\n )}`;\r\n const numberInputLeftHoleRuler = (\r\n <div\r\n id=\"ruler_numberInput\"\r\n style={{\r\n position: 'absolute',\r\n left: bbox.left - (150 - bbox.width) / 2,\r\n top: bbox.top - (50 - bbox.height) / 2,\r\n zIndex: 1000\r\n }}\r\n >\r\n <FormNumberInput\r\n style={{\r\n width: 150,\r\n height: 50,\r\n textAlign: 'center',\r\n paddingRight: 10,\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n fontWeight: 600\r\n }}\r\n value={distanceTextLeftHoleRuler}\r\n onChange={event => {\r\n const value = new Map({\r\n length: convert(event.target.value)\r\n .from(scene.rulerUnit)\r\n .to(scene.unit),\r\n _length: event.target.value,\r\n _unit: scene.rulerUnit\r\n });\r\n updateLeftHoleRulerAttribute(elementData, value);\r\n }}\r\n precision={2}\r\n />\r\n </div>\r\n );\r\n setRulerEdit(numberInputLeftHoleRuler);\r\n projectActions.unselectAll();\r\n break;\r\n case 'rulerHole':\r\n let _lengthRulerHole = convert(elementData.length)\r\n .from(scene.unit)\r\n .to(scene.rulerUnit);\r\n let distanceTextRulerHole = `${formatNumber(\r\n _lengthRulerHole,\r\n DECIMAL_PLACES_2\r\n )}`;\r\n const numberInputRulerHole = (\r\n <div\r\n id=\"ruler_numberInput\"\r\n style={{\r\n position: 'absolute',\r\n left: bbox.left - (150 - bbox.width) / 2,\r\n top: bbox.top - (50 - bbox.height) / 2,\r\n zIndex: 1000\r\n }}\r\n >\r\n <FormNumberInput\r\n style={{\r\n width: 150,\r\n height: 50,\r\n textAlign: 'center',\r\n paddingRight: 10,\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n fontWeight: 600\r\n }}\r\n value={distanceTextRulerHole}\r\n onChange={event => {\r\n const value = new Map({\r\n length: convert(event.target.value)\r\n .from(scene.rulerUnit)\r\n .to(scene.unit),\r\n _length: event.target.value,\r\n _unit: scene.rulerUnit\r\n });\r\n updateHoleRulerAttribute(elementData, value);\r\n }}\r\n precision={2}\r\n />\r\n </div>\r\n );\r\n setRulerEdit(numberInputRulerHole);\r\n projectActions.unselectAll();\r\n break;\r\n case 'rightHoleRuler':\r\n let _lengthRightHoleRuler = convert(elementData.length)\r\n .from(scene.unit)\r\n .to(scene.rulerUnit);\r\n let distanceTextRightHoleRuler = `${_lengthRightHoleRuler.toFixed(\r\n 2\r\n )}`;\r\n const numberInputRightHoleRuler = (\r\n <div\r\n id=\"ruler_numberInput\"\r\n style={{\r\n position: 'absolute',\r\n left: bbox.left - (150 - bbox.width) / 2,\r\n top: bbox.top - (50 - bbox.height) / 2,\r\n zIndex: 1000\r\n }}\r\n >\r\n <FormNumberInput\r\n style={{\r\n width: 150,\r\n height: 50,\r\n textAlign: 'center',\r\n paddingRight: 10,\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n fontWeight: 600\r\n }}\r\n value={distanceTextRightHoleRuler}\r\n onChange={event => {\r\n const value = new Map({\r\n length: convert(event.target.value)\r\n .from(scene.rulerUnit)\r\n .to(scene.unit),\r\n _length: event.target.value,\r\n _unit: scene.rulerUnit\r\n });\r\n updateRightHoleRulerAttribute(elementData, value);\r\n }}\r\n precision={2}\r\n />\r\n </div>\r\n );\r\n setRulerEdit(numberInputRightHoleRuler);\r\n projectActions.unselectAll();\r\n break;\r\n case 'angleChange':\r\n let _length2 = elementData.length;\r\n const numberInput2 = (\r\n <div\r\n id=\"ruler_numberInput\"\r\n style={{\r\n position: 'absolute',\r\n left: bbox.left - (150 - bbox.width) / 2,\r\n top: bbox.top - (50 - bbox.height) / 2,\r\n zIndex: 1000\r\n }}\r\n >\r\n <FormNumberInput\r\n style={{\r\n width: 50,\r\n height: 50\r\n }}\r\n value={_length2}\r\n onChange={event => {\r\n const value = new Map({\r\n length: convert(event.target.value)\r\n .from(scene.rulerUnit)\r\n .to(scene.unit),\r\n _length: event.target.value,\r\n _unit: scene.rulerUnit\r\n });\r\n updateangleChangeAttribute(elementData, value);\r\n }}\r\n precision={2}\r\n />\r\n </div>\r\n );\r\n setRulerEdit(numberInput2);\r\n projectActions.unselectAll();\r\n break;\r\n case 'none':\r\n projectActions.unselectAll();\r\n break;\r\n }\r\n break;\r\n\r\n case constants.MODE_WAITING_DRAWING_LINE:\r\n setdrawStart(true);\r\n linesActions.beginDrawingLine(layerID, x, y, state.snapMask);\r\n break;\r\n\r\n case constants.MODE_DRAWING_LINE:\r\n // Blocked 90 degree snap.\r\n // let prevVertexID = state.getIn(['scene', 'layers', layerID, 'selected', 'vertices']).toJS()[0];\r\n // let prevVertex = state.getIn(['scene', 'layers', layerID, 'vertices', prevVertexID]);\r\n // let dx = Math.abs(x - prevVertex.x);\r\n // let dy = Math.abs(y - prevVertex.y);\r\n // if (dx > dy) y = prevVertex.y\r\n // else x = prevVertex.x;\r\n setdrawStart(true);\r\n let lineID = state\r\n .getIn(['scene', 'layers', layerID, 'selected', 'lines'])\r\n .first();\r\n let drawingLine = state\r\n .getIn(['scene', 'layers', layerID, 'lines', lineID])\r\n .toJS();\r\n // get the lines that have same points with drawing line.\r\n let tlines = [];\r\n getRelatedLines(tlines, drawingLine, vertices, lines);\r\n setRelatedLines(tlines);\r\n let endInfor = getEndPoint(vertices, x, y, 'END_DRAWIN_LINE');\r\n linesActions.endDrawingLine(\r\n endInfor.x,\r\n endInfor.y,\r\n tlines,\r\n state.snapMask\r\n );\r\n linesActions.beginDrawingLine(\r\n layerID,\r\n endInfor.x,\r\n endInfor.y,\r\n state.snapMask\r\n );\r\n break;\r\n\r\n case constants.MODE_DRAWING_HOLE:\r\n holesActions.endDrawingHole(layerID, x, y);\r\n break;\r\n\r\n case constants.MODE_DRAWING_ITEM:\r\n itemsActions.endDrawingItem(layerID, endPoint.x, endPoint.y);\r\n break;\r\n\r\n case constants.MODE_DRAGGING_LINE:\r\n linesActions.endDraggingLine(x, y, relatedLines, state.snapMask);\r\n break;\r\n\r\n case constants.MODE_DRAGGING_VERTEX:\r\n let result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');\r\n verticesActions.endDraggingVertex(result.x, result.y, state.snapMask);\r\n break;\r\n\r\n case constants.MODE_DRAGGING_ITEM:\r\n itemsActions.updateMolding();\r\n projectActions.setMode(MODE_IDLE);\r\n break;\r\n\r\n case constants.MODE_DRAGGING_HOLE:\r\n holesActions.endDraggingHole(x, y);\r\n break;\r\n\r\n case constants.MODE_ROTATING_ITEM:\r\n itemsActions.endRotatingItem(x, y);\r\n break;\r\n }\r\n\r\n event.stopPropagation();\r\n };\r\n\r\n let onChangeValue = value => {\r\n if (sFlag) return;\r\n let _zoomValue = parseInt((value.a - 0.5) / constants.ZOOM_VARIABLE);\r\n if (_zoomValue > 404) return;\r\n if (_zoomValue < 0 || Number.isNaN(_zoomValue)) return;\r\n\r\n if (\r\n (rulerEdit !== null && value.startX && value.startY) ||\r\n value.lastAction === 'zoom'\r\n ) {\r\n let _rulerEdit = document.getElementById('ruler_numberInput'),\r\n _rect;\r\n if (rulerEditID !== null) {\r\n _rect = document.getElementById(rulerEditID);\r\n }\r\n let bbox;\r\n if (_rect && _rulerEdit) {\r\n bbox = _rect.getBoundingClientRect();\r\n // bbox.width = _rect.getBBox().width;\r\n // bbox.height = _rect.getBBox().height;\r\n _rulerEdit.style.left = `${bbox.left - (150 - bbox.width) / 2}px`;\r\n _rulerEdit.style.top = `${bbox.top - (50 - bbox.height) / 2}px`;\r\n }\r\n }\r\n\r\n if (\r\n value.e <= 10 &&\r\n value.e + value.a * value.SVGWidth + 10 >= value.viewerWidth &&\r\n value.f <= 80 &&\r\n value.f + value.d * value.SVGHeight + 10 >= value.viewerHeight\r\n ) {\r\n /*let val = Object.assign({}, value);\r\n if (refresh === 2) {\r\n val.a += 0.4; val.d += 0.4;\r\n val.e -= (val.SVGWidth * val.a - val.SVGWidth * (val.a - 0.4)) / 2;\r\n val.f -= (val.SVGHeight * val.d - val.SVGHeight * (val.d - 0.4)) / 2;\r\n console.log('----', val)\r\n }*/\r\n projectActions.updateZoomScale(value.a);\r\n return viewer2DActions.updateCameraView(value);\r\n }\r\n };\r\n\r\n let onChangeTool = tool => {\r\n switch (tool) {\r\n case TOOL_NONE:\r\n projectActions.selectToolEdit();\r\n break;\r\n\r\n case TOOL_PAN:\r\n viewer2DActions.selectToolPan();\r\n break;\r\n\r\n case TOOL_ZOOM_IN:\r\n viewer2DActions.selectToolZoomIn();\r\n break;\r\n\r\n case TOOL_ZOOM_OUT:\r\n viewer2DActions.selectToolZoomOut();\r\n break;\r\n }\r\n };\r\n\r\n let onZoom = value => {\r\n // var nextValue = viewer2D.toJS();\r\n // nextValue = zoom(nextValue, 0, 0, value.a / nextValue.a)\r\n // projectActions.updateZoomScale(nextValue.a);\r\n // return viewer2DActions.updateCameraView(nextValue)\r\n };\r\n\r\n let { e, f, SVGWidth, SVGHeight } = state.get('viewer2D').toJS();\r\n\r\n let rulerSize = 0; //px\r\n let rulerUnitPixelSize = 100;\r\n let rulerBgColor = SharedStyle.PRIMARY_COLOR.main;\r\n let rulerFnColor = SharedStyle.COLORS.white;\r\n let rulerMkColor = SharedStyle.SECONDARY_COLOR.main;\r\n let sceneWidth = SVGWidth || state.getIn(['scene', 'width']);\r\n let sceneHeight = SVGHeight || state.getIn(['scene', 'height']);\r\n let sceneZoom = state.zoom || 1;\r\n let rulerXElements = Math.ceil(sceneWidth / rulerUnitPixelSize) + 1;\r\n let rulerYElements = Math.ceil(sceneHeight / rulerUnitPixelSize) + 1;\r\n return (\r\n <div>\r\n {rulerEdit}\r\n <div\r\n style={{\r\n margin: 0,\r\n padding: 0,\r\n display: 'grid',\r\n gridRowGap: '0',\r\n gridColumnGap: '0',\r\n gridTemplateColumns: `${rulerSize}px ${width - rulerSize}px`,\r\n gridTemplateRows: `${rulerSize}px ${height - rulerSize}px`,\r\n position: 'relative'\r\n }}\r\n >\r\n <div\r\n style={{ gridColumn: 1, gridRow: 1, backgroundColor: rulerBgColor }}\r\n ></div>\r\n <div\r\n style={{\r\n gridRow: 1,\r\n gridColumn: 2,\r\n position: 'relative',\r\n overflow: 'hidden'\r\n }}\r\n id=\"rulerX\"\r\n >\r\n {sceneWidth ? (\r\n <RulerX\r\n unitPixelSize={rulerUnitPixelSize}\r\n zoom={sceneZoom}\r\n mouseX={state.mouse.get('x')}\r\n width={width - rulerSize}\r\n zeroLeftPosition={e || 0}\r\n backgroundColor={rulerBgColor}\r\n fontColor={rulerFnColor}\r\n markerColor={rulerMkColor}\r\n positiveUnitsNumber={rulerXElements}\r\n negativeUnitsNumber={0}\r\n />\r\n ) : null}\r\n </div>\r\n <div\r\n style={{\r\n gridColumn: 1,\r\n gridRow: 2,\r\n position: 'relative',\r\n overflow: 'hidden'\r\n }}\r\n id=\"rulerY\"\r\n >\r\n {sceneHeight ? (\r\n <RulerY\r\n unitPixelSize={rulerUnitPixelSize}\r\n zoom={sceneZoom}\r\n mouseY={state.mouse.get('y')}\r\n height={height - rulerSize}\r\n zeroTopPosition={sceneHeight * sceneZoom + f || 0}\r\n backgroundColor={rulerBgColor}\r\n fontColor={rulerFnColor}\r\n markerColor={rulerMkColor}\r\n positiveUnitsNumber={rulerYElements}\r\n negativeUnitsNumber={0}\r\n />\r\n ) : null}\r\n </div>\r\n <ReactSVGPanZoom\r\n style={{ gridColumn: 2, gridRow: 2 }}\r\n width={width - rulerSize}\r\n height={height - rulerSize}\r\n value={viewer2D.isEmpty() ? null : viewer2D.toJS()}\r\n onChangeValue={onChangeValue}\r\n tool={mode2Tool(mode)}\r\n onChangeTool={onChangeTool}\r\n detectAutoPan={mode2DetectAutopan(mode)}\r\n onMouseDown={onMouseDown}\r\n onMouseMove={onMouseMove}\r\n onMouseUp={onMouseUp}\r\n miniaturePosition=\"none\"\r\n toolbarPosition=\"none\"\r\n detectPinchGesture={false}\r\n disableDoubleClickZoomWithToolAuto={true}\r\n ref={Viewer}\r\n >\r\n <svg width={scene.width} height={scene.height}>\r\n <defs>\r\n <pattern\r\n id=\"diagonalFill\"\r\n patternUnits=\"userSpaceOnUse\"\r\n width=\"4\"\r\n height=\"4\"\r\n fill=\"#FFF\"\r\n >\r\n <rect x=\"0\" y=\"0\" width=\"4\" height=\"4\" fill=\"#FFF\" />\r\n <path\r\n d=\"M-1,1 l2,-2 M0,4 l4,-4 M3,5 l2,-2\"\r\n style={{ stroke: '#8E9BA2', strokeWidth: 1 }}\r\n />\r\n </pattern>\r\n </defs>\r\n <g\r\n style={Object.assign(mode2Cursor(mode), mode2PointerEvents(mode))}\r\n >\r\n <State\r\n state={state}\r\n catalog={catalog}\r\n viewer2DActions={viewer2DActions}\r\n relatedLines={relatedLines}\r\n />\r\n </g>\r\n </svg>\r\n </ReactSVGPanZoom>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nViewer2D.propTypes = {\r\n state: PropTypes.object.isRequired,\r\n width: PropTypes.number.isRequired,\r\n height: PropTypes.number.isRequired\r\n};\r\n\r\nViewer2D.contextTypes = {\r\n viewer2DActions: PropTypes.object.isRequired,\r\n linesActions: PropTypes.object.isRequired,\r\n holesActions: PropTypes.object.isRequired,\r\n verticesActions: PropTypes.object.isRequired,\r\n itemsActions: PropTypes.object.isRequired,\r\n areaActions: PropTypes.object.isRequired,\r\n projectActions: PropTypes.object.isRequired,\r\n catalog: PropTypes.object.isRequired\r\n};\r\n"],"mappings":"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","ignoreList":[]}
|