UNPKG

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
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