diff --git a/app/src/assets/image/aisleTypes/Arc.png b/app/src/assets/image/aisleTypes/Arc.png new file mode 100644 index 0000000..74e7286 Binary files /dev/null and b/app/src/assets/image/aisleTypes/Arc.png differ diff --git a/app/src/assets/image/aisleTypes/Arrow.png b/app/src/assets/image/aisleTypes/Arrow.png new file mode 100644 index 0000000..e749443 Binary files /dev/null and b/app/src/assets/image/aisleTypes/Arrow.png differ diff --git a/app/src/assets/image/aisleTypes/Arrows.png b/app/src/assets/image/aisleTypes/Arrows.png new file mode 100644 index 0000000..c025010 Binary files /dev/null and b/app/src/assets/image/aisleTypes/Arrows.png differ diff --git a/app/src/assets/image/aisleTypes/Circle.png b/app/src/assets/image/aisleTypes/Circle.png new file mode 100644 index 0000000..8be9929 Binary files /dev/null and b/app/src/assets/image/aisleTypes/Circle.png differ diff --git a/app/src/assets/image/aisleTypes/Dashed.png b/app/src/assets/image/aisleTypes/Dashed.png new file mode 100644 index 0000000..c7db464 Binary files /dev/null and b/app/src/assets/image/aisleTypes/Dashed.png differ diff --git a/app/src/assets/image/aisleTypes/Directional.png b/app/src/assets/image/aisleTypes/Directional.png new file mode 100644 index 0000000..be7d1f6 Binary files /dev/null and b/app/src/assets/image/aisleTypes/Directional.png differ diff --git a/app/src/assets/image/aisleTypes/Dotted.png b/app/src/assets/image/aisleTypes/Dotted.png new file mode 100644 index 0000000..743ed0c Binary files /dev/null and b/app/src/assets/image/aisleTypes/Dotted.png differ diff --git a/app/src/assets/image/aisleTypes/Solid.png b/app/src/assets/image/aisleTypes/Solid.png new file mode 100644 index 0000000..6bfb8df Binary files /dev/null and b/app/src/assets/image/aisleTypes/Solid.png differ diff --git a/app/src/components/layout/sidebarRight/SideBarRight.tsx b/app/src/components/layout/sidebarRight/SideBarRight.tsx index 582b085..10de581 100644 --- a/app/src/components/layout/sidebarRight/SideBarRight.tsx +++ b/app/src/components/layout/sidebarRight/SideBarRight.tsx @@ -67,142 +67,142 @@ const SideBarRight: React.FC = () => { }`} >
- {toggleUIRight && !isVersionSaved && ( -
- {activeModule !== "simulation" && ( - + {toggleUIRight && ( + <> + {!isVersionSaved && ( +
+ {activeModule !== "simulation" && ( + + )} + {activeModule === "simulation" && ( + <> + + + + + )} +
)} - {activeModule === "simulation" && ( - <> - - - - + + {viewVersionHistory && ( +
+
+ +
+
)} -
+ + {/* process builder */} + {!viewVersionHistory && + subModule === "properties" && + activeModule !== "visualization" && + !selectedFloorItem && ( +
+
+ +
+
+ )} + {!viewVersionHistory && + subModule === "properties" && + activeModule !== "visualization" && + selectedFloorItem && ( +
+
+ +
+
+ )} + + {!viewVersionHistory && + subModule === "zoneProperties" && + (activeModule === "builder" || activeModule === "simulation") && ( +
+
+ +
+
+ )} + {/* simulation */} + {!isVersionSaved && + !viewVersionHistory && + activeModule === "simulation" && ( + <> + {subModule === "simulations" && ( +
+
+ +
+
+ )} + {subModule === "mechanics" && ( +
+
+ +
+
+ )} + {subModule === "analysis" && ( +
+
+ +
+
+ )} + + )} + {/* realtime visualization */} + {activeModule === "visualization" && } + )} - - {toggleUIRight && viewVersionHistory && ( -
-
- -
-
- )} - - {/* process builder */} - {toggleUIRight && - !viewVersionHistory && - subModule === "properties" && - activeModule !== "visualization" && - !selectedFloorItem && ( -
-
- -
-
- )} - {toggleUIRight && - !viewVersionHistory && - subModule === "properties" && - activeModule !== "visualization" && - selectedFloorItem && ( -
-
- -
-
- )} - - {toggleUIRight && - !viewVersionHistory && - subModule === "zoneProperties" && - (activeModule === "builder" || activeModule === "simulation") && ( -
-
- -
-
- )} - {/* simulation */} - {toggleUIRight && - !isVersionSaved && - !viewVersionHistory && - activeModule === "simulation" && ( - <> - {subModule === "simulations" && ( -
-
- -
-
- )} - {subModule === "mechanics" && ( -
-
- -
-
- )} - {subModule === "analysis" && ( -
-
- -
-
- )} - - )} - {/* realtime visualization */} - {toggleUIRight && activeModule === "visualization" && } ); }; diff --git a/app/src/components/layout/sidebarRight/properties/AisleProperties.tsx b/app/src/components/layout/sidebarRight/properties/AisleProperties.tsx new file mode 100644 index 0000000..eaab9f6 --- /dev/null +++ b/app/src/components/layout/sidebarRight/properties/AisleProperties.tsx @@ -0,0 +1,191 @@ +import React, { useState } from "react"; +import InputWithDropDown from "../../../ui/inputs/InputWithDropDown"; +import { ArrowIcon } from "../../../icons/ExportCommonIcons"; + +// image imports +import Arc from "../../../../assets/image/aisleTypes/Arc.png"; +import Arrow from "../../../../assets/image/aisleTypes/Arrow.png"; +import Arrows from "../../../../assets/image/aisleTypes/Arrows.png"; +import Circle from "../../../../assets/image/aisleTypes/Circle.png"; +import Dashed from "../../../../assets/image/aisleTypes/Dashed.png"; +import Directional from "../../../../assets/image/aisleTypes/Directional.png"; +import Dotted from "../../../../assets/image/aisleTypes/Dotted.png"; +import Solid from "../../../../assets/image/aisleTypes/Solid.png"; + +interface TextureItem { + color: string; + id: string; + brief: string; + texture: string; +} + +const AisleProperties: React.FC = () => { + const [collapsePresets, setCollapsePresets] = useState(false); + const [collapseTexture, setCollapseTexture] = useState(true); + const [selectedTexture, setSelectedTexture] = useState( + "yellow1" + ); + const [selectedType, setSelectedType] = useState("Solid"); + + const aisleTextureList: TextureItem[] = [ + { color: "gray", id: "gray", brief: "basic", texture: "" }, + { + color: "yellow", + id: "yellow1", + brief: "pedestrian walkways", + texture: "", + }, + { color: "green", id: "green1", brief: "pedestrian walkways", texture: "" }, + { color: "orange", id: "orange", brief: "material flow", texture: "" }, + { color: "blue", id: "blue", brief: "vehicle paths", texture: "" }, + { color: "purple", id: "purple", brief: "material flow", texture: "" }, + { color: "red", id: "red", brief: "safety zone", texture: "" }, + { + color: "bright green", + id: "bright-green", + brief: "safety zone", + texture: "", + }, + { + color: "yellow-black", + id: "yellow-black", + brief: "utility aisles", + texture: "", + }, + { + color: "white-black", + id: "white-black", + brief: "utility aisles", + texture: "", + }, + ]; + + const aisleTypes = [ + { + name: "Solid", + id: "1", + thumbnail: Solid, + }, + { + name: "Dotted", + id: "2", + thumbnail: Dotted, + }, + { + name: "Dashed", + id: "3", + thumbnail: Dashed, + }, + { + name: "Arrow", + id: "4", + thumbnail: Arrow, + }, + { + name: "Contiuous Arrows", + id: "5", + thumbnail: Arrows, + }, + { + name: "Directional", + id: "6", + thumbnail: Directional, + }, + { + name: "Arc", + id: "7", + thumbnail: Arc, + }, + { + name: "Circle", + id: "8", + thumbnail: Circle, + }, + ]; + + return ( +
+
Properties
+
+ {}} + /> +
+ + {/* Presets */} +
+ + {!collapsePresets && ( +
+ {aisleTypes.map((val) => ( +
+ +
+ ))} +
+ )} +
+ + {/* Texture */} +
+ + + {collapseTexture && ( +
+ {aisleTextureList.map((val) => ( + + ))} +
+ )} +
+
+ ); +}; + +export default AisleProperties; diff --git a/app/src/styles/layout/sidebar.scss b/app/src/styles/layout/sidebar.scss index 3a2dd11..543150f 100644 --- a/app/src/styles/layout/sidebar.scss +++ b/app/src/styles/layout/sidebar.scss @@ -486,9 +486,6 @@ .add-icon { transform: scale(1.1); - - - } .kebab-icon { @@ -539,7 +536,7 @@ gap: 4px; .saved-history-count { - font-size: var(--font-size-tiny) + font-size: var(--font-size-tiny); } } } @@ -556,7 +553,6 @@ gap: 12px; .version-name { - background: var(--background-color); border: 1px solid var(--border-color); color: var(--text-color); @@ -588,7 +584,6 @@ display: flex; flex-direction: column; gap: 6px; - } .saved-by { @@ -597,7 +592,6 @@ gap: 6px; .user-profile { - background: var(--background-color-accent); color: var(--text-button-color); width: 20px; @@ -612,7 +606,6 @@ .user-name { text-transform: capitalize; - } } @@ -625,8 +618,6 @@ } } } - - } .no-event-selected { @@ -665,7 +656,7 @@ path { stroke: var(--text-button-color); - strokeWidth: 1.3; + stroke-width: 1.3; } } } @@ -686,7 +677,6 @@ max-height: 60vh; .sidebar-right-content-container { - .dataSideBar { .inputs-wrapper { display: flex; @@ -936,7 +926,7 @@ path { stroke: var(--accent-color); - strokeWidth: 1.5px; + stroke-width: 1.5px; } &:hover { @@ -1271,15 +1261,105 @@ } } + .aisle-properties-container { + max-height: 65vh; + overflow: auto; + .aisle-texture-container { + max-height: 40vh; + overflow: auto; + .aisle-list { + width: calc(100% - 8px); + text-align: start; + padding: 4px 6px; + display: flex; + align-items: center; + gap: 6px; + border-radius: #{$border-radius-large}; + margin: 2px 6px; + .texture-display { + height: 34px; + width: 34px; + background: #7e7e7e86; + border-radius: #{$border-radius-large}; + margin-right: 4px; + overflow: hidden; + } + .aisle-color { + text-transform: capitalize; + } + .aisle-brief { + font-size: var(--font-size-small); + color: var(--input-text-color); + } + &.selected { + background: var(--background-color-accent); + color: var(--text-button-color); + &:hover { + background: var(--background-color-accent); + } + } + &:hover { + background: var(--background-color-secondary); + } + } + } + .value-field-container { + margin: 0; + } + .presets-list-container { + display: flex; + flex-wrap: wrap; + gap: 6px; + padding: 6px; + padding-left: 7px; + .preset-list { + background: #444; + height: 90px; + width: 90px; + border-radius: #{$border-radius-large}; + overflow: hidden; + .thumbnail { + height: 100%; + width: 100%; + border-radius: #{$border-radius-large}; + outline-offset: -1px; + img { + height: 100%; + width: 100%; + object-fit: cover; + transition: all 0.2s; + } + &.selected { + outline: 2px solid var(--border-color-accent); + outline-offset: -2px; + &:hover { + outline: 2px solid var(--border-color-accent); + img { + transform: scale(1); + } + } + } + &:hover { + outline: 1px solid var(--border-color); + img { + transform: scale(1.1); + } + } + } + } + } + } + .global-properties-container, .analysis-main-container, .asset-properties-container, - .zone-properties-container { + .zone-properties-container, + .aisle-properties-container { .header { @include flex-space-between; padding: 10px 12px; color: var(--text-color); - + width: 100%; .input-value { color: inherit; } @@ -1661,9 +1741,11 @@ width: 100%; height: 100%; font-size: var(--font-size-regular); - background: linear-gradient(0deg, - rgba(37, 24, 51, 0) 0%, - rgba(52, 41, 61, 0.5) 100%); + background: linear-gradient( + 0deg, + rgba(37, 24, 51, 0) 0%, + rgba(52, 41, 61, 0.5) 100% + ); pointer-events: none; backdrop-filter: blur(8px); opacity: 0; @@ -1740,9 +1822,6 @@ } } - - - .versionSaved { min-width: 449px; position: fixed; @@ -1798,7 +1877,6 @@ } button { - font-size: var(--font-size-small); display: flex; justify-content: center; @@ -1810,10 +1888,7 @@ cursor: pointer; } } - - } - } .dismissing { @@ -1821,8 +1896,6 @@ } .edit-version-popup-wrapper { - - height: 100vh; width: 100vw; background: var(--background-color-secondary); @@ -1835,8 +1908,6 @@ border-radius: #{$border-radius-large}; backdrop-filter: blur(15px); outline: 1px solid var(--border-color); - padding: 6px; - display: flex; flex-direction: column; gap: 30px; @@ -1854,7 +1925,6 @@ .version-name, .version-description { - background: var(--background-color); backdrop-filter: blur(20px); border-radius: 20px; @@ -1870,7 +1940,6 @@ right: 8px; font-size: var(--font-size-tiny); color: var(--text-disabled); - } input { @@ -1883,7 +1952,6 @@ .version-description { textarea { - padding: 4px 8px; width: 100%; min-height: 101px; @@ -1900,7 +1968,6 @@ gap: 20px; .save { - display: flex; justify-content: center; align-items: center; @@ -1912,4 +1979,4 @@ } } } -} \ No newline at end of file +}