geoiq-frontend-ui-kit
Version:
This project is a UI kit for GeoIQ's frontend. It's built with React, TypeScript, and Vite.
148 lines (147 loc) • 4.53 kB
JavaScript
import e, { useState as u } from "react";
import { Button as i } from "./index.es7.js";
import { Typography as C } from "./index.es17.js";
import { Dropdown as Z } from "./index.es20.js";
import "clsx";
import "tailwind-merge";
import { Minimize as q, Maximize as F } from "lucide-react";
import "./index.es52.js";
import "./index.es80.js";
import "./index.es26.js";
import "./index.es32.js";
import "react-konva";
import { MAP_LAYER_TYPES as j, MAP_LAYER_CONFIG as g } from "./index.es119.js";
const H = ({
map: t,
mapRef: l,
hideCTA: o = !1,
hideDropPin: n = !1,
isDropActive: c = !1,
isFullScreen: h = !1,
setFullScreen: m,
onToggleIsDropAPin: f,
disableDropPin: b = !1,
mapId: y,
ctaConfig: s,
children: E
}) => {
const N = () => {
t?.setZoom(Number(t?.getZoom()) + 1);
}, v = () => {
t?.setZoom(Number(t?.getZoom()) - 1);
}, x = () => {
l.current && (document.fullscreenElement ? document.exitFullscreen().then(() => m?.(!1)) : l.current.requestFullscreen && l.current.requestFullscreen().then(() => m?.(!0)));
}, [w, M] = u("ROADMAP"), [p, d] = u(null), k = (r) => {
if (t)
if (r) {
if (!p) {
const a = new google.maps.TrafficLayer();
a.setMap(t), d(a);
}
} else
p?.setMap(null), d(null);
}, L = j.map(
({ key: r, label: a, type: _, traffic: T }) => ({
key: r.toLowerCase(),
label: a,
onClick: () => {
t?.setMapTypeId(_), M(r), k(T);
},
icon: /* @__PURE__ */ e.createElement(
"img",
{
src: g[r],
alt: `${a} map`,
width: 24,
height: 24,
className: "mr-2"
}
)
})
);
return /* @__PURE__ */ e.createElement("div", { className: "z-10 mb-2 flex h-[48px] items-center justify-center rounded-[.5rem] bg-light-1 p-1 shadow-lg" }, /* @__PURE__ */ e.createElement("div", { className: "mr-2 box-border flex h-full w-10 items-center justify-center rounded-lg border border-primary-2 p-[2px]" }, /* @__PURE__ */ e.createElement(
Z,
{
header: /* @__PURE__ */ e.createElement(C, { variant: "body2" }, "Map Layers"),
optionGroups: [L],
trigger: /* @__PURE__ */ e.createElement(
"img",
{
src: g[w],
alt: "default map",
className: "box-border h-8"
}
),
container: document.getElementById(y || "")
}
)), E, /* @__PURE__ */ e.createElement(
"div",
{
className: `border-stroke-2 flex h-[90%] items-center justify-center border-l ${n ? "" : "border-r"}`
},
/* @__PURE__ */ e.createElement(i, { variant: "teritiary", onClick: N }, /* @__PURE__ */ e.createElement(
"img",
{
src: "https://frontend-static-files.geoiq.io/strapi/plus_black_da6e5287cf.svg",
alt: "plus icon",
width: 20,
height: 20
}
)),
/* @__PURE__ */ e.createElement(i, { variant: "teritiary", className: "mr-2", onClick: v }, /* @__PURE__ */ e.createElement(
"img",
{
src: "https://frontend-static-files.geoiq.io/strapi/Vector_9d9765da36.svg",
alt: "minus icon",
width: 15,
height: 20
}
)),
/* @__PURE__ */ e.createElement(
i,
{
className: "cursor-pointer",
onClick: x,
variant: "teritiary",
"aria-label": "Toggle Fullscreen"
},
h ? /* @__PURE__ */ e.createElement(q, { className: "w-5 h-5 stroke-light-1" }) : /* @__PURE__ */ e.createElement(F, { className: "w-5 h-5 stroke-light-1" })
)
), !n && /* @__PURE__ */ e.createElement(
"div",
{
className: `border-stroke-2 ml-.5 flex h-[90%] ${o ? "" : "mr-2 border-r"} px-1`
},
/* @__PURE__ */ e.createElement(
i,
{
variant: "teritiary",
className: `flex h-fit items-center justify-center ${c ? "border border-primary-2 bg-primary-1" : ""}`,
onClick: () => f && f(!c),
disabled: b
},
/* @__PURE__ */ e.createElement(
"img",
{
src: "https://frontend-static-files.geoiq.io/strapi/map_pin_ed26828f00.svg",
height: 18,
width: 18,
alt: "Drop Pin"
}
)
)
), !o && s && /* @__PURE__ */ e.createElement("div", null, /* @__PURE__ */ e.createElement(
i,
{
variant: "primary",
size: "md",
onClick: s.ctaCallback,
disabled: o
},
s.ctaLabel
)));
};
export {
H as MapToolbar
};
//# sourceMappingURL=index.es49.js.map