starting map
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@arcgis/core": "^4.28.10",
|
||||
"react": "^18.2.0",
|
||||
"react-device-detect": "^2.2.3",
|
||||
"react-dom": "^18.2.0",
|
||||
|
||||
+9
-2
@@ -1,10 +1,17 @@
|
||||
import { isMobile } from "react-device-detect";
|
||||
import "./App.css";
|
||||
|
||||
import Desktop from "./pages/Desktop/Desktop";
|
||||
import Apartment from "./pages/Mobile/Apartment";
|
||||
import { isMobile } from "react-device-detect";
|
||||
import MapComponent from "./components/Map";
|
||||
|
||||
function App() {
|
||||
return <>{isMobile ? <Apartment /> : <Desktop />}</>;
|
||||
// return <>{isMobile ? <Apartment /> : <Desktop />}</>;
|
||||
return (
|
||||
<>
|
||||
<MapComponent />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export default App;
|
||||
|
||||
@@ -7,7 +7,7 @@ type HelpButtonProps = {
|
||||
const HelpButton = ({ handleOnHelpClick }: HelpButtonProps) => {
|
||||
return (
|
||||
<button
|
||||
className="bg-white border-[#C7BDBA] p-[6px] rounded-full"
|
||||
className="bg-white border-[#C7BDBA] p-[6px] rounded-full h-8 w-8"
|
||||
onClick={handleOnHelpClick}
|
||||
>
|
||||
<HelpIcon />
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
import Color from "@arcgis/core/Color";
|
||||
import { useRef, useEffect } from "react";
|
||||
import Graphic from "@arcgis/core/Graphic";
|
||||
import Mesh from "@arcgis/core/geometry/Mesh";
|
||||
import Point from "@arcgis/core/geometry/Point";
|
||||
import MapView from "@arcgis/core/views/MapView";
|
||||
import Map from "@arcgis/core/Map";
|
||||
|
||||
const MapComponent = () => {
|
||||
const mapRef = useRef(null);
|
||||
|
||||
const point = new Point({
|
||||
longitude: 55,
|
||||
latitude: 25,
|
||||
});
|
||||
|
||||
const mesh = Mesh.createBox(point, {
|
||||
size: {
|
||||
width: 100,
|
||||
height: 50,
|
||||
depth: 50,
|
||||
},
|
||||
});
|
||||
|
||||
const markerSymbol = {
|
||||
type: "simple-marker",
|
||||
color: [226, 119, 40],
|
||||
};
|
||||
|
||||
const pointGraphic = new Graphic({
|
||||
geometry: mesh,
|
||||
symbol: markerSymbol,
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
if (!mapRef?.current) return;
|
||||
const map = new Map({
|
||||
basemap: "osm",
|
||||
});
|
||||
|
||||
const view = new MapView({
|
||||
map: map,
|
||||
container: mapRef.current,
|
||||
center: [55, 25],
|
||||
zoom: 13,
|
||||
});
|
||||
|
||||
view.graphics.add(pointGraphic);
|
||||
|
||||
return () => view && view.destroy();
|
||||
}, []);
|
||||
|
||||
return <div ref={mapRef} className="w-[500px] h-[500px] bg-slate-50"></div>;
|
||||
};
|
||||
|
||||
export default MapComponent;
|
||||
@@ -7,7 +7,7 @@ type ResizeButtonProps = {
|
||||
const ResizeButton = ({ handleOnHelpClick }: ResizeButtonProps) => {
|
||||
return (
|
||||
<button
|
||||
className="bg-white border-[#C7BDBA] p-[6px] rounded-full"
|
||||
className="bg-white border-[#C7BDBA] p-[6px] rounded-full w-8 h-8"
|
||||
onClick={handleOnHelpClick}
|
||||
>
|
||||
<ResizeIcon />
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { useState } from "react";
|
||||
import useStore from "../../../store/store";
|
||||
import useStore from "../store/store";
|
||||
|
||||
type ViewSwitcherProps = {
|
||||
offset?: number;
|
||||
@@ -7,25 +6,24 @@ type ViewSwitcherProps = {
|
||||
};
|
||||
|
||||
const ViewToggle = ({ offset, isDesktop }: ViewSwitcherProps) => {
|
||||
const [selectedViewId, setSelectedViewId] = useState(1);
|
||||
const { sendMessageToUnity } = useStore();
|
||||
const { sendMessageToUnity, setCurrentView, currentView } = useStore();
|
||||
|
||||
const handleOnFirstClick = () => {
|
||||
setSelectedViewId(1);
|
||||
setCurrentView(1);
|
||||
if (sendMessageToUnity) {
|
||||
sendMessageToUnity("LevelSwitcher", "LoadSceneSingle", "Outdoor/A1");
|
||||
}
|
||||
};
|
||||
|
||||
const handleOnSecondClick = () => {
|
||||
setSelectedViewId(2);
|
||||
setCurrentView(2);
|
||||
if (sendMessageToUnity) {
|
||||
sendMessageToUnity("LevelSwitcher", "LoadSceneSingle", "Indoor/A1F1");
|
||||
}
|
||||
};
|
||||
|
||||
const handleOnThirdClick = () => {
|
||||
setSelectedViewId(3);
|
||||
setCurrentView(3);
|
||||
if (sendMessageToUnity) {
|
||||
sendMessageToUnity("LevelSwitcher", "LoadSceneSingle", "Indoor/A1F2");
|
||||
}
|
||||
@@ -38,7 +36,9 @@ const ViewToggle = ({ offset, isDesktop }: ViewSwitcherProps) => {
|
||||
} h-9 px-6 `}
|
||||
>
|
||||
<div
|
||||
className={`even bg-white rounded-[32px] flex text-sm justify-center w-fit border-2 transition-all duration-300 ease-in-out select-none cursor-pointer`}
|
||||
className={`${
|
||||
isDesktop ? "" : "border-2"
|
||||
} even bg-white rounded-[32px] flex text-sm justify-center w-fit transition-all duration-300 ease-in-out select-none cursor-pointer`}
|
||||
style={{
|
||||
opacity: offset ? offset : 1,
|
||||
pointerEvents: `${offset === 0 ? "none" : "auto"}`,
|
||||
@@ -47,7 +47,7 @@ const ViewToggle = ({ offset, isDesktop }: ViewSwitcherProps) => {
|
||||
<div
|
||||
onClick={handleOnFirstClick}
|
||||
className={`${
|
||||
selectedViewId === 1 ? "bg-black text-white" : ""
|
||||
currentView === 1 ? "bg-black text-white" : ""
|
||||
} py-2 px-4 w-fit rounded-[32px] `}
|
||||
>
|
||||
{" "}
|
||||
@@ -56,7 +56,7 @@ const ViewToggle = ({ offset, isDesktop }: ViewSwitcherProps) => {
|
||||
<div
|
||||
onClick={handleOnSecondClick}
|
||||
className={`${
|
||||
selectedViewId === 2 ? "bg-black text-white" : ""
|
||||
currentView === 2 ? "bg-black text-white" : ""
|
||||
} py-2 px-4 w-fit rounded-[32px] `}
|
||||
>
|
||||
{" "}
|
||||
@@ -65,7 +65,7 @@ const ViewToggle = ({ offset, isDesktop }: ViewSwitcherProps) => {
|
||||
<div
|
||||
onClick={handleOnThirdClick}
|
||||
className={`${
|
||||
selectedViewId === 3 ? "bg-black text-white" : ""
|
||||
currentView === 3 ? "bg-black text-white" : ""
|
||||
} py-2 px-4 w-fit rounded-[32px] `}
|
||||
>
|
||||
{" "}
|
||||
@@ -1,13 +1,12 @@
|
||||
import HelpButton from "../../components/HelpButton";
|
||||
import ResizeButton from "../../components/ResizeButton";
|
||||
import ViewToggle from "../../components/mobile/Appartment/ViewToggle";
|
||||
import HelpButton from "../HelpButton";
|
||||
import ResizeButton from "../ResizeButton";
|
||||
import ViewToggle from "../ViewToggle";
|
||||
|
||||
const ButtonPanel = () => {
|
||||
return (
|
||||
<div className="absolute top-0 w-full p-4 flex justify-between">
|
||||
<div className="absolute top-0 w-full p-4 flex justify-between h-10">
|
||||
<div />
|
||||
<ViewToggle isDesktop />
|
||||
{/* <div /> */}
|
||||
<div className="flex gap-2 w-fit">
|
||||
<HelpButton
|
||||
handleOnHelpClick={function (): void {
|
||||
@@ -0,0 +1,19 @@
|
||||
import ImagesIcon from "../../icons/ImagesIcon";
|
||||
|
||||
type ImagesButtonProps = {
|
||||
onClick: () => void;
|
||||
};
|
||||
|
||||
const ImagesButton = ({ onClick }: ImagesButtonProps) => {
|
||||
return (
|
||||
<button
|
||||
onClick={onClick}
|
||||
className="bg-white py-[6px] pr-5 pl-4 rounded-full border-[#C7BDBA] flex gap-1"
|
||||
>
|
||||
<ImagesIcon />
|
||||
Images
|
||||
</button>
|
||||
);
|
||||
};
|
||||
|
||||
export default ImagesButton;
|
||||
@@ -0,0 +1,19 @@
|
||||
import LayoutIcon from "../../icons/LayoutIcon";
|
||||
|
||||
type LayoutButtonProps = {
|
||||
onClick: () => void;
|
||||
};
|
||||
|
||||
const LayoutButton = ({ onClick }: LayoutButtonProps) => {
|
||||
return (
|
||||
<button
|
||||
onClick={onClick}
|
||||
className="bg-white py-[6px] pr-5 pl-4 rounded-full border-[#C7BDBA] flex gap-1"
|
||||
>
|
||||
<LayoutIcon />
|
||||
Layout
|
||||
</button>
|
||||
);
|
||||
};
|
||||
|
||||
export default LayoutButton;
|
||||
@@ -0,0 +1,23 @@
|
||||
import ImagesButton from "./ImagesButton";
|
||||
import LayoutButton from "./LayoutButton";
|
||||
|
||||
const LayoutsButtonContainer = () => {
|
||||
return (
|
||||
<div className="absolute w-full bottom-0 flex justify-end py-5">
|
||||
<div className=" flex gap-2 items-center px-4 font-medium text-sm text-[#050409]">
|
||||
<LayoutButton
|
||||
onClick={function (): void {
|
||||
throw new Error("Function not implemented.");
|
||||
}}
|
||||
/>
|
||||
<ImagesButton
|
||||
onClick={function (): void {
|
||||
throw new Error("Function not implemented.");
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default LayoutsButtonContainer;
|
||||
@@ -0,0 +1,37 @@
|
||||
import { Parameters } from "../../types/appartment";
|
||||
|
||||
type ParameterDescriptionProps = {
|
||||
params: Parameters;
|
||||
};
|
||||
|
||||
const ParameterDescription = ({ params }: ParameterDescriptionProps) => {
|
||||
return (
|
||||
<div className="flex py-6 gap-6 items-center justify-center border">
|
||||
<h2 className="text-[#050409] font-medium text-2xl">{params.type}</h2>
|
||||
<div className="h-8 bg-[#DDD7D6] w-[1px]" />
|
||||
<div className="flex flex-col">
|
||||
<div className="flex gap-4 justify-between">
|
||||
<div className="text-[#666668]">Villa Theme</div>
|
||||
<div>{params.villaTheme}</div>
|
||||
</div>
|
||||
<div className="flex gap-4">
|
||||
<div className="text-[#666668]">Total no. of Bedrooms</div>
|
||||
<div>{params.totalCountBedroms}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="h-8 bg-[#DDD7D6] w-[1px]" />
|
||||
<div className="flex flex-col">
|
||||
<div className="flex gap-4 justify-between">
|
||||
<div className="text-[#666668]">Plot area</div>
|
||||
<div>{params.plotArea}</div>
|
||||
</div>
|
||||
<div className="flex gap-4">
|
||||
<div className="text-[#666668]">Total Build up Area</div>
|
||||
<div>{params.totalBuildUpArea}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default ParameterDescription;
|
||||
@@ -0,0 +1,14 @@
|
||||
import BackIcon from "../../../icons/BackIcon";
|
||||
|
||||
const BackButton = () => {
|
||||
return (
|
||||
<button className="flex w-fit items-center gap-1 py-[6px] pl-2 pr-4 bg-white rounded-full text-sm font-medium border border-[#C7BDBA]">
|
||||
<div className="w-5 h-5 flex items-center justify-center">
|
||||
<BackIcon className="w-[5px] h-[10px]" />
|
||||
</div>
|
||||
Back
|
||||
</button>
|
||||
);
|
||||
};
|
||||
|
||||
export default BackButton;
|
||||
@@ -1,9 +1,8 @@
|
||||
import BackIcon from "../../../icons/BackIcon";
|
||||
import HelpIcon from "../../../icons/HelpIcon";
|
||||
import useStore from "../../../store/store";
|
||||
import PopupModal from "./PopupModal";
|
||||
import HelpPanel from "./HelpPanel";
|
||||
import HelpButton from "../../HelpButton";
|
||||
import BackButton from "./BackButton";
|
||||
|
||||
const ButtonPanel = () => {
|
||||
const { setModal, setPanel } = useStore();
|
||||
@@ -17,19 +16,8 @@ const ButtonPanel = () => {
|
||||
<>
|
||||
{
|
||||
<div className="flex w-full absolute p-4 justify-between top-0 left-0">
|
||||
<button className="flex w-fit items-center gap-1 py-[6px] pl-2 pr-4 bg-white rounded-full text-sm font-medium border border-[#C7BDBA]">
|
||||
<div className="w-5 h-5 flex items-center justify-center">
|
||||
<BackIcon className="w-[5px] h-[10px]" />
|
||||
</div>
|
||||
Back
|
||||
</button>
|
||||
<BackButton />
|
||||
<HelpButton handleOnHelpClick={handleOnHelpClick} />
|
||||
{/* <button
|
||||
className="bg-white border-[#C7BDBA] p-[6px] rounded-full"
|
||||
onClick={handleOnHelpClick}
|
||||
>
|
||||
<HelpIcon />
|
||||
</button> */}
|
||||
</div>
|
||||
}
|
||||
</>
|
||||
|
||||
+3
-3
@@ -2,11 +2,11 @@ import { useState } from "react";
|
||||
import { useSwipeable } from "react-swipeable";
|
||||
import { SliderType } from "../../../types/appartment";
|
||||
|
||||
type SliderProps = {
|
||||
type LayoutSliderProps = {
|
||||
sliders: SliderType[];
|
||||
};
|
||||
|
||||
const Slider = ({ sliders }: SliderProps) => {
|
||||
const LayoutSlider = ({ sliders }: LayoutSliderProps) => {
|
||||
const [offset, setOffset] = useState(0);
|
||||
|
||||
const handleOnRight = () => {
|
||||
@@ -74,4 +74,4 @@ const Slider = ({ sliders }: SliderProps) => {
|
||||
);
|
||||
};
|
||||
|
||||
export default Slider;
|
||||
export default LayoutSlider;
|
||||
@@ -32,7 +32,7 @@ const Parameters = ({ parameters }: ParametersProps) => {
|
||||
Total no. of Bedrooms
|
||||
</div>
|
||||
<div className="w-1/2 text-sm font-medium">
|
||||
{parameters.TotalCountBedroms}
|
||||
{parameters.totalCountBedroms}
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex justify-between gap-4">
|
||||
|
||||
@@ -3,9 +3,11 @@ import { SwipeEventData, useSwipeable } from "react-swipeable";
|
||||
import ButtonSwipperIcon from "../../../icons/ButtonSwipperIcon";
|
||||
import { Parameters as ParametersType } from "../../../types/appartment";
|
||||
import Parameters from "./Parameters";
|
||||
import Slider from "./Slider";
|
||||
// import LayoutSlider from "./LayoutSlider";
|
||||
// import LayoutSlider from "./ImageSlider";
|
||||
import LayoutSlider from "./LayoutSlider";
|
||||
import ImageSlider from "./ImageSlider";
|
||||
import ViewToggle from "./ViewToggle";
|
||||
import ViewToggle from "../../ViewToggle";
|
||||
|
||||
type ViewControllerModalProps = {
|
||||
parameters: ParametersType;
|
||||
@@ -67,7 +69,7 @@ const ViewControllerModal = ({ parameters }: ViewControllerModalProps) => {
|
||||
className="h-[calc(100vh-110px)] overflow-y-scroll relative"
|
||||
onScroll={handleOnScroll}
|
||||
>
|
||||
<Slider sliders={sliders} />
|
||||
<LayoutSlider sliders={sliders} />
|
||||
<Parameters parameters={parameters} />
|
||||
<ImageSlider parameters={parameters} />
|
||||
</div>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import Parameters from "../components/mobile/Appartment/Parameters";
|
||||
import { Parameters } from "../types/appartment";
|
||||
|
||||
const A1MViewParams: Parameters = {
|
||||
type: "A1M",
|
||||
plotArea: "1080 Sq.m",
|
||||
totalBuildUpArea: "472 Sq.m",
|
||||
TotalCountBedroms: 5,
|
||||
totalCountBedroms: 5,
|
||||
villaTheme: "Modern",
|
||||
sliders: [
|
||||
{
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
const ImagesIcon = () => {
|
||||
return (
|
||||
<svg
|
||||
width="20"
|
||||
height="20"
|
||||
viewBox="0 0 20 20"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M11.3886 13.3334H5.83301L7.74273 8.829L9.7219 11.1711M11.3886 13.3334L9.7219 11.1711M11.3886 13.3334L14.1663 13.3334L11.7358 6.66675L9.7219 11.1711"
|
||||
stroke="#050409"
|
||||
strokeWidth="1.5"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
<path
|
||||
d="M3.33301 5.33325L3.33301 14.6666C3.33301 15.7712 4.22844 16.6666 5.33301 16.6666L12.8568 16.6666L14.6663 16.6666C15.7709 16.6666 16.6663 15.7712 16.6663 14.6666L16.6663 5.33325C16.6663 4.22868 15.7709 3.33325 14.6663 3.33325L5.33301 3.33325C4.22844 3.33325 3.33301 4.22868 3.33301 5.33325Z"
|
||||
stroke="#050409"
|
||||
strokeWidth="1.5"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
};
|
||||
|
||||
export default ImagesIcon;
|
||||
@@ -0,0 +1,18 @@
|
||||
const LayoutIcon = () => {
|
||||
return (
|
||||
<svg
|
||||
width="20"
|
||||
height="20"
|
||||
viewBox="0 0 20 20"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M3.33301 15.238L4.08301 15.238L3.33301 15.238ZM3.33301 4.76182L2.58301 4.76182V4.76182L3.33301 4.76182ZM16.6663 4.72518L15.9163 4.72518V4.72518L16.6663 4.72518ZM15.9163 16.6666C15.9163 17.0808 16.2521 17.4166 16.6663 17.4166C17.0806 17.4166 17.4163 17.0808 17.4163 16.6666L15.9163 16.6666ZM12.8568 16.6666L12.8568 17.4166C13.271 17.4166 13.6068 17.0808 13.6068 16.6666L12.8568 16.6666ZM4.76158 16.6666L4.76158 17.4166H4.76158L4.76158 16.6666ZM12.8568 12.8571L13.6068 12.8571C13.6068 12.4428 13.271 12.1071 12.8568 12.1071L12.8568 12.8571ZM10.4527 12.1071C10.0385 12.1071 9.70272 12.4428 9.70272 12.8571C9.70272 13.2713 10.0385 13.6071 10.4527 13.6071L10.4527 12.1071ZM4.72489 3.33325L4.72489 4.08325H4.72489L4.72489 3.33325ZM13.333 3.33325L13.333 2.58325L13.333 3.33325ZM15.2378 3.33325L15.2378 4.08325L15.2378 3.33325ZM7.14253 10.4761L7.14253 11.2261C7.55675 11.2261 7.89253 10.8903 7.89253 10.4761L7.14253 10.4761ZM7.89253 7.234C7.89253 6.81979 7.55675 6.484 7.14253 6.484C6.72832 6.484 6.39253 6.81979 6.39253 7.234L7.89253 7.234ZM13.333 8.57135L13.333 9.32135C13.7472 9.32135 14.083 8.98556 14.083 8.57135L13.333 8.57135ZM11.9044 7.82135C11.4902 7.82135 11.1544 8.15713 11.1544 8.57135C11.1544 8.98556 11.4902 9.32135 11.9044 9.32135L11.9044 7.82135ZM4.08301 15.238L4.08301 4.76182L2.58301 4.76182L2.58301 15.238L4.08301 15.238ZM15.9163 4.72518L15.9163 16.6666L17.4163 16.6666L17.4163 4.72518L15.9163 4.72518ZM12.8568 15.9166L4.76158 15.9166L4.76158 17.4166L12.8568 17.4166L12.8568 15.9166ZM13.6068 16.6666L13.6068 12.8571L12.1068 12.8571L12.1068 16.6666L13.6068 16.6666ZM4.72489 4.08325L13.333 4.08325L13.333 2.58325L4.72489 2.58325L4.72489 4.08325ZM13.333 4.08325L15.2378 4.08325L15.2378 2.58325L13.333 2.58325L13.333 4.08325ZM17.4163 4.72518C17.4163 3.49055 16.4212 2.58325 15.2378 2.58325L15.2378 4.08325C15.6444 4.08325 15.9163 4.36968 15.9163 4.72518L17.4163 4.72518ZM4.08301 4.76182C4.08301 4.35513 4.36942 4.08325 4.72489 4.08325L4.72489 2.58325C3.49023 2.58325 2.58301 3.57839 2.58301 4.76182L4.08301 4.76182ZM2.58301 15.238C2.58301 16.4473 3.5523 17.4166 4.76158 17.4166L4.76158 15.9166C4.38073 15.9166 4.08301 15.6189 4.08301 15.238L2.58301 15.238ZM3.33301 11.2261L7.14253 11.2261L7.14253 9.72611L3.33301 9.72611L3.33301 11.2261ZM7.89253 10.4761L7.89253 7.234L6.39253 7.234L6.39253 10.4761L7.89253 10.4761ZM12.8568 12.1071L10.4527 12.1071L10.4527 13.6071L12.8568 13.6071L12.8568 12.1071ZM12.583 3.33325L12.583 8.57135L14.083 8.57135L14.083 3.33325L12.583 3.33325ZM13.333 7.82135L11.9044 7.82135L11.9044 9.32135L13.333 9.32135L13.333 7.82135Z"
|
||||
fill="#050409"
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
};
|
||||
|
||||
export default LayoutIcon;
|
||||
+2
-1
@@ -1,5 +1,6 @@
|
||||
@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;600&display=swap");
|
||||
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Noto+Sans:wght@500&display=swap");
|
||||
@import "https://js.arcgis.com/4.28/@arcgis/core/assets/esri/themes/light/main.css";
|
||||
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@@ -8,5 +9,5 @@
|
||||
body {
|
||||
font-family: "Montserrat", sans-serif;
|
||||
font-family: "Noto Sans", sans-serif;
|
||||
background-color: #c7bdba;
|
||||
background-color: #f3f2f0;
|
||||
}
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
import { Unity, useUnityContext } from "react-unity-webgl";
|
||||
import useStore from "../../store/store";
|
||||
import { useEffect } from "react";
|
||||
import LoaderModal from "../../components/LoaderModal";
|
||||
import ButtonPanel from "./ButtonPanel";
|
||||
import { ReactUnityEventParameter } from "react-unity-webgl/distribution/types/react-unity-event-parameters";
|
||||
import useStore from "../../store/store";
|
||||
import LoaderModal from "../../components/LoaderModal";
|
||||
import ButtonPanel from "../../components/desktop/ButtonPanel";
|
||||
import ParameterDescription from "../../components/desktop/ParameterDescription";
|
||||
import { A1MViewParams } from "../../consts/viewParams";
|
||||
import LayoutsButtonContainer from "../../components/desktop/LayoutsButtonContainer";
|
||||
|
||||
const Apartment = () => {
|
||||
const { loader, setLoader, setSendMessageToUnity } = useStore();
|
||||
@@ -58,7 +61,9 @@ const Apartment = () => {
|
||||
unityProvider={unityProvider}
|
||||
style={{ width: "100%", height: "100%" }}
|
||||
/>
|
||||
<LayoutsButtonContainer />
|
||||
</div>
|
||||
<ParameterDescription params={A1MViewParams} />
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -1,22 +1,24 @@
|
||||
import { useEffect } from "react";
|
||||
import useStore from "../../store/store";
|
||||
import { ReactUnityEventParameter } from "react-unity-webgl/distribution/types/react-unity-event-parameters";
|
||||
import { Unity, useUnityContext } from "react-unity-webgl";
|
||||
import useStore from "../../store/store";
|
||||
import LoaderModal from "../../components/LoaderModal";
|
||||
import ButtonPanel from "../../components/mobile/Appartment/ButtonPanel";
|
||||
import ViewControllerModal from "../../components/mobile/Appartment/ViewControllerModal";
|
||||
import { A1MViewParams } from "../../consts/viewParams";
|
||||
import { ReactUnityEventParameter } from "react-unity-webgl/distribution/types/react-unity-event-parameters";
|
||||
|
||||
const Apartment = () => {
|
||||
const {
|
||||
modal,
|
||||
loader,
|
||||
panel,
|
||||
setCurrentView,
|
||||
setModal,
|
||||
setPanel,
|
||||
setSendMessageToUnity,
|
||||
setLoader,
|
||||
} = useStore();
|
||||
|
||||
const {
|
||||
unityProvider,
|
||||
isLoaded,
|
||||
@@ -40,11 +42,17 @@ const Apartment = () => {
|
||||
}
|
||||
};
|
||||
|
||||
const handleSetView = (view: ReactUnityEventParameter) => {
|
||||
setCurrentView(view as number);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
addEventListener("SetLoaded", handleSetLoaded);
|
||||
addEventListener("SetView", handleSetView);
|
||||
|
||||
return () => {
|
||||
removeEventListener("SetLoaded", handleSetLoaded);
|
||||
removeEventListener("SetView", handleSetView);
|
||||
};
|
||||
}, []);
|
||||
|
||||
@@ -58,7 +66,14 @@ const Apartment = () => {
|
||||
setModal(<ViewControllerModal parameters={A1MViewParams} />);
|
||||
setPanel(<ButtonPanel />);
|
||||
}
|
||||
}, [isLoaded]);
|
||||
}, [
|
||||
isLoaded,
|
||||
sendMessage,
|
||||
setLoader,
|
||||
setModal,
|
||||
setPanel,
|
||||
setSendMessageToUnity,
|
||||
]);
|
||||
|
||||
return (
|
||||
<>
|
||||
|
||||
@@ -7,6 +7,9 @@ interface StoreType {
|
||||
panel: React.ReactNode | null;
|
||||
modal: React.ReactNode | null;
|
||||
sendMessageToUnity: ((gameObjectName: string, methodName: string, parameter?: ReactUnityEventParameter) => void) | null;
|
||||
currentView: number;
|
||||
|
||||
setCurrentView: (view: number) => void;
|
||||
setModal: (modal: React.ReactNode | null) => void;
|
||||
setPanel: (panel: React.ReactNode | null) => void;
|
||||
setLoader: (loader: React.ReactNode | null) => void;
|
||||
@@ -18,6 +21,9 @@ const useStore = create<StoreType>((set) => ({
|
||||
panel: null,
|
||||
sendMessageToUnity: null,
|
||||
loader: null,
|
||||
currentView: 1,
|
||||
|
||||
setCurrentView: (view) => set(() => ({currentView: view})),
|
||||
setModal: (modal) => set(() => ({ modal: modal })),
|
||||
setPanel: (panel) => set(() => ({ panel: panel })),
|
||||
setSendMessageToUnity: (sendMessageToUnity) => set(() => ({ sendMessageToUnity: sendMessageToUnity })),
|
||||
|
||||
@@ -7,7 +7,7 @@ type Parameters = {
|
||||
type: string;
|
||||
plotArea: string;
|
||||
totalBuildUpArea: string;
|
||||
TotalCountBedroms: number;
|
||||
totalCountBedroms: number;
|
||||
villaTheme: string;
|
||||
sliders: Slider[];
|
||||
perspectiveWorkings: string[]
|
||||
|
||||
@@ -12,6 +12,20 @@
|
||||
resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30"
|
||||
integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==
|
||||
|
||||
"@arcgis/core@^4.28.10":
|
||||
version "4.28.10"
|
||||
resolved "https://registry.yarnpkg.com/@arcgis/core/-/core-4.28.10.tgz#777f699f50cb6955702cdbcd32b1015e19b1cb00"
|
||||
integrity sha512-FKvicMVDwFuKX8JKLqAfukzQU2F3AG7s3tDigTcIC4ApGRbj7Nc/F9dRfPZo+aY1Vl7Sa1FjYlo6tfV93LJ2Eg==
|
||||
dependencies:
|
||||
"@esri/arcgis-html-sanitizer" "~3.0.1"
|
||||
"@esri/calcite-colors" "~6.1.0"
|
||||
"@esri/calcite-components" "^1.9.2"
|
||||
"@popperjs/core" "~2.11.8"
|
||||
"@zip.js/zip.js" "~2.7.29"
|
||||
focus-trap "~7.5.3"
|
||||
luxon "~3.4.3"
|
||||
sortablejs "~1.15.0"
|
||||
|
||||
"@esbuild/android-arm64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622"
|
||||
@@ -154,6 +168,59 @@
|
||||
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b"
|
||||
integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==
|
||||
|
||||
"@esri/arcgis-html-sanitizer@~3.0.1":
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@esri/arcgis-html-sanitizer/-/arcgis-html-sanitizer-3.0.1.tgz#a4feaf3744bdd532012593fdb929b376a22c39cd"
|
||||
integrity sha512-cwZJwsYCJZwtBQU2AmaiIVFg5nZcVwInPYja1/OgC9iKYO+ytZRoc5h+0S9/ygbFNoS8Nd0RX9A85stLX/BgiA==
|
||||
dependencies:
|
||||
xss "1.0.13"
|
||||
|
||||
"@esri/calcite-colors@~6.1.0":
|
||||
version "6.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@esri/calcite-colors/-/calcite-colors-6.1.0.tgz#2d75e859a88772d8de91ccae40cbe29b8a4d27b8"
|
||||
integrity sha512-wHQYWFtDa6c328EraXEVZvgOiaQyYr0yuaaZ0G3cB4C3lSkWefW34L/e5TLAhtuG3zJ/wR6pl5X1YYNfBc0/4Q==
|
||||
|
||||
"@esri/calcite-components@^1.9.2":
|
||||
version "1.11.0"
|
||||
resolved "https://registry.yarnpkg.com/@esri/calcite-components/-/calcite-components-1.11.0.tgz#7e7721f31b6a41761a15d30a8a7b646ed728fd33"
|
||||
integrity sha512-H0ZqX3fEv4i0JCBEZ5SarPpd1KeXvqlEpLTtforfifIYbFAQOshP5fC2tFSL7j5pECyhBuB7rRhBiFeFejpRDw==
|
||||
dependencies:
|
||||
"@floating-ui/dom" "1.5.3"
|
||||
"@stencil/core" "2.22.3"
|
||||
"@types/color" "3.0.5"
|
||||
color "4.2.3"
|
||||
composed-offset-position "0.0.4"
|
||||
dayjs "1.11.10"
|
||||
focus-trap "7.5.4"
|
||||
lodash-es "4.17.21"
|
||||
sortablejs "1.15.0"
|
||||
timezone-groups "0.8.0"
|
||||
|
||||
"@floating-ui/core@^1.4.2":
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.0.tgz#fa41b87812a16bf123122bf945946bae3fdf7fc1"
|
||||
integrity sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==
|
||||
dependencies:
|
||||
"@floating-ui/utils" "^0.2.1"
|
||||
|
||||
"@floating-ui/dom@1.5.3":
|
||||
version "1.5.3"
|
||||
resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.3.tgz#54e50efcb432c06c23cd33de2b575102005436fa"
|
||||
integrity sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==
|
||||
dependencies:
|
||||
"@floating-ui/core" "^1.4.2"
|
||||
"@floating-ui/utils" "^0.1.3"
|
||||
|
||||
"@floating-ui/utils@^0.1.3":
|
||||
version "0.1.6"
|
||||
resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9"
|
||||
integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==
|
||||
|
||||
"@floating-ui/utils@^0.2.1":
|
||||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2"
|
||||
integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==
|
||||
|
||||
"@humanwhocodes/config-array@^0.11.13":
|
||||
version "0.11.14"
|
||||
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
|
||||
@@ -243,11 +310,21 @@
|
||||
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
|
||||
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
|
||||
|
||||
"@popperjs/core@~2.11.8":
|
||||
version "2.11.8"
|
||||
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f"
|
||||
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
|
||||
|
||||
"@remix-run/router@1.14.2":
|
||||
version "1.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.14.2.tgz#4d58f59908d9197ba3179310077f25c88e49ed17"
|
||||
integrity sha512-ACXpdMM9hmKZww21yEqWwiLws/UPLhNKvimN8RrYSqPSvB3ov7sLvAcfvaxePeLvccTQKGdkDIhLYApZVDFuKg==
|
||||
|
||||
"@stencil/core@2.22.3":
|
||||
version "2.22.3"
|
||||
resolved "https://registry.yarnpkg.com/@stencil/core/-/core-2.22.3.tgz#83987e20bba855c450f6d6780e3a20192603f13f"
|
||||
integrity sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==
|
||||
|
||||
"@swc/core-darwin-arm64@1.3.105":
|
||||
version "1.3.105"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.105.tgz#2960f8a87aed01b3850d5c37f05b51d9d3747141"
|
||||
@@ -327,6 +404,25 @@
|
||||
resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.5.tgz#043b731d4f56a79b4897a3de1af35e75d56bc63a"
|
||||
integrity sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==
|
||||
|
||||
"@types/color-convert@*":
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/color-convert/-/color-convert-2.0.3.tgz#e93f5c991eda87a945058b47044f5f0008b0dce9"
|
||||
integrity sha512-2Q6wzrNiuEvYxVQqhh7sXM2mhIhvZR/Paq4FdsQkOMgWsCIkKvSGj8Le1/XalulrmgOzPMqNa0ix+ePY4hTrfg==
|
||||
dependencies:
|
||||
"@types/color-name" "*"
|
||||
|
||||
"@types/color-name@*":
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.3.tgz#c488ac2e519c9795faa0d54e8156d54e66adc4e6"
|
||||
integrity sha512-87W6MJCKZYDhLAx/J1ikW8niMvmGRyY+rpUxWpL1cO7F8Uu5CHuQoFv+R0/L5pgNdW4jTyda42kv60uwVIPjLw==
|
||||
|
||||
"@types/color@3.0.5":
|
||||
version "3.0.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/color/-/color-3.0.5.tgz#658fd9286a44c21dabaa56c2e2f63da3ac15f063"
|
||||
integrity sha512-T9yHCNtd8ap9L/r8KEESu5RDMLkoWXHo7dTureNoI1dbp25NsCN054vOu09iniIjR21MXUL+LU9bkIWrbyg8gg==
|
||||
dependencies:
|
||||
"@types/color-convert" "*"
|
||||
|
||||
"@types/json-schema@^7.0.12":
|
||||
version "7.0.15"
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
|
||||
@@ -461,6 +557,11 @@
|
||||
dependencies:
|
||||
"@swc/core" "^1.3.96"
|
||||
|
||||
"@zip.js/zip.js@~2.7.29":
|
||||
version "2.7.33"
|
||||
resolved "https://registry.yarnpkg.com/@zip.js/zip.js/-/zip.js-2.7.33.tgz#daeb0ab451b360f4584f5f4259ea822d56eaff02"
|
||||
integrity sha512-3Ct8eoIkvkflNEyL3wD3GwJ2ORMobGTGO4v9giq6a4vCBcVmk1qFXtfDN2P9hJ9Eibd4zPKMiRCca4lVu+56Ig==
|
||||
|
||||
acorn-jsx@^5.3.2:
|
||||
version "5.3.2"
|
||||
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
|
||||
@@ -630,16 +731,42 @@ color-convert@^2.0.1:
|
||||
dependencies:
|
||||
color-name "~1.1.4"
|
||||
|
||||
color-name@~1.1.4:
|
||||
color-name@^1.0.0, color-name@~1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
||||
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
||||
|
||||
color-string@^1.9.0:
|
||||
version "1.9.1"
|
||||
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4"
|
||||
integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
|
||||
dependencies:
|
||||
color-name "^1.0.0"
|
||||
simple-swizzle "^0.2.2"
|
||||
|
||||
color@4.2.3:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a"
|
||||
integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==
|
||||
dependencies:
|
||||
color-convert "^2.0.1"
|
||||
color-string "^1.9.0"
|
||||
|
||||
commander@^2.20.3:
|
||||
version "2.20.3"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
||||
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
||||
|
||||
commander@^4.0.0:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
|
||||
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
|
||||
|
||||
composed-offset-position@0.0.4:
|
||||
version "0.0.4"
|
||||
resolved "https://registry.yarnpkg.com/composed-offset-position/-/composed-offset-position-0.0.4.tgz#ca8854abf15e3c235ecf4df125a27fe88af76ea4"
|
||||
integrity sha512-vMlvu1RuNegVE0YsCDSV/X4X10j56mq7PCIyOKK74FxkXzGLwhOUmdkJLSdOBOMwWycobGUMgft2lp+YgTe8hw==
|
||||
|
||||
concat-map@0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||
@@ -659,11 +786,21 @@ cssesc@^3.0.0:
|
||||
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
|
||||
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
|
||||
|
||||
cssfilter@0.0.10:
|
||||
version "0.0.10"
|
||||
resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae"
|
||||
integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==
|
||||
|
||||
csstype@^3.0.2:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
|
||||
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
|
||||
|
||||
dayjs@1.11.10:
|
||||
version "1.11.10"
|
||||
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0"
|
||||
integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==
|
||||
|
||||
debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
|
||||
version "4.3.4"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
|
||||
@@ -927,6 +1064,13 @@ flatted@^3.2.9:
|
||||
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf"
|
||||
integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==
|
||||
|
||||
focus-trap@7.5.4, focus-trap@~7.5.3:
|
||||
version "7.5.4"
|
||||
resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.4.tgz#6c4e342fe1dae6add9c2aa332a6e7a0bbd495ba2"
|
||||
integrity sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==
|
||||
dependencies:
|
||||
tabbable "^6.2.0"
|
||||
|
||||
foreground-child@^3.1.0:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d"
|
||||
@@ -1059,6 +1203,11 @@ inherits@2:
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
||||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||
|
||||
is-arrayish@^0.3.1:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
|
||||
integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
|
||||
|
||||
is-binary-path@~2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
|
||||
@@ -1183,6 +1332,11 @@ locate-path@^6.0.0:
|
||||
dependencies:
|
||||
p-locate "^5.0.0"
|
||||
|
||||
lodash-es@4.17.21:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
|
||||
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
|
||||
|
||||
lodash.merge@^4.6.2:
|
||||
version "4.6.2"
|
||||
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
|
||||
@@ -1207,6 +1361,11 @@ lru-cache@^6.0.0:
|
||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484"
|
||||
integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==
|
||||
|
||||
luxon@~3.4.3:
|
||||
version "3.4.4"
|
||||
resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af"
|
||||
integrity sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==
|
||||
|
||||
merge2@^1.3.0, merge2@^1.4.1:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
||||
@@ -1581,11 +1740,28 @@ signal-exit@^4.0.1:
|
||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
|
||||
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
|
||||
|
||||
simple-swizzle@^0.2.2:
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
|
||||
integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==
|
||||
dependencies:
|
||||
is-arrayish "^0.3.1"
|
||||
|
||||
slash@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
|
||||
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
|
||||
|
||||
sortablejs@1.15.0:
|
||||
version "1.15.0"
|
||||
resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.0.tgz#53230b8aa3502bb77a29e2005808ffdb4a5f7e2a"
|
||||
integrity sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==
|
||||
|
||||
sortablejs@~1.15.0:
|
||||
version "1.15.2"
|
||||
resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.2.tgz#4e9f7bda4718bd1838add9f1866ec77169149809"
|
||||
integrity sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA==
|
||||
|
||||
source-map-js@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
|
||||
@@ -1654,6 +1830,11 @@ supports-preserve-symlinks-flag@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
|
||||
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
|
||||
|
||||
tabbable@^6.2.0:
|
||||
version "6.2.0"
|
||||
resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97"
|
||||
integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==
|
||||
|
||||
tailwindcss@^3.3.5:
|
||||
version "3.4.1"
|
||||
resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.1.tgz#f512ca5d1dd4c9503c7d3d28a968f1ad8f5c839d"
|
||||
@@ -1701,6 +1882,11 @@ thenify-all@^1.0.0:
|
||||
dependencies:
|
||||
any-promise "^1.0.0"
|
||||
|
||||
timezone-groups@0.8.0:
|
||||
version "0.8.0"
|
||||
resolved "https://registry.yarnpkg.com/timezone-groups/-/timezone-groups-0.8.0.tgz#b7bd35322939bed7cfbf0624cc3eeefd0910800d"
|
||||
integrity sha512-t7E/9sPfCU0m0ZbS7Cqw52D6CB/UyeaiIBmyJCokI1SyOyOgA/ESiQ/fbreeFaUG9QSenGlZSSk/7rEbkipbOA==
|
||||
|
||||
to-regex-range@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
||||
@@ -1806,6 +1992,14 @@ wrappy@1:
|
||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
|
||||
|
||||
xss@1.0.13:
|
||||
version "1.0.13"
|
||||
resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.13.tgz#6e48f616128b39f366dfadc57411e1eb5b341c6c"
|
||||
integrity sha512-clu7dxTm1e8Mo5fz3n/oW3UCXBfV89xZ72jM8yzo1vR/pIS0w3sgB3XV2H8Vm6zfGnHL0FzvLJPJEBhd86/z4Q==
|
||||
dependencies:
|
||||
commander "^2.20.3"
|
||||
cssfilter "0.0.10"
|
||||
|
||||
yallist@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
|
||||
|
||||
Reference in New Issue
Block a user