kitchen-simulator 5.0.0-test.4 → 5.0.0-test.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +23 -41
- package/es/@history.js +0 -3
- package/es/@history.js.map +0 -1
- package/es/AppContext.js +0 -4
- package/es/AppContext.js.map +0 -1
- package/es/KitchenConfigurator.js +0 -1345
- package/es/KitchenConfigurator.js.map +0 -1
- package/es/KitchenConfiguratorApp.js +0 -532
- package/es/KitchenConfiguratorApp.js.map +0 -1
- package/es/actions/area-actions.js +0 -15
- package/es/actions/area-actions.js.map +0 -1
- package/es/actions/export.js +0 -26
- package/es/actions/export.js.map +0 -1
- package/es/actions/groups-actions.js +0 -90
- package/es/actions/groups-actions.js.map +0 -1
- package/es/actions/holes-actions.js +0 -120
- package/es/actions/holes-actions.js.map +0 -1
- package/es/actions/items-actions.js +0 -314
- package/es/actions/items-actions.js.map +0 -1
- package/es/actions/lines-actions.js +0 -83
- package/es/actions/lines-actions.js.map +0 -1
- package/es/actions/project-actions.js +0 -282
- package/es/actions/project-actions.js.map +0 -1
- package/es/actions/scene-actions.js +0 -34
- package/es/actions/scene-actions.js.map +0 -1
- package/es/actions/user-actions.js +0 -59
- package/es/actions/user-actions.js.map +0 -1
- package/es/actions/vertices-actions.js +0 -28
- package/es/actions/vertices-actions.js.map +0 -1
- package/es/actions/viewer2d-actions.js +0 -59
- package/es/actions/viewer2d-actions.js.map +0 -1
- package/es/actions/viewer3d-actions.js +0 -24
- package/es/actions/viewer3d-actions.js.map +0 -1
- package/es/catalog/areas/area/planner-element.js +0 -41
- package/es/catalog/areas/area/planner-element.js.map +0 -1
- package/es/catalog/areas/area/textures/ceramic-tile.jpg +0 -0
- package/es/catalog/areas/area/textures/grass.jpg +0 -0
- package/es/catalog/areas/area/textures/parquet.jpg +0 -0
- package/es/catalog/areas/area/textures/strand-porcelain.jpg +0 -0
- package/es/catalog/areas/area/textures/tile1.jpg +0 -0
- package/es/catalog/back.png +0 -0
- package/es/catalog/catalog.js +0 -278
- package/es/catalog/catalog.js.map +0 -1
- package/es/catalog/doors.png +0 -0
- package/es/catalog/doorways.png +0 -0
- package/es/catalog/envMap/nx.hdr +0 -0
- package/es/catalog/envMap/ny.hdr +0 -0
- package/es/catalog/envMap/nz.hdr +0 -0
- package/es/catalog/envMap/px.hdr +0 -0
- package/es/catalog/envMap/py.hdr +0 -0
- package/es/catalog/envMap/pz.hdr +0 -0
- package/es/catalog/factories/area-factory-3d.js +0 -183
- package/es/catalog/factories/area-factory-3d.js.map +0 -1
- package/es/catalog/factories/area-factory.js +0 -82
- package/es/catalog/factories/area-factory.js.map +0 -1
- package/es/catalog/factories/export.js +0 -8
- package/es/catalog/factories/export.js.map +0 -1
- package/es/catalog/factories/wall-factory-3d.js +0 -203
- package/es/catalog/factories/wall-factory-3d.js.map +0 -1
- package/es/catalog/factories/wall-factory.js +0 -269
- package/es/catalog/factories/wall-factory.js.map +0 -1
- package/es/catalog/holes/door-closet/planner-element.js +0 -223
- package/es/catalog/holes/door-closet/planner-element.js.map +0 -1
- package/es/catalog/holes/door-double/door_double.png +0 -0
- package/es/catalog/holes/door-double/planner-element.js +0 -316
- package/es/catalog/holes/door-double/planner-element.js.map +0 -1
- package/es/catalog/holes/door-exterior/planner-element.js +0 -216
- package/es/catalog/holes/door-exterior/planner-element.js.map +0 -1
- package/es/catalog/holes/door-interior/planner-element.js +0 -228
- package/es/catalog/holes/door-interior/planner-element.js.map +0 -1
- package/es/catalog/holes/door-panic/panicDoor.png +0 -0
- package/es/catalog/holes/door-panic/planner-element.js +0 -504
- package/es/catalog/holes/door-panic/planner-element.js.map +0 -1
- package/es/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
- package/es/catalog/holes/door-panic-double/planner-element.js +0 -464
- package/es/catalog/holes/door-panic-double/planner-element.js.map +0 -1
- package/es/catalog/holes/door-sliding/planner-element.js +0 -226
- package/es/catalog/holes/door-sliding/planner-element.js.map +0 -1
- package/es/catalog/holes/doorway-framed/planner-element.js +0 -146
- package/es/catalog/holes/doorway-framed/planner-element.js.map +0 -1
- package/es/catalog/holes/doorway-frameless/planner-element.js +0 -105
- package/es/catalog/holes/doorway-frameless/planner-element.js.map +0 -1
- package/es/catalog/holes/gate/gate.jpg +0 -0
- package/es/catalog/holes/window-clear/planner-element.js +0 -167
- package/es/catalog/holes/window-clear/planner-element.js.map +0 -1
- package/es/catalog/holes/window-clear/texture.png +0 -0
- package/es/catalog/holes/window-cross/planner-element.js +0 -166
- package/es/catalog/holes/window-cross/planner-element.js.map +0 -1
- package/es/catalog/holes/window-cross/texture.png +0 -0
- package/es/catalog/holes/window-double-hung/planner-element.js +0 -304
- package/es/catalog/holes/window-double-hung/planner-element.js.map +0 -1
- package/es/catalog/holes/window-double-hung/texture.png +0 -0
- package/es/catalog/holes/window-vertical/planner-element.js +0 -277
- package/es/catalog/holes/window-vertical/planner-element.js.map +0 -1
- package/es/catalog/holes/window-vertical/texture.png +0 -0
- package/es/catalog/lines/wall/planner-element.js +0 -71
- package/es/catalog/lines/wall/planner-element.js.map +0 -1
- package/es/catalog/lines/wall/textures/bricks-normal.jpg +0 -0
- package/es/catalog/lines/wall/textures/bricks-normal2.jpg +0 -0
- package/es/catalog/lines/wall/textures/bricks.jpg +0 -0
- package/es/catalog/lines/wall/textures/bricks2.jpg +0 -0
- package/es/catalog/lines/wall/textures/bricks3.jpg +0 -0
- package/es/catalog/lines/wall/textures/morden-normal.jpg +0 -0
- package/es/catalog/lines/wall/textures/morden.jpg +0 -0
- package/es/catalog/lines/wall/textures/painted-normal.jpg +0 -0
- package/es/catalog/lines/wall/textures/painted.jpg +0 -0
- package/es/catalog/lines/wall/textures/plaster-normal.jpg +0 -0
- package/es/catalog/lines/wall/textures/plaster.jpg +0 -0
- package/es/catalog/lines/wall/wall.png +0 -0
- package/es/catalog/molding/molding-dcm/planner-element.js +0 -30
- package/es/catalog/molding/molding-dcm/planner-element.js.map +0 -1
- package/es/catalog/molding/molding-dcm/texture.png +0 -0
- package/es/catalog/molding/molding-fbm/planner-element.js +0 -30
- package/es/catalog/molding/molding-fbm/planner-element.js.map +0 -1
- package/es/catalog/molding/molding-fbm/texture.png +0 -0
- package/es/catalog/molding/molding-lrm/planner-element.js +0 -30
- package/es/catalog/molding/molding-lrm/planner-element.js.map +0 -1
- package/es/catalog/molding/molding-lrm/texture.png +0 -0
- package/es/catalog/properties/export.js +0 -22
- package/es/catalog/properties/export.js.map +0 -1
- package/es/catalog/properties/property-checkbox.js +0 -72
- package/es/catalog/properties/property-checkbox.js.map +0 -1
- package/es/catalog/properties/property-color.js +0 -40
- package/es/catalog/properties/property-color.js.map +0 -1
- package/es/catalog/properties/property-enum.js +0 -56
- package/es/catalog/properties/property-enum.js.map +0 -1
- package/es/catalog/properties/property-hidden.js +0 -20
- package/es/catalog/properties/property-hidden.js.map +0 -1
- package/es/catalog/properties/property-lenght-measure.js +0 -102
- package/es/catalog/properties/property-lenght-measure.js.map +0 -1
- package/es/catalog/properties/property-length-measure.js +0 -86
- package/es/catalog/properties/property-length-measure.js.map +0 -1
- package/es/catalog/properties/property-length-measure_hole.js +0 -102
- package/es/catalog/properties/property-length-measure_hole.js.map +0 -1
- package/es/catalog/properties/property-number.js +0 -49
- package/es/catalog/properties/property-number.js.map +0 -1
- package/es/catalog/properties/property-read-only.js +0 -27
- package/es/catalog/properties/property-read-only.js.map +0 -1
- package/es/catalog/properties/property-string.js +0 -49
- package/es/catalog/properties/property-string.js.map +0 -1
- package/es/catalog/properties/property-toggle.js +0 -40
- package/es/catalog/properties/property-toggle.js.map +0 -1
- package/es/catalog/properties/shared-property-style.js +0 -15
- package/es/catalog/properties/shared-property-style.js.map +0 -1
- package/es/catalog/utils/FuseUtils.js +0 -83
- package/es/catalog/utils/FuseUtils.js.map +0 -1
- package/es/catalog/utils/exporter.js +0 -149
- package/es/catalog/utils/exporter.js.map +0 -1
- package/es/catalog/utils/geom-utils.js +0 -190
- package/es/catalog/utils/geom-utils.js.map +0 -1
- package/es/catalog/utils/item-loader.js +0 -1522
- package/es/catalog/utils/item-loader.js.map +0 -1
- package/es/catalog/utils/load-obj.js +0 -92
- package/es/catalog/utils/load-obj.js.map +0 -1
- package/es/catalog/utils/mtl-loader.js +0 -358
- package/es/catalog/utils/mtl-loader.js.map +0 -1
- package/es/catalog/utils/obj-loader.js +0 -477
- package/es/catalog/utils/obj-loader.js.map +0 -1
- package/es/catalog/windows.png +0 -0
- package/es/class/FuseUtils.js +0 -83
- package/es/class/FuseUtils.js.map +0 -1
- package/es/class/area.js +0 -146
- package/es/class/area.js.map +0 -1
- package/es/class/export.js +0 -25
- package/es/class/export.js.map +0 -1
- package/es/class/group.js +0 -441
- package/es/class/group.js.map +0 -1
- package/es/class/guide.js +0 -63
- package/es/class/guide.js.map +0 -1
- package/es/class/hole.js +0 -931
- package/es/class/hole.js.map +0 -1
- package/es/class/item.js +0 -1888
- package/es/class/item.js.map +0 -1
- package/es/class/layer.js +0 -668
- package/es/class/layer.js.map +0 -1
- package/es/class/line.js +0 -1290
- package/es/class/line.js.map +0 -1
- package/es/class/project.js +0 -823
- package/es/class/project.js.map +0 -1
- package/es/class/vertex.js +0 -267
- package/es/class/vertex.js.map +0 -1
- package/es/components/atoms/Snackbar/index.js +0 -50
- package/es/components/atoms/Snackbar/index.js.map +0 -1
- package/es/components/atoms/radio-button/index.js +0 -26
- package/es/components/atoms/radio-button/index.js.map +0 -1
- package/es/components/atoms/radio-button/styles.js +0 -5
- package/es/components/atoms/radio-button/styles.js.map +0 -1
- package/es/components/button/MainButton.js +0 -92
- package/es/components/button/MainButton.js.map +0 -1
- package/es/components/button/ToggleMeasureButton.js +0 -56
- package/es/components/button/ToggleMeasureButton.js.map +0 -1
- package/es/components/catalog-view/catalog-breadcrumb.js +0 -53
- package/es/components/catalog-view/catalog-breadcrumb.js.map +0 -1
- package/es/components/catalog-view/catalog-item.js +0 -226
- package/es/components/catalog-view/catalog-item.js.map +0 -1
- package/es/components/catalog-view/catalog-list.js +0 -182
- package/es/components/catalog-view/catalog-list.js.map +0 -1
- package/es/components/catalog-view/catalog-page-item.js +0 -130
- package/es/components/catalog-view/catalog-page-item.js.map +0 -1
- package/es/components/catalog-view/catalog-turn-back-page-item.js +0 -106
- package/es/components/catalog-view/catalog-turn-back-page-item.js.map +0 -1
- package/es/components/configurator/custom-configurator.js +0 -94
- package/es/components/configurator/custom-configurator.js.map +0 -1
- package/es/components/configurator/project-configurator.js +0 -131
- package/es/components/configurator/project-configurator.js.map +0 -1
- package/es/components/content.js +0 -123
- package/es/components/content.js.map +0 -1
- package/es/components/export.js +0 -24
- package/es/components/export.js.map +0 -1
- package/es/components/firstsetting/button/styles.js +0 -27
- package/es/components/firstsetting/button/styles.js.map +0 -1
- package/es/components/firstsetting/export.js +0 -9
- package/es/components/firstsetting/export.js.map +0 -1
- package/es/components/firstsetting/firstsetting-content-button.js +0 -217
- package/es/components/firstsetting/firstsetting-content-button.js.map +0 -1
- package/es/components/firstsetting/firstsetting-toggle-button.js +0 -126
- package/es/components/firstsetting/firstsetting-toggle-button.js.map +0 -1
- package/es/components/firstsetting/firstsetting.js +0 -626
- package/es/components/firstsetting/firstsetting.js.map +0 -1
- package/es/components/footerbar/button/ControlButton.js +0 -72
- package/es/components/footerbar/button/ControlButton.js.map +0 -1
- package/es/components/footerbar/button/DirectionButton.js +0 -69
- package/es/components/footerbar/button/DirectionButton.js.map +0 -1
- package/es/components/footerbar/button/DirectionPanSpinButton.js +0 -50
- package/es/components/footerbar/button/DirectionPanSpinButton.js.map +0 -1
- package/es/components/footerbar/button/ToggleButton.js +0 -76
- package/es/components/footerbar/button/ToggleButton.js.map +0 -1
- package/es/components/footerbar/button/ToggleConvertButton.js +0 -73
- package/es/components/footerbar/button/ToggleConvertButton.js.map +0 -1
- package/es/components/footerbar/button/ToggleMeasureButton.js +0 -52
- package/es/components/footerbar/button/ToggleMeasureButton.js.map +0 -1
- package/es/components/footerbar/button/styles.js +0 -22
- package/es/components/footerbar/button/styles.js.map +0 -1
- package/es/components/footerbar/export.js +0 -9
- package/es/components/footerbar/export.js.map +0 -1
- package/es/components/footerbar/footer-content-button.js +0 -217
- package/es/components/footerbar/footer-content-button.js.map +0 -1
- package/es/components/footerbar/footer-toggle-button.js +0 -126
- package/es/components/footerbar/footer-toggle-button.js.map +0 -1
- package/es/components/footerbar/footerbar.js +0 -801
- package/es/components/footerbar/footerbar.js.map +0 -1
- package/es/components/footerbar/styles.js +0 -34
- package/es/components/footerbar/styles.js.map +0 -1
- package/es/components/header/button/MenuButton.js +0 -70
- package/es/components/header/button/MenuButton.js.map +0 -1
- package/es/components/header/button/SaveButton.js +0 -48
- package/es/components/header/button/SaveButton.js.map +0 -1
- package/es/components/header/button/styles.js +0 -59
- package/es/components/header/button/styles.js.map +0 -1
- package/es/components/header/export.js +0 -5
- package/es/components/header/export.js.map +0 -1
- package/es/components/header/header.js +0 -550
- package/es/components/header/header.js.map +0 -1
- package/es/components/header/header.style.css +0 -47
- package/es/components/header/styles.js +0 -41
- package/es/components/header/styles.js.map +0 -1
- package/es/components/login/Login.js +0 -86
- package/es/components/login/Login.js.map +0 -1
- package/es/components/login/LoginForm/index.js +0 -132
- package/es/components/login/LoginForm/index.js.map +0 -1
- package/es/components/login/Register.js +0 -96
- package/es/components/login/Register.js.map +0 -1
- package/es/components/login/RegisterForm/index.js +0 -230
- package/es/components/login/RegisterForm/index.js.map +0 -1
- package/es/components/login/jwtService.js +0 -232
- package/es/components/login/jwtService.js.map +0 -1
- package/es/components/login/style.css +0 -158
- package/es/components/login/style.scss +0 -260
- package/es/components/molecules/slider/index.js +0 -13
- package/es/components/molecules/slider/index.js.map +0 -1
- package/es/components/molecules/slider/styles.js +0 -2
- package/es/components/molecules/slider/styles.js.map +0 -1
- package/es/components/molecules/slider/styles.scss +0 -3
- package/es/components/myprojects/export.js +0 -5
- package/es/components/myprojects/export.js.map +0 -1
- package/es/components/myprojects/index.js +0 -446
- package/es/components/myprojects/index.js.map +0 -1
- package/es/components/myprojects/styles.js +0 -24
- package/es/components/myprojects/styles.js.map +0 -1
- package/es/components/sidebar/custom-accordion.js +0 -38
- package/es/components/sidebar/custom-accordion.js.map +0 -1
- package/es/components/sidebar/export.js +0 -14
- package/es/components/sidebar/export.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js +0 -65
- package/es/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js +0 -116
- package/es/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js +0 -126
- package/es/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js +0 -251
- package/es/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js +0 -75
- package/es/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/element-editor.js +0 -878
- package/es/components/sidebar/panel-element-editor/element-editor.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/multi-elements-editor.js +0 -2
- package/es/components/sidebar/panel-element-editor/multi-elements-editor.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/panel-element-editor.js +0 -49
- package/es/components/sidebar/panel-element-editor/panel-element-editor.js.map +0 -1
- package/es/components/sidebar/panel-element-editor/panel-multi-elements-editor.js +0 -118
- package/es/components/sidebar/panel-element-editor/panel-multi-elements-editor.js.map +0 -1
- package/es/components/sidebar/panel-group-editor.js +0 -211
- package/es/components/sidebar/panel-group-editor.js.map +0 -1
- package/es/components/sidebar/panel-groups.js +0 -267
- package/es/components/sidebar/panel-groups.js.map +0 -1
- package/es/components/sidebar/panel-guides.js +0 -185
- package/es/components/sidebar/panel-guides.js.map +0 -1
- package/es/components/sidebar/panel-layer-elements.js +0 -251
- package/es/components/sidebar/panel-layer-elements.js.map +0 -1
- package/es/components/sidebar/panel-layers.js +0 -340
- package/es/components/sidebar/panel-layers.js.map +0 -1
- package/es/components/sidebar/panel.js +0 -103
- package/es/components/sidebar/panel.js.map +0 -1
- package/es/components/sidebar/sidebar.js +0 -109
- package/es/components/sidebar/sidebar.js.map +0 -1
- package/es/components/sidebar/toolbar-panel.js +0 -164
- package/es/components/sidebar/toolbar-panel.js.map +0 -1
- package/es/components/sign/export.js +0 -6
- package/es/components/sign/export.js.map +0 -1
- package/es/components/sign/main/index.js +0 -560
- package/es/components/sign/main/index.js.map +0 -1
- package/es/components/sign/main/styles.js +0 -20
- package/es/components/sign/main/styles.js.map +0 -1
- package/es/components/style/button.js +0 -114
- package/es/components/style/button.js.map +0 -1
- package/es/components/style/cancel-button.js +0 -23
- package/es/components/style/cancel-button.js.map +0 -1
- package/es/components/style/content-container.js +0 -34
- package/es/components/style/content-container.js.map +0 -1
- package/es/components/style/content-title.js +0 -30
- package/es/components/style/content-title.js.map +0 -1
- package/es/components/style/delete-button.js +0 -26
- package/es/components/style/delete-button.js.map +0 -1
- package/es/components/style/export.js +0 -32
- package/es/components/style/export.js.map +0 -1
- package/es/components/style/form-block.js +0 -25
- package/es/components/style/form-block.js.map +0 -1
- package/es/components/style/form-color-input.js +0 -28
- package/es/components/style/form-color-input.js.map +0 -1
- package/es/components/style/form-label.js +0 -27
- package/es/components/style/form-label.js.map +0 -1
- package/es/components/style/form-number-input.js +0 -190
- package/es/components/style/form-number-input.js.map +0 -1
- package/es/components/style/form-number-input_2.js +0 -207
- package/es/components/style/form-number-input_2.js.map +0 -1
- package/es/components/style/form-select.js +0 -21
- package/es/components/style/form-select.js.map +0 -1
- package/es/components/style/form-slider.js +0 -46
- package/es/components/style/form-slider.js.map +0 -1
- package/es/components/style/form-submit-button.js +0 -27
- package/es/components/style/form-submit-button.js.map +0 -1
- package/es/components/style/form-text-input.js +0 -77
- package/es/components/style/form-text-input.js.map +0 -1
- package/es/components/toolbar/button/ControlButton.js +0 -69
- package/es/components/toolbar/button/ControlButton.js.map +0 -1
- package/es/components/toolbar/button/DirectionButton.js +0 -50
- package/es/components/toolbar/button/DirectionButton.js.map +0 -1
- package/es/components/toolbar/button/RightButton.js +0 -133
- package/es/components/toolbar/button/RightButton.js.map +0 -1
- package/es/components/toolbar/button/ToggleButton.js +0 -59
- package/es/components/toolbar/button/ToggleButton.js.map +0 -1
- package/es/components/toolbar/button/index.js +0 -88
- package/es/components/toolbar/button/index.js.map +0 -1
- package/es/components/toolbar/button/styles.js +0 -14
- package/es/components/toolbar/button/styles.js.map +0 -1
- package/es/components/toolbar/components/DoorStyleMenu.js +0 -105
- package/es/components/toolbar/components/DoorStyleMenu.js.map +0 -1
- package/es/components/toolbar/components/Pricing.js +0 -101
- package/es/components/toolbar/components/Pricing.js.map +0 -1
- package/es/components/toolbar/components/ReviewForQuote.js +0 -476
- package/es/components/toolbar/components/ReviewForQuote.js.map +0 -1
- package/es/components/toolbar/export.js +0 -14
- package/es/components/toolbar/export.js.map +0 -1
- package/es/components/toolbar/main/Alert.js +0 -125
- package/es/components/toolbar/main/Alert.js.map +0 -1
- package/es/components/toolbar/main/TakePictureModal.js +0 -100
- package/es/components/toolbar/main/TakePictureModal.js.map +0 -1
- package/es/components/toolbar/main/confirm-popup.js +0 -88
- package/es/components/toolbar/main/confirm-popup.js.map +0 -1
- package/es/components/toolbar/main/index.js +0 -4612
- package/es/components/toolbar/main/index.js.map +0 -1
- package/es/components/toolbar/main/lShaped.json +0 -311
- package/es/components/toolbar/main/longNarrow.json +0 -238
- package/es/components/toolbar/main/myComponents.js +0 -118
- package/es/components/toolbar/main/myComponents.js.map +0 -1
- package/es/components/toolbar/main/oRectangle.json +0 -220
- package/es/components/toolbar/main/rectangle.json +0 -238
- package/es/components/toolbar/main/style.css +0 -107
- package/es/components/toolbar/main/styles.js +0 -64
- package/es/components/toolbar/main/styles.js.map +0 -1
- package/es/components/toolbar/plugin-item.js +0 -150
- package/es/components/toolbar/plugin-item.js.map +0 -1
- package/es/components/toolbar/popup/appliance/appliance-category/index.js +0 -77
- package/es/components/toolbar/popup/appliance/appliance-category/index.js.map +0 -1
- package/es/components/toolbar/popup/appliance/choose-appliance/index.js +0 -76
- package/es/components/toolbar/popup/appliance/choose-appliance/index.js.map +0 -1
- package/es/components/toolbar/popup/appliance/index.js +0 -81
- package/es/components/toolbar/popup/appliance/index.js.map +0 -1
- package/es/components/toolbar/popup/autosaveprompt/index.js +0 -91
- package/es/components/toolbar/popup/autosaveprompt/index.js.map +0 -1
- package/es/components/toolbar/popup/autosaveprompt/styles.css +0 -64
- package/es/components/toolbar/popup/autosaveprompt/styles.js +0 -9
- package/es/components/toolbar/popup/autosaveprompt/styles.js.map +0 -1
- package/es/components/toolbar/popup/cabinet/cabinet-category/index.js +0 -77
- package/es/components/toolbar/popup/cabinet/cabinet-category/index.js.map +0 -1
- package/es/components/toolbar/popup/cabinet/choose-product/index.js +0 -98
- package/es/components/toolbar/popup/cabinet/choose-product/index.js.map +0 -1
- package/es/components/toolbar/popup/cabinet/index.js +0 -83
- package/es/components/toolbar/popup/cabinet/index.js.map +0 -1
- package/es/components/toolbar/popup/doorStyle/choose-style/index.js +0 -50
- package/es/components/toolbar/popup/doorStyle/choose-style/index.js.map +0 -1
- package/es/components/toolbar/popup/doorStyle/index.js +0 -61
- package/es/components/toolbar/popup/doorStyle/index.js.map +0 -1
- package/es/components/toolbar/popup/doorStyle/style-category/index.js +0 -143
- package/es/components/toolbar/popup/doorStyle/style-category/index.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +0 -3
- package/es/components/toolbar/popup/downloadsummary/downloadSummaryContext.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js +0 -119
- package/es/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/index.js +0 -564
- package/es/components/toolbar/popup/downloadsummary/index.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/show2D/show2DView.js +0 -51
- package/es/components/toolbar/popup/downloadsummary/show2D/show2DView.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js +0 -191
- package/es/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/show3D/show3DView.js +0 -245
- package/es/components/toolbar/popup/downloadsummary/show3D/show3DView.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js +0 -1758
- package/es/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/showCabinetInfo.js +0 -87
- package/es/components/toolbar/popup/downloadsummary/showCabinetInfo.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js +0 -116
- package/es/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js +0 -1710
- package/es/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js +0 -175
- package/es/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/showWarranty.js +0 -106
- package/es/components/toolbar/popup/downloadsummary/showWarranty.js.map +0 -1
- package/es/components/toolbar/popup/downloadsummary/styles.css +0 -177
- package/es/components/toolbar/popup/downloadsummary/styles.js +0 -40
- package/es/components/toolbar/popup/downloadsummary/styles.js.map +0 -1
- package/es/components/toolbar/popup/finishingtouch/category/index.js +0 -35
- package/es/components/toolbar/popup/finishingtouch/category/index.js.map +0 -1
- package/es/components/toolbar/popup/finishingtouch/index.js +0 -47
- package/es/components/toolbar/popup/finishingtouch/index.js.map +0 -1
- package/es/components/toolbar/popup/finishingtouch/material-edit.js +0 -156
- package/es/components/toolbar/popup/finishingtouch/material-edit.js.map +0 -1
- package/es/components/toolbar/popup/finishingtouch/product/index.js +0 -56
- package/es/components/toolbar/popup/finishingtouch/product/index.js.map +0 -1
- package/es/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js +0 -116
- package/es/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js.map +0 -1
- package/es/components/toolbar/popup/floorplan/choose-floor/index.js +0 -246
- package/es/components/toolbar/popup/floorplan/choose-floor/index.js.map +0 -1
- package/es/components/toolbar/popup/floorplan/choose-floor/lShaped.json +0 -311
- package/es/components/toolbar/popup/floorplan/choose-floor/longNarrow.json +0 -238
- package/es/components/toolbar/popup/floorplan/choose-floor/oRectangle.json +0 -220
- package/es/components/toolbar/popup/floorplan/choose-floor/rectangle.json +0 -238
- package/es/components/toolbar/popup/floorplan/choose-floor/styles.js +0 -11
- package/es/components/toolbar/popup/floorplan/choose-floor/styles.js.map +0 -1
- package/es/components/toolbar/popup/floorplan/floor-category/index.js +0 -90
- package/es/components/toolbar/popup/floorplan/floor-category/index.js.map +0 -1
- package/es/components/toolbar/popup/floorplan/index.js +0 -49
- package/es/components/toolbar/popup/floorplan/index.js.map +0 -1
- package/es/components/toolbar/popup/index.js +0 -188
- package/es/components/toolbar/popup/index.js.map +0 -1
- package/es/components/toolbar/popup/newproject/index.js +0 -67
- package/es/components/toolbar/popup/newproject/index.js.map +0 -1
- package/es/components/toolbar/popup/newproject/styles.css +0 -64
- package/es/components/toolbar/popup/newproject/styles.js +0 -9
- package/es/components/toolbar/popup/newproject/styles.js.map +0 -1
- package/es/components/toolbar/popup/product/appliance.js +0 -65
- package/es/components/toolbar/popup/product/appliance.js.map +0 -1
- package/es/components/toolbar/popup/product/cabinetproduct.js +0 -25
- package/es/components/toolbar/popup/product/cabinetproduct.js.map +0 -1
- package/es/components/toolbar/popup/product/doorstyle.js +0 -50
- package/es/components/toolbar/popup/product/doorstyle.js.map +0 -1
- package/es/components/toolbar/popup/product/doorstyleproduct.js +0 -51
- package/es/components/toolbar/popup/product/doorstyleproduct.js.map +0 -1
- package/es/components/toolbar/popup/product/floor.js +0 -52
- package/es/components/toolbar/popup/product/floor.js.map +0 -1
- package/es/components/toolbar/popup/product/floorproduct.js +0 -61
- package/es/components/toolbar/popup/product/floorproduct.js.map +0 -1
- package/es/components/toolbar/popup/product/index.js +0 -52
- package/es/components/toolbar/popup/product/index.js.map +0 -1
- package/es/components/toolbar/popup/product/primary.js +0 -63
- package/es/components/toolbar/popup/product/primary.js.map +0 -1
- package/es/components/toolbar/popup/product/productline.js +0 -120
- package/es/components/toolbar/popup/product/productline.js.map +0 -1
- package/es/components/toolbar/popup/product/reviewItem.js +0 -338
- package/es/components/toolbar/popup/product/reviewItem.js.map +0 -1
- package/es/components/toolbar/popup/product/reviewMolding.js +0 -282
- package/es/components/toolbar/popup/product/reviewMolding.js.map +0 -1
- package/es/components/toolbar/popup/product/style.css +0 -54
- package/es/components/toolbar/popup/product/styles.js +0 -71
- package/es/components/toolbar/popup/product/styles.js.map +0 -1
- package/es/components/toolbar/popup/savedesign/FullPictureForm.js +0 -161
- package/es/components/toolbar/popup/savedesign/FullPictureForm.js.map +0 -1
- package/es/components/toolbar/popup/savedesign/index.js +0 -508
- package/es/components/toolbar/popup/savedesign/index.js.map +0 -1
- package/es/components/toolbar/popup/savedesign/savedesign.style.css +0 -16
- package/es/components/toolbar/popup/savedesign/styles.js +0 -19
- package/es/components/toolbar/popup/savedesign/styles.js.map +0 -1
- package/es/components/toolbar/popup/setDoorStyleOption/index.js +0 -57
- package/es/components/toolbar/popup/setDoorStyleOption/index.js.map +0 -1
- package/es/components/toolbar/popup/styles.js +0 -98
- package/es/components/toolbar/popup/styles.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/AddToCartOptions.js +0 -157
- package/es/components/toolbar/popup/submitforquote/AddToCartOptions.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/CustomerRequestsForm.js +0 -85
- package/es/components/toolbar/popup/submitforquote/CustomerRequestsForm.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/SkipDesignerReview.js +0 -36
- package/es/components/toolbar/popup/submitforquote/SkipDesignerReview.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/StepDots.js +0 -33
- package/es/components/toolbar/popup/submitforquote/StepDots.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/cart-choice.js +0 -132
- package/es/components/toolbar/popup/submitforquote/cart-choice.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/doorstyle-menus.js +0 -43
- package/es/components/toolbar/popup/submitforquote/doorstyle-menus.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/index.js +0 -690
- package/es/components/toolbar/popup/submitforquote/index.js.map +0 -1
- package/es/components/toolbar/popup/submitforquote/styles.css +0 -105
- package/es/components/toolbar/popup/submitforquote/styles.js +0 -31
- package/es/components/toolbar/popup/submitforquote/styles.js.map +0 -1
- package/es/components/toolbar/popup/submitprompt/index.js +0 -71
- package/es/components/toolbar/popup/submitprompt/index.js.map +0 -1
- package/es/components/toolbar/popup/submitprompt/styles.css +0 -64
- package/es/components/toolbar/popup/submitprompt/styles.js +0 -9
- package/es/components/toolbar/popup/submitprompt/styles.js.map +0 -1
- package/es/components/toolbar/toolbar-button.js +0 -105
- package/es/components/toolbar/toolbar-button.js.map +0 -1
- package/es/components/toolbar/toolbar-load-button.js +0 -29
- package/es/components/toolbar/toolbar-load-button.js.map +0 -1
- package/es/components/toolbar/toolbar-save-button.js +0 -27
- package/es/components/toolbar/toolbar-save-button.js.map +0 -1
- package/es/components/tutorial-view/Modal.js +0 -498
- package/es/components/tutorial-view/Modal.js.map +0 -1
- package/es/components/tutorial-view/style.css +0 -111
- package/es/components/tutorial-view/styles.js +0 -6
- package/es/components/tutorial-view/styles.js.map +0 -1
- package/es/components/viewer2d/area.js +0 -83
- package/es/components/viewer2d/area.js.map +0 -1
- package/es/components/viewer2d/export.js +0 -32
- package/es/components/viewer2d/export.js.map +0 -1
- package/es/components/viewer2d/grids/grid-horizontal-streak.js +0 -38
- package/es/components/viewer2d/grids/grid-horizontal-streak.js.map +0 -1
- package/es/components/viewer2d/grids/grid-streak.js +0 -38
- package/es/components/viewer2d/grids/grid-streak.js.map +0 -1
- package/es/components/viewer2d/grids/grid-vertical-streak.js +0 -38
- package/es/components/viewer2d/grids/grid-vertical-streak.js.map +0 -1
- package/es/components/viewer2d/grids/grids.js +0 -36
- package/es/components/viewer2d/grids/grids.js.map +0 -1
- package/es/components/viewer2d/group.js +0 -54
- package/es/components/viewer2d/group.js.map +0 -1
- package/es/components/viewer2d/item.js +0 -514
- package/es/components/viewer2d/item.js.map +0 -1
- package/es/components/viewer2d/layer.js +0 -165
- package/es/components/viewer2d/layer.js.map +0 -1
- package/es/components/viewer2d/line.js +0 -889
- package/es/components/viewer2d/line.js.map +0 -1
- package/es/components/viewer2d/ruler.js +0 -101
- package/es/components/viewer2d/ruler.js.map +0 -1
- package/es/components/viewer2d/rulerDist.js +0 -147
- package/es/components/viewer2d/rulerDist.js.map +0 -1
- package/es/components/viewer2d/rulerX.js +0 -152
- package/es/components/viewer2d/rulerX.js.map +0 -1
- package/es/components/viewer2d/rulerY.js +0 -154
- package/es/components/viewer2d/rulerY.js.map +0 -1
- package/es/components/viewer2d/scene.js +0 -141
- package/es/components/viewer2d/scene.js.map +0 -1
- package/es/components/viewer2d/snap.js +0 -75
- package/es/components/viewer2d/snap.js.map +0 -1
- package/es/components/viewer2d/state.js +0 -79
- package/es/components/viewer2d/state.js.map +0 -1
- package/es/components/viewer2d/utils.js +0 -163
- package/es/components/viewer2d/utils.js.map +0 -1
- package/es/components/viewer2d/vertex.js +0 -67
- package/es/components/viewer2d/vertex.js.map +0 -1
- package/es/components/viewer2d/viewer2d.js +0 -1402
- package/es/components/viewer2d/viewer2d.js.map +0 -1
- package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +0 -2593
- package/es/components/viewer3d/camera-controls-module/camera-controls.module.js.map +0 -1
- package/es/components/viewer3d/dcm.js +0 -402
- package/es/components/viewer3d/dcm.js.map +0 -1
- package/es/components/viewer3d/fbm.js +0 -415
- package/es/components/viewer3d/fbm.js.map +0 -1
- package/es/components/viewer3d/front3D.js +0 -67
- package/es/components/viewer3d/front3D.js.map +0 -1
- package/es/components/viewer3d/grid-creator.js +0 -26
- package/es/components/viewer3d/grid-creator.js.map +0 -1
- package/es/components/viewer3d/grids/grid-horizontal-streak.js +0 -37
- package/es/components/viewer3d/grids/grid-horizontal-streak.js.map +0 -1
- package/es/components/viewer3d/grids/grid-streak.js +0 -28
- package/es/components/viewer3d/grids/grid-streak.js.map +0 -1
- package/es/components/viewer3d/grids/grid-vertical-streak.js +0 -37
- package/es/components/viewer3d/grids/grid-vertical-streak.js.map +0 -1
- package/es/components/viewer3d/libs/first-person-controls.js +0 -68
- package/es/components/viewer3d/libs/first-person-controls.js.map +0 -1
- package/es/components/viewer3d/libs/helvetiker_regular.typeface.js +0 -1282
- package/es/components/viewer3d/libs/helvetiker_regular.typeface.js.map +0 -1
- package/es/components/viewer3d/libs/mtl-loader.js +0 -358
- package/es/components/viewer3d/libs/mtl-loader.js.map +0 -1
- package/es/components/viewer3d/libs/obj-loader.js +0 -463
- package/es/components/viewer3d/libs/obj-loader.js.map +0 -1
- package/es/components/viewer3d/libs/orbit-controls.js +0 -699
- package/es/components/viewer3d/libs/orbit-controls.js.map +0 -1
- package/es/components/viewer3d/libs/pointer-lock-controls.js +0 -46
- package/es/components/viewer3d/libs/pointer-lock-controls.js.map +0 -1
- package/es/components/viewer3d/lrm.js +0 -306
- package/es/components/viewer3d/lrm.js.map +0 -1
- package/es/components/viewer3d/model.js +0 -709
- package/es/components/viewer3d/model.js.map +0 -1
- package/es/components/viewer3d/pointer-lock-navigation.js +0 -116
- package/es/components/viewer3d/pointer-lock-navigation.js.map +0 -1
- package/es/components/viewer3d/ruler-utils/itemRect.js +0 -62
- package/es/components/viewer3d/ruler-utils/itemRect.js.map +0 -1
- package/es/components/viewer3d/ruler-utils/layer3D.js +0 -496
- package/es/components/viewer3d/ruler-utils/layer3D.js.map +0 -1
- package/es/components/viewer3d/ruler-utils/ruler3D.js +0 -228
- package/es/components/viewer3d/ruler-utils/ruler3D.js.map +0 -1
- package/es/components/viewer3d/ruler-utils/scene3D.js +0 -62
- package/es/components/viewer3d/ruler-utils/scene3D.js.map +0 -1
- package/es/components/viewer3d/ruler-utils/state3D.js +0 -19
- package/es/components/viewer3d/ruler-utils/state3D.js.map +0 -1
- package/es/components/viewer3d/scene-creator.js +0 -3607
- package/es/components/viewer3d/scene-creator.js.map +0 -1
- package/es/components/viewer3d/three-memory-cleaner.js +0 -52
- package/es/components/viewer3d/three-memory-cleaner.js.map +0 -1
- package/es/components/viewer3d/viewer3d-first-person.js +0 -316
- package/es/components/viewer3d/viewer3d-first-person.js.map +0 -1
- package/es/components/viewer3d/viewer3d.js +0 -2504
- package/es/components/viewer3d/viewer3d.js.map +0 -1
- package/es/components/wizardstep/button/styles.js +0 -60
- package/es/components/wizardstep/button/styles.js.map +0 -1
- package/es/components/wizardstep/export.js +0 -5
- package/es/components/wizardstep/export.js.map +0 -1
- package/es/components/wizardstep/index.js +0 -971
- package/es/components/wizardstep/index.js.map +0 -1
- package/es/components/wizardstep/styles.js +0 -61
- package/es/components/wizardstep/styles.js.map +0 -1
- package/es/components/wizardstep/wizardstep-content-button.js +0 -217
- package/es/components/wizardstep/wizardstep-content-button.js.map +0 -1
- package/es/components/wizardstep/wizardstep-toggle-button.js +0 -126
- package/es/components/wizardstep/wizardstep-toggle-button.js.map +0 -1
- package/es/constants.js +0 -637
- package/es/constants.js.map +0 -1
- package/es/hooks/useCheckCart.js +0 -53
- package/es/hooks/useCheckCart.js.map +0 -1
- package/es/hooks/useGetPricesBySku.js +0 -74
- package/es/hooks/useGetPricesBySku.js.map +0 -1
- package/es/hooks/useValidateToken.js +0 -201
- package/es/hooks/useValidateToken.js.map +0 -1
- package/es/index.js +0 -17
- package/es/index.js.map +0 -1
- package/es/models.js +0 -511
- package/es/models.js.map +0 -1
- package/es/plugins/SVGLoader.js +0 -1413
- package/es/plugins/SVGLoader.js.map +0 -1
- package/es/plugins/autosave.js +0 -34
- package/es/plugins/autosave.js.map +0 -1
- package/es/plugins/console-debugger.js +0 -38
- package/es/plugins/console-debugger.js.map +0 -1
- package/es/plugins/export.js +0 -10
- package/es/plugins/export.js.map +0 -1
- package/es/plugins/keyboard.js +0 -102
- package/es/plugins/keyboard.js.map +0 -1
- package/es/reducers/areas-reducer.js +0 -13
- package/es/reducers/areas-reducer.js.map +0 -1
- package/es/reducers/export.js +0 -26
- package/es/reducers/export.js.map +0 -1
- package/es/reducers/groups-reducer.js +0 -39
- package/es/reducers/groups-reducer.js.map +0 -1
- package/es/reducers/holes-reducer.js +0 -63
- package/es/reducers/holes-reducer.js.map +0 -1
- package/es/reducers/items-reducer.js +0 -144
- package/es/reducers/items-reducer.js.map +0 -1
- package/es/reducers/lines-reducer.js +0 -46
- package/es/reducers/lines-reducer.js.map +0 -1
- package/es/reducers/project-reducer.js +0 -130
- package/es/reducers/project-reducer.js.map +0 -1
- package/es/reducers/reducer.js +0 -20
- package/es/reducers/reducer.js.map +0 -1
- package/es/reducers/scene-reducer.js +0 -29
- package/es/reducers/scene-reducer.js.map +0 -1
- package/es/reducers/user-reducer.js +0 -42
- package/es/reducers/user-reducer.js.map +0 -1
- package/es/reducers/vertices-reducer.js +0 -20
- package/es/reducers/vertices-reducer.js.map +0 -1
- package/es/reducers/viewer2d-reducer.js +0 -76
- package/es/reducers/viewer2d-reducer.js.map +0 -1
- package/es/reducers/viewer3d-reducer.js +0 -57
- package/es/reducers/viewer3d-reducer.js.map +0 -1
- package/es/shared-style.js +0 -67
- package/es/shared-style.js.map +0 -1
- package/es/styles/export.js +0 -6
- package/es/styles/export.js.map +0 -1
- package/es/styles/tabs.css +0 -40
- package/es/translator/en.js +0 -105
- package/es/translator/en.js.map +0 -1
- package/es/translator/it.js +0 -80
- package/es/translator/it.js.map +0 -1
- package/es/translator/ru.js +0 -80
- package/es/translator/ru.js.map +0 -1
- package/es/translator/translator.js +0 -85
- package/es/translator/translator.js.map +0 -1
- package/es/utils/browser.js +0 -34
- package/es/utils/browser.js.map +0 -1
- package/es/utils/email-validator.js +0 -5
- package/es/utils/email-validator.js.map +0 -1
- package/es/utils/export.js +0 -26
- package/es/utils/export.js.map +0 -1
- package/es/utils/geometry.js +0 -2237
- package/es/utils/geometry.js.map +0 -1
- package/es/utils/get-edges-of-subgraphs.js +0 -27
- package/es/utils/get-edges-of-subgraphs.js.map +0 -1
- package/es/utils/graph-cycles.js +0 -239
- package/es/utils/graph-cycles.js.map +0 -1
- package/es/utils/graph-inner-cycles.js +0 -47
- package/es/utils/graph-inner-cycles.js.map +0 -1
- package/es/utils/graph.js +0 -150
- package/es/utils/graph.js.map +0 -1
- package/es/utils/helper.js +0 -337
- package/es/utils/helper.js.map +0 -1
- package/es/utils/history.js +0 -30
- package/es/utils/history.js.map +0 -1
- package/es/utils/id-broker.js +0 -20
- package/es/utils/id-broker.js.map +0 -1
- package/es/utils/logger.js +0 -9
- package/es/utils/logger.js.map +0 -1
- package/es/utils/math.js +0 -51
- package/es/utils/math.js.map +0 -1
- package/es/utils/molding.js +0 -840
- package/es/utils/molding.js.map +0 -1
- package/es/utils/name-generator.js +0 -19
- package/es/utils/name-generator.js.map +0 -1
- package/es/utils/objects-utils.js +0 -51
- package/es/utils/objects-utils.js.map +0 -1
- package/es/utils/phone-validator.js +0 -5
- package/es/utils/phone-validator.js.map +0 -1
- package/es/utils/process-black-list.js +0 -19
- package/es/utils/process-black-list.js.map +0 -1
- package/es/utils/react-if.js +0 -19
- package/es/utils/react-if.js.map +0 -1
- package/es/utils/snap-scene.js +0 -100
- package/es/utils/snap-scene.js.map +0 -1
- package/es/utils/snap.js +0 -238
- package/es/utils/snap.js.map +0 -1
- package/es/utils/threeCSG.es6.js +0 -499
- package/es/utils/threeCSG.es6.js.map +0 -1
- package/es/version.js +0 -2
- package/es/version.js.map +0 -1
package/es/class/item.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"item.js","names":["convert","Layer","Group","Hole","IDBroker","NameGenerator","GeometryUtils","MoldingUtils","Map","fromJS","path","MODE_IDLE","MODE_IDLE_3D","MODE_DRAWING_ITEM","MODE_DRAWING_ITEM_3D","MODE_DRAGGING_ITEM","MODE_DRAGGING_ITEM_3D","MODE_ROTATING_ITEM","MODE_ROTATING_ITEM_3D","MOLDING_LOCATIONS","INSTALLATION_SUFFIX_TYPE","debugUtil","isUndefined","hasMoldingLayout","getInstallationSuffix","allItemRect","allItemSnap","allLines","allLineRects","allLineSnap","allRect","time1","time2","Item","_classCallCheck","_createClass","key","value","create","state","layerID","type","x","y","width","height","rotation","isDuplication","molding","arguments","length","undefined","itemID","acquireID","item","catalog","factoryElement","id","getIn","name","generateName","sku_number","toJS","category","layoutpos","cabinet_category","layer","doorStyle","_temp$doorStyles","temp","cds","doorStyles","find","elem","tmpDS","_objectSpread","data","cabinet_door_style_id","merge","_state$oStyle","styleObj","oStyle","_state$oStyle2","get","size","updatedState","setSizeOfItemByDoorStyle","_doorStyle$doorStyles","euro_cds","filter","element","is_euro_cds","door_style_name","newProperties","hasOwnProperty","depth","_length","_unit","euro_length","from","to","euro_height","euro_width","properties","oldDepth","oldHeight","oldWidth","updateDoorHandle","setIn","includes","ceilHeight","ceilUnit","newAltitude","layerMolding","md","doorHandle","dataJSON","handle_gltf","metalness","roughness","cnt","prop","i","mergeIn","select","selectElement","replacingSupport","selectHole","holeID","editWidth","newWidth","alert","set","prepareSnap","scene","getAllLines","buildRectFromLines","getAllItems","getAllItemSnap","getAllLineSnap","cur","others","concat","validateSnaps","duplicateSelected","currentObject","objectID","myObject","sceneComponentType","rotRad","prototype","Math","PI","val","pos","cos","sin","is_corner","isrectSect","validInterSect","_this$create","stateI","mode","drawingSupport","isRect","_this$create2","isRectDown","_this$create3","isRectUp","_this$create4","console","log","line","myOffset","offset","v0","vertices","v1","lineLength","pointsDistance","delta","allHoles","rightAble","leftAble","_this$createHole","createHole","stateH","hole","forEach","selected","newDelta","_this$createHole2","_this$createHole3","storeDistArray","distArray","curDistArray","isEqualDist","a","b","equal","every","curElement","index","validateItemPositions","_this","isItemInRect","_state$getIn","items","remove","unselect","removeElement","group","replaceItem","selectedPos","selectedObject","selectedLayer","selectedItemId","info","selectToolDrawingItem","selectToolDrawingItem3D","endCreatingCabinet","isOpen","openedType","updatePopupOpen","updateDrawingItem","hasIn","updateIn","_this$create5","updateDraggingItemChanged","_state","round","endDrawingItem","unselectAll","popup","updateMolding","beginDraggingItem","draggingSupport","startPointX","startPointY","originalX","originalY","beginDraggingItem3D","updateDraggingItem","_state2","diffX","diffY","tX","tY","updateDraggingItem3DX","_state3","updateDraggingItem3DY","_state4","endDraggingItem","endDraggingItem3D","beginRotatingItem","originRotation","rotatingSupport","beginRotatingItem3D","updateRotatingItem","_state5","origin","newRot","atan2","deltaRot","deltaX","deltaY","updateRotatingItemChanged","endRotatingItem","endRotatingItem3D","replaceSubmodule","url","_state6","urlData","split","newURL","addURL","submodule","normalMap","push","flag","pathData","setProperties","setJsProperties","updateProperties","v","k","updateJsProperties","setAttributes","itemAttributes","setJsAttributes","animateObject","_state7","animCount","animValue","animate","removeReplacingSupport","setInitialDoorStyle","_state8","layers","counttop","setDoorStyle","pathes","isAll","_this2","keys","Object","endsWith","tmp","temp_layer_molding","some","ds","itemIDs","setDoorStyleOfItem","curItem","tmpMolding","_toConsumableArray","temp_item_molding","itemGroup","getItemGroupFromMolding","it","cds_data","brightness","color","glossness","texture","thumbnail","sku","color_sku_alias","install","NAME","_loop","setCounterTop","counterTop","_state9","newCounter","setItemsDoorHandle","elements_item","_this3","setDoorHandle","_state0","selectedItems","setHandleMaterial","material","_state1","setWallColor","wallColor","_state10","lines","lineID","setBacksplash","backsplash","_state11","newBack","uri","setMolding","_state12","tempLayerMolding","mol","molding_type","location_type","toArray","isEnableItemForMolding","tempItemMolding","selectedItem","moldingGroup","tempSelItemMolding","_state13","snappedItemGroup","itemGroups","isItemSnappedItem","tryMergeMDItem","base_item","updateSelectItemMolding","_loop2","isSameMoldingLayoutpos","delMoldings","isItemSameItemByLocation","resultMol","emptyMoldingArray","temp_items","groupMoldings","itGroup","finalMoldings","tempMoldings","ml","setLocationMolding","location","locationMolding","sort","locationMoldingItems","setBacksplashVisible","backsplashVisible","_state14","setApplianceMaterial","_state15","newMaterial","setModelling","_state16","updateItemsAltitude","altitude","holes","vetName0","vetName1","verticesArray","areas","index0","indexOf","index1","toggleLoadingCabinet","_state17","isLoadingCabinet","endLoading","_state18","default"],"sources":["../../src/class/item.js"],"sourcesContent":["import convert from 'convert-units';\r\nimport { Layer, Group, Hole } from './export';\r\nimport {\r\n IDBroker,\r\n NameGenerator,\r\n GeometryUtils,\r\n MoldingUtils\r\n} from '../utils/export';\r\nimport { Map, fromJS } from 'immutable';\r\nimport path from 'path';\r\nimport {\r\n MODE_IDLE,\r\n MODE_IDLE_3D,\r\n MODE_DRAWING_ITEM,\r\n MODE_DRAWING_ITEM_3D,\r\n MODE_DRAGGING_ITEM,\r\n MODE_DRAGGING_ITEM_3D,\r\n MODE_ROTATING_ITEM,\r\n MODE_ROTATING_ITEM_3D,\r\n MOLDING_LOCATIONS,\r\n INSTALLATION_SUFFIX_TYPE\r\n} from '../constants';\r\nimport { debugUtil } from '../utils/helper';\r\nimport { isUndefined } from 'util';\r\nimport { hasMoldingLayout } from '../utils/molding';\r\nimport { getInstallationSuffix } from '../components/viewer2d/utils';\r\nlet allItemRect;\r\nlet allItemSnap;\r\nlet allLines;\r\nlet allLineRects;\r\nlet allLineSnap;\r\nlet allRect;\r\nlet time1;\r\nlet time2;\r\n\r\nclass Item {\r\n static create(\r\n state,\r\n layerID,\r\n type,\r\n x,\r\n y,\r\n width,\r\n height,\r\n rotation,\r\n isDuplication,\r\n molding = []\r\n ) {\r\n let itemID = IDBroker.acquireID();\r\n\r\n let item = state.catalog.factoryElement(\r\n type,\r\n {\r\n id: itemID,\r\n itemID: state.catalog.getIn(['elements', type, 'itemID']),\r\n name: NameGenerator.generateName(\r\n 'items',\r\n state.catalog.getIn(['elements', type, 'info', 'title'])\r\n ),\r\n sku_number: state.catalog.getIn(['elements', type, 'obj']).toJS()\r\n .sku_number,\r\n //style: state.catalog.getIn(['elements', type, 'info', 'door']),\r\n category: state.catalog.getIn(['elements', type, 'type']),\r\n layoutpos: state.catalog.getIn(['elements', type, 'info', 'layoutpos']),\r\n cabinet_category: state.catalog.getIn(['elements', type, 'obj']).toJS()\r\n .cabinet_category,\r\n type,\r\n height,\r\n width,\r\n x,\r\n y,\r\n rotation,\r\n isDuplication\r\n },\r\n null,\r\n state\r\n );\r\n\r\n if (item.category === 'cabinet') {\r\n const layer = state.getIn(['scene', 'layers', layerID]);\r\n if (state.doorStyle !== null && state.doorStyle !== undefined) {\r\n const temp = layer.doorStyle ? layer.doorStyle : state.doorStyle.toJS();\r\n let cds = temp?.doorStyles?.cds.find(\r\n elem =>\r\n elem.itemID === state.catalog.getIn(['elements', type, 'itemID'])\r\n );\r\n let tmpDS = temp;\r\n if (cds !== undefined && cds !== null) {\r\n tmpDS.doorStyles = {\r\n ...temp.doorStyles,\r\n ...cds.data[0],\r\n cabinet_door_style_id: cds.cabinet_door_style_id\r\n };\r\n item = item.merge({\r\n doorStyle: fromJS(tmpDS)\r\n });\r\n } else {\r\n let styleObj = state.oStyle?.toJS()?.oStyle;\r\n if (styleObj) {\r\n for (let x in styleObj) {\r\n cds = styleObj[x].data.doorStyles.cds.find(\r\n elem =>\r\n elem.itemID ===\r\n state.catalog.getIn(['elements', type, 'itemID'])\r\n );\r\n if (cds !== null && cds !== undefined && cds) {\r\n tmpDS = styleObj[x].data;\r\n tmpDS.doorStyles = {\r\n ...tmpDS.doorStyles,\r\n ...cds.data[0],\r\n cabinet_door_style_id: cds.cabinet_door_style_id\r\n };\r\n item = item.merge({\r\n doorStyle: fromJS(tmpDS)\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n let styleObj = state.oStyle?.toJS()?.oStyle;\r\n if (styleObj) {\r\n for (let x in styleObj) {\r\n cds = styleObj[x].data.doorStyles.cds.find(\r\n elem =>\r\n elem.itemID ===\r\n state.catalog.getIn(['elements', type, 'itemID'])\r\n );\r\n if (cds !== null && cds !== undefined && cds) {\r\n let tmpDS = styleObj[x].data;\r\n tmpDS.doorStyles = {\r\n ...tmpDS.doorStyles,\r\n ...cds.data[0],\r\n cabinet_door_style_id: cds.cabinet_door_style_id\r\n };\r\n item = item.merge({\r\n doorStyle: fromJS(tmpDS)\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (item.get('type') === 'cabinet' && item.get('doorStyle').size === 0) {\r\n return { updatedState: state, item: null };\r\n }\r\n\r\n let setSizeOfItemByDoorStyle = () => {\r\n let doorStyle = item.get('doorStyle').toJS();\r\n var cds = doorStyle?.doorStyles?.cds?.find(\r\n elem => elem.itemID === item.itemID\r\n );\r\n let euro_cds = [];\r\n if (cds !== undefined) {\r\n euro_cds = cds && cds.data.filter(element => element.is_euro_cds);\r\n }\r\n if (\r\n doorStyle.door_style_name === 'Euro & Frameless' &&\r\n euro_cds.length > 0\r\n ) {\r\n let newProperties = item.get('properties').toJS();\r\n if (newProperties.hasOwnProperty('depth')) {\r\n if (!newProperties.hasOwnProperty('oldDepth')) {\r\n newProperties['oldDepth'] = new Map({\r\n length: newProperties.depth.length,\r\n _length: newProperties.depth._length,\r\n _unit: newProperties.depth._unit\r\n });\r\n }\r\n newProperties['depth'] = new Map({\r\n length: convert(euro_cds[0].euro_length).from('in').to('cm'),\r\n _length: euro_cds[0].euro_length,\r\n _unit: 'in'\r\n });\r\n }\r\n if (newProperties.hasOwnProperty('height')) {\r\n if (!newProperties.hasOwnProperty('oldHeight')) {\r\n newProperties['oldHeight'] = new Map({\r\n length: newProperties.height.length,\r\n _length: newProperties.height._length,\r\n _unit: newProperties.height._unit\r\n });\r\n }\r\n newProperties['height'] = new Map({\r\n length: convert(euro_cds[0].euro_height).from('in').to('cm'),\r\n _length: euro_cds[0].euro_height,\r\n _unit: 'in'\r\n });\r\n }\r\n if (newProperties.hasOwnProperty('width')) {\r\n if (!newProperties.hasOwnProperty('oldWidth')) {\r\n newProperties['oldWidth'] = new Map({\r\n length: newProperties.width.length,\r\n _length: newProperties.width._length,\r\n _unit: newProperties.width._unit\r\n });\r\n }\r\n newProperties['width'] = new Map({\r\n length: convert(euro_cds[0].euro_width).from('in').to('cm') - 10,\r\n _length: euro_cds[0].euro_width,\r\n _unit: 'in'\r\n });\r\n }\r\n item = item.merge({ properties: fromJS(newProperties) });\r\n } else {\r\n let properties = item.get('properties').toJS();\r\n if (properties.hasOwnProperty('oldDepth')) {\r\n properties['depth'] = new Map({\r\n length: properties.oldDepth.length,\r\n _length: properties.oldDepth._length,\r\n _unit: properties.oldDepth._unit\r\n });\r\n }\r\n if (properties.hasOwnProperty('oldHeight')) {\r\n properties['height'] = new Map({\r\n length: properties.oldHeight.length,\r\n _length: properties.oldHeight._length,\r\n _unit: properties.oldHeight._unit\r\n });\r\n }\r\n if (properties.hasOwnProperty('oldWidth')) {\r\n properties['width'] = new Map({\r\n length: properties.oldWidth.length,\r\n _length: properties.oldWidth._length,\r\n _unit: properties.oldWidth._unit\r\n });\r\n }\r\n item = item.merge({ properties: fromJS(properties) });\r\n }\r\n };\r\n item.category === 'cabinet' && setSizeOfItemByDoorStyle();\r\n\r\n item = this.updateDoorHandle(\r\n item,\r\n state.getIn(['scene', 'layers', layerID])\r\n );\r\n\r\n state = state.setIn(['scene', 'layers', layerID, 'items', itemID], item);\r\n\r\n if (item.type.includes('Light')) {\r\n let ceilHeight = state.getIn(['scene', 'layers', layerID, 'ceilHeight']);\r\n let ceilUnit = state.getIn(['scene', 'layers', layerID, 'unit']);\r\n ceilHeight = convert(ceilHeight).from(ceilUnit).to('cm');\r\n let newAltitude =\r\n ceilHeight - item.properties.getIn(['height', 'length']);\r\n newAltitude = convert(newAltitude).from('cm').to(ceilUnit);\r\n item = item.setIn(['properties', 'altitude', '_length'], newAltitude);\r\n state = state.setIn(['scene', 'layers', layerID, 'items', item.id], item);\r\n }\r\n\r\n if (item.category === 'cabinet') {\r\n // If create a copied object, copied object has original object's molding property.And if create a object, it has a layer's molding property.\r\n let layerMolding = state\r\n .getIn(['scene', 'layers', layerID, 'molding'])\r\n .filter(md => hasMoldingLayout(md, item.layoutpos));\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', itemID, 'molding'],\r\n layerMolding.length ? layerMolding : molding\r\n );\r\n }\r\n return { updatedState: state, item };\r\n }\r\n\r\n static updateDoorHandle(item, layer) {\r\n const doorHandle = layer.get('doorHandle');\r\n\r\n if (doorHandle == '') return item;\r\n const dataJSON = item.toJS();\r\n let itemID = dataJSON.id;\r\n var doorStyle = dataJSON.doorStyle;\r\n var tmpDS = {\r\n ...doorStyle,\r\n handle_gltf: doorHandle,\r\n metalness: 0.2,\r\n roughness: 0.1\r\n };\r\n let cnt = 0;\r\n for (let prop in doorStyle.doorStyles) cnt++;\r\n if (cnt !== 0) {\r\n for (var i = 1; i < 10; i++) {\r\n tmpDS['doorStyles']['door_handle_' + i + '_gltf'] = doorHandle;\r\n tmpDS['doorStyles']['fixed_drawer_door_handle_' + i + '_gltf'] =\r\n doorHandle;\r\n tmpDS['doorStyles']['drawer_door_handle_' + i + '_gltf'] = doorHandle;\r\n }\r\n }\r\n\r\n item = item.mergeIn(['doorStyle'], fromJS(tmpDS));\r\n\r\n return item;\r\n }\r\n\r\n static select(state, layerID, itemID) {\r\n state = Layer.select(state, layerID).updatedState;\r\n state = Layer.selectElement(state, layerID, 'items', itemID).updatedState;\r\n state = state.merge({\r\n replacingSupport: new Map({\r\n layerID,\r\n itemID\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static selectHole(state, layerID, holeID) {\r\n state = Layer.select(state, layerID).updatedState;\r\n state = Layer.selectElement(state, layerID, 'holes', holeID).updatedState;\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static editWidth(state, newWidth, layerID, itemID) {\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n let properties = item.properties;\r\n if (newWidth === 0) {\r\n alert('You can not set width to 0');\r\n return { updatedState: state };\r\n }\r\n let width = new Map({\r\n _length: newWidth,\r\n _unit: 'in',\r\n length: convert(newWidth).from('in').to('cm')\r\n });\r\n properties = properties.set('width', width);\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'items', itemID, 'properties'],\r\n properties\r\n );\r\n return { updatedState: state };\r\n }\r\n\r\n static prepareSnap(state, layerID) {\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n let scene = state.get('scene');\r\n let catalog = state.catalog.toJS();\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 }\r\n\r\n static duplicateSelected(state, currentObject) {\r\n let layerID = state.getIn(['scene', 'selectedLayer']);\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n let objectID = currentObject.id;\r\n let myObject;\r\n let x = currentObject.x;\r\n let y = currentObject.y;\r\n let sceneComponentType, width, depth, rotRad;\r\n switch (currentObject.prototype) {\r\n case 'items':\r\n myObject = state.getIn(['scene', 'layers', layerID, 'items', objectID]);\r\n sceneComponentType = myObject.type;\r\n width = myObject.properties.getIn(['width', 'length']);\r\n depth = myObject.properties.getIn(['depth', 'length']);\r\n rotRad = (myObject.rotation * Math.PI) / 180;\r\n this.prepareSnap(state, layerID);\r\n let val = {\r\n pos: {\r\n x: x + width * Math.cos(rotRad),\r\n y: y + width * Math.sin(rotRad)\r\n },\r\n rotRad: rotRad\r\n };\r\n val.size = allItemRect.cur.size;\r\n val.layoutpos = allItemRect.cur.layoutpos;\r\n val.is_corner = allItemRect.cur.is_corner;\r\n let isrectSect = GeometryUtils.validInterSect(allRect, val);\r\n if (isrectSect) {\r\n // Duplicated object has a original object's molding property\r\n let { updatedState: stateI, item } = this.create(\r\n state,\r\n layerID,\r\n sceneComponentType,\r\n x + width * Math.cos(rotRad),\r\n y + width * Math.sin(rotRad),\r\n 200,\r\n 100,\r\n (rotRad * 180) / Math.PI,\r\n true,\r\n myObject.molding\r\n );\r\n if (item === null) {\r\n alert('There are no Door Colors in this cabinet.');\r\n state = state.merge({\r\n mode: MODE_IDLE,\r\n drawingSupport: new Map()\r\n });\r\n } else {\r\n state = Item.select(stateI, layerID, item.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], item.id);\r\n }\r\n } else {\r\n let val = {\r\n pos: {\r\n x: x - width * Math.cos(rotRad),\r\n y: y - width * Math.sin(rotRad)\r\n },\r\n rotRad: rotRad\r\n };\r\n val.size = allItemRect.cur.size;\r\n val.layoutpos = allItemRect.cur.layoutpos;\r\n val.is_corner = allItemRect.cur.is_corner;\r\n let isRect = GeometryUtils.validInterSect(allRect, val);\r\n if (isRect) {\r\n let { updatedState: stateI, item } = this.create(\r\n state,\r\n layerID,\r\n sceneComponentType,\r\n x - width * Math.cos(rotRad),\r\n y - width * Math.sin(rotRad),\r\n 200,\r\n 100,\r\n (rotRad * 180) / Math.PI,\r\n true,\r\n myObject.molding\r\n );\r\n if (item === null) {\r\n alert('There are no Door Colors in this cabinet.');\r\n state = state.merge({\r\n mode: MODE_IDLE,\r\n drawingSupport: new Map()\r\n });\r\n } else {\r\n state = Item.select(stateI, layerID, item.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], item.id);\r\n }\r\n } else {\r\n let val = {\r\n pos: {\r\n x: x - depth * Math.sin(rotRad),\r\n y: y - depth * Math.cos(rotRad)\r\n },\r\n rotRad: rotRad\r\n };\r\n val.size = allItemRect.cur.size;\r\n val.layoutpos = allItemRect.cur.layoutpos;\r\n val.is_corner = allItemRect.cur.is_corner;\r\n let isRectDown = GeometryUtils.validInterSect(allRect, val);\r\n if (isRectDown) {\r\n let { updatedState: stateI, item } = this.create(\r\n state,\r\n layerID,\r\n sceneComponentType,\r\n x - depth * Math.sin(rotRad),\r\n y - depth * Math.cos(rotRad),\r\n 200,\r\n 100,\r\n (rotRad * 180) / Math.PI,\r\n true,\r\n myObject.molding\r\n );\r\n if (item === null) {\r\n alert('There are no Door Colors in this cabinet.');\r\n state = state.merge({\r\n mode: MODE_IDLE,\r\n drawingSupport: new Map()\r\n });\r\n } else {\r\n state = Item.select(stateI, layerID, item.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], item.id);\r\n }\r\n } else {\r\n let val = {\r\n pos: {\r\n x: x + depth * Math.sin(rotRad),\r\n y: y + depth * Math.cos(rotRad)\r\n },\r\n rotRad: rotRad\r\n };\r\n val.size = allItemRect.cur.size;\r\n val.layoutpos = allItemRect.cur.layoutpos;\r\n val.is_corner = allItemRect.cur.is_corner;\r\n let isRectUp = GeometryUtils.validInterSect(allRect, val);\r\n if (isRectUp) {\r\n let { updatedState: stateI, item } = this.create(\r\n state,\r\n layerID,\r\n sceneComponentType,\r\n x + depth * Math.sin(rotRad),\r\n y + depth * Math.cos(rotRad),\r\n 200,\r\n 100,\r\n (rotRad * 180) / Math.PI,\r\n true,\r\n myObject.molding\r\n );\r\n if (item === null) {\r\n alert('There are no Door Colors in this cabinet.');\r\n state = state.merge({\r\n mode: MODE_IDLE,\r\n drawingSupport: new Map()\r\n });\r\n } else {\r\n state = Item.select(stateI, layerID, item.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], item.id);\r\n }\r\n } else {\r\n console.log('there is no space');\r\n alert('No more space!');\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n case 'holes':\r\n this.prepareSnap(state, layerID);\r\n myObject = state.getIn(['scene', 'layers', layerID, 'holes', objectID]);\r\n let line = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'lines',\r\n myObject.line\r\n ]);\r\n sceneComponentType = myObject.type;\r\n width = myObject.get('properties').get('width').get('length');\r\n let myOffset = myObject.offset;\r\n let v0 = layer.getIn(['vertices', line.vertices.get(0)]);\r\n let v1 = layer.getIn(['vertices', line.vertices.get(1)]);\r\n let lineLength = GeometryUtils.pointsDistance(v0.x, v0.y, v1.x, v1.y);\r\n let delta = width / 2 / lineLength + 0.00001;\r\n let allHoles = state.getIn(['scene', 'layers', layerID, 'holes']);\r\n let rightAble = true;\r\n let leftAble = true;\r\n if (myOffset + 3 * delta > 1) rightAble = false;\r\n else if (myOffset - 3 * delta < 0) leftAble = false;\r\n if (allHoles.size === 0) {\r\n let { updatedState: stateH, hole } = this.createHole(\r\n state,\r\n layerID,\r\n sceneComponentType,\r\n myObject.line,\r\n myOffset + delta * 2,\r\n myObject.get('properties')\r\n );\r\n state = this.selectHole(stateH, layerID, hole.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], hole.id);\r\n } else {\r\n allHoles.forEach(hole => {\r\n if (hole.line === line.id)\r\n if (!hole.selected) {\r\n let newDelta =\r\n hole.get('properties').get('width').get('length') /\r\n 2 /\r\n lineLength;\r\n if (myOffset < hole.offset) {\r\n if (myOffset + delta * 3 > hole.offset - newDelta) {\r\n rightAble = false;\r\n }\r\n } else {\r\n if (myOffset - delta * 3 < hole.offset + newDelta) {\r\n leftAble = false;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n if (rightAble) {\r\n let { updatedState: stateH, hole } = this.createHole(\r\n state,\r\n layerID,\r\n sceneComponentType,\r\n myObject.line,\r\n myOffset + delta * 2,\r\n myObject.get('properties')\r\n );\r\n state = this.selectHole(stateH, layerID, hole.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], hole.id);\r\n } else {\r\n if (leftAble) {\r\n let { updatedState: stateH, hole } = this.createHole(\r\n state,\r\n layerID,\r\n sceneComponentType,\r\n myObject.line,\r\n myOffset - delta * 2,\r\n myObject.get('properties')\r\n );\r\n state = this.selectHole(stateH, layerID, hole.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], hole.id);\r\n } else alert('No more space');\r\n }\r\n break;\r\n case 'lines':\r\n alert('Duplicating lines is not currently supported yet.');\r\n break;\r\n default:\r\n break;\r\n }\r\n return { updatedState: state };\r\n }\r\n\r\n static storeDistArray(state, layerID, itemID, distArray) {\r\n let curDistArray = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n itemID,\r\n 'distArray'\r\n ]);\r\n let isEqualDist = (a, b) => {\r\n return a == b;\r\n };\r\n if (curDistArray) {\r\n let equal = curDistArray.every((curElement, index) => {\r\n return isEqualDist(curElement[0], distArray[index][0]);\r\n });\r\n if (!equal) {\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', itemID, 'distArray'],\r\n distArray\r\n );\r\n }\r\n }\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static validateItemPositions(state, layerID) {\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n\r\n function isItemInRect(item) {\r\n let { width, height } = state.getIn(['scene']);\r\n return item.x >= 0 && item.x <= width && item.y >= 0 && item.y <= height;\r\n }\r\n\r\n layer.items.forEach(item => {\r\n if (!isItemInRect(item))\r\n state = this.remove(state, layerID, item.id).updatedState;\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static remove(state, layerID, itemID) {\r\n state = this.unselect(state, layerID, itemID).updatedState;\r\n state = Layer.removeElement(state, layerID, 'items', itemID).updatedState;\r\n\r\n state\r\n .getIn(['scene', 'groups'])\r\n .forEach(\r\n group =>\r\n (state = Group.removeElement(\r\n state,\r\n group.id,\r\n layerID,\r\n 'items',\r\n itemID\r\n ).updatedState)\r\n );\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static replaceItem(state, selectedPos, currentObject, selectedObject) {\r\n state = this.remove(\r\n state,\r\n state.scene.selectedLayer,\r\n selectedPos.selectedItemId\r\n ).updatedState;\r\n state = this.create(\r\n state,\r\n state.scene.selectedLayer,\r\n selectedObject.name,\r\n selectedPos.x,\r\n selectedPos.y,\r\n selectedObject.info.width,\r\n selectedObject.info.height,\r\n selectedPos.rotation,\r\n false\r\n ).updatedState;\r\n // state = this.select(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;\r\n return { updatedState: state };\r\n }\r\n\r\n static unselect(state, layerID, itemID) {\r\n state = Layer.unselect(state, layerID, 'items', itemID).updatedState;\r\n return { updatedState: state };\r\n }\r\n\r\n static selectToolDrawingItem(state, sceneComponentType) {\r\n state = state.merge({\r\n mode: MODE_DRAWING_ITEM,\r\n drawingSupport: new Map({\r\n type: sceneComponentType\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static selectToolDrawingItem3D(state, sceneComponentType) {\r\n state = state.merge({\r\n mode: MODE_DRAWING_ITEM_3D,\r\n drawingSupport: new Map({\r\n type: sceneComponentType\r\n })\r\n });\r\n state = state.mergeIn(['scene', 'loadFlag'], false);\r\n return { updatedState: state };\r\n }\r\n\r\n static endCreatingCabinet(state) {\r\n state = state.merge({\r\n isOpen: false,\r\n openedType: 0\r\n });\r\n return { updatedState: state };\r\n }\r\n static updatePopupOpen(state, value) {\r\n state = state.merge({\r\n openedType: value\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static updateDrawingItem(state, layerID, x, y) {\r\n if (state.hasIn(['drawingSupport', 'currentID'])) {\r\n let mode = state.get('mode');\r\n if ([MODE_DRAWING_ITEM_3D].includes(mode)) {\r\n state = state.updateIn(\r\n [\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n state.getIn(['drawingSupport', 'currentID'])\r\n ],\r\n item => item && item.merge({ x, y })\r\n );\r\n state = state.merge({ mode: MODE_IDLE_3D });\r\n }\r\n if ([MODE_DRAWING_ITEM].includes(mode)) {\r\n state = state.merge({ mode: MODE_IDLE });\r\n state = state.updateIn(\r\n [\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n state.getIn(['drawingSupport', 'currentID'])\r\n ],\r\n item => item && item.merge({ x, y })\r\n );\r\n }\r\n } else {\r\n let { updatedState: stateI, item } = this.create(\r\n state,\r\n layerID,\r\n state.getIn(['drawingSupport', 'type']),\r\n x,\r\n y,\r\n 200,\r\n 100,\r\n 0,\r\n false\r\n );\r\n if (item === null) {\r\n alert('There are no Door Colors in this cabinet.');\r\n state = state.merge({\r\n mode: MODE_IDLE,\r\n drawingSupport: new Map()\r\n });\r\n } else {\r\n state = Item.select(stateI, layerID, item.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], item.id);\r\n }\r\n }\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateDraggingItemChanged(state, x, y, layerID, itemID) {\r\n let { scene } = state;\r\n // let originalX = draggingSupport.get('originalX');\r\n // let originalY = draggingSupport.get('originalY');\r\n\r\n // let diffX = x;\r\n // let diffY = y;\r\n\r\n let item = scene.getIn(['layers', layerID, 'items', itemID]);\r\n // let tX = originalX - diffX;\r\n // let tY = originalY - diffY;\r\n // tX = tX > 500 ? 500 : tX < 0 ? 0 : tX;\r\n // tY = tY > 500 ? 500 : tY < 0 ? 0 : tY;\r\n item = item.merge({\r\n x: x,\r\n y: y\r\n });\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n time2 = debugUtil();\r\n false &&\r\n console.log(\r\n 'FPS:',\r\n Math.round(1000 / (time2 - time1)),\r\n ' Delta Time:',\r\n (time2 - time1) / 1000,\r\n '(s)'\r\n );\r\n return { updatedState: state };\r\n }\r\n\r\n static endDrawingItem(state, layerID, x, y) {\r\n let catalog = state.catalog;\r\n state = this.updateDrawingItem(state, layerID, x, y, catalog).updatedState;\r\n state = Layer.unselectAll(state, layerID).updatedState;\r\n let popup = state.get('popup');\r\n\r\n state = state.merge({\r\n drawingSupport: Map({\r\n type: state.drawingSupport.get('type')\r\n }),\r\n isOpen: !popup\r\n });\r\n state = Layer.unselectAll(state, layerID).updatedState;\r\n this.updateMolding(state);\r\n return { updatedState: state };\r\n }\r\n\r\n static beginDraggingItem(state, layerID, itemID, x, y) {\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n\r\n time1 = debugUtil();\r\n if (isUndefined(item)) return;\r\n state = state.merge({\r\n mode: MODE_DRAGGING_ITEM,\r\n draggingSupport: Map({\r\n layerID,\r\n itemID,\r\n startPointX: x,\r\n startPointY: y,\r\n originalX: item.x,\r\n originalY: item.y\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static beginDraggingItem3D(state, layerID, itemID, x, y) {\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n state = state.setIn(['scene', 'isEndDragging'], false);\r\n if (isUndefined(item)) return { updatedState: state };\r\n state = state.merge({\r\n mode: MODE_DRAGGING_ITEM_3D,\r\n draggingSupport: Map({\r\n layerID,\r\n itemID,\r\n startPointX: x,\r\n startPointY: y,\r\n originalX: item.x,\r\n originalY: item.y\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateDraggingItem(state, x, y) {\r\n let { draggingSupport, scene } = state;\r\n\r\n let layerID = draggingSupport.get('layerID');\r\n let itemID = draggingSupport.get('itemID');\r\n let startPointX = draggingSupport.get('startPointX');\r\n let startPointY = draggingSupport.get('startPointY');\r\n let originalX = draggingSupport.get('originalX');\r\n let originalY = draggingSupport.get('originalY');\r\n\r\n let diffX = startPointX - x;\r\n let diffY = startPointY - y;\r\n\r\n let item = scene.getIn(['layers', layerID, 'items', itemID]);\r\n if (isUndefined(item)) return { updatedState: state };\r\n let tX = originalX - diffX;\r\n let tY = originalY - diffY;\r\n tX = tX > scene.width ? scene.width : tX < 0 ? 0 : tX;\r\n tY = tY > scene.height ? scene.height : tY < 0 ? 0 : tY;\r\n item = item.merge({\r\n x: tX,\r\n y: tY\r\n });\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateDraggingItem3DX(state, x) {\r\n let { draggingSupport, scene } = state;\r\n\r\n let layerID = draggingSupport.get('layerID');\r\n let itemID = draggingSupport.get('itemID');\r\n let startPointX = draggingSupport.get('startPointX');\r\n let originalX = draggingSupport.get('originalX');\r\n\r\n let diffX = startPointX - x;\r\n\r\n let item = scene.getIn(['layers', layerID, 'items', itemID]);\r\n item = item.merge({\r\n x: originalX - diffX\r\n });\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateDraggingItem3DY(state, y) {\r\n let { draggingSupport, scene } = state;\r\n\r\n let layerID = draggingSupport.get('layerID');\r\n let itemID = draggingSupport.get('itemID');\r\n let startPointY = draggingSupport.get('startPointY');\r\n let originalY = draggingSupport.get('originalY');\r\n\r\n let diffY = startPointY - y;\r\n\r\n let item = scene.getIn(['layers', layerID, 'items', itemID]);\r\n item = item.merge({\r\n y: originalY - diffY\r\n });\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static endDraggingItem(state, x, y) {\r\n state = this.updateDraggingItem(state, x, y).updatedState;\r\n state = state.merge({ mode: MODE_IDLE });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static endDraggingItem3D(state) {\r\n // state = this.updateDraggingItem(state, x, y).updatedState;\r\n state = state.merge({ mode: MODE_IDLE_3D });\r\n state = state.setIn(['scene', 'isEndDragging'], true);\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static beginRotatingItem(state, layerID, itemID, x, y) {\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n let originRotation = item.get('rotation');\r\n\r\n state = state.merge({\r\n mode: MODE_ROTATING_ITEM,\r\n rotatingSupport: Map({\r\n layerID,\r\n itemID,\r\n x,\r\n y,\r\n originRotation\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static beginRotatingItem3D(state, layerID, itemID, x, y) {\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n let originRotation = item.get('rotation');\r\n\r\n state = state.merge({\r\n mode: MODE_ROTATING_ITEM_3D,\r\n rotatingSupport: Map({\r\n layerID,\r\n itemID,\r\n x,\r\n y,\r\n originRotation\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateRotatingItem(state, x, y) {\r\n let { rotatingSupport, scene } = state;\r\n let layerID = rotatingSupport.get('layerID');\r\n let itemID = rotatingSupport.get('itemID');\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n let origin = {\r\n x: rotatingSupport.get('x'),\r\n y: rotatingSupport.get('y'),\r\n originRotation: rotatingSupport.get('originRotation')\r\n };\r\n\r\n let newRot =\r\n (Math.atan2(origin.y - item.y, origin.x - item.x) * 180) / Math.PI + 90;\r\n let deltaRot = newRot - origin.originRotation;\r\n\r\n let deltaX = x - item.x;\r\n let deltaY = y - item.y;\r\n\r\n let rotation = (Math.atan2(deltaY, deltaX) * 180) / Math.PI + 90;\r\n rotation -= deltaRot;\r\n if (-5 < rotation && rotation < 5) rotation = 0;\r\n if (-95 < rotation && rotation < -85) rotation = -90;\r\n if (-185 < rotation && rotation < -175) rotation = -180;\r\n if (85 < rotation && rotation < 95) rotation = 90;\r\n if (-270 < rotation && rotation < -265) rotation = 90;\r\n if (175 < rotation && rotation < 185) rotation = 180;\r\n if (265 < rotation && rotation < 275) rotation = -90;\r\n\r\n item = item.merge({\r\n rotation\r\n });\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateRotatingItemChanged(state, rotation, layerID, itemID) {\r\n let scene = state.scene;\r\n\r\n // let originalX = draggingSupport.get('originalX');\r\n // let originalY = draggingSupport.get('originalY');\r\n\r\n // let diffX = x;\r\n // let diffY = y;\r\n\r\n let item = scene.getIn(['layers', layerID, 'items', itemID]);\r\n // let tX = originalX - diffX;\r\n // let tY = originalY - diffY;\r\n // tX = tX > 500 ? 500 : tX < 0 ? 0 : tX;\r\n // tY = tY > 500 ? 500 : tY < 0 ? 0 : tY;\r\n item = item.merge({\r\n rotation: rotation\r\n });\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static endRotatingItem(state, x, y) {\r\n //state = this.updateRotatingItem(state, x, y).updatedState;\r\n state = state.merge({ mode: MODE_IDLE });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static endRotatingItem3D(state, x, y) {\r\n state = this.updateRotatingItem(state, x, y).updatedState;\r\n state = state.merge({ mode: MODE_IDLE_3D });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static replaceSubmodule(state, url) {\r\n let { replacingSupport, scene } = state;\r\n url = 'catalog/texture.png';\r\n let urlData = url.split('/');\r\n let newURL = '';\r\n let addURL = false;\r\n for (let i = 0; i < urlData.length; i++) {\r\n if (urlData[i] == '') {\r\n continue;\r\n }\r\n newURL += '/' + urlData[i];\r\n }\r\n let layerID = replacingSupport.get('layerID');\r\n let itemID = replacingSupport.get('itemID');\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n let submodule = [];\r\n let normalMap = [];\r\n\r\n for (let i = 0; i < item.submodule.size; i++)\r\n submodule.push(item.submodule.get(i));\r\n for (let i = 0; i < item.normalMap.size; i++)\r\n normalMap.push(item.normalMap.get(i));\r\n //let submodule = state.getIn(['scene', 'layers', layerID, 'items', itemID, 'submodule']);\r\n urlData = newURL.split('/');\r\n let flag = false;\r\n if (urlData[urlData.length - 1].includes('.gltf')) {\r\n for (let i = 0; i < submodule.length; i++) {\r\n let pathData = submodule[i].split('/');\r\n if (pathData[pathData.length - 2] === urlData[urlData.length - 2]) {\r\n submodule[i] = newURL;\r\n flag = true;\r\n }\r\n }\r\n if (!flag) submodule.push(newURL);\r\n item = item.merge({\r\n submodule\r\n });\r\n } else {\r\n for (let i = 0; i < normalMap.length; i++) {\r\n let pathData = normalMap[i].split('/');\r\n if (pathData[pathData.length - 2] === urlData[urlData.length - 2]) {\r\n normalMap[i] = newURL;\r\n flag = true;\r\n }\r\n }\r\n if (!flag) normalMap.push(newURL);\r\n\r\n item = item.merge({\r\n normalMap\r\n });\r\n }\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n state = state.merge({ mode: MODE_IDLE_3D });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setProperties(state, layerID, itemID, properties) {\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'items', itemID, 'properties'],\r\n properties\r\n );\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setJsProperties(state, layerID, itemID, properties) {\r\n return this.setProperties(state, layerID, itemID, fromJS(properties));\r\n }\r\n\r\n static updateProperties(state, layerID, itemID, properties) {\r\n properties.forEach((v, k) => {\r\n if (\r\n state.hasIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n itemID,\r\n 'properties',\r\n k\r\n ])\r\n )\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'items', itemID, 'properties', k],\r\n v\r\n );\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateJsProperties(state, layerID, itemID, properties) {\r\n return this.updateProperties(state, layerID, itemID, fromJS(properties));\r\n }\r\n\r\n static setAttributes(state, layerID, itemID, itemAttributes) {\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'items', itemID],\r\n itemAttributes\r\n );\r\n return { updatedState: state };\r\n }\r\n\r\n static setJsAttributes(state, layerID, itemID, itemAttributes) {\r\n itemAttributes = fromJS(itemAttributes);\r\n return this.setAttributes(state, layerID, itemID, itemAttributes);\r\n }\r\n\r\n static animateObject(state, value) {\r\n let { replacingSupport, scene } = state;\r\n let layerID = replacingSupport.get('layerID');\r\n let itemID = replacingSupport.get('itemID');\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n if (item !== undefined) {\r\n let animCount = item.get('animate');\r\n item = item.merge({\r\n animValue: value,\r\n animate: animCount + 1\r\n });\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n state = state.merge({ mode: MODE_IDLE_3D });\r\n }\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static removeReplacingSupport(state) {\r\n state = state.merge({\r\n replacingSupport: new Map()\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static setInitialDoorStyle(state, doorStyle, oStyle) {\r\n if (doorStyle === undefined) {\r\n state = state.merge({\r\n oStyle: new Map({\r\n oStyle\r\n })\r\n });\r\n } else {\r\n state = state.merge({\r\n doorStyle: doorStyle,\r\n oStyle: new Map({\r\n oStyle\r\n })\r\n });\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layers = scene.layers.get(layerID);\r\n let items = layers.items;\r\n items.forEach(data => {\r\n {\r\n let itemID = data.id;\r\n\r\n var tmpDS = {\r\n ...data.doorStyle,\r\n doorStyles: {\r\n ...data.doorStyle.doorStyles,\r\n counttop: doorStyle.doorStyles.counttop\r\n }\r\n };\r\n data = data.mergeIn(['doorStyle'], fromJS(tmpDS));\r\n layers = layers.mergeIn(['items', itemID], data);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layers)\r\n });\r\n }\r\n });\r\n }\r\n return { updatedState: state };\r\n }\r\n\r\n static setDoorStyle(state, doorStyle, pathes, isAll) {\r\n var keys = Object.keys(doorStyle.doorStyles);\r\n keys = keys.filter(elem => !elem.endsWith('_gltf'));\r\n var tmp = {};\r\n for (let x in keys) {\r\n tmp[keys[x]] = doorStyle.doorStyles[keys[x]];\r\n }\r\n state = state.setIn(\r\n ['scene', 'layers', state.scene.selectedLayer, 'doorStyle'],\r\n doorStyle\r\n );\r\n state = state.merge({\r\n doorStyle: doorStyle\r\n });\r\n let layerID = state.scene.get('selectedLayer');\r\n let temp_layer_molding = state.scene.getIn(['layers', layerID, 'molding']);\r\n temp_layer_molding = temp_layer_molding.filter(md =>\r\n doorStyle.doorStyles.cds.some(ds => md.itemID === ds.itemID)\r\n );\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'molding'],\r\n temp_layer_molding\r\n );\r\n let itemIDs = state.scene.layers\r\n .getIn([layerID, 'selected', 'items'])\r\n .toJS();\r\n\r\n let setDoorStyleOfItem = data => {\r\n if (data.category !== 'cabinet') return; //CDS should effect to cabinets\r\n let itemID = data.id;\r\n const curItem = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n itemID\r\n ]);\r\n const layer = state.getIn(['scene', 'layers', layerID]);\r\n let tmpMolding = [...curItem.molding];\r\n let temp_item_molding = [...curItem.molding];\r\n temp_item_molding = temp_item_molding.filter(md =>\r\n doorStyle.doorStyles.cds.some(ds => ds.itemID === md.itemID)\r\n );\r\n tmpMolding.forEach(md => {\r\n const itemGroup = MoldingUtils.getItemGroupFromMolding(\r\n layer,\r\n curItem,\r\n md\r\n );\r\n itemGroup.forEach(it => {\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', it.id, 'molding'],\r\n temp_item_molding\r\n );\r\n });\r\n });\r\n var cds = doorStyle.doorStyles.cds.find(\r\n elem => elem.itemID === data.itemID\r\n );\r\n let euro_cds = [];\r\n if (cds !== undefined) {\r\n euro_cds = cds && cds.data.filter(element => element.is_euro_cds);\r\n }\r\n let cds_data;\r\n if (\r\n doorStyle.door_style_name === 'Euro & Frameless' &&\r\n euro_cds.length > 0\r\n ) {\r\n cds_data = cds\r\n ? { ...euro_cds[0], cabinet_door_style_id: cds.cabinet_door_style_id }\r\n : {};\r\n let newProperties = state.scene\r\n .getIn(['layers', layerID, 'items', itemID, 'properties'])\r\n .toJS();\r\n if (newProperties.hasOwnProperty('depth')) {\r\n if (!newProperties.hasOwnProperty('oldDepth')) {\r\n newProperties['oldDepth'] = new Map({\r\n length: newProperties.depth.length,\r\n _length: newProperties.depth._length,\r\n _unit: newProperties.depth._unit\r\n });\r\n }\r\n newProperties['depth'] = new Map({\r\n length: convert(euro_cds[0].euro_length).from('in').to('cm'),\r\n _length: euro_cds[0].euro_length,\r\n _unit: 'in'\r\n });\r\n }\r\n if (newProperties.hasOwnProperty('height')) {\r\n if (!newProperties.hasOwnProperty('oldHeight')) {\r\n newProperties['oldHeight'] = new Map({\r\n length: newProperties.height.length,\r\n _length: newProperties.height._length,\r\n _unit: newProperties.height._unit\r\n });\r\n }\r\n newProperties['height'] = new Map({\r\n length: convert(euro_cds[0].euro_height).from('in').to('cm'),\r\n _length: euro_cds[0].euro_height,\r\n _unit: 'in'\r\n });\r\n }\r\n if (newProperties.hasOwnProperty('width')) {\r\n if (!newProperties.hasOwnProperty('oldWidth')) {\r\n newProperties['oldWidth'] = new Map({\r\n length: newProperties.width.length,\r\n _length: newProperties.width._length,\r\n _unit: newProperties.width._unit\r\n });\r\n }\r\n newProperties['width'] = new Map({\r\n length: convert(euro_cds[0].euro_width).from('in').to('cm') - 10,\r\n _length: euro_cds[0].euro_width,\r\n _unit: 'in'\r\n });\r\n }\r\n state = this.setJsProperties(\r\n state,\r\n layerID,\r\n itemID,\r\n newProperties\r\n ).updatedState;\r\n } else {\r\n cds_data = cds\r\n ? { ...cds.data[0], cabinet_door_style_id: cds.cabinet_door_style_id }\r\n : {};\r\n let properties = state.scene\r\n .getIn(['layers', layerID, 'items', itemID, 'properties'])\r\n .toJS();\r\n if (properties.hasOwnProperty('oldDepth')) {\r\n properties['depth'] = new Map({\r\n length: properties.oldDepth.length,\r\n _length: properties.oldDepth._length,\r\n _unit: properties.oldDepth._unit\r\n });\r\n }\r\n if (properties.hasOwnProperty('oldHeight')) {\r\n properties['height'] = new Map({\r\n length: properties.oldHeight.length,\r\n _length: properties.oldHeight._length,\r\n _unit: properties.oldHeight._unit\r\n });\r\n }\r\n if (properties.hasOwnProperty('oldWidth')) {\r\n properties['width'] = new Map({\r\n length: properties.oldWidth.length,\r\n _length: properties.oldWidth._length,\r\n _unit: properties.oldWidth._unit\r\n });\r\n }\r\n state = this.setJsProperties(\r\n state,\r\n layerID,\r\n itemID,\r\n properties\r\n ).updatedState;\r\n }\r\n var tmpDS = {\r\n id: doorStyle.id,\r\n brightness: doorStyle.brightness,\r\n color: doorStyle.color,\r\n glossness: doorStyle.glossness,\r\n name: doorStyle.name,\r\n door_style_name: doorStyle.door_style_name,\r\n texture: doorStyle.texture,\r\n thumbnail: doorStyle.thumbnail,\r\n type: doorStyle.type,\r\n sku: doorStyle.sku,\r\n color_sku_alias: doorStyle.color_sku_alias, // alias name of color_sku for the current dealer\r\n install: getInstallationSuffix(\r\n INSTALLATION_SUFFIX_TYPE.NAME,\r\n doorStyle\r\n ),\r\n doorStyles: {\r\n ...tmp,\r\n ...cds_data\r\n }\r\n };\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'items', itemID, 'doorStyle'],\r\n fromJS(tmpDS)\r\n );\r\n };\r\n\r\n if (isAll) {\r\n let items = state.scene.layers.get(layerID).items;\r\n items.forEach(setDoorStyleOfItem);\r\n } else {\r\n if (itemIDs.length > 0) {\r\n for (let i = 0; i < itemIDs.length; i++) {\r\n let itemID = itemIDs[i];\r\n let items = state.scene.layers.get(layerID).items;\r\n items.forEach(data => {\r\n if (itemID === data.id) {\r\n setDoorStyleOfItem(data);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n return { updatedState: state };\r\n }\r\n static setCounterTop(state, counterTop) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layers = scene.layers.get(layerID);\r\n layers = layers.mergeIn(['counterTop'], counterTop);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layers)\r\n });\r\n let items = layers.items;\r\n items.forEach(data => {\r\n {\r\n const dataJSON = data.toJS();\r\n let itemID = dataJSON.id;\r\n let newCounter = dataJSON.counterTop;\r\n newCounter = { ...newCounter, ...counterTop };\r\n data = data.mergeIn(['counterTop'], newCounter);\r\n layers = layers.mergeIn(['items', itemID], data);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layers)\r\n });\r\n }\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setItemsDoorHandle(state, scene, layer, layerID, elements_item) {\r\n elements_item.forEach(data => {\r\n let itemID = data.id;\r\n let item = this.updateDoorHandle(data, layer);\r\n layer = layer.mergeIn(['items', itemID], item);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layer)\r\n });\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static setDoorHandle(state, doorHandle) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layer = scene.layers.get(layerID);\r\n\r\n layer = layer.mergeIn(['doorHandle'], doorHandle);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layer)\r\n });\r\n\r\n let items = layer.items;\r\n let selectedItems = items.filter(element => element.selected === true); // find selected items (default 1 selected)\r\n\r\n if (selectedItems.size === 0) {\r\n state = this.setItemsDoorHandle(\r\n state,\r\n scene,\r\n layer,\r\n layerID,\r\n items\r\n ).updatedState;\r\n } else {\r\n state = this.setItemsDoorHandle(\r\n state,\r\n scene,\r\n layer,\r\n layerID,\r\n selectedItems\r\n ).updatedState;\r\n }\r\n return { updatedState: state };\r\n }\r\n static setHandleMaterial(state, material) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layers = scene.layers.get(layerID);\r\n let items = layers.items;\r\n items.forEach(data => {\r\n const dataJSON = data.toJS();\r\n let itemID = dataJSON.id;\r\n var doorStyle = dataJSON.doorStyle;\r\n var tmpDS = {\r\n ...doorStyle,\r\n metalness: material.metalness,\r\n roughness: material.roughness\r\n };\r\n data = data.mergeIn(['doorStyle'], fromJS(tmpDS));\r\n layers = layers.mergeIn(['items', itemID], data);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layers)\r\n });\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static setWallColor(state, wallColor) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layer = scene.layers.get(layerID);\r\n\r\n layer = layer.merge({ wallColor });\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layer)\r\n });\r\n\r\n let lines = layer.lines;\r\n lines.forEach(data => {\r\n const dataJSON = data.toJS();\r\n let lineID = dataJSON.id;\r\n data = data.mergeIn(['wallColor'], wallColor);\r\n layer = layer.mergeIn(['lines', lineID], data);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layer)\r\n });\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static setBacksplash(state, backsplash) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layer = scene.layers.get(layerID);\r\n const dataJSON = layer.toJS();\r\n let newBack = dataJSON.backsplash;\r\n let flag = true; // selected or not\r\n // if backsplash is already set\r\n if (layer.getIn(['backsplash']).uri === backsplash.uri) {\r\n // unselect\r\n newBack = { ...newBack, uri: '' };\r\n flag = false;\r\n }\r\n // else then, set backsplash\r\n else newBack = { ...newBack, ...backsplash };\r\n layer = layer.mergeIn(['backsplash'], newBack);\r\n layer = layer.set('backsplashApplied', flag);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layer)\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static setMolding(state, molding, isAll) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layer = scene.layers.get(layerID);\r\n if (isAll) {\r\n let tempLayerMolding = layer.molding;\r\n let flag = tempLayerMolding.some(mol => mol.name === molding.name);\r\n if (flag) {\r\n tempLayerMolding = tempLayerMolding.filter(\r\n mol => mol.name !== molding.name\r\n );\r\n } else {\r\n if (\r\n tempLayerMolding.some(\r\n mol =>\r\n mol.molding_type === molding.molding_type &&\r\n mol.location_type === molding.location_type\r\n )\r\n ) {\r\n tempLayerMolding = tempLayerMolding.filter(\r\n mol =>\r\n mol.molding_type !== molding.molding_type ||\r\n mol.location_type !== molding.location_type\r\n );\r\n }\r\n tempLayerMolding = tempLayerMolding.concat(molding);\r\n }\r\n layer = layer.set('molding', tempLayerMolding);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layer)\r\n });\r\n layer.items.toArray().forEach(item => {\r\n if (MoldingUtils.isEnableItemForMolding(layer, item, molding)) {\r\n let tempItemMolding = item.molding;\r\n if (flag) {\r\n if (tempItemMolding.some(mol => mol.name === molding.name)) {\r\n tempItemMolding = tempItemMolding.filter(\r\n mol => mol.name !== molding.name\r\n );\r\n }\r\n } else {\r\n if (\r\n tempItemMolding.some(\r\n mol =>\r\n mol.molding_type === molding.molding_type &&\r\n mol.location_type === molding.location_type\r\n )\r\n ) {\r\n tempItemMolding = tempItemMolding.filter(\r\n mol =>\r\n mol.molding_type !== molding.molding_type ||\r\n mol.location_type !== molding.location_type\r\n );\r\n }\r\n tempItemMolding = tempItemMolding.concat(molding);\r\n }\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', item.id, 'molding'],\r\n tempItemMolding\r\n );\r\n }\r\n });\r\n } else {\r\n const selectedItem = layer.getIn([\r\n 'items',\r\n layer.selected.toJS().items[0]\r\n ]);\r\n if (MoldingUtils.isEnableItemForMolding(layer, selectedItem, molding)) {\r\n let moldingGroup = MoldingUtils.getItemGroupFromMolding(\r\n layer,\r\n selectedItem,\r\n molding\r\n );\r\n let tempSelItemMolding = selectedItem.molding;\r\n let flag = tempSelItemMolding.some(mol => mol.name === molding.name);\r\n moldingGroup.forEach(item => {\r\n let tempItemMolding = item.molding;\r\n if (flag) {\r\n if (tempItemMolding.some(mol => mol.name === molding.name)) {\r\n tempItemMolding = tempItemMolding.filter(\r\n mol => mol.name !== molding.name\r\n );\r\n }\r\n } else {\r\n if (\r\n tempItemMolding.some(\r\n mol =>\r\n mol.molding_type === molding.molding_type &&\r\n mol.location_type === molding.location_type\r\n )\r\n ) {\r\n tempItemMolding = tempItemMolding.filter(\r\n mol =>\r\n mol.molding_type !== molding.molding_type ||\r\n mol.location_type !== molding.location_type\r\n );\r\n }\r\n tempItemMolding = tempItemMolding.concat(molding);\r\n }\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', item.id, 'molding'],\r\n tempItemMolding\r\n );\r\n });\r\n }\r\n }\r\n return { updatedState: state };\r\n }\r\n\r\n static updateMolding(state) {\r\n const { scene } = state;\r\n const layerID = scene.get('selectedLayer');\r\n const layer = scene.layers.get(layerID);\r\n const selectedItem = layer.getIn(['items', layer.selected.toJS().items[0]]);\r\n let snappedItemGroup = []; // The array that include snapped items with selected item.\r\n if (!!selectedItem && selectedItem.category === 'cabinet') {\r\n let itemGroups = [];\r\n layer.items.toArray().forEach(curItem => {\r\n if (selectedItem.id !== curItem.id && curItem.category === 'cabinet') {\r\n if (MoldingUtils.isItemSnappedItem(selectedItem, curItem)) {\r\n snappedItemGroup.push(curItem); // add the snapped item.\r\n // add the snapped item that has same molding location type, layoutpos and height to itemGroups.\r\n if (curItem.molding.length) {\r\n curItem.molding.forEach(md => {\r\n // This code check whether the curItem can be grouped with selected Item in molding.\r\n if (\r\n MoldingUtils.tryMergeMDItem(\r\n layer,\r\n selectedItem,\r\n curItem,\r\n [selectedItem],\r\n md\r\n )\r\n ) {\r\n itemGroups.push({\r\n base_item: curItem,\r\n group: MoldingUtils.getItemGroupFromMolding(\r\n layer,\r\n curItem,\r\n md\r\n ),\r\n molding: md\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n const updateSelectItemMolding = () => {\r\n for (let i = 0; i < snappedItemGroup.length; i++) {\r\n // check whether snapped item is same as selected item in layoutpos(Wall, Tall, Base)\r\n if (\r\n MoldingUtils.isSameMoldingLayoutpos(\r\n selectedItem,\r\n snappedItemGroup[i]\r\n )\r\n ) {\r\n // check whether snapped item is same in location(same location type and height).\r\n let delMoldings = [];\r\n for (let k = 0; k < selectedItem.molding.length; k++) {\r\n if (\r\n MoldingUtils.isItemSameItemByLocation(\r\n selectedItem,\r\n snappedItemGroup[i],\r\n selectedItem.molding[k].location_type\r\n )\r\n ) {\r\n delMoldings.push(selectedItem.molding[k].itemID);\r\n }\r\n }\r\n let resultMol = [];\r\n selectedItem.molding.forEach(mol => {\r\n if (!delMoldings.some(id => id === mol.itemID)) {\r\n resultMol.push(mol);\r\n }\r\n });\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', selectedItem.id, 'molding'],\r\n resultMol\r\n );\r\n }\r\n }\r\n };\r\n const emptyMoldingArray = () => {\r\n let temp_items = [selectedItem];\r\n let groupMoldings = [];\r\n itemGroups.forEach(itGroup => {\r\n groupMoldings.push(itGroup.molding);\r\n itGroup.group.forEach(it => {\r\n if (!temp_items.some(i => i.id === it.id)) {\r\n temp_items.push(it);\r\n }\r\n });\r\n });\r\n temp_items.forEach(item => {\r\n let finalMoldings = [];\r\n let tempMoldings = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n item.id,\r\n 'molding'\r\n ]);\r\n tempMoldings.forEach(molding => {\r\n if (!groupMoldings.some(ml => ml.itemID === molding.itemID)) {\r\n finalMoldings.push(molding);\r\n }\r\n });\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', item.id, 'molding'],\r\n finalMoldings\r\n );\r\n });\r\n updateSelectItemMolding();\r\n };\r\n const setLocationMolding = location => {\r\n let locationMolding = itemGroups\r\n .filter(it => it.molding.location_type === location)\r\n .sort((a, b) => {\r\n if (a.group.length === b.group.length) {\r\n return (\r\n GeometryUtils.pointsDistance(\r\n a.base_item.x,\r\n a.base_item.y,\r\n selectedItem.x,\r\n selectedItem.y\r\n ) -\r\n GeometryUtils.pointsDistance(\r\n b.base_item.x,\r\n b.base_item.y,\r\n selectedItem.x,\r\n selectedItem.y\r\n )\r\n );\r\n } else {\r\n return a.group.length - b.group.length;\r\n }\r\n });\r\n if (locationMolding.length) {\r\n let locationMoldingItems = MoldingUtils.getItemGroupFromMolding(\r\n layer,\r\n selectedItem,\r\n locationMolding[0].molding\r\n );\r\n locationMoldingItems.forEach(item => {\r\n let tempMoldings = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n item.id,\r\n 'molding'\r\n ]);\r\n if (\r\n !tempMoldings.some(\r\n mol => mol.itemID === locationMolding[0].molding.itemID\r\n )\r\n )\r\n tempMoldings.push(locationMolding[0].molding);\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', item.id, 'molding'],\r\n tempMoldings\r\n );\r\n });\r\n }\r\n };\r\n if (\r\n itemGroups.length &&\r\n layer.items.some(\r\n it =>\r\n MoldingUtils.isItemSnappedItem(selectedItem, it) &&\r\n it.category === 'cabinet'\r\n )\r\n ) {\r\n emptyMoldingArray();\r\n for (let i = 0; i < MOLDING_LOCATIONS.length; i++) {\r\n setLocationMolding(MOLDING_LOCATIONS[i]);\r\n }\r\n } else if (!itemGroups.length && selectedItem.molding.length) {\r\n // Delete the selected Item's molding property if selItem attached the group that has no molding.\r\n // If snapped items have no moldings and one item's property is same as selected Item, selected Item's molding should be deleted.\r\n updateSelectItemMolding();\r\n }\r\n }\r\n return { updatedState: state };\r\n }\r\n\r\n static setBacksplashVisible(state, itemID, backsplashVisible) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layer = scene.layers.get(layerID);\r\n layer = layer.mergeIn(\r\n ['items', itemID, 'backsplashVisible'],\r\n backsplashVisible\r\n );\r\n // let cabinet_category = layer.getIn([\"items\"], itemID).toJS()[itemID].cabinet_category;\r\n // if (cabinet_category && (cabinet_category.search(\"Sink\") !== -1 || cabinet_category.search(\"End/Angle\") !== -1)) {\r\n // layer = layer.mergeIn([\"items\", itemID, \"backsplashVisible\"], true);\r\n // } else {\r\n // layer = layer.mergeIn([\"items\", itemID, \"backsplashVisible\"], false);\r\n // }\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layer)\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n static setApplianceMaterial(state, material) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layers = scene.layers.get(layerID);\r\n let items = layers.items;\r\n items.forEach(data => {\r\n const dataJSON = data.toJS();\r\n let itemID = dataJSON.id;\r\n var newMaterial = {\r\n metalness: material.metalness,\r\n roughness: material.roughness\r\n };\r\n data = data.mergeIn(['applianceMaterial'], newMaterial);\r\n layers = layers.mergeIn(['items', itemID], data);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layers)\r\n });\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setModelling(state, molding) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layers = scene.layers.get(layerID);\r\n let items = layers.items;\r\n items.forEach(data => {\r\n const dataJSON = data.toJS();\r\n let itemID = dataJSON.id;\r\n });\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layers)\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static updateItemsAltitude(state, layerID, itemID, value) {\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n let properties = item.get('properties');\r\n let altitude = properties.get('altitude');\r\n let length = altitude.get('length');\r\n let _length = altitude.get('_length');\r\n let _unit = altitude.get('_unit');\r\n length = length - value;\r\n switch (_unit) {\r\n case 'mm':\r\n _length = length * 10;\r\n break;\r\n case 'm':\r\n _length = length * 0.01;\r\n break;\r\n default:\r\n _length = length;\r\n }\r\n if (length <= 0) {\r\n length = 0;\r\n _length = 0;\r\n }\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'items', itemID, 'properties', 'altitude'],\r\n new Map({\r\n length: length,\r\n _length: _length,\r\n _unit: _unit\r\n })\r\n );\r\n return { updatedState: state };\r\n }\r\n\r\n static createHole(state, layerID, type, lineID, offset, properties) {\r\n let holeID = IDBroker.acquireID();\r\n let hole = state.catalog.factoryElement(\r\n type,\r\n {\r\n id: holeID,\r\n url: state.catalog.getIn(['elements', type, 'info', 'url']),\r\n type,\r\n offset,\r\n line: lineID\r\n },\r\n properties\r\n );\r\n\r\n state = state.setIn(['scene', 'layers', layerID, 'holes', holeID], hole);\r\n state = state.updateIn(\r\n ['scene', 'layers', layerID, 'lines', lineID, 'holes'],\r\n holes => holes && holes.push(holeID)\r\n );\r\n // get vertex order/////\r\n let element = state.scene.layers.getIn([layerID, 'lines', lineID]);\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n let vetName0 = element.vertices.get(0);\r\n let vetName1 = element.vertices.get(1);\r\n let verticesArray = [];\r\n layer.areas.forEach(data => {\r\n verticesArray.push(data.vertices.toJS());\r\n });\r\n for (let i = 0; i < verticesArray.length; i++) {\r\n let vertices = verticesArray[i];\r\n if (vertices.includes(vetName0) && vertices.includes(vetName1)) {\r\n let index0 = vertices.indexOf(vetName0);\r\n let index1 = vertices.indexOf(vetName1);\r\n // if vertex order chanege//\r\n if (index1 + 1 == index0) {\r\n return { updatedState: state, hole };\r\n }\r\n if (index0 == 0 && index1 == vertices.length - 1) {\r\n return { updatedState: state, hole };\r\n }\r\n // ////////////////////////\r\n }\r\n }\r\n // ///////////////////////////\r\n properties = hole.properties.toJS();\r\n if (properties.hasOwnProperty('flip_orizzontal')) {\r\n properties['flip_orizzontal'] = true;\r\n }\r\n if (properties.hasOwnProperty('flip_horizontal')) {\r\n properties['flip_horizontal'] = true;\r\n }\r\n state = Hole.setJsProperties(\r\n state,\r\n layerID,\r\n holeID,\r\n properties\r\n ).updatedState;\r\n return { updatedState: state, hole };\r\n }\r\n\r\n static toggleLoadingCabinet(state) {\r\n let { scene } = state;\r\n console.log('scene.isLoadingCabinet: ', !scene.isLoadingCabinet);\r\n // scene = scene.set('isLoadingCabinet', !scene.isLoadingCabinet);\r\n // state = state.set('scene', scene);\r\n state = state.setIn(['scene', 'isLoadingCabinet'], !scene.isLoadingCabinet);\r\n return { updatedState: state };\r\n }\r\n static endLoading(state) {\r\n let { scene } = state;\r\n state = state.setIn(['scene', 'loadFlag'], true);\r\n return { updatedState: state };\r\n }\r\n}\r\n\r\nexport { Item as default };\r\n"],"mappings":"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","ignoreList":[]}
|