@geoinsight/react-components 0.8.4 → 0.8.5
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/.yarn/install-state.gz
CHANGED
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Map as MapProps } from "./index.types";
|
|
2
2
|
import "./index.css";
|
|
3
|
-
export declare function MapComponent({ basemap, initialViewState, framework, mapProps, hasSwitchBasemap, layers, controls, }: MapProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare function MapComponent({ basemap, initialViewState, framework, mapProps, hasSwitchBasemap, layers, controls, basemapToken, }: MapProps): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
export default MapComponent;
|
package/dist/cjs/index.js
CHANGED
|
@@ -395,7 +395,7 @@ const INITIAL_VIEW_STATE = {
|
|
|
395
395
|
pitch: 0,
|
|
396
396
|
bearing: 0,
|
|
397
397
|
};
|
|
398
|
-
function MapComponent({ basemap, initialViewState, framework, mapProps, hasSwitchBasemap = true, layers, controls = {}, }) {
|
|
398
|
+
function MapComponent({ basemap, initialViewState, framework, mapProps, hasSwitchBasemap = true, layers, controls = {}, basemapToken, }) {
|
|
399
399
|
const _layers = layers && layers.map(({ type, layer }) => new Layers__namespace[type](layer));
|
|
400
400
|
const theme = useTheme();
|
|
401
401
|
const { "bottom-right": bottomRight, "bottom-left": bottomLeft, ..._controls } = controls;
|
|
@@ -404,8 +404,8 @@ function MapComponent({ basemap, initialViewState, framework, mapProps, hasSwitc
|
|
|
404
404
|
theme.switchDataTheme(theme.dataTheme === "dark" ? "light" : "dark");
|
|
405
405
|
};
|
|
406
406
|
return framework === "deck.gl" ? (jsxRuntime.jsx("div", { className: "map", children: jsxRuntime.jsxs(DeckGL, { initialViewState: initialViewState || INITIAL_VIEW_STATE, controller: true, layers: _layers, children: [jsxRuntime.jsx(reactMapGl.Map, { reuseMaps: true, mapLib: maplibregl, mapStyle: basemap || theme.dataTheme === "dark"
|
|
407
|
-
? `https://api.maptiler.com/maps/darkmatter/style.json?key=${process.env.STORYBOOK_OPEN_TILES_TOKEN}`
|
|
408
|
-
: `https://api.maptiler.com/maps/positron/style.json?key=${process.env.STORYBOOK_OPEN_TILES_TOKEN}`, preventStyleDiffing: true }), Object.keys(_controls).map((key) => {
|
|
407
|
+
? `https://api.maptiler.com/maps/darkmatter/style.json?key=${basemapToken || process.env.STORYBOOK_OPEN_TILES_TOKEN}`
|
|
408
|
+
: `https://api.maptiler.com/maps/positron/style.json?key=${basemapToken || process.env.STORYBOOK_OPEN_TILES_TOKEN}`, preventStyleDiffing: true }), Object.keys(_controls).map((key) => {
|
|
409
409
|
return jsxRuntime.jsx(MapControl, { position: key, children: _controls[key] });
|
|
410
410
|
}), jsxRuntime.jsx(MapControl, { position: "bottom-left", children: hasSwitchBasemap ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [bottomLeft, jsxRuntime.jsx(Button, { mode: "icon", size: "small", onClick: handleToggle, children: theme.dataTheme === "dark" ? (jsxRuntime.jsx(fi.FiSun, { size: "1.25rem" })) : (jsxRuntime.jsx(fi.FiMoon, { size: "1.25rem", color: "var(--color-black)" })) })] })) : (bottomLeft) }), jsxRuntime.jsxs(MapControl, { position: "bottom-right", children: [bottomRight, jsxRuntime.jsxs("div", { className: "map__attribution", children: [jsxRuntime.jsx(Button, { as: "link", href: "https://www.maptiler.com/copyright/", target: "_blank", children: "\u00A9 MapTiler" }), jsxRuntime.jsx(Button, { as: "link", href: "https://www.openstreetmap.org/copyright", target: "_blank", children: "\u00A9 OpenStreetMap contributors" })] })] })] }) })) : framework === "mapboxgl" ? (jsxRuntime.jsx("div", { children: "Coming soon..." })) : (
|
|
411
411
|
// <MapboxMap />
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/utils/recursive.ts","../../src/context/accordion/index.tsx","../../src/components/accordion/accordion.tsx","../../src/components/accordion/accordion-item.tsx","../../src/components/button/index.tsx","../../src/context/theme/index.tsx","../../src/components/accordion/accordion-button.tsx","../../src/components/accordion/accordion-content.tsx","../../src/components/form/index.tsx","../../src/components/input/index.tsx","../../src/components/form/FormInput.tsx","../../src/components/text-area/index.tsx","../../src/components/form/FormTextArea.tsx","../../src/components/select/index.tsx","../../src/components/form/FormSelect.tsx","../../src/components/loading/index.tsx","../../src/components/modal/index.tsx","../../src/components/map-control/index.tsx","../../src/components/map/index.tsx","../../src/context/loading/index.tsx","../../src/context/modal/index.tsx"],"sourcesContent":["import { Children, ReactNode, cloneElement, isValidElement } from \"react\";\nimport { ToggleArray } from \"../components/accordion/index.types\";\n\nlet uniqueId = (function () {\n let num = 0;\n return function (prefix: string | number) {\n prefix = String(prefix) || '';\n num += 1;\n return prefix + num;\n }\n}\n ());\n\nexport function recursiveChildren(\n children: ReactNode | ReactNode[],\n i = 0\n): ReactNode {\n return Children.map(children, (child, index) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n if (child.props.children) {\n return cloneElement(child, {\n ...child.props,\n children: recursiveChildren(child.props.children, i++),\n ...((child?.type as any)?.name === \"AccordionItem\" && {\n label: uniqueId(\"id_\")// `${(child?.type as any)?.name}-${index}-${i}`,\n }),\n });\n } else {\n return child;\n }\n });\n}\n\nexport function recursiveToggle(\n children: ReactNode[],\n toggleArray: ToggleArray = {},\n i = 0,\n props: { expanded: \"all\" | \"none\" | \"custom\" }\n) {\n if (\n (children && typeof children === \"string\") ||\n (Array.isArray(children) && typeof children[0] === \"string\")\n ) {\n return;\n }\n\n for (const child of children) {\n if (isValidElement(child)) {\n if ((child?.type as any)?.name === \"AccordionItem\" && child.props.label) {\n toggleArray[child.props.label] = {\n isToggle:\n props.expanded === \"all\"\n ? true\n : props.expanded === \"none\"\n ? false\n : props.expanded === \"custom\"\n ? child?.props.isExpanded\n : false,\n depth: i,\n paddingLeft: `${16 * i}px`,\n };\n }\n\n if (\n typeof child.props.children !== \"string\" &&\n child.props.children.find(\n (v: { type: { name: string } }) =>\n v?.type?.name === \"AccordionItem\"\n )\n ) {\n recursiveToggle(\n Array.isArray(child.props.children)\n ? child.props.children\n : [child.props.children],\n toggleArray,\n i + 1,\n props\n );\n }\n }\n }\n\n return toggleArray;\n}\n","import React, {\n Dispatch,\n ReactNode,\n SetStateAction,\n createContext,\n useContext,\n useMemo,\n useState,\n} from \"react\";\nimport { Accordion, ToggleArray } from \"../../components/accordion/index.types\";\nimport { recursiveChildren, recursiveToggle } from \"../../utils/recursive\";\n\ninterface State {\n toggle?: ToggleArray;\n setToggle: (prev: any) => void;\n}\n\nconst AccordionContext = createContext<State | undefined>(undefined);\n\nfunction AccordionProvider({ children, expanded = \"all\" }: Accordion) {\n const newChildren = useMemo(()=> recursiveChildren(children, 0), []);\n const [toggle, _setToggle] = useState(\n recursiveToggle(newChildren as ReactNode[], {}, 0, { expanded })\n );\n\n const setToggle = (prev: any) => {\n _setToggle(prev)\n };\n\n return (\n <AccordionContext.Provider value={{ toggle, setToggle }}>\n <div className=\"accordion\">{newChildren}</div>\n </AccordionContext.Provider>\n );\n}\n\nfunction useAccordion() {\n const context = useContext(AccordionContext);\n\n if (context === undefined) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n\n return context;\n}\n\nexport { useAccordion, AccordionContext, AccordionProvider };\n","import \"./index.css\";\nimport { Accordion as AccordionProps } from \"./index.types\";\nimport { AccordionProvider } from \"../../context/accordion\";\n\nexport function Accordion({\n children,\n expanded = \"all\",\n // defaultValue,\n // selectValue,\n}: AccordionProps) {\n // const { dataTheme } = useTheme();\n\n return (\n <AccordionProvider expanded={expanded}>{children}</AccordionProvider>\n );\n}\n\nexport default Accordion;\n","import { Children, cloneElement } from \"react\";\nimport \"./index.css\";\nimport { AccordionItem as AccordionItemProps } from \"./index.types\";\nimport { useAccordion } from \"../../context/accordion\";\nimport clsx from \"clsx\";\n\nexport function AccordionItem({\n children,\n className,\n label,\n isExpanded = false,\n}: AccordionItemProps) {\n const { toggle } = useAccordion();\n\n return (\n <div\n className={clsx(\"accordion-item\", className)}\n style={{\n paddingLeft: toggle && label && toggle[label]?.paddingLeft,\n }}\n >\n {Children.map(children, (child) =>\n cloneElement(child as any, {\n toggle: toggle,\n // setToggle: setToggle,\n ...((child as any)?.type?.name !== \"AccordionItem\" && {\n label: label,\n }),\n isExpanded: isExpanded,\n })\n )}\n </div>\n );\n}\n\nexport default AccordionItem;\n","import clsx from \"clsx\";\nimport { ButtonAsButton, ButtonAsLink } from \"./index.types\";\nimport \"./index.css\";\nimport { ReactNode } from \"react\";\n\nconst Anchor = ({\n Custom,\n children,\n ...rest\n}: {\n Custom?: React.ComponentClass<any>;\n children?: ReactNode;\n}) =>\n Custom ? <Custom {...rest}>{children}</Custom> : <a {...rest}>{children}</a>;\n\nexport function Button({\n children = \"Click me\",\n className = \"\",\n icon = undefined,\n isNewWindow = false,\n mode = \"primary\",\n size = \"medium\",\n as = \"button\",\n CustomAnchor,\n ...rest\n}: ButtonAsButton | ButtonAsLink): JSX.Element {\n return as === \"link\" ? (\n <Anchor\n Custom={CustomAnchor}\n {...(isNewWindow && { target: \"_blank\" })}\n className={clsx(\n `button ${className}`,\n mode === \"secondary\" ? `button button__${mode}` : \"button__link\",\n `button__${size}`,\n )}\n {...(rest as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {children}\n {icon}\n </Anchor>\n ) : (\n <button\n className={clsx(\n \"button\",\n `button__${mode}`,\n `button__${size}`,\n className\n )}\n {...(rest as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n >\n {children}\n {icon}\n </button>\n );\n}\n\nexport default Button;\n","import { DataPalette } from \"data-palette\";\nimport React, {\n createContext,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\ntype DataTheme = \"light\" | \"dark\";\n\ntype State = {\n dataTheme?: DataTheme;\n switchDataTheme: (mode: DataTheme) => void;\n dataPalette?: DataPalette;\n switchDataPalette: (mode: DataPalette) => void;\n};\ntype ThemeProviderProps = {\n children: React.ReactNode;\n dataTheme?: DataTheme;\n dataPalette?: DataPalette;\n};\n\nconst ThemeContext = createContext<State | undefined>(undefined);\n\nfunction ThemeProvider({\n children,\n dataTheme: dataThemeProp,\n dataPalette: dataPaletteProp = \"water\",\n}: ThemeProviderProps) {\n const [dataTheme, setDataTheme] = useState<DataTheme>();\n const [dataPalette, setDataPalette] = useState<DataPalette>();\n\n useEffect(() => {\n if (dataPaletteProp) {\n switchDataPalette(dataPaletteProp);\n }\n }, [dataPaletteProp]);\n\n useEffect(() => {\n if (dataThemeProp) {\n switchDataTheme(dataThemeProp);\n }\n }, [dataThemeProp]);\n\n useEffect(() => {\n if (window.matchMedia) {\n if (localStorage.getItem(\"data-theme\")) {\n document.documentElement.setAttribute(\n \"data-theme\",\n localStorage.getItem(\"data-theme\") as string\n );\n setDataTheme(localStorage.getItem(\"data-theme\") as DataTheme);\n } else if (window.matchMedia(\"(prefers-color-scheme: dark)\").matches) {\n document.documentElement.setAttribute(\"data-theme\", \"dark\");\n setDataTheme(\"dark\");\n }\n }\n }, []);\n\n const switchDataTheme = (mode: DataTheme) => {\n document.documentElement.setAttribute(\"data-theme\", mode);\n setDataTheme(mode);\n localStorage.setItem(\"data-theme\", mode);\n };\n\n const switchDataPalette = (mode: DataPalette) => {\n document.documentElement.setAttribute(\"data-palette\", mode);\n setDataPalette(mode);\n localStorage.setItem(\"palette-theme\", mode);\n };\n\n return (\n <ThemeContext.Provider\n value={{ dataTheme, switchDataTheme, dataPalette, switchDataPalette }}\n >\n {children}\n </ThemeContext.Provider>\n );\n}\n\nfunction useTheme() {\n const context = useContext(ThemeContext);\n\n if (context === undefined) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n\n return context;\n}\n\nexport { ThemeContext, ThemeProvider, useTheme };\n","import Button from \"../button\";\nimport \"./index.css\";\nimport { TfiAngleUp, TfiAngleDown } from \"react-icons/tfi\";\nimport {\n AccordionButton as AccordionButtonProps,\n Accordion as AccordionProps,\n ToggleArray,\n} from \"./index.types\";\nimport clsx from \"clsx\";\nimport { useAccordion } from \"../../context/accordion\";\nimport { useTheme } from \"../../context/theme\";\n\nexport function AccordionButton({\n children,\n className,\n is = \"link\",\n label,\n // toggle,\n // setToggle = (prev: any) => void,\n ...rest\n}: AccordionButtonProps) {\n const { dataTheme } = useTheme();\n const { toggle, setToggle } = useAccordion();\n\n const handleToggle = () => {\n setToggle((prev: ToggleArray | undefined): any => {\n if (label) {\n return {\n ...prev,\n [label]: {\n ...(prev && label && prev[label]),\n isToggle: prev && !prev[label].isToggle,\n },\n };\n } else {\n return prev;\n }\n });\n };\n\n return (\n <Button\n as={is}\n className={clsx(\n \"accordion-button\",\n `accordion-button__${is}`,\n `accordion-button__${is}--${dataTheme}`,\n className\n )}\n {...(is !== \"link\" && {\n icon:\n label && toggle && toggle[label].isToggle ? (\n <TfiAngleDown />\n ) : (\n <TfiAngleUp />\n ),\n })}\n {...(is !== \"link\" && { onClick: handleToggle })}\n {...rest}\n >\n {children}\n </Button>\n );\n}\n\nexport default AccordionButton;\n","import clsx from \"clsx\";\nimport \"./index.css\";\nimport { AccordionContent as AccordionContentProps } from \"./index.types\";\n\nexport const AccordionContent = function AccordionContent({\n children,\n className,\n label,\n toggle,\n}: AccordionContentProps) {\n return (\n label &&\n toggle &&\n toggle[label].isToggle && (\n <div className={clsx(\"accordion-content\", className)}>{children}</div>\n )\n );\n};\n\nexport default AccordionContent;\n","import { Form as FormProps, ReactNodeControlled } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\nimport { BsCheckCircleFill, BsXCircleFill } from \"react-icons/bs\";\nimport { Controller, FormProvider, useForm } from \"react-hook-form\";\nimport { Children, cloneElement, createElement, useEffect, useState } from \"react\";\n\n// how do I solve reseting the form outside the form\nexport function Form({\n children,\n onSubmit,\n submitButton = {\n label: \"Submit\",\n },\n initialState,\n ...rest\n}: FormProps) {\n const methods = useForm(initialState);\n const {\n formState: { isValid },\n } = methods;\n const [result, setResult] = useState<{\n message?: string;\n isSuccess: boolean;\n }>({\n message: \"\",\n isSuccess: false,\n });\n\n return (\n <FormProvider {...methods}>\n <form\n className=\"form\"\n onSubmit={methods.handleSubmit((data) => onSubmit(data, methods, setResult))}\n {...rest}\n >\n {children}\n {result.message && (\n <div className=\"form__message\">\n {result.isSuccess ? (\n <BsCheckCircleFill\n color=\"var(--color-success)\"\n size={48}\n ></BsCheckCircleFill>\n ) : (\n <BsXCircleFill\n color={\"var(--color-danger)\"}\n size={48}\n ></BsXCircleFill>\n )}\n {result.message}\n </div>\n )}\n <Button type=\"submit\" disabled={!isValid}>\n {submitButton.label}\n </Button>\n </form>\n </FormProvider>\n );\n}\n\nexport default Form;\n","import { Input as InputProps } from \"./index.types\";\nimport \"./index.css\";\nimport clsx from \"clsx\";\n\nexport function Input({\n inputClassName = \"\",\n classNameGroup = \"\",\n error = {\n is: false,\n message: \"\",\n },\n inputRef,\n styleGroup,\n placeholder = \"Insert value\",\n label,\n labelClass,\n icon,\n ...rest\n}: InputProps) {\n return (\n <div className={clsx(\"input-group\", classNameGroup)} style={styleGroup}>\n <div className=\"input__header\">\n {label && <label className={labelClass}>{label}</label>}\n {error && error.is && (\n <span className=\"input__header--error\">{error.message as any}</span>\n )}\n </div>\n <div className=\"input-subgroup\">\n {icon?.element && icon.position === \"left\" && (\n <div\n className={clsx(\"input__icon\", \"input__icon--left\", icon.className)}\n >\n {icon.element}\n </div>\n )}\n <input\n ref={inputRef}\n className={clsx(\n \"input\",\n error.is ? \"input--error\" : \"\",\n icon?.position === \"left\" && \"input--icon\",\n inputClassName\n )}\n placeholder={placeholder}\n {...rest}\n />\n {icon?.element && icon.position !== \"left\" && (\n <div\n className={clsx(\n \"input__icon\",\n \"input__icon--right\",\n // `input__icon--${icon.position || \"right\"}`,\n icon.className\n )}\n >\n {icon.element}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport default Input;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport Input from \"../input\";\nimport { FormInputs } from \"./index.types\";\n\nexport function FormInput({ name, isRequired, error, defaultValue, ...rest }: FormInputs) {\n const { control } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field, fieldState: { error } }) => {\n return (\n <Input\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n defaultValue={defaultValue}\n {...field}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormInput;\n","import React, { MutableRefObject, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { TbArrowsDiagonal2 } from \"react-icons/tb\";\nimport { TextArea as TextAreaProps } from \"./index.types\";\nimport \"./index.css\";\n\nexport function TextArea({\n className = \"\",\n disabled = true,\n hasToggleButton = true,\n hideHeight = \"5rem\",\n placeholder = \"Insert value\",\n showHeight = \"10rem\",\n style = {},\n textareaClassName = \"\",\n label,\n labelClass,\n error = {\n is: false,\n message: \"\",\n },\n ...rest\n}: TextAreaProps): JSX.Element {\n const ref = useRef() as MutableRefObject<HTMLTextAreaElement>;\n const [isShow, setIsShow] = useState<boolean>(false);\n\n const handleClickToggle = () => {\n if (ref && ref.current) {\n if (isShow) {\n ref.current.style.height = hideHeight;\n } else {\n ref.current.style.height = showHeight; //(48 + ref.current.scrollHeight) + 'px';\n }\n setIsShow((prev) => !prev);\n }\n };\n\n return (\n <div className={clsx(\"textarea\", className)} style={style}>\n <div className=\"textarea__header\">\n {label && <label className={labelClass}>{label}</label>}\n {error && error.is && (\n <span className=\"textarea__header--error\">\n {error.message as any}\n </span>\n )}\n </div>\n <textarea\n ref={ref}\n className={clsx(\n \"textarea__input\",\n error.is && \"textarea__input--error\",\n textareaClassName\n )}\n style={\n {\n height: hasToggleButton ? hideHeight : showHeight,\n } as React.CSSProperties\n }\n placeholder={placeholder}\n disabled={disabled}\n {...rest}\n />\n {hasToggleButton && (\n <button\n type=\"button\"\n className={clsx(\n \"textarea__button\",\n isShow && \"textarea__button--show\",\n error.is && \"textarea__button--error\",\n )}\n onClick={handleClickToggle}\n disabled={disabled}\n >\n <TbArrowsDiagonal2 size=\"1.5rem\" />\n </button>\n )}\n </div>\n );\n}\n\nexport default TextArea;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport TextArea from \"../text-area\";\nimport { FormInputs } from \"./index.types\";\n\nexport function FormTextArea({ name, isRequired, error, ...rest }: FormInputs) {\n const { control } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field, fieldState: { error } }) => {\n return (\n <TextArea\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n {...field}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormTextArea;\n","import { useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Select as SelectProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\nimport { TfiAngleDown } from \"react-icons/tfi\";\nimport Input from \"../input\";\n\nexport function Select({\n inputClassName = \"\",\n classNameGroup = \"\",\n options,\n styleGroup,\n defaultValue,\n // inputProps,\n setFormSelected,\n clearError,\n resetForm,\n onFormBlur,\n handleSelect,\n ...rest\n}: SelectProps) {\n const [isOpen, setIsOpen] = useState(false);\n const [value, setValue] = useState(defaultValue || (options && options[0]));\n const [filteredOptions, setFilteredOptions] = useState(options);\n const { name } = rest;\n\n const handleOpen = () => {\n setIsOpen(true);\n };\n\n const handleClose = () => {\n setIsOpen(false);\n };\n\n const handleInputClose = () => {\n if (onFormBlur) {\n onFormBlur();\n }\n setIsOpen(false);\n };\n\n const handleToggle = () => {\n setIsOpen((prev) => !prev);\n };\n\n const handleValueChange = (e: { target: { value: string } }) => {\n const { value } = e.target;\n setValue(value);\n // for autocomplete\n // const { value } = e.target;\n // setValue(value);\n };\n\n const handleSelectChange = (e: { target: { name: string } }) => {\n const { name: value } = e.target;\n\n if (setFormSelected) {\n setFormSelected(name, value);\n if(clearError) {\n clearError(name)\n }\n\n if(resetForm) {\n resetForm()\n }\n } else {\n setValue(value);\n }\n\n if (handleSelect) {\n handleSelect(value);\n }\n\n handleClose();\n };\n // for autocomplete\n // useEffect(() => {\n // if (value) {\n // console.log(filteredOptions);\n // setFilteredOptions((prev: string[]) => {\n // return options\n // .filter((option: string) => option.includes(value))\n // });\n // } else {\n // setFilteredOptions(options)\n // }\n // }, [value]);\n\n return (\n <div className={clsx(\"select-group\", classNameGroup)} style={styleGroup}>\n <Input\n inputClassName={clsx(\"select\", inputClassName)}\n value={value}\n placeholder=\"Select a value\"\n icon={{\n className: \"select__arrow\",\n element: (\n <Button\n type=\"button\"\n mode=\"icon\"\n className=\"select__arrow-button\"\n onClick={handleToggle}\n onBlur={handleClose}\n >\n <TfiAngleDown size={24} color=\"var(--color-black)\" />\n </Button>\n ),\n }}\n onFocus={handleOpen}\n onBlur={handleInputClose}\n onChange={handleValueChange}\n autoComplete=\"off\"\n {...rest}\n // name={inputProps?.name}\n // {...inputProps}\n />\n {isOpen && (\n <div className=\"select__box\">\n {(filteredOptions as string[]).map(\n (option: string, index: number) => (\n <Button\n key={`index-${index}`}\n type=\"button\"\n mode=\"secondary\"\n className=\"select__option\"\n name={option}\n onMouseDown={handleSelectChange as any}\n >\n {option}\n </Button>\n )\n )}\n </div>\n )}\n </div>\n );\n}\n\nexport default Select;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport Select from \"../select\";\nimport { FormSelect as FormSelectProps } from \"./index.types\";\n\nexport function FormSelect({\n name,\n isRequired,\n error,\n fieldsToReset,\n ...rest\n}: FormSelectProps) {\n const { control, setValue, clearErrors, unregister, resetField } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field: { onBlur, ...restField }, fieldState: { error } }) => {\n return (\n <Select\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n setFormSelected={setValue}\n resetForm={()=> fieldsToReset && fieldsToReset.map((field) => {\n setValue(field, undefined)\n unregister(field)\n })}\n clearError={clearErrors}\n onFormBlur={onBlur}\n {...restField}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormSelect;\n","import { Loading as LoadingProps } from \"./index.types\";\nimport \"./index.css\";\n\nexport function Loading({ img, children }: LoadingProps) {\n return (\n <div className=\"loading\">\n <img src={img ? img : \"../../stories/assets/loading.gif\"} />\n {children}\n </div>\n );\n}\n\nexport default Loading;\n","import { IoClose } from \"react-icons/io5\";\nimport { Modal as ModalProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\n\nexport function Modal({\n modalref,\n children,\n title,\n subtitle,\n footer,\n hasCloseButton = true,\n handleClose,\n}: ModalProps) {\n return (\n <>\n <div className=\"modal-overlay\" />\n <div ref={modalref} className=\"modal\">\n {hasCloseButton && (\n <Button\n mode=\"secondary\"\n className=\"modal__close\"\n size=\"small\"\n onClick={handleClose}\n >\n <IoClose />\n </Button>\n )}\n <div className=\"modal__content\">\n {title && (\n <div className=\"modal__header\">\n <h3>{title}</h3>\n <h6>{subtitle}</h6>\n </div>\n )}\n <div className=\"modal__children\">{children}</div>\n {footer && <div className=\"modal__footer\">{footer}</div>}\n </div>\n </div>\n </>\n );\n}\n\nexport default Modal;\n","import { MapControl as MapControlProps } from \"./index.types\";\nimport \"./index.css\";\n\nexport function MapControl({ children, position=\"top-right\" }: MapControlProps) {\n return (\n <div className={`control control--${position}`}>\n {children}\n </div>\n );\n}\n\nexport default MapControl;\n","import DeckGL from \"@deck.gl/react/typed\";\n// import { _GlobeView as GlobeView } from \"@deck.gl/core\";\nimport { Controls, Map as MapProps } from \"./index.types\";\n// @ts-ignore\nimport * as Layers from \"@deck.gl/layers\";\nimport { Map } from \"react-map-gl\";\nimport maplibregl from \"maplibre-gl\";\nimport Button from \"../button\";\nimport { useTheme } from \"../../context/theme\";\nimport { FiMoon, FiSun } from \"react-icons/fi\";\nimport MapControl from \"../map-control\";\nimport \"./index.css\";\nimport { useState } from \"react\";\n// import MapboxMap from \"./MapboxMap\";\n\nconst INITIAL_VIEW_STATE = {\n longitude: -122.41669,\n latitude: 37.7853,\n zoom: 13,\n pitch: 0,\n bearing: 0,\n};\n\nexport function MapComponent({\n basemap,\n initialViewState,\n framework,\n mapProps,\n hasSwitchBasemap = true,\n layers,\n controls = {},\n}: MapProps) {\n const _layers =\n layers && layers.map(({ type, layer }) => new Layers[type as any](layer));\n const theme = useTheme();\n const {\n \"bottom-right\": bottomRight,\n \"bottom-left\": bottomLeft,\n ..._controls\n } = controls as Controls;\n\n const [viewState, setViewState] = useState(INITIAL_VIEW_STATE);\n const handleToggle = () => {\n theme.switchDataTheme(theme.dataTheme === \"dark\" ? \"light\" : \"dark\");\n };\n\n return framework === \"deck.gl\" ? (\n <div className=\"map\">\n <DeckGL\n initialViewState={initialViewState || INITIAL_VIEW_STATE}\n controller={true}\n layers={_layers}\n >\n <Map\n reuseMaps\n mapLib={maplibregl}\n mapStyle={\n basemap || theme.dataTheme === \"dark\"\n ? `https://api.maptiler.com/maps/darkmatter/style.json?key=${process.env.STORYBOOK_OPEN_TILES_TOKEN}`\n : `https://api.maptiler.com/maps/positron/style.json?key=${process.env.STORYBOOK_OPEN_TILES_TOKEN}`\n }\n preventStyleDiffing={true}\n />\n {Object.keys(_controls).map((key) => {\n return <MapControl position={key}>{_controls[key]}</MapControl>;\n })}\n <MapControl position=\"bottom-left\">\n {hasSwitchBasemap ? (\n <>\n {bottomLeft}\n <Button mode=\"icon\" size=\"small\" onClick={handleToggle}>\n {theme.dataTheme === \"dark\" ? (\n <FiSun size=\"1.25rem\" />\n ) : (\n <FiMoon size=\"1.25rem\" color=\"var(--color-black)\" />\n )}\n </Button>\n </>\n ) : (\n bottomLeft\n )}\n </MapControl>\n <MapControl position=\"bottom-right\">\n {bottomRight}\n <div className=\"map__attribution\">\n <Button\n as=\"link\"\n href=\"https://www.maptiler.com/copyright/\"\n target=\"_blank\"\n >\n © MapTiler\n </Button>\n <Button\n as=\"link\"\n href=\"https://www.openstreetmap.org/copyright\"\n target=\"_blank\"\n >\n © OpenStreetMap contributors\n </Button>\n </div>\n </MapControl>\n </DeckGL>\n </div>\n ) : framework === \"mapboxgl\" ? (\n <div>Coming soon...</div>\n ) : (\n // <MapboxMap />\n <div>The component needs a framework</div>\n );\n}\n\nexport default MapComponent;\n","import React, {\n ReactNode,\n RefObject,\n createContext,\n useContext,\n useEffect,\n useReducer,\n} from \"react\";\nimport Loading from \"../../components/loading\";\n\ntype Action = {\n type: \"set_ref\" | \"start_loading\" | \"stop_loading\" | \"set_message\";\n ref?: RefObject<ReactNode>;\n message?: string;\n};\ntype State = {\n isLoading: boolean;\n message?: string | React.ReactNode;\n ref?: RefObject<ReactNode>;\n};\ntype Context = {\n state: State;\n setRef: (ref: RefObject<ReactNode>) => void;\n setMessage: (message: string) => void;\n startLoading: () => void;\n stopLoading: () => void;\n};\ntype LoadingProviderProps = { children: React.ReactNode };\ntype UseLoadingProps = {\n ref?: RefObject<ReactNode>;\n message?: string;\n};\n\nconst LoadingContext = createContext<Context | undefined>(undefined);\n\nfunction loadingReducer(state: State, action: Action) {\n switch (action.type) {\n case \"set_ref\": {\n return { ...state, ref: action.ref };\n }\n case \"start_loading\": {\n return { ...state, isLoading: true };\n }\n case \"stop_loading\": {\n return { ...state, isLoading: false };\n }\n case \"set_message\": {\n return { ...state, message: action.message };\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\nfunction LoadingProvider({ children }: LoadingProviderProps) {\n const [{ isLoading, message, ref }, dispatch] = useReducer(loadingReducer, {\n isLoading: false,\n message: \"Loading\",\n ref: undefined,\n });\n\n const setRef = (ref: RefObject<ReactNode>) => {\n dispatch({ type: \"set_ref\", ref });\n };\n\n const setMessage = (message: string) => {\n dispatch({ type: \"set_message\", message });\n };\n\n const startLoading = () => {\n dispatch({ type: \"start_loading\" });\n };\n\n const stopLoading = () => {\n dispatch({ type: \"stop_loading\" });\n };\n\n return (\n <LoadingContext.Provider\n value={{\n state: { ref, message, isLoading },\n setMessage,\n setRef,\n startLoading,\n stopLoading,\n }}\n >\n {!ref && <Loading>{message}</Loading>}\n {children}\n </LoadingContext.Provider>\n );\n}\n\nfunction useLoading({ ref, message }: UseLoadingProps = {}) {\n const context = useContext(LoadingContext);\n\n // only happens if there is an initial mode value.\n useEffect(() => {\n ref && context?.setRef(ref);\n message && context?.setMessage(message);\n }, []);\n\n if (context === undefined) {\n throw new Error(\"useLoading must be used within a LoadingProvider\");\n }\n\n return context;\n}\n\nexport { LoadingContext, LoadingProvider, useLoading };\n","import React, {\n ReactNode,\n RefObject,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useReducer,\n useRef,\n} from \"react\";\nimport Modal from \"../../components/modal\";\n// import Modal from \"../../components/Modal\";\n\ntype Modal = {\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n content?: React.ReactNode;\n hasCloseButton?: boolean;\n footer?: React.ReactNode;\n};\n\ntype Action = {\n type: \"open_modal\" | \"close_modal\";\n modal?: Modal;\n};\n\ninterface State extends Modal {\n isModal: boolean;\n}\n\ntype Context = {\n state: State;\n openModal: (modal?: Modal) => void;\n closeModal: () => void;\n};\n\ntype ModalProviderProps = { children: React.ReactNode };\n\ntype UseModalProps = {};\n\ninterface HTMLEvent extends Event {\n target: HTMLElement;\n}\n\nconst ModalContext = createContext<Context | undefined>(undefined);\n\nfunction modalReducer(state: State, action: Action) {\n switch (action.type) {\n case \"open_modal\": {\n return { ...state, ...action.modal, isModal: true };\n }\n case \"close_modal\": {\n return { ...state, isModal: false };\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\nconst defaultState = {\n subtitle: undefined,\n title: undefined,\n content: undefined,\n hasCloseButton: true,\n footer: undefined,\n};\n\nfunction ModalProvider({ children }: ModalProviderProps) {\n const ref = useRef<HTMLDivElement>(null);\n const [state, dispatch] = useReducer(modalReducer, {\n isModal: false,\n ...defaultState,\n });\n\n const openModal = (modal?: Modal) => {\n dispatch({ type: \"open_modal\", modal });\n };\n\n const closeModal = () => {\n dispatch({ type: \"close_modal\" });\n };\n\n useEffect(() => {\n if (state.isModal) {\n const listener = (e: MouseEvent) => {\n if (\n state.isModal &&\n ref.current &&\n !ref.current.contains(e.target as Node)\n ) {\n closeModal();\n }\n };\n\n document.addEventListener(\"mousedown\", listener);\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n };\n }\n }, [closeModal]);\n\n return (\n <ModalContext.Provider\n value={{\n state,\n openModal,\n closeModal,\n }}\n >\n {children}\n {state.isModal && (\n <Modal\n modalref={ref}\n title={state.title}\n footer={state.footer}\n handleClose={closeModal}\n subtitle={state.subtitle}\n >\n {state.content}\n </Modal>\n )}\n </ModalContext.Provider>\n );\n}\n\nfunction useModal({}: UseModalProps = {}) {\n const context = useContext(ModalContext);\n\n if (context === undefined) {\n throw new Error(\"useModal must be used within a ModalProvider\");\n }\n\n return context;\n}\n\nexport { ModalContext, ModalProvider, useModal };\n"],"names":["Children","isValidElement","cloneElement","createContext","useMemo","useState","_jsx","useContext","_jsxs","useEffect","TfiAngleDown","TfiAngleUp","useForm","FormProvider","BsCheckCircleFill","BsXCircleFill","useFormContext","Controller","useRef","TbArrowsDiagonal2","_Fragment","IoClose","Layers","Map","FiSun","FiMoon","useReducer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/utils/recursive.ts","../../src/context/accordion/index.tsx","../../src/components/accordion/accordion.tsx","../../src/components/accordion/accordion-item.tsx","../../src/components/button/index.tsx","../../src/context/theme/index.tsx","../../src/components/accordion/accordion-button.tsx","../../src/components/accordion/accordion-content.tsx","../../src/components/form/index.tsx","../../src/components/input/index.tsx","../../src/components/form/FormInput.tsx","../../src/components/text-area/index.tsx","../../src/components/form/FormTextArea.tsx","../../src/components/select/index.tsx","../../src/components/form/FormSelect.tsx","../../src/components/loading/index.tsx","../../src/components/modal/index.tsx","../../src/components/map-control/index.tsx","../../src/components/map/index.tsx","../../src/context/loading/index.tsx","../../src/context/modal/index.tsx"],"sourcesContent":["import { Children, ReactNode, cloneElement, isValidElement } from \"react\";\nimport { ToggleArray } from \"../components/accordion/index.types\";\n\nlet uniqueId = (function () {\n let num = 0;\n return function (prefix: string | number) {\n prefix = String(prefix) || '';\n num += 1;\n return prefix + num;\n }\n}\n ());\n\nexport function recursiveChildren(\n children: ReactNode | ReactNode[],\n i = 0\n): ReactNode {\n return Children.map(children, (child, index) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n if (child.props.children) {\n return cloneElement(child, {\n ...child.props,\n children: recursiveChildren(child.props.children, i++),\n ...((child?.type as any)?.name === \"AccordionItem\" && {\n label: uniqueId(\"id_\")// `${(child?.type as any)?.name}-${index}-${i}`,\n }),\n });\n } else {\n return child;\n }\n });\n}\n\nexport function recursiveToggle(\n children: ReactNode[],\n toggleArray: ToggleArray = {},\n i = 0,\n props: { expanded: \"all\" | \"none\" | \"custom\" }\n) {\n if (\n (children && typeof children === \"string\") ||\n (Array.isArray(children) && typeof children[0] === \"string\")\n ) {\n return;\n }\n\n for (const child of children) {\n if (isValidElement(child)) {\n if ((child?.type as any)?.name === \"AccordionItem\" && child.props.label) {\n toggleArray[child.props.label] = {\n isToggle:\n props.expanded === \"all\"\n ? true\n : props.expanded === \"none\"\n ? false\n : props.expanded === \"custom\"\n ? child?.props.isExpanded\n : false,\n depth: i,\n paddingLeft: `${16 * i}px`,\n };\n }\n\n if (\n typeof child.props.children !== \"string\" &&\n child.props.children.find(\n (v: { type: { name: string } }) =>\n v?.type?.name === \"AccordionItem\"\n )\n ) {\n recursiveToggle(\n Array.isArray(child.props.children)\n ? child.props.children\n : [child.props.children],\n toggleArray,\n i + 1,\n props\n );\n }\n }\n }\n\n return toggleArray;\n}\n","import React, {\n Dispatch,\n ReactNode,\n SetStateAction,\n createContext,\n useContext,\n useMemo,\n useState,\n} from \"react\";\nimport { Accordion, ToggleArray } from \"../../components/accordion/index.types\";\nimport { recursiveChildren, recursiveToggle } from \"../../utils/recursive\";\n\ninterface State {\n toggle?: ToggleArray;\n setToggle: (prev: any) => void;\n}\n\nconst AccordionContext = createContext<State | undefined>(undefined);\n\nfunction AccordionProvider({ children, expanded = \"all\" }: Accordion) {\n const newChildren = useMemo(()=> recursiveChildren(children, 0), []);\n const [toggle, _setToggle] = useState(\n recursiveToggle(newChildren as ReactNode[], {}, 0, { expanded })\n );\n\n const setToggle = (prev: any) => {\n _setToggle(prev)\n };\n\n return (\n <AccordionContext.Provider value={{ toggle, setToggle }}>\n <div className=\"accordion\">{newChildren}</div>\n </AccordionContext.Provider>\n );\n}\n\nfunction useAccordion() {\n const context = useContext(AccordionContext);\n\n if (context === undefined) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n\n return context;\n}\n\nexport { useAccordion, AccordionContext, AccordionProvider };\n","import \"./index.css\";\nimport { Accordion as AccordionProps } from \"./index.types\";\nimport { AccordionProvider } from \"../../context/accordion\";\n\nexport function Accordion({\n children,\n expanded = \"all\",\n // defaultValue,\n // selectValue,\n}: AccordionProps) {\n // const { dataTheme } = useTheme();\n\n return (\n <AccordionProvider expanded={expanded}>{children}</AccordionProvider>\n );\n}\n\nexport default Accordion;\n","import { Children, cloneElement } from \"react\";\nimport \"./index.css\";\nimport { AccordionItem as AccordionItemProps } from \"./index.types\";\nimport { useAccordion } from \"../../context/accordion\";\nimport clsx from \"clsx\";\n\nexport function AccordionItem({\n children,\n className,\n label,\n isExpanded = false,\n}: AccordionItemProps) {\n const { toggle } = useAccordion();\n\n return (\n <div\n className={clsx(\"accordion-item\", className)}\n style={{\n paddingLeft: toggle && label && toggle[label]?.paddingLeft,\n }}\n >\n {Children.map(children, (child) =>\n cloneElement(child as any, {\n toggle: toggle,\n // setToggle: setToggle,\n ...((child as any)?.type?.name !== \"AccordionItem\" && {\n label: label,\n }),\n isExpanded: isExpanded,\n })\n )}\n </div>\n );\n}\n\nexport default AccordionItem;\n","import clsx from \"clsx\";\nimport { ButtonAsButton, ButtonAsLink } from \"./index.types\";\nimport \"./index.css\";\nimport { ReactNode } from \"react\";\n\nconst Anchor = ({\n Custom,\n children,\n ...rest\n}: {\n Custom?: React.ComponentClass<any>;\n children?: ReactNode;\n}) =>\n Custom ? <Custom {...rest}>{children}</Custom> : <a {...rest}>{children}</a>;\n\nexport function Button({\n children = \"Click me\",\n className = \"\",\n icon = undefined,\n isNewWindow = false,\n mode = \"primary\",\n size = \"medium\",\n as = \"button\",\n CustomAnchor,\n ...rest\n}: ButtonAsButton | ButtonAsLink): JSX.Element {\n return as === \"link\" ? (\n <Anchor\n Custom={CustomAnchor}\n {...(isNewWindow && { target: \"_blank\" })}\n className={clsx(\n `button ${className}`,\n mode === \"secondary\" ? `button button__${mode}` : \"button__link\",\n `button__${size}`,\n )}\n {...(rest as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {children}\n {icon}\n </Anchor>\n ) : (\n <button\n className={clsx(\n \"button\",\n `button__${mode}`,\n `button__${size}`,\n className\n )}\n {...(rest as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n >\n {children}\n {icon}\n </button>\n );\n}\n\nexport default Button;\n","import { DataPalette } from \"data-palette\";\nimport React, {\n createContext,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\ntype DataTheme = \"light\" | \"dark\";\n\ntype State = {\n dataTheme?: DataTheme;\n switchDataTheme: (mode: DataTheme) => void;\n dataPalette?: DataPalette;\n switchDataPalette: (mode: DataPalette) => void;\n};\ntype ThemeProviderProps = {\n children: React.ReactNode;\n dataTheme?: DataTheme;\n dataPalette?: DataPalette;\n};\n\nconst ThemeContext = createContext<State | undefined>(undefined);\n\nfunction ThemeProvider({\n children,\n dataTheme: dataThemeProp,\n dataPalette: dataPaletteProp = \"water\",\n}: ThemeProviderProps) {\n const [dataTheme, setDataTheme] = useState<DataTheme>();\n const [dataPalette, setDataPalette] = useState<DataPalette>();\n\n useEffect(() => {\n if (dataPaletteProp) {\n switchDataPalette(dataPaletteProp);\n }\n }, [dataPaletteProp]);\n\n useEffect(() => {\n if (dataThemeProp) {\n switchDataTheme(dataThemeProp);\n }\n }, [dataThemeProp]);\n\n useEffect(() => {\n if (window.matchMedia) {\n if (localStorage.getItem(\"data-theme\")) {\n document.documentElement.setAttribute(\n \"data-theme\",\n localStorage.getItem(\"data-theme\") as string\n );\n setDataTheme(localStorage.getItem(\"data-theme\") as DataTheme);\n } else if (window.matchMedia(\"(prefers-color-scheme: dark)\").matches) {\n document.documentElement.setAttribute(\"data-theme\", \"dark\");\n setDataTheme(\"dark\");\n }\n }\n }, []);\n\n const switchDataTheme = (mode: DataTheme) => {\n document.documentElement.setAttribute(\"data-theme\", mode);\n setDataTheme(mode);\n localStorage.setItem(\"data-theme\", mode);\n };\n\n const switchDataPalette = (mode: DataPalette) => {\n document.documentElement.setAttribute(\"data-palette\", mode);\n setDataPalette(mode);\n localStorage.setItem(\"palette-theme\", mode);\n };\n\n return (\n <ThemeContext.Provider\n value={{ dataTheme, switchDataTheme, dataPalette, switchDataPalette }}\n >\n {children}\n </ThemeContext.Provider>\n );\n}\n\nfunction useTheme() {\n const context = useContext(ThemeContext);\n\n if (context === undefined) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n\n return context;\n}\n\nexport { ThemeContext, ThemeProvider, useTheme };\n","import Button from \"../button\";\nimport \"./index.css\";\nimport { TfiAngleUp, TfiAngleDown } from \"react-icons/tfi\";\nimport {\n AccordionButton as AccordionButtonProps,\n Accordion as AccordionProps,\n ToggleArray,\n} from \"./index.types\";\nimport clsx from \"clsx\";\nimport { useAccordion } from \"../../context/accordion\";\nimport { useTheme } from \"../../context/theme\";\n\nexport function AccordionButton({\n children,\n className,\n is = \"link\",\n label,\n // toggle,\n // setToggle = (prev: any) => void,\n ...rest\n}: AccordionButtonProps) {\n const { dataTheme } = useTheme();\n const { toggle, setToggle } = useAccordion();\n\n const handleToggle = () => {\n setToggle((prev: ToggleArray | undefined): any => {\n if (label) {\n return {\n ...prev,\n [label]: {\n ...(prev && label && prev[label]),\n isToggle: prev && !prev[label].isToggle,\n },\n };\n } else {\n return prev;\n }\n });\n };\n\n return (\n <Button\n as={is}\n className={clsx(\n \"accordion-button\",\n `accordion-button__${is}`,\n `accordion-button__${is}--${dataTheme}`,\n className\n )}\n {...(is !== \"link\" && {\n icon:\n label && toggle && toggle[label].isToggle ? (\n <TfiAngleDown />\n ) : (\n <TfiAngleUp />\n ),\n })}\n {...(is !== \"link\" && { onClick: handleToggle })}\n {...rest}\n >\n {children}\n </Button>\n );\n}\n\nexport default AccordionButton;\n","import clsx from \"clsx\";\nimport \"./index.css\";\nimport { AccordionContent as AccordionContentProps } from \"./index.types\";\n\nexport const AccordionContent = function AccordionContent({\n children,\n className,\n label,\n toggle,\n}: AccordionContentProps) {\n return (\n label &&\n toggle &&\n toggle[label].isToggle && (\n <div className={clsx(\"accordion-content\", className)}>{children}</div>\n )\n );\n};\n\nexport default AccordionContent;\n","import { Form as FormProps, ReactNodeControlled } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\nimport { BsCheckCircleFill, BsXCircleFill } from \"react-icons/bs\";\nimport { Controller, FormProvider, useForm } from \"react-hook-form\";\nimport { Children, cloneElement, createElement, useEffect, useState } from \"react\";\n\n// how do I solve reseting the form outside the form\nexport function Form({\n children,\n onSubmit,\n submitButton = {\n label: \"Submit\",\n },\n initialState,\n ...rest\n}: FormProps) {\n const methods = useForm(initialState);\n const {\n formState: { isValid },\n } = methods;\n const [result, setResult] = useState<{\n message?: string;\n isSuccess: boolean;\n }>({\n message: \"\",\n isSuccess: false,\n });\n\n return (\n <FormProvider {...methods}>\n <form\n className=\"form\"\n onSubmit={methods.handleSubmit((data) => onSubmit(data, methods, setResult))}\n {...rest}\n >\n {children}\n {result.message && (\n <div className=\"form__message\">\n {result.isSuccess ? (\n <BsCheckCircleFill\n color=\"var(--color-success)\"\n size={48}\n ></BsCheckCircleFill>\n ) : (\n <BsXCircleFill\n color={\"var(--color-danger)\"}\n size={48}\n ></BsXCircleFill>\n )}\n {result.message}\n </div>\n )}\n <Button type=\"submit\" disabled={!isValid}>\n {submitButton.label}\n </Button>\n </form>\n </FormProvider>\n );\n}\n\nexport default Form;\n","import { Input as InputProps } from \"./index.types\";\nimport \"./index.css\";\nimport clsx from \"clsx\";\n\nexport function Input({\n inputClassName = \"\",\n classNameGroup = \"\",\n error = {\n is: false,\n message: \"\",\n },\n inputRef,\n styleGroup,\n placeholder = \"Insert value\",\n label,\n labelClass,\n icon,\n ...rest\n}: InputProps) {\n return (\n <div className={clsx(\"input-group\", classNameGroup)} style={styleGroup}>\n <div className=\"input__header\">\n {label && <label className={labelClass}>{label}</label>}\n {error && error.is && (\n <span className=\"input__header--error\">{error.message as any}</span>\n )}\n </div>\n <div className=\"input-subgroup\">\n {icon?.element && icon.position === \"left\" && (\n <div\n className={clsx(\"input__icon\", \"input__icon--left\", icon.className)}\n >\n {icon.element}\n </div>\n )}\n <input\n ref={inputRef}\n className={clsx(\n \"input\",\n error.is ? \"input--error\" : \"\",\n icon?.position === \"left\" && \"input--icon\",\n inputClassName\n )}\n placeholder={placeholder}\n {...rest}\n />\n {icon?.element && icon.position !== \"left\" && (\n <div\n className={clsx(\n \"input__icon\",\n \"input__icon--right\",\n // `input__icon--${icon.position || \"right\"}`,\n icon.className\n )}\n >\n {icon.element}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport default Input;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport Input from \"../input\";\nimport { FormInputs } from \"./index.types\";\n\nexport function FormInput({ name, isRequired, error, defaultValue, ...rest }: FormInputs) {\n const { control } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field, fieldState: { error } }) => {\n return (\n <Input\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n defaultValue={defaultValue}\n {...field}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormInput;\n","import React, { MutableRefObject, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { TbArrowsDiagonal2 } from \"react-icons/tb\";\nimport { TextArea as TextAreaProps } from \"./index.types\";\nimport \"./index.css\";\n\nexport function TextArea({\n className = \"\",\n disabled = true,\n hasToggleButton = true,\n hideHeight = \"5rem\",\n placeholder = \"Insert value\",\n showHeight = \"10rem\",\n style = {},\n textareaClassName = \"\",\n label,\n labelClass,\n error = {\n is: false,\n message: \"\",\n },\n ...rest\n}: TextAreaProps): JSX.Element {\n const ref = useRef() as MutableRefObject<HTMLTextAreaElement>;\n const [isShow, setIsShow] = useState<boolean>(false);\n\n const handleClickToggle = () => {\n if (ref && ref.current) {\n if (isShow) {\n ref.current.style.height = hideHeight;\n } else {\n ref.current.style.height = showHeight; //(48 + ref.current.scrollHeight) + 'px';\n }\n setIsShow((prev) => !prev);\n }\n };\n\n return (\n <div className={clsx(\"textarea\", className)} style={style}>\n <div className=\"textarea__header\">\n {label && <label className={labelClass}>{label}</label>}\n {error && error.is && (\n <span className=\"textarea__header--error\">\n {error.message as any}\n </span>\n )}\n </div>\n <textarea\n ref={ref}\n className={clsx(\n \"textarea__input\",\n error.is && \"textarea__input--error\",\n textareaClassName\n )}\n style={\n {\n height: hasToggleButton ? hideHeight : showHeight,\n } as React.CSSProperties\n }\n placeholder={placeholder}\n disabled={disabled}\n {...rest}\n />\n {hasToggleButton && (\n <button\n type=\"button\"\n className={clsx(\n \"textarea__button\",\n isShow && \"textarea__button--show\",\n error.is && \"textarea__button--error\",\n )}\n onClick={handleClickToggle}\n disabled={disabled}\n >\n <TbArrowsDiagonal2 size=\"1.5rem\" />\n </button>\n )}\n </div>\n );\n}\n\nexport default TextArea;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport TextArea from \"../text-area\";\nimport { FormInputs } from \"./index.types\";\n\nexport function FormTextArea({ name, isRequired, error, ...rest }: FormInputs) {\n const { control } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field, fieldState: { error } }) => {\n return (\n <TextArea\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n {...field}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormTextArea;\n","import { useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Select as SelectProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\nimport { TfiAngleDown } from \"react-icons/tfi\";\nimport Input from \"../input\";\n\nexport function Select({\n inputClassName = \"\",\n classNameGroup = \"\",\n options,\n styleGroup,\n defaultValue,\n // inputProps,\n setFormSelected,\n clearError,\n resetForm,\n onFormBlur,\n handleSelect,\n ...rest\n}: SelectProps) {\n const [isOpen, setIsOpen] = useState(false);\n const [value, setValue] = useState(defaultValue || (options && options[0]));\n const [filteredOptions, setFilteredOptions] = useState(options);\n const { name } = rest;\n\n const handleOpen = () => {\n setIsOpen(true);\n };\n\n const handleClose = () => {\n setIsOpen(false);\n };\n\n const handleInputClose = () => {\n if (onFormBlur) {\n onFormBlur();\n }\n setIsOpen(false);\n };\n\n const handleToggle = () => {\n setIsOpen((prev) => !prev);\n };\n\n const handleValueChange = (e: { target: { value: string } }) => {\n const { value } = e.target;\n setValue(value);\n // for autocomplete\n // const { value } = e.target;\n // setValue(value);\n };\n\n const handleSelectChange = (e: { target: { name: string } }) => {\n const { name: value } = e.target;\n\n if (setFormSelected) {\n setFormSelected(name, value);\n if(clearError) {\n clearError(name)\n }\n\n if(resetForm) {\n resetForm()\n }\n } else {\n setValue(value);\n }\n\n if (handleSelect) {\n handleSelect(value);\n }\n\n handleClose();\n };\n // for autocomplete\n // useEffect(() => {\n // if (value) {\n // console.log(filteredOptions);\n // setFilteredOptions((prev: string[]) => {\n // return options\n // .filter((option: string) => option.includes(value))\n // });\n // } else {\n // setFilteredOptions(options)\n // }\n // }, [value]);\n\n return (\n <div className={clsx(\"select-group\", classNameGroup)} style={styleGroup}>\n <Input\n inputClassName={clsx(\"select\", inputClassName)}\n value={value}\n placeholder=\"Select a value\"\n icon={{\n className: \"select__arrow\",\n element: (\n <Button\n type=\"button\"\n mode=\"icon\"\n className=\"select__arrow-button\"\n onClick={handleToggle}\n onBlur={handleClose}\n >\n <TfiAngleDown size={24} color=\"var(--color-black)\" />\n </Button>\n ),\n }}\n onFocus={handleOpen}\n onBlur={handleInputClose}\n onChange={handleValueChange}\n autoComplete=\"off\"\n {...rest}\n // name={inputProps?.name}\n // {...inputProps}\n />\n {isOpen && (\n <div className=\"select__box\">\n {(filteredOptions as string[]).map(\n (option: string, index: number) => (\n <Button\n key={`index-${index}`}\n type=\"button\"\n mode=\"secondary\"\n className=\"select__option\"\n name={option}\n onMouseDown={handleSelectChange as any}\n >\n {option}\n </Button>\n )\n )}\n </div>\n )}\n </div>\n );\n}\n\nexport default Select;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport Select from \"../select\";\nimport { FormSelect as FormSelectProps } from \"./index.types\";\n\nexport function FormSelect({\n name,\n isRequired,\n error,\n fieldsToReset,\n ...rest\n}: FormSelectProps) {\n const { control, setValue, clearErrors, unregister, resetField } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field: { onBlur, ...restField }, fieldState: { error } }) => {\n return (\n <Select\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n setFormSelected={setValue}\n resetForm={()=> fieldsToReset && fieldsToReset.map((field) => {\n setValue(field, undefined)\n unregister(field)\n })}\n clearError={clearErrors}\n onFormBlur={onBlur}\n {...restField}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormSelect;\n","import { Loading as LoadingProps } from \"./index.types\";\nimport \"./index.css\";\n\nexport function Loading({ img, children }: LoadingProps) {\n return (\n <div className=\"loading\">\n <img src={img ? img : \"../../stories/assets/loading.gif\"} />\n {children}\n </div>\n );\n}\n\nexport default Loading;\n","import { IoClose } from \"react-icons/io5\";\nimport { Modal as ModalProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\n\nexport function Modal({\n modalref,\n children,\n title,\n subtitle,\n footer,\n hasCloseButton = true,\n handleClose,\n}: ModalProps) {\n return (\n <>\n <div className=\"modal-overlay\" />\n <div ref={modalref} className=\"modal\">\n {hasCloseButton && (\n <Button\n mode=\"secondary\"\n className=\"modal__close\"\n size=\"small\"\n onClick={handleClose}\n >\n <IoClose />\n </Button>\n )}\n <div className=\"modal__content\">\n {title && (\n <div className=\"modal__header\">\n <h3>{title}</h3>\n <h6>{subtitle}</h6>\n </div>\n )}\n <div className=\"modal__children\">{children}</div>\n {footer && <div className=\"modal__footer\">{footer}</div>}\n </div>\n </div>\n </>\n );\n}\n\nexport default Modal;\n","import { MapControl as MapControlProps } from \"./index.types\";\nimport \"./index.css\";\n\nexport function MapControl({ children, position=\"top-right\" }: MapControlProps) {\n return (\n <div className={`control control--${position}`}>\n {children}\n </div>\n );\n}\n\nexport default MapControl;\n","import DeckGL from \"@deck.gl/react/typed\";\n// import { _GlobeView as GlobeView } from \"@deck.gl/core\";\nimport { Controls, Map as MapProps } from \"./index.types\";\n// @ts-ignore\nimport * as Layers from \"@deck.gl/layers\";\nimport { Map } from \"react-map-gl\";\nimport maplibregl from \"maplibre-gl\";\nimport Button from \"../button\";\nimport { useTheme } from \"../../context/theme\";\nimport { FiMoon, FiSun } from \"react-icons/fi\";\nimport MapControl from \"../map-control\";\nimport \"./index.css\";\nimport { useState } from \"react\";\n// import MapboxMap from \"./MapboxMap\";\n\nconst INITIAL_VIEW_STATE = {\n longitude: -122.41669,\n latitude: 37.7853,\n zoom: 13,\n pitch: 0,\n bearing: 0,\n};\n\nexport function MapComponent({\n basemap,\n initialViewState,\n framework,\n mapProps,\n hasSwitchBasemap = true,\n layers,\n controls = {},\n basemapToken,\n}: MapProps) {\n const _layers =\n layers && layers.map(({ type, layer }) => new Layers[type as any](layer));\n const theme = useTheme();\n const {\n \"bottom-right\": bottomRight,\n \"bottom-left\": bottomLeft,\n ..._controls\n } = controls as Controls;\n\n const [viewState, setViewState] = useState(INITIAL_VIEW_STATE);\n const handleToggle = () => {\n theme.switchDataTheme(theme.dataTheme === \"dark\" ? \"light\" : \"dark\");\n };\n\n return framework === \"deck.gl\" ? (\n <div className=\"map\">\n <DeckGL\n initialViewState={initialViewState || INITIAL_VIEW_STATE}\n controller={true}\n layers={_layers}\n >\n <Map\n reuseMaps\n mapLib={maplibregl}\n mapStyle={\n basemap || theme.dataTheme === \"dark\"\n ? `https://api.maptiler.com/maps/darkmatter/style.json?key=${basemapToken || process.env.STORYBOOK_OPEN_TILES_TOKEN}`\n : `https://api.maptiler.com/maps/positron/style.json?key=${basemapToken || process.env.STORYBOOK_OPEN_TILES_TOKEN}`\n }\n preventStyleDiffing={true}\n />\n {Object.keys(_controls).map((key) => {\n return <MapControl position={key}>{_controls[key]}</MapControl>;\n })}\n <MapControl position=\"bottom-left\">\n {hasSwitchBasemap ? (\n <>\n {bottomLeft}\n <Button mode=\"icon\" size=\"small\" onClick={handleToggle}>\n {theme.dataTheme === \"dark\" ? (\n <FiSun size=\"1.25rem\" />\n ) : (\n <FiMoon size=\"1.25rem\" color=\"var(--color-black)\" />\n )}\n </Button>\n </>\n ) : (\n bottomLeft\n )}\n </MapControl>\n <MapControl position=\"bottom-right\">\n {bottomRight}\n <div className=\"map__attribution\">\n <Button\n as=\"link\"\n href=\"https://www.maptiler.com/copyright/\"\n target=\"_blank\"\n >\n © MapTiler\n </Button>\n <Button\n as=\"link\"\n href=\"https://www.openstreetmap.org/copyright\"\n target=\"_blank\"\n >\n © OpenStreetMap contributors\n </Button>\n </div>\n </MapControl>\n </DeckGL>\n </div>\n ) : framework === \"mapboxgl\" ? (\n <div>Coming soon...</div>\n ) : (\n // <MapboxMap />\n <div>The component needs a framework</div>\n );\n}\n\nexport default MapComponent;\n","import React, {\n ReactNode,\n RefObject,\n createContext,\n useContext,\n useEffect,\n useReducer,\n} from \"react\";\nimport Loading from \"../../components/loading\";\n\ntype Action = {\n type: \"set_ref\" | \"start_loading\" | \"stop_loading\" | \"set_message\";\n ref?: RefObject<ReactNode>;\n message?: string;\n};\ntype State = {\n isLoading: boolean;\n message?: string | React.ReactNode;\n ref?: RefObject<ReactNode>;\n};\ntype Context = {\n state: State;\n setRef: (ref: RefObject<ReactNode>) => void;\n setMessage: (message: string) => void;\n startLoading: () => void;\n stopLoading: () => void;\n};\ntype LoadingProviderProps = { children: React.ReactNode };\ntype UseLoadingProps = {\n ref?: RefObject<ReactNode>;\n message?: string;\n};\n\nconst LoadingContext = createContext<Context | undefined>(undefined);\n\nfunction loadingReducer(state: State, action: Action) {\n switch (action.type) {\n case \"set_ref\": {\n return { ...state, ref: action.ref };\n }\n case \"start_loading\": {\n return { ...state, isLoading: true };\n }\n case \"stop_loading\": {\n return { ...state, isLoading: false };\n }\n case \"set_message\": {\n return { ...state, message: action.message };\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\nfunction LoadingProvider({ children }: LoadingProviderProps) {\n const [{ isLoading, message, ref }, dispatch] = useReducer(loadingReducer, {\n isLoading: false,\n message: \"Loading\",\n ref: undefined,\n });\n\n const setRef = (ref: RefObject<ReactNode>) => {\n dispatch({ type: \"set_ref\", ref });\n };\n\n const setMessage = (message: string) => {\n dispatch({ type: \"set_message\", message });\n };\n\n const startLoading = () => {\n dispatch({ type: \"start_loading\" });\n };\n\n const stopLoading = () => {\n dispatch({ type: \"stop_loading\" });\n };\n\n return (\n <LoadingContext.Provider\n value={{\n state: { ref, message, isLoading },\n setMessage,\n setRef,\n startLoading,\n stopLoading,\n }}\n >\n {!ref && <Loading>{message}</Loading>}\n {children}\n </LoadingContext.Provider>\n );\n}\n\nfunction useLoading({ ref, message }: UseLoadingProps = {}) {\n const context = useContext(LoadingContext);\n\n // only happens if there is an initial mode value.\n useEffect(() => {\n ref && context?.setRef(ref);\n message && context?.setMessage(message);\n }, []);\n\n if (context === undefined) {\n throw new Error(\"useLoading must be used within a LoadingProvider\");\n }\n\n return context;\n}\n\nexport { LoadingContext, LoadingProvider, useLoading };\n","import React, {\n ReactNode,\n RefObject,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useReducer,\n useRef,\n} from \"react\";\nimport Modal from \"../../components/modal\";\n// import Modal from \"../../components/Modal\";\n\ntype Modal = {\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n content?: React.ReactNode;\n hasCloseButton?: boolean;\n footer?: React.ReactNode;\n};\n\ntype Action = {\n type: \"open_modal\" | \"close_modal\";\n modal?: Modal;\n};\n\ninterface State extends Modal {\n isModal: boolean;\n}\n\ntype Context = {\n state: State;\n openModal: (modal?: Modal) => void;\n closeModal: () => void;\n};\n\ntype ModalProviderProps = { children: React.ReactNode };\n\ntype UseModalProps = {};\n\ninterface HTMLEvent extends Event {\n target: HTMLElement;\n}\n\nconst ModalContext = createContext<Context | undefined>(undefined);\n\nfunction modalReducer(state: State, action: Action) {\n switch (action.type) {\n case \"open_modal\": {\n return { ...state, ...action.modal, isModal: true };\n }\n case \"close_modal\": {\n return { ...state, isModal: false };\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\nconst defaultState = {\n subtitle: undefined,\n title: undefined,\n content: undefined,\n hasCloseButton: true,\n footer: undefined,\n};\n\nfunction ModalProvider({ children }: ModalProviderProps) {\n const ref = useRef<HTMLDivElement>(null);\n const [state, dispatch] = useReducer(modalReducer, {\n isModal: false,\n ...defaultState,\n });\n\n const openModal = (modal?: Modal) => {\n dispatch({ type: \"open_modal\", modal });\n };\n\n const closeModal = () => {\n dispatch({ type: \"close_modal\" });\n };\n\n useEffect(() => {\n if (state.isModal) {\n const listener = (e: MouseEvent) => {\n if (\n state.isModal &&\n ref.current &&\n !ref.current.contains(e.target as Node)\n ) {\n closeModal();\n }\n };\n\n document.addEventListener(\"mousedown\", listener);\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n };\n }\n }, [closeModal]);\n\n return (\n <ModalContext.Provider\n value={{\n state,\n openModal,\n closeModal,\n }}\n >\n {children}\n {state.isModal && (\n <Modal\n modalref={ref}\n title={state.title}\n footer={state.footer}\n handleClose={closeModal}\n subtitle={state.subtitle}\n >\n {state.content}\n </Modal>\n )}\n </ModalContext.Provider>\n );\n}\n\nfunction useModal({}: UseModalProps = {}) {\n const context = useContext(ModalContext);\n\n if (context === undefined) {\n throw new Error(\"useModal must be used within a ModalProvider\");\n }\n\n return context;\n}\n\nexport { ModalContext, ModalProvider, useModal };\n"],"names":["Children","isValidElement","cloneElement","createContext","useMemo","useState","_jsx","useContext","_jsxs","useEffect","TfiAngleDown","TfiAngleUp","useForm","FormProvider","BsCheckCircleFill","BsXCircleFill","useFormContext","Controller","useRef","TbArrowsDiagonal2","_Fragment","IoClose","Layers","Map","FiSun","FiMoon","useReducer"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Map as MapProps } from "./index.types";
|
|
2
2
|
import "./index.css";
|
|
3
|
-
export declare function MapComponent({ basemap, initialViewState, framework, mapProps, hasSwitchBasemap, layers, controls, }: MapProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare function MapComponent({ basemap, initialViewState, framework, mapProps, hasSwitchBasemap, layers, controls, basemapToken, }: MapProps): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
export default MapComponent;
|
package/dist/esm/index.js
CHANGED
|
@@ -374,7 +374,7 @@ const INITIAL_VIEW_STATE = {
|
|
|
374
374
|
pitch: 0,
|
|
375
375
|
bearing: 0,
|
|
376
376
|
};
|
|
377
|
-
function MapComponent({ basemap, initialViewState, framework, mapProps, hasSwitchBasemap = true, layers, controls = {}, }) {
|
|
377
|
+
function MapComponent({ basemap, initialViewState, framework, mapProps, hasSwitchBasemap = true, layers, controls = {}, basemapToken, }) {
|
|
378
378
|
const _layers = layers && layers.map(({ type, layer }) => new Layers[type](layer));
|
|
379
379
|
const theme = useTheme();
|
|
380
380
|
const { "bottom-right": bottomRight, "bottom-left": bottomLeft, ..._controls } = controls;
|
|
@@ -383,8 +383,8 @@ function MapComponent({ basemap, initialViewState, framework, mapProps, hasSwitc
|
|
|
383
383
|
theme.switchDataTheme(theme.dataTheme === "dark" ? "light" : "dark");
|
|
384
384
|
};
|
|
385
385
|
return framework === "deck.gl" ? (jsx("div", { className: "map", children: jsxs(DeckGL, { initialViewState: initialViewState || INITIAL_VIEW_STATE, controller: true, layers: _layers, children: [jsx(Map, { reuseMaps: true, mapLib: maplibregl, mapStyle: basemap || theme.dataTheme === "dark"
|
|
386
|
-
? `https://api.maptiler.com/maps/darkmatter/style.json?key=${process.env.STORYBOOK_OPEN_TILES_TOKEN}`
|
|
387
|
-
: `https://api.maptiler.com/maps/positron/style.json?key=${process.env.STORYBOOK_OPEN_TILES_TOKEN}`, preventStyleDiffing: true }), Object.keys(_controls).map((key) => {
|
|
386
|
+
? `https://api.maptiler.com/maps/darkmatter/style.json?key=${basemapToken || process.env.STORYBOOK_OPEN_TILES_TOKEN}`
|
|
387
|
+
: `https://api.maptiler.com/maps/positron/style.json?key=${basemapToken || process.env.STORYBOOK_OPEN_TILES_TOKEN}`, preventStyleDiffing: true }), Object.keys(_controls).map((key) => {
|
|
388
388
|
return jsx(MapControl, { position: key, children: _controls[key] });
|
|
389
389
|
}), jsx(MapControl, { position: "bottom-left", children: hasSwitchBasemap ? (jsxs(Fragment, { children: [bottomLeft, jsx(Button, { mode: "icon", size: "small", onClick: handleToggle, children: theme.dataTheme === "dark" ? (jsx(FiSun, { size: "1.25rem" })) : (jsx(FiMoon, { size: "1.25rem", color: "var(--color-black)" })) })] })) : (bottomLeft) }), jsxs(MapControl, { position: "bottom-right", children: [bottomRight, jsxs("div", { className: "map__attribution", children: [jsx(Button, { as: "link", href: "https://www.maptiler.com/copyright/", target: "_blank", children: "\u00A9 MapTiler" }), jsx(Button, { as: "link", href: "https://www.openstreetmap.org/copyright", target: "_blank", children: "\u00A9 OpenStreetMap contributors" })] })] })] }) })) : framework === "mapboxgl" ? (jsx("div", { children: "Coming soon..." })) : (
|
|
390
390
|
// <MapboxMap />
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/utils/recursive.ts","../../src/context/accordion/index.tsx","../../src/components/accordion/accordion.tsx","../../src/components/accordion/accordion-item.tsx","../../src/components/button/index.tsx","../../src/context/theme/index.tsx","../../src/components/accordion/accordion-button.tsx","../../src/components/accordion/accordion-content.tsx","../../src/components/form/index.tsx","../../src/components/input/index.tsx","../../src/components/form/FormInput.tsx","../../src/components/text-area/index.tsx","../../src/components/form/FormTextArea.tsx","../../src/components/select/index.tsx","../../src/components/form/FormSelect.tsx","../../src/components/loading/index.tsx","../../src/components/modal/index.tsx","../../src/components/map-control/index.tsx","../../src/components/map/index.tsx","../../src/context/loading/index.tsx","../../src/context/modal/index.tsx"],"sourcesContent":["import { Children, ReactNode, cloneElement, isValidElement } from \"react\";\nimport { ToggleArray } from \"../components/accordion/index.types\";\n\nlet uniqueId = (function () {\n let num = 0;\n return function (prefix: string | number) {\n prefix = String(prefix) || '';\n num += 1;\n return prefix + num;\n }\n}\n ());\n\nexport function recursiveChildren(\n children: ReactNode | ReactNode[],\n i = 0\n): ReactNode {\n return Children.map(children, (child, index) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n if (child.props.children) {\n return cloneElement(child, {\n ...child.props,\n children: recursiveChildren(child.props.children, i++),\n ...((child?.type as any)?.name === \"AccordionItem\" && {\n label: uniqueId(\"id_\")// `${(child?.type as any)?.name}-${index}-${i}`,\n }),\n });\n } else {\n return child;\n }\n });\n}\n\nexport function recursiveToggle(\n children: ReactNode[],\n toggleArray: ToggleArray = {},\n i = 0,\n props: { expanded: \"all\" | \"none\" | \"custom\" }\n) {\n if (\n (children && typeof children === \"string\") ||\n (Array.isArray(children) && typeof children[0] === \"string\")\n ) {\n return;\n }\n\n for (const child of children) {\n if (isValidElement(child)) {\n if ((child?.type as any)?.name === \"AccordionItem\" && child.props.label) {\n toggleArray[child.props.label] = {\n isToggle:\n props.expanded === \"all\"\n ? true\n : props.expanded === \"none\"\n ? false\n : props.expanded === \"custom\"\n ? child?.props.isExpanded\n : false,\n depth: i,\n paddingLeft: `${16 * i}px`,\n };\n }\n\n if (\n typeof child.props.children !== \"string\" &&\n child.props.children.find(\n (v: { type: { name: string } }) =>\n v?.type?.name === \"AccordionItem\"\n )\n ) {\n recursiveToggle(\n Array.isArray(child.props.children)\n ? child.props.children\n : [child.props.children],\n toggleArray,\n i + 1,\n props\n );\n }\n }\n }\n\n return toggleArray;\n}\n","import React, {\n Dispatch,\n ReactNode,\n SetStateAction,\n createContext,\n useContext,\n useMemo,\n useState,\n} from \"react\";\nimport { Accordion, ToggleArray } from \"../../components/accordion/index.types\";\nimport { recursiveChildren, recursiveToggle } from \"../../utils/recursive\";\n\ninterface State {\n toggle?: ToggleArray;\n setToggle: (prev: any) => void;\n}\n\nconst AccordionContext = createContext<State | undefined>(undefined);\n\nfunction AccordionProvider({ children, expanded = \"all\" }: Accordion) {\n const newChildren = useMemo(()=> recursiveChildren(children, 0), []);\n const [toggle, _setToggle] = useState(\n recursiveToggle(newChildren as ReactNode[], {}, 0, { expanded })\n );\n\n const setToggle = (prev: any) => {\n _setToggle(prev)\n };\n\n return (\n <AccordionContext.Provider value={{ toggle, setToggle }}>\n <div className=\"accordion\">{newChildren}</div>\n </AccordionContext.Provider>\n );\n}\n\nfunction useAccordion() {\n const context = useContext(AccordionContext);\n\n if (context === undefined) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n\n return context;\n}\n\nexport { useAccordion, AccordionContext, AccordionProvider };\n","import \"./index.css\";\nimport { Accordion as AccordionProps } from \"./index.types\";\nimport { AccordionProvider } from \"../../context/accordion\";\n\nexport function Accordion({\n children,\n expanded = \"all\",\n // defaultValue,\n // selectValue,\n}: AccordionProps) {\n // const { dataTheme } = useTheme();\n\n return (\n <AccordionProvider expanded={expanded}>{children}</AccordionProvider>\n );\n}\n\nexport default Accordion;\n","import { Children, cloneElement } from \"react\";\nimport \"./index.css\";\nimport { AccordionItem as AccordionItemProps } from \"./index.types\";\nimport { useAccordion } from \"../../context/accordion\";\nimport clsx from \"clsx\";\n\nexport function AccordionItem({\n children,\n className,\n label,\n isExpanded = false,\n}: AccordionItemProps) {\n const { toggle } = useAccordion();\n\n return (\n <div\n className={clsx(\"accordion-item\", className)}\n style={{\n paddingLeft: toggle && label && toggle[label]?.paddingLeft,\n }}\n >\n {Children.map(children, (child) =>\n cloneElement(child as any, {\n toggle: toggle,\n // setToggle: setToggle,\n ...((child as any)?.type?.name !== \"AccordionItem\" && {\n label: label,\n }),\n isExpanded: isExpanded,\n })\n )}\n </div>\n );\n}\n\nexport default AccordionItem;\n","import clsx from \"clsx\";\nimport { ButtonAsButton, ButtonAsLink } from \"./index.types\";\nimport \"./index.css\";\nimport { ReactNode } from \"react\";\n\nconst Anchor = ({\n Custom,\n children,\n ...rest\n}: {\n Custom?: React.ComponentClass<any>;\n children?: ReactNode;\n}) =>\n Custom ? <Custom {...rest}>{children}</Custom> : <a {...rest}>{children}</a>;\n\nexport function Button({\n children = \"Click me\",\n className = \"\",\n icon = undefined,\n isNewWindow = false,\n mode = \"primary\",\n size = \"medium\",\n as = \"button\",\n CustomAnchor,\n ...rest\n}: ButtonAsButton | ButtonAsLink): JSX.Element {\n return as === \"link\" ? (\n <Anchor\n Custom={CustomAnchor}\n {...(isNewWindow && { target: \"_blank\" })}\n className={clsx(\n `button ${className}`,\n mode === \"secondary\" ? `button button__${mode}` : \"button__link\",\n `button__${size}`,\n )}\n {...(rest as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {children}\n {icon}\n </Anchor>\n ) : (\n <button\n className={clsx(\n \"button\",\n `button__${mode}`,\n `button__${size}`,\n className\n )}\n {...(rest as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n >\n {children}\n {icon}\n </button>\n );\n}\n\nexport default Button;\n","import { DataPalette } from \"data-palette\";\nimport React, {\n createContext,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\ntype DataTheme = \"light\" | \"dark\";\n\ntype State = {\n dataTheme?: DataTheme;\n switchDataTheme: (mode: DataTheme) => void;\n dataPalette?: DataPalette;\n switchDataPalette: (mode: DataPalette) => void;\n};\ntype ThemeProviderProps = {\n children: React.ReactNode;\n dataTheme?: DataTheme;\n dataPalette?: DataPalette;\n};\n\nconst ThemeContext = createContext<State | undefined>(undefined);\n\nfunction ThemeProvider({\n children,\n dataTheme: dataThemeProp,\n dataPalette: dataPaletteProp = \"water\",\n}: ThemeProviderProps) {\n const [dataTheme, setDataTheme] = useState<DataTheme>();\n const [dataPalette, setDataPalette] = useState<DataPalette>();\n\n useEffect(() => {\n if (dataPaletteProp) {\n switchDataPalette(dataPaletteProp);\n }\n }, [dataPaletteProp]);\n\n useEffect(() => {\n if (dataThemeProp) {\n switchDataTheme(dataThemeProp);\n }\n }, [dataThemeProp]);\n\n useEffect(() => {\n if (window.matchMedia) {\n if (localStorage.getItem(\"data-theme\")) {\n document.documentElement.setAttribute(\n \"data-theme\",\n localStorage.getItem(\"data-theme\") as string\n );\n setDataTheme(localStorage.getItem(\"data-theme\") as DataTheme);\n } else if (window.matchMedia(\"(prefers-color-scheme: dark)\").matches) {\n document.documentElement.setAttribute(\"data-theme\", \"dark\");\n setDataTheme(\"dark\");\n }\n }\n }, []);\n\n const switchDataTheme = (mode: DataTheme) => {\n document.documentElement.setAttribute(\"data-theme\", mode);\n setDataTheme(mode);\n localStorage.setItem(\"data-theme\", mode);\n };\n\n const switchDataPalette = (mode: DataPalette) => {\n document.documentElement.setAttribute(\"data-palette\", mode);\n setDataPalette(mode);\n localStorage.setItem(\"palette-theme\", mode);\n };\n\n return (\n <ThemeContext.Provider\n value={{ dataTheme, switchDataTheme, dataPalette, switchDataPalette }}\n >\n {children}\n </ThemeContext.Provider>\n );\n}\n\nfunction useTheme() {\n const context = useContext(ThemeContext);\n\n if (context === undefined) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n\n return context;\n}\n\nexport { ThemeContext, ThemeProvider, useTheme };\n","import Button from \"../button\";\nimport \"./index.css\";\nimport { TfiAngleUp, TfiAngleDown } from \"react-icons/tfi\";\nimport {\n AccordionButton as AccordionButtonProps,\n Accordion as AccordionProps,\n ToggleArray,\n} from \"./index.types\";\nimport clsx from \"clsx\";\nimport { useAccordion } from \"../../context/accordion\";\nimport { useTheme } from \"../../context/theme\";\n\nexport function AccordionButton({\n children,\n className,\n is = \"link\",\n label,\n // toggle,\n // setToggle = (prev: any) => void,\n ...rest\n}: AccordionButtonProps) {\n const { dataTheme } = useTheme();\n const { toggle, setToggle } = useAccordion();\n\n const handleToggle = () => {\n setToggle((prev: ToggleArray | undefined): any => {\n if (label) {\n return {\n ...prev,\n [label]: {\n ...(prev && label && prev[label]),\n isToggle: prev && !prev[label].isToggle,\n },\n };\n } else {\n return prev;\n }\n });\n };\n\n return (\n <Button\n as={is}\n className={clsx(\n \"accordion-button\",\n `accordion-button__${is}`,\n `accordion-button__${is}--${dataTheme}`,\n className\n )}\n {...(is !== \"link\" && {\n icon:\n label && toggle && toggle[label].isToggle ? (\n <TfiAngleDown />\n ) : (\n <TfiAngleUp />\n ),\n })}\n {...(is !== \"link\" && { onClick: handleToggle })}\n {...rest}\n >\n {children}\n </Button>\n );\n}\n\nexport default AccordionButton;\n","import clsx from \"clsx\";\nimport \"./index.css\";\nimport { AccordionContent as AccordionContentProps } from \"./index.types\";\n\nexport const AccordionContent = function AccordionContent({\n children,\n className,\n label,\n toggle,\n}: AccordionContentProps) {\n return (\n label &&\n toggle &&\n toggle[label].isToggle && (\n <div className={clsx(\"accordion-content\", className)}>{children}</div>\n )\n );\n};\n\nexport default AccordionContent;\n","import { Form as FormProps, ReactNodeControlled } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\nimport { BsCheckCircleFill, BsXCircleFill } from \"react-icons/bs\";\nimport { Controller, FormProvider, useForm } from \"react-hook-form\";\nimport { Children, cloneElement, createElement, useEffect, useState } from \"react\";\n\n// how do I solve reseting the form outside the form\nexport function Form({\n children,\n onSubmit,\n submitButton = {\n label: \"Submit\",\n },\n initialState,\n ...rest\n}: FormProps) {\n const methods = useForm(initialState);\n const {\n formState: { isValid },\n } = methods;\n const [result, setResult] = useState<{\n message?: string;\n isSuccess: boolean;\n }>({\n message: \"\",\n isSuccess: false,\n });\n\n return (\n <FormProvider {...methods}>\n <form\n className=\"form\"\n onSubmit={methods.handleSubmit((data) => onSubmit(data, methods, setResult))}\n {...rest}\n >\n {children}\n {result.message && (\n <div className=\"form__message\">\n {result.isSuccess ? (\n <BsCheckCircleFill\n color=\"var(--color-success)\"\n size={48}\n ></BsCheckCircleFill>\n ) : (\n <BsXCircleFill\n color={\"var(--color-danger)\"}\n size={48}\n ></BsXCircleFill>\n )}\n {result.message}\n </div>\n )}\n <Button type=\"submit\" disabled={!isValid}>\n {submitButton.label}\n </Button>\n </form>\n </FormProvider>\n );\n}\n\nexport default Form;\n","import { Input as InputProps } from \"./index.types\";\nimport \"./index.css\";\nimport clsx from \"clsx\";\n\nexport function Input({\n inputClassName = \"\",\n classNameGroup = \"\",\n error = {\n is: false,\n message: \"\",\n },\n inputRef,\n styleGroup,\n placeholder = \"Insert value\",\n label,\n labelClass,\n icon,\n ...rest\n}: InputProps) {\n return (\n <div className={clsx(\"input-group\", classNameGroup)} style={styleGroup}>\n <div className=\"input__header\">\n {label && <label className={labelClass}>{label}</label>}\n {error && error.is && (\n <span className=\"input__header--error\">{error.message as any}</span>\n )}\n </div>\n <div className=\"input-subgroup\">\n {icon?.element && icon.position === \"left\" && (\n <div\n className={clsx(\"input__icon\", \"input__icon--left\", icon.className)}\n >\n {icon.element}\n </div>\n )}\n <input\n ref={inputRef}\n className={clsx(\n \"input\",\n error.is ? \"input--error\" : \"\",\n icon?.position === \"left\" && \"input--icon\",\n inputClassName\n )}\n placeholder={placeholder}\n {...rest}\n />\n {icon?.element && icon.position !== \"left\" && (\n <div\n className={clsx(\n \"input__icon\",\n \"input__icon--right\",\n // `input__icon--${icon.position || \"right\"}`,\n icon.className\n )}\n >\n {icon.element}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport default Input;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport Input from \"../input\";\nimport { FormInputs } from \"./index.types\";\n\nexport function FormInput({ name, isRequired, error, defaultValue, ...rest }: FormInputs) {\n const { control } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field, fieldState: { error } }) => {\n return (\n <Input\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n defaultValue={defaultValue}\n {...field}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormInput;\n","import React, { MutableRefObject, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { TbArrowsDiagonal2 } from \"react-icons/tb\";\nimport { TextArea as TextAreaProps } from \"./index.types\";\nimport \"./index.css\";\n\nexport function TextArea({\n className = \"\",\n disabled = true,\n hasToggleButton = true,\n hideHeight = \"5rem\",\n placeholder = \"Insert value\",\n showHeight = \"10rem\",\n style = {},\n textareaClassName = \"\",\n label,\n labelClass,\n error = {\n is: false,\n message: \"\",\n },\n ...rest\n}: TextAreaProps): JSX.Element {\n const ref = useRef() as MutableRefObject<HTMLTextAreaElement>;\n const [isShow, setIsShow] = useState<boolean>(false);\n\n const handleClickToggle = () => {\n if (ref && ref.current) {\n if (isShow) {\n ref.current.style.height = hideHeight;\n } else {\n ref.current.style.height = showHeight; //(48 + ref.current.scrollHeight) + 'px';\n }\n setIsShow((prev) => !prev);\n }\n };\n\n return (\n <div className={clsx(\"textarea\", className)} style={style}>\n <div className=\"textarea__header\">\n {label && <label className={labelClass}>{label}</label>}\n {error && error.is && (\n <span className=\"textarea__header--error\">\n {error.message as any}\n </span>\n )}\n </div>\n <textarea\n ref={ref}\n className={clsx(\n \"textarea__input\",\n error.is && \"textarea__input--error\",\n textareaClassName\n )}\n style={\n {\n height: hasToggleButton ? hideHeight : showHeight,\n } as React.CSSProperties\n }\n placeholder={placeholder}\n disabled={disabled}\n {...rest}\n />\n {hasToggleButton && (\n <button\n type=\"button\"\n className={clsx(\n \"textarea__button\",\n isShow && \"textarea__button--show\",\n error.is && \"textarea__button--error\",\n )}\n onClick={handleClickToggle}\n disabled={disabled}\n >\n <TbArrowsDiagonal2 size=\"1.5rem\" />\n </button>\n )}\n </div>\n );\n}\n\nexport default TextArea;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport TextArea from \"../text-area\";\nimport { FormInputs } from \"./index.types\";\n\nexport function FormTextArea({ name, isRequired, error, ...rest }: FormInputs) {\n const { control } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field, fieldState: { error } }) => {\n return (\n <TextArea\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n {...field}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormTextArea;\n","import { useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Select as SelectProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\nimport { TfiAngleDown } from \"react-icons/tfi\";\nimport Input from \"../input\";\n\nexport function Select({\n inputClassName = \"\",\n classNameGroup = \"\",\n options,\n styleGroup,\n defaultValue,\n // inputProps,\n setFormSelected,\n clearError,\n resetForm,\n onFormBlur,\n handleSelect,\n ...rest\n}: SelectProps) {\n const [isOpen, setIsOpen] = useState(false);\n const [value, setValue] = useState(defaultValue || (options && options[0]));\n const [filteredOptions, setFilteredOptions] = useState(options);\n const { name } = rest;\n\n const handleOpen = () => {\n setIsOpen(true);\n };\n\n const handleClose = () => {\n setIsOpen(false);\n };\n\n const handleInputClose = () => {\n if (onFormBlur) {\n onFormBlur();\n }\n setIsOpen(false);\n };\n\n const handleToggle = () => {\n setIsOpen((prev) => !prev);\n };\n\n const handleValueChange = (e: { target: { value: string } }) => {\n const { value } = e.target;\n setValue(value);\n // for autocomplete\n // const { value } = e.target;\n // setValue(value);\n };\n\n const handleSelectChange = (e: { target: { name: string } }) => {\n const { name: value } = e.target;\n\n if (setFormSelected) {\n setFormSelected(name, value);\n if(clearError) {\n clearError(name)\n }\n\n if(resetForm) {\n resetForm()\n }\n } else {\n setValue(value);\n }\n\n if (handleSelect) {\n handleSelect(value);\n }\n\n handleClose();\n };\n // for autocomplete\n // useEffect(() => {\n // if (value) {\n // console.log(filteredOptions);\n // setFilteredOptions((prev: string[]) => {\n // return options\n // .filter((option: string) => option.includes(value))\n // });\n // } else {\n // setFilteredOptions(options)\n // }\n // }, [value]);\n\n return (\n <div className={clsx(\"select-group\", classNameGroup)} style={styleGroup}>\n <Input\n inputClassName={clsx(\"select\", inputClassName)}\n value={value}\n placeholder=\"Select a value\"\n icon={{\n className: \"select__arrow\",\n element: (\n <Button\n type=\"button\"\n mode=\"icon\"\n className=\"select__arrow-button\"\n onClick={handleToggle}\n onBlur={handleClose}\n >\n <TfiAngleDown size={24} color=\"var(--color-black)\" />\n </Button>\n ),\n }}\n onFocus={handleOpen}\n onBlur={handleInputClose}\n onChange={handleValueChange}\n autoComplete=\"off\"\n {...rest}\n // name={inputProps?.name}\n // {...inputProps}\n />\n {isOpen && (\n <div className=\"select__box\">\n {(filteredOptions as string[]).map(\n (option: string, index: number) => (\n <Button\n key={`index-${index}`}\n type=\"button\"\n mode=\"secondary\"\n className=\"select__option\"\n name={option}\n onMouseDown={handleSelectChange as any}\n >\n {option}\n </Button>\n )\n )}\n </div>\n )}\n </div>\n );\n}\n\nexport default Select;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport Select from \"../select\";\nimport { FormSelect as FormSelectProps } from \"./index.types\";\n\nexport function FormSelect({\n name,\n isRequired,\n error,\n fieldsToReset,\n ...rest\n}: FormSelectProps) {\n const { control, setValue, clearErrors, unregister, resetField } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field: { onBlur, ...restField }, fieldState: { error } }) => {\n return (\n <Select\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n setFormSelected={setValue}\n resetForm={()=> fieldsToReset && fieldsToReset.map((field) => {\n setValue(field, undefined)\n unregister(field)\n })}\n clearError={clearErrors}\n onFormBlur={onBlur}\n {...restField}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormSelect;\n","import { Loading as LoadingProps } from \"./index.types\";\nimport \"./index.css\";\n\nexport function Loading({ img, children }: LoadingProps) {\n return (\n <div className=\"loading\">\n <img src={img ? img : \"../../stories/assets/loading.gif\"} />\n {children}\n </div>\n );\n}\n\nexport default Loading;\n","import { IoClose } from \"react-icons/io5\";\nimport { Modal as ModalProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\n\nexport function Modal({\n modalref,\n children,\n title,\n subtitle,\n footer,\n hasCloseButton = true,\n handleClose,\n}: ModalProps) {\n return (\n <>\n <div className=\"modal-overlay\" />\n <div ref={modalref} className=\"modal\">\n {hasCloseButton && (\n <Button\n mode=\"secondary\"\n className=\"modal__close\"\n size=\"small\"\n onClick={handleClose}\n >\n <IoClose />\n </Button>\n )}\n <div className=\"modal__content\">\n {title && (\n <div className=\"modal__header\">\n <h3>{title}</h3>\n <h6>{subtitle}</h6>\n </div>\n )}\n <div className=\"modal__children\">{children}</div>\n {footer && <div className=\"modal__footer\">{footer}</div>}\n </div>\n </div>\n </>\n );\n}\n\nexport default Modal;\n","import { MapControl as MapControlProps } from \"./index.types\";\nimport \"./index.css\";\n\nexport function MapControl({ children, position=\"top-right\" }: MapControlProps) {\n return (\n <div className={`control control--${position}`}>\n {children}\n </div>\n );\n}\n\nexport default MapControl;\n","import DeckGL from \"@deck.gl/react/typed\";\n// import { _GlobeView as GlobeView } from \"@deck.gl/core\";\nimport { Controls, Map as MapProps } from \"./index.types\";\n// @ts-ignore\nimport * as Layers from \"@deck.gl/layers\";\nimport { Map } from \"react-map-gl\";\nimport maplibregl from \"maplibre-gl\";\nimport Button from \"../button\";\nimport { useTheme } from \"../../context/theme\";\nimport { FiMoon, FiSun } from \"react-icons/fi\";\nimport MapControl from \"../map-control\";\nimport \"./index.css\";\nimport { useState } from \"react\";\n// import MapboxMap from \"./MapboxMap\";\n\nconst INITIAL_VIEW_STATE = {\n longitude: -122.41669,\n latitude: 37.7853,\n zoom: 13,\n pitch: 0,\n bearing: 0,\n};\n\nexport function MapComponent({\n basemap,\n initialViewState,\n framework,\n mapProps,\n hasSwitchBasemap = true,\n layers,\n controls = {},\n}: MapProps) {\n const _layers =\n layers && layers.map(({ type, layer }) => new Layers[type as any](layer));\n const theme = useTheme();\n const {\n \"bottom-right\": bottomRight,\n \"bottom-left\": bottomLeft,\n ..._controls\n } = controls as Controls;\n\n const [viewState, setViewState] = useState(INITIAL_VIEW_STATE);\n const handleToggle = () => {\n theme.switchDataTheme(theme.dataTheme === \"dark\" ? \"light\" : \"dark\");\n };\n\n return framework === \"deck.gl\" ? (\n <div className=\"map\">\n <DeckGL\n initialViewState={initialViewState || INITIAL_VIEW_STATE}\n controller={true}\n layers={_layers}\n >\n <Map\n reuseMaps\n mapLib={maplibregl}\n mapStyle={\n basemap || theme.dataTheme === \"dark\"\n ? `https://api.maptiler.com/maps/darkmatter/style.json?key=${process.env.STORYBOOK_OPEN_TILES_TOKEN}`\n : `https://api.maptiler.com/maps/positron/style.json?key=${process.env.STORYBOOK_OPEN_TILES_TOKEN}`\n }\n preventStyleDiffing={true}\n />\n {Object.keys(_controls).map((key) => {\n return <MapControl position={key}>{_controls[key]}</MapControl>;\n })}\n <MapControl position=\"bottom-left\">\n {hasSwitchBasemap ? (\n <>\n {bottomLeft}\n <Button mode=\"icon\" size=\"small\" onClick={handleToggle}>\n {theme.dataTheme === \"dark\" ? (\n <FiSun size=\"1.25rem\" />\n ) : (\n <FiMoon size=\"1.25rem\" color=\"var(--color-black)\" />\n )}\n </Button>\n </>\n ) : (\n bottomLeft\n )}\n </MapControl>\n <MapControl position=\"bottom-right\">\n {bottomRight}\n <div className=\"map__attribution\">\n <Button\n as=\"link\"\n href=\"https://www.maptiler.com/copyright/\"\n target=\"_blank\"\n >\n © MapTiler\n </Button>\n <Button\n as=\"link\"\n href=\"https://www.openstreetmap.org/copyright\"\n target=\"_blank\"\n >\n © OpenStreetMap contributors\n </Button>\n </div>\n </MapControl>\n </DeckGL>\n </div>\n ) : framework === \"mapboxgl\" ? (\n <div>Coming soon...</div>\n ) : (\n // <MapboxMap />\n <div>The component needs a framework</div>\n );\n}\n\nexport default MapComponent;\n","import React, {\n ReactNode,\n RefObject,\n createContext,\n useContext,\n useEffect,\n useReducer,\n} from \"react\";\nimport Loading from \"../../components/loading\";\n\ntype Action = {\n type: \"set_ref\" | \"start_loading\" | \"stop_loading\" | \"set_message\";\n ref?: RefObject<ReactNode>;\n message?: string;\n};\ntype State = {\n isLoading: boolean;\n message?: string | React.ReactNode;\n ref?: RefObject<ReactNode>;\n};\ntype Context = {\n state: State;\n setRef: (ref: RefObject<ReactNode>) => void;\n setMessage: (message: string) => void;\n startLoading: () => void;\n stopLoading: () => void;\n};\ntype LoadingProviderProps = { children: React.ReactNode };\ntype UseLoadingProps = {\n ref?: RefObject<ReactNode>;\n message?: string;\n};\n\nconst LoadingContext = createContext<Context | undefined>(undefined);\n\nfunction loadingReducer(state: State, action: Action) {\n switch (action.type) {\n case \"set_ref\": {\n return { ...state, ref: action.ref };\n }\n case \"start_loading\": {\n return { ...state, isLoading: true };\n }\n case \"stop_loading\": {\n return { ...state, isLoading: false };\n }\n case \"set_message\": {\n return { ...state, message: action.message };\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\nfunction LoadingProvider({ children }: LoadingProviderProps) {\n const [{ isLoading, message, ref }, dispatch] = useReducer(loadingReducer, {\n isLoading: false,\n message: \"Loading\",\n ref: undefined,\n });\n\n const setRef = (ref: RefObject<ReactNode>) => {\n dispatch({ type: \"set_ref\", ref });\n };\n\n const setMessage = (message: string) => {\n dispatch({ type: \"set_message\", message });\n };\n\n const startLoading = () => {\n dispatch({ type: \"start_loading\" });\n };\n\n const stopLoading = () => {\n dispatch({ type: \"stop_loading\" });\n };\n\n return (\n <LoadingContext.Provider\n value={{\n state: { ref, message, isLoading },\n setMessage,\n setRef,\n startLoading,\n stopLoading,\n }}\n >\n {!ref && <Loading>{message}</Loading>}\n {children}\n </LoadingContext.Provider>\n );\n}\n\nfunction useLoading({ ref, message }: UseLoadingProps = {}) {\n const context = useContext(LoadingContext);\n\n // only happens if there is an initial mode value.\n useEffect(() => {\n ref && context?.setRef(ref);\n message && context?.setMessage(message);\n }, []);\n\n if (context === undefined) {\n throw new Error(\"useLoading must be used within a LoadingProvider\");\n }\n\n return context;\n}\n\nexport { LoadingContext, LoadingProvider, useLoading };\n","import React, {\n ReactNode,\n RefObject,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useReducer,\n useRef,\n} from \"react\";\nimport Modal from \"../../components/modal\";\n// import Modal from \"../../components/Modal\";\n\ntype Modal = {\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n content?: React.ReactNode;\n hasCloseButton?: boolean;\n footer?: React.ReactNode;\n};\n\ntype Action = {\n type: \"open_modal\" | \"close_modal\";\n modal?: Modal;\n};\n\ninterface State extends Modal {\n isModal: boolean;\n}\n\ntype Context = {\n state: State;\n openModal: (modal?: Modal) => void;\n closeModal: () => void;\n};\n\ntype ModalProviderProps = { children: React.ReactNode };\n\ntype UseModalProps = {};\n\ninterface HTMLEvent extends Event {\n target: HTMLElement;\n}\n\nconst ModalContext = createContext<Context | undefined>(undefined);\n\nfunction modalReducer(state: State, action: Action) {\n switch (action.type) {\n case \"open_modal\": {\n return { ...state, ...action.modal, isModal: true };\n }\n case \"close_modal\": {\n return { ...state, isModal: false };\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\nconst defaultState = {\n subtitle: undefined,\n title: undefined,\n content: undefined,\n hasCloseButton: true,\n footer: undefined,\n};\n\nfunction ModalProvider({ children }: ModalProviderProps) {\n const ref = useRef<HTMLDivElement>(null);\n const [state, dispatch] = useReducer(modalReducer, {\n isModal: false,\n ...defaultState,\n });\n\n const openModal = (modal?: Modal) => {\n dispatch({ type: \"open_modal\", modal });\n };\n\n const closeModal = () => {\n dispatch({ type: \"close_modal\" });\n };\n\n useEffect(() => {\n if (state.isModal) {\n const listener = (e: MouseEvent) => {\n if (\n state.isModal &&\n ref.current &&\n !ref.current.contains(e.target as Node)\n ) {\n closeModal();\n }\n };\n\n document.addEventListener(\"mousedown\", listener);\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n };\n }\n }, [closeModal]);\n\n return (\n <ModalContext.Provider\n value={{\n state,\n openModal,\n closeModal,\n }}\n >\n {children}\n {state.isModal && (\n <Modal\n modalref={ref}\n title={state.title}\n footer={state.footer}\n handleClose={closeModal}\n subtitle={state.subtitle}\n >\n {state.content}\n </Modal>\n )}\n </ModalContext.Provider>\n );\n}\n\nfunction useModal({}: UseModalProps = {}) {\n const context = useContext(ModalContext);\n\n if (context === undefined) {\n throw new Error(\"useModal must be used within a ModalProvider\");\n }\n\n return context;\n}\n\nexport { ModalContext, ModalProvider, useModal };\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/utils/recursive.ts","../../src/context/accordion/index.tsx","../../src/components/accordion/accordion.tsx","../../src/components/accordion/accordion-item.tsx","../../src/components/button/index.tsx","../../src/context/theme/index.tsx","../../src/components/accordion/accordion-button.tsx","../../src/components/accordion/accordion-content.tsx","../../src/components/form/index.tsx","../../src/components/input/index.tsx","../../src/components/form/FormInput.tsx","../../src/components/text-area/index.tsx","../../src/components/form/FormTextArea.tsx","../../src/components/select/index.tsx","../../src/components/form/FormSelect.tsx","../../src/components/loading/index.tsx","../../src/components/modal/index.tsx","../../src/components/map-control/index.tsx","../../src/components/map/index.tsx","../../src/context/loading/index.tsx","../../src/context/modal/index.tsx"],"sourcesContent":["import { Children, ReactNode, cloneElement, isValidElement } from \"react\";\nimport { ToggleArray } from \"../components/accordion/index.types\";\n\nlet uniqueId = (function () {\n let num = 0;\n return function (prefix: string | number) {\n prefix = String(prefix) || '';\n num += 1;\n return prefix + num;\n }\n}\n ());\n\nexport function recursiveChildren(\n children: ReactNode | ReactNode[],\n i = 0\n): ReactNode {\n return Children.map(children, (child, index) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n if (child.props.children) {\n return cloneElement(child, {\n ...child.props,\n children: recursiveChildren(child.props.children, i++),\n ...((child?.type as any)?.name === \"AccordionItem\" && {\n label: uniqueId(\"id_\")// `${(child?.type as any)?.name}-${index}-${i}`,\n }),\n });\n } else {\n return child;\n }\n });\n}\n\nexport function recursiveToggle(\n children: ReactNode[],\n toggleArray: ToggleArray = {},\n i = 0,\n props: { expanded: \"all\" | \"none\" | \"custom\" }\n) {\n if (\n (children && typeof children === \"string\") ||\n (Array.isArray(children) && typeof children[0] === \"string\")\n ) {\n return;\n }\n\n for (const child of children) {\n if (isValidElement(child)) {\n if ((child?.type as any)?.name === \"AccordionItem\" && child.props.label) {\n toggleArray[child.props.label] = {\n isToggle:\n props.expanded === \"all\"\n ? true\n : props.expanded === \"none\"\n ? false\n : props.expanded === \"custom\"\n ? child?.props.isExpanded\n : false,\n depth: i,\n paddingLeft: `${16 * i}px`,\n };\n }\n\n if (\n typeof child.props.children !== \"string\" &&\n child.props.children.find(\n (v: { type: { name: string } }) =>\n v?.type?.name === \"AccordionItem\"\n )\n ) {\n recursiveToggle(\n Array.isArray(child.props.children)\n ? child.props.children\n : [child.props.children],\n toggleArray,\n i + 1,\n props\n );\n }\n }\n }\n\n return toggleArray;\n}\n","import React, {\n Dispatch,\n ReactNode,\n SetStateAction,\n createContext,\n useContext,\n useMemo,\n useState,\n} from \"react\";\nimport { Accordion, ToggleArray } from \"../../components/accordion/index.types\";\nimport { recursiveChildren, recursiveToggle } from \"../../utils/recursive\";\n\ninterface State {\n toggle?: ToggleArray;\n setToggle: (prev: any) => void;\n}\n\nconst AccordionContext = createContext<State | undefined>(undefined);\n\nfunction AccordionProvider({ children, expanded = \"all\" }: Accordion) {\n const newChildren = useMemo(()=> recursiveChildren(children, 0), []);\n const [toggle, _setToggle] = useState(\n recursiveToggle(newChildren as ReactNode[], {}, 0, { expanded })\n );\n\n const setToggle = (prev: any) => {\n _setToggle(prev)\n };\n\n return (\n <AccordionContext.Provider value={{ toggle, setToggle }}>\n <div className=\"accordion\">{newChildren}</div>\n </AccordionContext.Provider>\n );\n}\n\nfunction useAccordion() {\n const context = useContext(AccordionContext);\n\n if (context === undefined) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n\n return context;\n}\n\nexport { useAccordion, AccordionContext, AccordionProvider };\n","import \"./index.css\";\nimport { Accordion as AccordionProps } from \"./index.types\";\nimport { AccordionProvider } from \"../../context/accordion\";\n\nexport function Accordion({\n children,\n expanded = \"all\",\n // defaultValue,\n // selectValue,\n}: AccordionProps) {\n // const { dataTheme } = useTheme();\n\n return (\n <AccordionProvider expanded={expanded}>{children}</AccordionProvider>\n );\n}\n\nexport default Accordion;\n","import { Children, cloneElement } from \"react\";\nimport \"./index.css\";\nimport { AccordionItem as AccordionItemProps } from \"./index.types\";\nimport { useAccordion } from \"../../context/accordion\";\nimport clsx from \"clsx\";\n\nexport function AccordionItem({\n children,\n className,\n label,\n isExpanded = false,\n}: AccordionItemProps) {\n const { toggle } = useAccordion();\n\n return (\n <div\n className={clsx(\"accordion-item\", className)}\n style={{\n paddingLeft: toggle && label && toggle[label]?.paddingLeft,\n }}\n >\n {Children.map(children, (child) =>\n cloneElement(child as any, {\n toggle: toggle,\n // setToggle: setToggle,\n ...((child as any)?.type?.name !== \"AccordionItem\" && {\n label: label,\n }),\n isExpanded: isExpanded,\n })\n )}\n </div>\n );\n}\n\nexport default AccordionItem;\n","import clsx from \"clsx\";\nimport { ButtonAsButton, ButtonAsLink } from \"./index.types\";\nimport \"./index.css\";\nimport { ReactNode } from \"react\";\n\nconst Anchor = ({\n Custom,\n children,\n ...rest\n}: {\n Custom?: React.ComponentClass<any>;\n children?: ReactNode;\n}) =>\n Custom ? <Custom {...rest}>{children}</Custom> : <a {...rest}>{children}</a>;\n\nexport function Button({\n children = \"Click me\",\n className = \"\",\n icon = undefined,\n isNewWindow = false,\n mode = \"primary\",\n size = \"medium\",\n as = \"button\",\n CustomAnchor,\n ...rest\n}: ButtonAsButton | ButtonAsLink): JSX.Element {\n return as === \"link\" ? (\n <Anchor\n Custom={CustomAnchor}\n {...(isNewWindow && { target: \"_blank\" })}\n className={clsx(\n `button ${className}`,\n mode === \"secondary\" ? `button button__${mode}` : \"button__link\",\n `button__${size}`,\n )}\n {...(rest as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {children}\n {icon}\n </Anchor>\n ) : (\n <button\n className={clsx(\n \"button\",\n `button__${mode}`,\n `button__${size}`,\n className\n )}\n {...(rest as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n >\n {children}\n {icon}\n </button>\n );\n}\n\nexport default Button;\n","import { DataPalette } from \"data-palette\";\nimport React, {\n createContext,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\ntype DataTheme = \"light\" | \"dark\";\n\ntype State = {\n dataTheme?: DataTheme;\n switchDataTheme: (mode: DataTheme) => void;\n dataPalette?: DataPalette;\n switchDataPalette: (mode: DataPalette) => void;\n};\ntype ThemeProviderProps = {\n children: React.ReactNode;\n dataTheme?: DataTheme;\n dataPalette?: DataPalette;\n};\n\nconst ThemeContext = createContext<State | undefined>(undefined);\n\nfunction ThemeProvider({\n children,\n dataTheme: dataThemeProp,\n dataPalette: dataPaletteProp = \"water\",\n}: ThemeProviderProps) {\n const [dataTheme, setDataTheme] = useState<DataTheme>();\n const [dataPalette, setDataPalette] = useState<DataPalette>();\n\n useEffect(() => {\n if (dataPaletteProp) {\n switchDataPalette(dataPaletteProp);\n }\n }, [dataPaletteProp]);\n\n useEffect(() => {\n if (dataThemeProp) {\n switchDataTheme(dataThemeProp);\n }\n }, [dataThemeProp]);\n\n useEffect(() => {\n if (window.matchMedia) {\n if (localStorage.getItem(\"data-theme\")) {\n document.documentElement.setAttribute(\n \"data-theme\",\n localStorage.getItem(\"data-theme\") as string\n );\n setDataTheme(localStorage.getItem(\"data-theme\") as DataTheme);\n } else if (window.matchMedia(\"(prefers-color-scheme: dark)\").matches) {\n document.documentElement.setAttribute(\"data-theme\", \"dark\");\n setDataTheme(\"dark\");\n }\n }\n }, []);\n\n const switchDataTheme = (mode: DataTheme) => {\n document.documentElement.setAttribute(\"data-theme\", mode);\n setDataTheme(mode);\n localStorage.setItem(\"data-theme\", mode);\n };\n\n const switchDataPalette = (mode: DataPalette) => {\n document.documentElement.setAttribute(\"data-palette\", mode);\n setDataPalette(mode);\n localStorage.setItem(\"palette-theme\", mode);\n };\n\n return (\n <ThemeContext.Provider\n value={{ dataTheme, switchDataTheme, dataPalette, switchDataPalette }}\n >\n {children}\n </ThemeContext.Provider>\n );\n}\n\nfunction useTheme() {\n const context = useContext(ThemeContext);\n\n if (context === undefined) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n\n return context;\n}\n\nexport { ThemeContext, ThemeProvider, useTheme };\n","import Button from \"../button\";\nimport \"./index.css\";\nimport { TfiAngleUp, TfiAngleDown } from \"react-icons/tfi\";\nimport {\n AccordionButton as AccordionButtonProps,\n Accordion as AccordionProps,\n ToggleArray,\n} from \"./index.types\";\nimport clsx from \"clsx\";\nimport { useAccordion } from \"../../context/accordion\";\nimport { useTheme } from \"../../context/theme\";\n\nexport function AccordionButton({\n children,\n className,\n is = \"link\",\n label,\n // toggle,\n // setToggle = (prev: any) => void,\n ...rest\n}: AccordionButtonProps) {\n const { dataTheme } = useTheme();\n const { toggle, setToggle } = useAccordion();\n\n const handleToggle = () => {\n setToggle((prev: ToggleArray | undefined): any => {\n if (label) {\n return {\n ...prev,\n [label]: {\n ...(prev && label && prev[label]),\n isToggle: prev && !prev[label].isToggle,\n },\n };\n } else {\n return prev;\n }\n });\n };\n\n return (\n <Button\n as={is}\n className={clsx(\n \"accordion-button\",\n `accordion-button__${is}`,\n `accordion-button__${is}--${dataTheme}`,\n className\n )}\n {...(is !== \"link\" && {\n icon:\n label && toggle && toggle[label].isToggle ? (\n <TfiAngleDown />\n ) : (\n <TfiAngleUp />\n ),\n })}\n {...(is !== \"link\" && { onClick: handleToggle })}\n {...rest}\n >\n {children}\n </Button>\n );\n}\n\nexport default AccordionButton;\n","import clsx from \"clsx\";\nimport \"./index.css\";\nimport { AccordionContent as AccordionContentProps } from \"./index.types\";\n\nexport const AccordionContent = function AccordionContent({\n children,\n className,\n label,\n toggle,\n}: AccordionContentProps) {\n return (\n label &&\n toggle &&\n toggle[label].isToggle && (\n <div className={clsx(\"accordion-content\", className)}>{children}</div>\n )\n );\n};\n\nexport default AccordionContent;\n","import { Form as FormProps, ReactNodeControlled } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\nimport { BsCheckCircleFill, BsXCircleFill } from \"react-icons/bs\";\nimport { Controller, FormProvider, useForm } from \"react-hook-form\";\nimport { Children, cloneElement, createElement, useEffect, useState } from \"react\";\n\n// how do I solve reseting the form outside the form\nexport function Form({\n children,\n onSubmit,\n submitButton = {\n label: \"Submit\",\n },\n initialState,\n ...rest\n}: FormProps) {\n const methods = useForm(initialState);\n const {\n formState: { isValid },\n } = methods;\n const [result, setResult] = useState<{\n message?: string;\n isSuccess: boolean;\n }>({\n message: \"\",\n isSuccess: false,\n });\n\n return (\n <FormProvider {...methods}>\n <form\n className=\"form\"\n onSubmit={methods.handleSubmit((data) => onSubmit(data, methods, setResult))}\n {...rest}\n >\n {children}\n {result.message && (\n <div className=\"form__message\">\n {result.isSuccess ? (\n <BsCheckCircleFill\n color=\"var(--color-success)\"\n size={48}\n ></BsCheckCircleFill>\n ) : (\n <BsXCircleFill\n color={\"var(--color-danger)\"}\n size={48}\n ></BsXCircleFill>\n )}\n {result.message}\n </div>\n )}\n <Button type=\"submit\" disabled={!isValid}>\n {submitButton.label}\n </Button>\n </form>\n </FormProvider>\n );\n}\n\nexport default Form;\n","import { Input as InputProps } from \"./index.types\";\nimport \"./index.css\";\nimport clsx from \"clsx\";\n\nexport function Input({\n inputClassName = \"\",\n classNameGroup = \"\",\n error = {\n is: false,\n message: \"\",\n },\n inputRef,\n styleGroup,\n placeholder = \"Insert value\",\n label,\n labelClass,\n icon,\n ...rest\n}: InputProps) {\n return (\n <div className={clsx(\"input-group\", classNameGroup)} style={styleGroup}>\n <div className=\"input__header\">\n {label && <label className={labelClass}>{label}</label>}\n {error && error.is && (\n <span className=\"input__header--error\">{error.message as any}</span>\n )}\n </div>\n <div className=\"input-subgroup\">\n {icon?.element && icon.position === \"left\" && (\n <div\n className={clsx(\"input__icon\", \"input__icon--left\", icon.className)}\n >\n {icon.element}\n </div>\n )}\n <input\n ref={inputRef}\n className={clsx(\n \"input\",\n error.is ? \"input--error\" : \"\",\n icon?.position === \"left\" && \"input--icon\",\n inputClassName\n )}\n placeholder={placeholder}\n {...rest}\n />\n {icon?.element && icon.position !== \"left\" && (\n <div\n className={clsx(\n \"input__icon\",\n \"input__icon--right\",\n // `input__icon--${icon.position || \"right\"}`,\n icon.className\n )}\n >\n {icon.element}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport default Input;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport Input from \"../input\";\nimport { FormInputs } from \"./index.types\";\n\nexport function FormInput({ name, isRequired, error, defaultValue, ...rest }: FormInputs) {\n const { control } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field, fieldState: { error } }) => {\n return (\n <Input\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n defaultValue={defaultValue}\n {...field}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormInput;\n","import React, { MutableRefObject, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { TbArrowsDiagonal2 } from \"react-icons/tb\";\nimport { TextArea as TextAreaProps } from \"./index.types\";\nimport \"./index.css\";\n\nexport function TextArea({\n className = \"\",\n disabled = true,\n hasToggleButton = true,\n hideHeight = \"5rem\",\n placeholder = \"Insert value\",\n showHeight = \"10rem\",\n style = {},\n textareaClassName = \"\",\n label,\n labelClass,\n error = {\n is: false,\n message: \"\",\n },\n ...rest\n}: TextAreaProps): JSX.Element {\n const ref = useRef() as MutableRefObject<HTMLTextAreaElement>;\n const [isShow, setIsShow] = useState<boolean>(false);\n\n const handleClickToggle = () => {\n if (ref && ref.current) {\n if (isShow) {\n ref.current.style.height = hideHeight;\n } else {\n ref.current.style.height = showHeight; //(48 + ref.current.scrollHeight) + 'px';\n }\n setIsShow((prev) => !prev);\n }\n };\n\n return (\n <div className={clsx(\"textarea\", className)} style={style}>\n <div className=\"textarea__header\">\n {label && <label className={labelClass}>{label}</label>}\n {error && error.is && (\n <span className=\"textarea__header--error\">\n {error.message as any}\n </span>\n )}\n </div>\n <textarea\n ref={ref}\n className={clsx(\n \"textarea__input\",\n error.is && \"textarea__input--error\",\n textareaClassName\n )}\n style={\n {\n height: hasToggleButton ? hideHeight : showHeight,\n } as React.CSSProperties\n }\n placeholder={placeholder}\n disabled={disabled}\n {...rest}\n />\n {hasToggleButton && (\n <button\n type=\"button\"\n className={clsx(\n \"textarea__button\",\n isShow && \"textarea__button--show\",\n error.is && \"textarea__button--error\",\n )}\n onClick={handleClickToggle}\n disabled={disabled}\n >\n <TbArrowsDiagonal2 size=\"1.5rem\" />\n </button>\n )}\n </div>\n );\n}\n\nexport default TextArea;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport TextArea from \"../text-area\";\nimport { FormInputs } from \"./index.types\";\n\nexport function FormTextArea({ name, isRequired, error, ...rest }: FormInputs) {\n const { control } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field, fieldState: { error } }) => {\n return (\n <TextArea\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n {...field}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormTextArea;\n","import { useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Select as SelectProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\nimport { TfiAngleDown } from \"react-icons/tfi\";\nimport Input from \"../input\";\n\nexport function Select({\n inputClassName = \"\",\n classNameGroup = \"\",\n options,\n styleGroup,\n defaultValue,\n // inputProps,\n setFormSelected,\n clearError,\n resetForm,\n onFormBlur,\n handleSelect,\n ...rest\n}: SelectProps) {\n const [isOpen, setIsOpen] = useState(false);\n const [value, setValue] = useState(defaultValue || (options && options[0]));\n const [filteredOptions, setFilteredOptions] = useState(options);\n const { name } = rest;\n\n const handleOpen = () => {\n setIsOpen(true);\n };\n\n const handleClose = () => {\n setIsOpen(false);\n };\n\n const handleInputClose = () => {\n if (onFormBlur) {\n onFormBlur();\n }\n setIsOpen(false);\n };\n\n const handleToggle = () => {\n setIsOpen((prev) => !prev);\n };\n\n const handleValueChange = (e: { target: { value: string } }) => {\n const { value } = e.target;\n setValue(value);\n // for autocomplete\n // const { value } = e.target;\n // setValue(value);\n };\n\n const handleSelectChange = (e: { target: { name: string } }) => {\n const { name: value } = e.target;\n\n if (setFormSelected) {\n setFormSelected(name, value);\n if(clearError) {\n clearError(name)\n }\n\n if(resetForm) {\n resetForm()\n }\n } else {\n setValue(value);\n }\n\n if (handleSelect) {\n handleSelect(value);\n }\n\n handleClose();\n };\n // for autocomplete\n // useEffect(() => {\n // if (value) {\n // console.log(filteredOptions);\n // setFilteredOptions((prev: string[]) => {\n // return options\n // .filter((option: string) => option.includes(value))\n // });\n // } else {\n // setFilteredOptions(options)\n // }\n // }, [value]);\n\n return (\n <div className={clsx(\"select-group\", classNameGroup)} style={styleGroup}>\n <Input\n inputClassName={clsx(\"select\", inputClassName)}\n value={value}\n placeholder=\"Select a value\"\n icon={{\n className: \"select__arrow\",\n element: (\n <Button\n type=\"button\"\n mode=\"icon\"\n className=\"select__arrow-button\"\n onClick={handleToggle}\n onBlur={handleClose}\n >\n <TfiAngleDown size={24} color=\"var(--color-black)\" />\n </Button>\n ),\n }}\n onFocus={handleOpen}\n onBlur={handleInputClose}\n onChange={handleValueChange}\n autoComplete=\"off\"\n {...rest}\n // name={inputProps?.name}\n // {...inputProps}\n />\n {isOpen && (\n <div className=\"select__box\">\n {(filteredOptions as string[]).map(\n (option: string, index: number) => (\n <Button\n key={`index-${index}`}\n type=\"button\"\n mode=\"secondary\"\n className=\"select__option\"\n name={option}\n onMouseDown={handleSelectChange as any}\n >\n {option}\n </Button>\n )\n )}\n </div>\n )}\n </div>\n );\n}\n\nexport default Select;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport Select from \"../select\";\nimport { FormSelect as FormSelectProps } from \"./index.types\";\n\nexport function FormSelect({\n name,\n isRequired,\n error,\n fieldsToReset,\n ...rest\n}: FormSelectProps) {\n const { control, setValue, clearErrors, unregister, resetField } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field: { onBlur, ...restField }, fieldState: { error } }) => {\n return (\n <Select\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n setFormSelected={setValue}\n resetForm={()=> fieldsToReset && fieldsToReset.map((field) => {\n setValue(field, undefined)\n unregister(field)\n })}\n clearError={clearErrors}\n onFormBlur={onBlur}\n {...restField}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormSelect;\n","import { Loading as LoadingProps } from \"./index.types\";\nimport \"./index.css\";\n\nexport function Loading({ img, children }: LoadingProps) {\n return (\n <div className=\"loading\">\n <img src={img ? img : \"../../stories/assets/loading.gif\"} />\n {children}\n </div>\n );\n}\n\nexport default Loading;\n","import { IoClose } from \"react-icons/io5\";\nimport { Modal as ModalProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\n\nexport function Modal({\n modalref,\n children,\n title,\n subtitle,\n footer,\n hasCloseButton = true,\n handleClose,\n}: ModalProps) {\n return (\n <>\n <div className=\"modal-overlay\" />\n <div ref={modalref} className=\"modal\">\n {hasCloseButton && (\n <Button\n mode=\"secondary\"\n className=\"modal__close\"\n size=\"small\"\n onClick={handleClose}\n >\n <IoClose />\n </Button>\n )}\n <div className=\"modal__content\">\n {title && (\n <div className=\"modal__header\">\n <h3>{title}</h3>\n <h6>{subtitle}</h6>\n </div>\n )}\n <div className=\"modal__children\">{children}</div>\n {footer && <div className=\"modal__footer\">{footer}</div>}\n </div>\n </div>\n </>\n );\n}\n\nexport default Modal;\n","import { MapControl as MapControlProps } from \"./index.types\";\nimport \"./index.css\";\n\nexport function MapControl({ children, position=\"top-right\" }: MapControlProps) {\n return (\n <div className={`control control--${position}`}>\n {children}\n </div>\n );\n}\n\nexport default MapControl;\n","import DeckGL from \"@deck.gl/react/typed\";\n// import { _GlobeView as GlobeView } from \"@deck.gl/core\";\nimport { Controls, Map as MapProps } from \"./index.types\";\n// @ts-ignore\nimport * as Layers from \"@deck.gl/layers\";\nimport { Map } from \"react-map-gl\";\nimport maplibregl from \"maplibre-gl\";\nimport Button from \"../button\";\nimport { useTheme } from \"../../context/theme\";\nimport { FiMoon, FiSun } from \"react-icons/fi\";\nimport MapControl from \"../map-control\";\nimport \"./index.css\";\nimport { useState } from \"react\";\n// import MapboxMap from \"./MapboxMap\";\n\nconst INITIAL_VIEW_STATE = {\n longitude: -122.41669,\n latitude: 37.7853,\n zoom: 13,\n pitch: 0,\n bearing: 0,\n};\n\nexport function MapComponent({\n basemap,\n initialViewState,\n framework,\n mapProps,\n hasSwitchBasemap = true,\n layers,\n controls = {},\n basemapToken,\n}: MapProps) {\n const _layers =\n layers && layers.map(({ type, layer }) => new Layers[type as any](layer));\n const theme = useTheme();\n const {\n \"bottom-right\": bottomRight,\n \"bottom-left\": bottomLeft,\n ..._controls\n } = controls as Controls;\n\n const [viewState, setViewState] = useState(INITIAL_VIEW_STATE);\n const handleToggle = () => {\n theme.switchDataTheme(theme.dataTheme === \"dark\" ? \"light\" : \"dark\");\n };\n\n return framework === \"deck.gl\" ? (\n <div className=\"map\">\n <DeckGL\n initialViewState={initialViewState || INITIAL_VIEW_STATE}\n controller={true}\n layers={_layers}\n >\n <Map\n reuseMaps\n mapLib={maplibregl}\n mapStyle={\n basemap || theme.dataTheme === \"dark\"\n ? `https://api.maptiler.com/maps/darkmatter/style.json?key=${basemapToken || process.env.STORYBOOK_OPEN_TILES_TOKEN}`\n : `https://api.maptiler.com/maps/positron/style.json?key=${basemapToken || process.env.STORYBOOK_OPEN_TILES_TOKEN}`\n }\n preventStyleDiffing={true}\n />\n {Object.keys(_controls).map((key) => {\n return <MapControl position={key}>{_controls[key]}</MapControl>;\n })}\n <MapControl position=\"bottom-left\">\n {hasSwitchBasemap ? (\n <>\n {bottomLeft}\n <Button mode=\"icon\" size=\"small\" onClick={handleToggle}>\n {theme.dataTheme === \"dark\" ? (\n <FiSun size=\"1.25rem\" />\n ) : (\n <FiMoon size=\"1.25rem\" color=\"var(--color-black)\" />\n )}\n </Button>\n </>\n ) : (\n bottomLeft\n )}\n </MapControl>\n <MapControl position=\"bottom-right\">\n {bottomRight}\n <div className=\"map__attribution\">\n <Button\n as=\"link\"\n href=\"https://www.maptiler.com/copyright/\"\n target=\"_blank\"\n >\n © MapTiler\n </Button>\n <Button\n as=\"link\"\n href=\"https://www.openstreetmap.org/copyright\"\n target=\"_blank\"\n >\n © OpenStreetMap contributors\n </Button>\n </div>\n </MapControl>\n </DeckGL>\n </div>\n ) : framework === \"mapboxgl\" ? (\n <div>Coming soon...</div>\n ) : (\n // <MapboxMap />\n <div>The component needs a framework</div>\n );\n}\n\nexport default MapComponent;\n","import React, {\n ReactNode,\n RefObject,\n createContext,\n useContext,\n useEffect,\n useReducer,\n} from \"react\";\nimport Loading from \"../../components/loading\";\n\ntype Action = {\n type: \"set_ref\" | \"start_loading\" | \"stop_loading\" | \"set_message\";\n ref?: RefObject<ReactNode>;\n message?: string;\n};\ntype State = {\n isLoading: boolean;\n message?: string | React.ReactNode;\n ref?: RefObject<ReactNode>;\n};\ntype Context = {\n state: State;\n setRef: (ref: RefObject<ReactNode>) => void;\n setMessage: (message: string) => void;\n startLoading: () => void;\n stopLoading: () => void;\n};\ntype LoadingProviderProps = { children: React.ReactNode };\ntype UseLoadingProps = {\n ref?: RefObject<ReactNode>;\n message?: string;\n};\n\nconst LoadingContext = createContext<Context | undefined>(undefined);\n\nfunction loadingReducer(state: State, action: Action) {\n switch (action.type) {\n case \"set_ref\": {\n return { ...state, ref: action.ref };\n }\n case \"start_loading\": {\n return { ...state, isLoading: true };\n }\n case \"stop_loading\": {\n return { ...state, isLoading: false };\n }\n case \"set_message\": {\n return { ...state, message: action.message };\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\nfunction LoadingProvider({ children }: LoadingProviderProps) {\n const [{ isLoading, message, ref }, dispatch] = useReducer(loadingReducer, {\n isLoading: false,\n message: \"Loading\",\n ref: undefined,\n });\n\n const setRef = (ref: RefObject<ReactNode>) => {\n dispatch({ type: \"set_ref\", ref });\n };\n\n const setMessage = (message: string) => {\n dispatch({ type: \"set_message\", message });\n };\n\n const startLoading = () => {\n dispatch({ type: \"start_loading\" });\n };\n\n const stopLoading = () => {\n dispatch({ type: \"stop_loading\" });\n };\n\n return (\n <LoadingContext.Provider\n value={{\n state: { ref, message, isLoading },\n setMessage,\n setRef,\n startLoading,\n stopLoading,\n }}\n >\n {!ref && <Loading>{message}</Loading>}\n {children}\n </LoadingContext.Provider>\n );\n}\n\nfunction useLoading({ ref, message }: UseLoadingProps = {}) {\n const context = useContext(LoadingContext);\n\n // only happens if there is an initial mode value.\n useEffect(() => {\n ref && context?.setRef(ref);\n message && context?.setMessage(message);\n }, []);\n\n if (context === undefined) {\n throw new Error(\"useLoading must be used within a LoadingProvider\");\n }\n\n return context;\n}\n\nexport { LoadingContext, LoadingProvider, useLoading };\n","import React, {\n ReactNode,\n RefObject,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useReducer,\n useRef,\n} from \"react\";\nimport Modal from \"../../components/modal\";\n// import Modal from \"../../components/Modal\";\n\ntype Modal = {\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n content?: React.ReactNode;\n hasCloseButton?: boolean;\n footer?: React.ReactNode;\n};\n\ntype Action = {\n type: \"open_modal\" | \"close_modal\";\n modal?: Modal;\n};\n\ninterface State extends Modal {\n isModal: boolean;\n}\n\ntype Context = {\n state: State;\n openModal: (modal?: Modal) => void;\n closeModal: () => void;\n};\n\ntype ModalProviderProps = { children: React.ReactNode };\n\ntype UseModalProps = {};\n\ninterface HTMLEvent extends Event {\n target: HTMLElement;\n}\n\nconst ModalContext = createContext<Context | undefined>(undefined);\n\nfunction modalReducer(state: State, action: Action) {\n switch (action.type) {\n case \"open_modal\": {\n return { ...state, ...action.modal, isModal: true };\n }\n case \"close_modal\": {\n return { ...state, isModal: false };\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\nconst defaultState = {\n subtitle: undefined,\n title: undefined,\n content: undefined,\n hasCloseButton: true,\n footer: undefined,\n};\n\nfunction ModalProvider({ children }: ModalProviderProps) {\n const ref = useRef<HTMLDivElement>(null);\n const [state, dispatch] = useReducer(modalReducer, {\n isModal: false,\n ...defaultState,\n });\n\n const openModal = (modal?: Modal) => {\n dispatch({ type: \"open_modal\", modal });\n };\n\n const closeModal = () => {\n dispatch({ type: \"close_modal\" });\n };\n\n useEffect(() => {\n if (state.isModal) {\n const listener = (e: MouseEvent) => {\n if (\n state.isModal &&\n ref.current &&\n !ref.current.contains(e.target as Node)\n ) {\n closeModal();\n }\n };\n\n document.addEventListener(\"mousedown\", listener);\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n };\n }\n }, [closeModal]);\n\n return (\n <ModalContext.Provider\n value={{\n state,\n openModal,\n closeModal,\n }}\n >\n {children}\n {state.isModal && (\n <Modal\n modalref={ref}\n title={state.title}\n footer={state.footer}\n handleClose={closeModal}\n subtitle={state.subtitle}\n >\n {state.content}\n </Modal>\n )}\n </ModalContext.Provider>\n );\n}\n\nfunction useModal({}: UseModalProps = {}) {\n const context = useContext(ModalContext);\n\n if (context === undefined) {\n throw new Error(\"useModal must be used within a ModalProvider\");\n }\n\n return context;\n}\n\nexport { ModalContext, ModalProvider, useModal };\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|