UNPKG

coducer

Version:

This will help you in Accordion, BreadCrumb, Button, Creatable Select, Select, Formik Date Field, Formik Field, Formik PhoneNumber, Formik Time Field, Input Field, Loader, Modal, NavBarMenu, Notify, Pill, Toggle Switch

1,052 lines (1,026 loc) 34.1 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var src_exports = {}; __export(src_exports, { Accordion: () => Accordion, BreadCrumb: () => BreadCrumb, BuildQueryParams: () => BuildQueryParams, Button: () => Button, CustomCreatableSelect: () => CustomCreatableSelect, CustomInputField: () => CustomInputField, CustomSelect: () => CustomSelect, CustomStyles: () => CustomStyles, DownloadFile: () => DownloadFile, FormikField: () => FormikField, FormikPhoneNumber: () => FormikPhoneNumber, FormikTimeField: () => FormikTimeField, InputField: () => InputField, IsNullOrUndefinedOrEmpty: () => IsNullOrUndefinedOrEmpty, Loader: () => Loader, Modal: () => Modal, ModalProvider: () => ModalProvider, NavBarMenuItems: () => NavBarMenuItems, Notify: () => Notify, Pill: () => Pill, RemoveNullValues: () => RemoveNullValues, TableProvider: () => TableProvider, ToBase64: () => ToBase64, ToHexColor: () => ToHexColor, ToPascalCase: () => ToPascalCase, ToastProvider: () => ToastProvider, ToggleSwitch: () => ToggleSwitch, useModal: () => useModal, useTableContext: () => useTableContext }); module.exports = __toCommonJS(src_exports); var import_bootstrap_min = require("bootstrap/dist/css/bootstrap.min.css"); // src/Accordion/Accordion.tsx var import_react_bootstrap = require("react-bootstrap"); var import_jsx_runtime = require("react/jsx-runtime"); var Accordion = ({ accordionText, children, className = "", icon, rightHeader }) => { return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: `${className}`, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_bootstrap.Accordion, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_react_bootstrap.Accordion.Item, { eventKey: "", className: "", id: accordionText, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: " ", children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_bootstrap.Accordion.Header, { id: accordionText, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: " d-flex align-items-center", id: accordionText, children: [ icon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "accodion_icon d-flex align-items-center justify-content-center", children: icon || "" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "accodion_text ", children: [ accordionText, " " ] }), rightHeader && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: rightHeader }) ] }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_bootstrap.Accordion.Body, { "data-testid": "Test Content", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children }) }) ] }) }, "" ) }) }); }; // src/BreadCrumb/BreadCrumb.tsx var import_react_router_dom = require("react-router-dom"); var import_react = __toESM(require("react")); var import_jsx_runtime2 = require("react/jsx-runtime"); var BreadCrumb = ({ breadCrumb }) => { return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { children: breadCrumb?.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_react.default.Fragment, { children: [ item?.isTitle && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h4", { className: "fw-semibold Bread_crumb_title cursor-pointer mb-1", children: item.title }), item?.isSubTitle && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h6", { className: "fw-semibold Bread_crumb_title mb-0 cursor-pointer", children: item.title }), item?.breadCrumb?.length && item?.breadCrumb?.map( (data, index2) => data.url ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)( import_react_router_dom.Link, { to: data.url, className: "text-decoration-none link_title", children: [ data.title, /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "ps-1 pe-1", children: "/" }) ] }, index2 ) : /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "link_title", children: [ data.title, /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "ps-1 pe-1", children: "/" }) ] }) ) ] }, index)) }); }; // src/Button/Button.tsx var import_react_bootstrap2 = require("react-bootstrap"); var import_react_bootstrap3 = require("react-bootstrap"); var import_jsx_runtime3 = require("react/jsx-runtime"); var Button = ({ text, variant, type, onClick, onDoubleClick, className = "", isDisabled, isLoading, prefixIconChildren, sufixIconChildren }) => { return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { "data-testid": text, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( import_react_bootstrap2.Button, { type, className, onDoubleClick: onDoubleClick && onDoubleClick, onClick: onClick && onClick, disabled: isDisabled || isLoading, id: text, variant, "data-testid": `button-${text}`, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("h6", { className: `m-0 fw-normal`, children: [ prefixIconChildren, isLoading ? /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { children: [ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_bootstrap3.Spinner, { size: "sm" }), " ", /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "ms-2", children: text }) ] }) : text, sufixIconChildren ] }) } ) }); }; // src/CustomCreatableSelect/CustomCreatableSelect.tsx var import_react2 = require("react"); var import_creatable = __toESM(require("react-select/creatable")); // src/CustomStyles/CustomStyles.tsx var CustomStyles = { option: (styles, { isFocused, isSelected }) => { return { ...styles, backgroundColor: isSelected ? "var(--textprimary)" : isFocused ? "var(--hoverColor)" : void 0, color: isSelected ? "var(--bgColor)" : isFocused ? "var(--textprimary)" : void 0 }; }, control: (provided) => ({ ...provided, backgroundColor: "var(--bgColor)", minHeight: "48px", height: "54px" }), menuList: (styles) => ({ ...styles, backgroundColor: "var(--bgColor)" }) }; // src/CustomCreatableSelect/CustomCreatableSelect.tsx var import_jsx_runtime4 = require("react/jsx-runtime"); var CustomCreatableSelect = ({ className, placeholder, field, form, options, isDisabled, isMulti = false, isClearable = true, callback, displayName = "Create", maxLength = 25 }) => { const [inputValue, setInputValue] = (0, import_react2.useState)(""); const onChange = (option) => { form?.setFieldValue( field?.name ?? "", isMulti ? option?.map((item) => item?.value) : option?.value ); if (callback) { callback(isMulti ? option : [option]); } }; const getValue = () => { if (options?.length) { if (field?.value?.length) { const isMultiOption = options?.filter( (option) => field?.value?.indexOf(option?.value) >= 0 || field?.value?.indexOf(option?.label) >= 0 ); const isNotMultiOption = options?.find( (option) => option?.value === field?.value || option?.label === field?.value ); return isMulti ? isMultiOption?.length > 0 ? [ ...new Set( isMultiOption?.map((item) => item?.label).concat(field?.value) ) ]?.map((item) => ({ label: item, value: item })) : field?.value?.map((item) => ({ label: item, value: item })) : isNotMultiOption?.value ? isNotMultiOption : { label: field?.value, value: field?.value }; } } else { if (field?.value?.length) { return isMulti ? field?.value?.map((item) => ({ label: item, value: item })) : { label: field?.value, value: field?.value }; } else { return isMulti ? [] : null; } } }; const onInputChange = (input) => { if (input.length > maxLength) { setInputValue(input.substr(0, maxLength)); } else { setInputValue(input); } }; const inputId = `customCreatableSelect_${field?.name}`; return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( import_creatable.default, { className, name: field?.name, defaultValue: getValue() || "", onChange, placeholder, options, isMulti, isDisabled, isClearable, value: getValue(), styles: CustomStyles, classNamePrefix: "select-wrapper", id: inputId, "data-testid": inputId, inputId: field?.name, formatCreateLabel: (inputText) => `${displayName} "${inputText}"`, onInputChange, inputValue } ); }; // src/CustomSelect/CustomSelect.tsx var import_react_select = __toESM(require("react-select")); var import_jsx_runtime5 = require("react/jsx-runtime"); var CustomSelect = ({ className = "", placeholder = "Select...", field, form, id, isDisabled, options, isMulti = false, value, isClearable = true, onFieldUpdate }) => { const onChange = (option) => { if (onFieldUpdate) { onFieldUpdate(option); } form?.setFieldValue( field?.name ?? "", isMulti ? option?.map((item) => item?.value) : option?.value ); }; const getValue = (options2, isMulti2, field2, value2) => { if (!options2) { return isMulti2 ? [] : ""; } if (!field2?.value) { if (isMulti2) { return options2.filter( (option) => Array.isArray(value2) ? value2.some( (val) => val.value === option.value || val.label === option.label ) : false ) || ""; } else { return options2.find( (option) => typeof value2 === "object" ? option?.value === value2?.value || option?.label === value2?.label : option?.value === value2 || option?.label === value2 ) || ""; } } if (isMulti2) { return options2.filter( (option) => field2.value?.some( (val) => val === option.value || val === option.label ) ) || ""; } else { return options2.find( (option) => option?.value === field2.value || typeof value2 === "object" && option?.label === value2?.label || typeof value2 === "string" && option?.label === value2 ) || ""; } }; return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)( import_react_select.default, { className, name: field?.name, id, value: getValue(options, isMulti, field, value), onChange, placeholder, options, isMulti, isDisabled, isClearable, styles: CustomStyles, classNamePrefix: "custom_select_input", "data-testid": "customSelect", inputId: field?.name } ); }; // src/FormikField/FormikField.tsx var import_formik3 = require("formik"); // src/InputField/CustomInputField.tsx var import_formik = require("formik"); var import_react_bootstrap4 = require("react-bootstrap"); var import_jsx_runtime6 = require("react/jsx-runtime"); var isRequiredField = (validationSchema, name) => { return !!(0, import_formik.getIn)(validationSchema?.describe().fields, name)?.tests?.find( (obj) => obj.name === "required" || obj.name === "min" || obj.name === "max" ); }; var CustomInputField = ({ validationSchema, label, field, error, children, inputId }) => { return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_bootstrap4.FormGroup, { controlId: inputId, className: "", children: [ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_bootstrap4.FormLabel, { className: "form_label", children: [ label || "", " ", isRequiredField(validationSchema, field.name) && "*" ] }), /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { children }), error && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("small", { className: `form-text text-danger form_error`, children: error }) ] }); }; // src/InputField/InputField.tsx var import_formik2 = require("formik"); var import_react_bootstrap5 = require("react-bootstrap"); var import_ai = require("react-icons/ai"); var import_jsx_runtime7 = require("react/jsx-runtime"); var isRequiredField2 = (validationSchema, name) => { return !!(0, import_formik2.getIn)(validationSchema.describe().fields, name)?.tests?.find( (obj) => obj.name === "required" || obj.name === "min" || obj.name === "max" ); }; var InputField = ({ validationSchema, label, type = "text", field, isValid, autoFocus, error, placeholder, disabled = false, isPassword, setPasswordIcon, passwordIcon, maxLength, rightIcon, icon, onBlur, as = "input", isAuth = false, onChange, unit, value }) => { return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_bootstrap5.FormGroup, { controlId: field.name, className: " position-relative", children: [ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_bootstrap5.FormLabel, { className: "form_label", children: [ label, " ", isRequiredField2(validationSchema, field.name) && "*" ] }), /* @__PURE__ */ (0, import_jsx_runtime7.jsx)( import_react_bootstrap5.FormControl, { type, as, autoFocus: !!autoFocus, value: value ? value : field.value, onChange: onChange ? onChange : field.onChange, isInvalid: !isValid, placeholder, disabled, maxLength, autoComplete: "none", onBlur, onFocus: onBlur } ), isPassword && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: passwordIcon ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)( "span", { className: isAuth ? "auth-eye-icon-css" : "eye-icon-css", "data-testid": "password-eye-icon", onClick: () => setPasswordIcon && setPasswordIcon(!passwordIcon), children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_ai.AiFillEye, { color: "var(--textLight)" }) } ) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)( "span", { className: isAuth ? "auth-eye-icon-css" : "eye-icon-css", "data-testid": "password-eye-invisible-icon", onClick: () => setPasswordIcon && setPasswordIcon(!passwordIcon), children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_ai.AiFillEyeInvisible, { color: "var(--textLight)" }) } ) }), unit && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_bootstrap5.InputGroup.Text, { className: "unit-css", children: unit }), rightIcon && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: { position: "absolute", right: 25, top: 100 }, children: icon }), error && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("small", { className: `form-text text-danger form_error`, children: error }) ] }); }; // src/FormikField/FormikField.tsx var import_jsx_runtime8 = require("react/jsx-runtime"); var FormikField = ({ validationSchema, errors, label, type, name, autoFocus, placeholder, disabled, as, isPassword, setPasswordIcon, passwordIcon, maxLength, rightIcon, icon, onBlur, isAuth = false, onChange, unit, value }) => { return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_formik3.Field, { name, autoComplete: "none", children: ({ field }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)( InputField, { validationSchema, label, error: errors[name], type, autoFocus, field, isValid: !errors[name], placeholder, disabled, as, isPassword, setPasswordIcon, passwordIcon, maxLength: maxLength || 250, isAuth, rightIcon, icon, onBlur, onChange, unit, value } ) }); }; // src/FormikPhoneNumber/FormikPhoneNumber.tsx var import_formik4 = require("formik"); var import_react_phone_number_input = __toESM(require("react-phone-number-input")); var import_style = require("react-phone-number-input/style.css"); var import_jsx_runtime9 = require("react/jsx-runtime"); var FormikPhoneNumber = ({ name, label, errors, validationSchema, isDisabled, onChange, isInternational = true, value }) => { return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_formik4.Field, { name, children: ({ field, form }) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)( CustomInputField, { validationSchema, label, error: errors, field, inputId: "label", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)( import_react_phone_number_input.default, { disabled: isDisabled, defaultCountry: "IN", placeholder: "Enter phone number", name: field.name, international: isInternational, className: "form-control autocomplete", countryCallingCodeEditable: false, value: value ? `${value}` : `${field?.value}`, onChange: (value2) => { if (value2?.length) { if (!(0, import_react_phone_number_input.isValidPhoneNumber)(value2)) { form.setFieldError(name, "Invalid Phone Number"); } else { form.setFieldError(name, ""); if (onChange) { return onChange(value2); } form.setFieldValue(name, value2); } } else { form.setFieldError(name, "Invalid Phone Number"); } } } ) } ) }); }; // src/FormikTimeField/FormikTimeField.tsx var import_formik5 = require("formik"); var import_moment = __toESM(require("moment")); var import_rc_time_picker = __toESM(require("rc-time-picker")); var import_assets = require("rc-time-picker/assets/index.css"); var import_jsx_runtime10 = require("react/jsx-runtime"); var FormikTimeField = ({ name, label, errors, validationSchema, isDisabled, value, use12Hours, onChange }) => { const inputId = `formikDateField_${name}`; return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_formik5.Field, { name, children: ({ field, form }) => { const defaultValue = (0, import_moment.default)( value || form.values[name] || "00:00", use12Hours ? "h:mm a" : "HH:mm" ); return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)( CustomInputField, { validationSchema, label, error: errors || "", field, inputId, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)( import_rc_time_picker.default, { id: inputId, showSecond: false, defaultValue, className: "form-control xxx", onChange: (newValue) => onChange ? onChange(newValue.format(use12Hours ? "h:mm a" : "HH:mm")) : form.setFieldValue( name, newValue.format(use12Hours ? "h:mm a" : "HH:mm") ), disabled: isDisabled, format: use12Hours ? "h:mm a" : "HH:mm", use12Hours, "data-testid": "Time" } ) } ); } }); }; // src/Modal/Context.tsx var import_react4 = require("react"); // src/Modal/Modal.tsx var import_react3 = require("react"); var import_react_bootstrap6 = require("react-bootstrap"); var import_jsx_runtime11 = require("react/jsx-runtime"); var Modal = ({ show = false, onHide, title, children, className = "", size = "sm", fullscreen, onClose }) => { const [modalShow, setModalShow] = (0, import_react3.useState)(false); (0, import_react3.useEffect)(() => { setModalShow(show); }, [show]); return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)( import_react_bootstrap6.Modal, { show: modalShow, onHide: () => { setModalShow(false); onHide && onHide(); onClose && onClose(); }, centered: true, className, fullscreen, size, keyboard: false, backdrop: "static", "data-testid": "close-button", children: [ (title || (onClose ? true : false)) && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)( import_react_bootstrap6.Modal.Header, { "data-testid": "close-button", closeButton: onClose ? true : false, children: title && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_bootstrap6.Modal.Title, { "data-testid": "Test Title", children: title }) } ), /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_bootstrap6.Modal.Body, { "data-testid": "Test Content", children }) ] } ); }; // src/Modal/Context.tsx var import_jsx_runtime12 = require("react/jsx-runtime"); var ModalContext = (0, import_react4.createContext)(void 0); var ModalProvider = ({ children }) => { const hideModal = () => { setModalContent(null); setModalProps(initialModalProps); }; const initialModalProps = { show: false, onHide: hideModal, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_jsx_runtime12.Fragment, {}), size: "sm" }; const [modalContent, setModalContent] = (0, import_react4.useState)(null); const [modalProps, setModalProps] = (0, import_react4.useState)(initialModalProps); const showModal = (content, ModalProps = {}) => { const mergedModalProps = { ...modalProps, show: true, ...ModalProps }; setModalContent(content); setModalProps(mergedModalProps); }; return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(ModalContext.Provider, { value: { showModal, hideModal }, children: [ children, modalContent && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "modal-wrapper", onClick: hideModal, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "modal-content", onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Modal, { ...modalProps, children: modalContent }) }) }) ] }); }; var useModal = ({ style, content }) => { const context = (0, import_react4.useContext)(ModalContext); if (!context) { throw new Error("useModal must be used within a ModalProvider"); } const triggerModal = () => { if (content) { context.showModal(content, style); } else { context.hideModal(); } }; return triggerModal; }; // src/Loader/Loader.tsx var import_jsx_runtime13 = require("react/jsx-runtime"); var Loader = () => { return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Modal, { show: true, size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: " d-flex justify-content-center align-items-center", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)( "section", { className: " position-relative", style: { width: "150px", height: "150px" }, children: [ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "loader", "data-testid": "loader" }), /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "loading loading06", children: [ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { "data-text": "L", children: "L" }), /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { "data-text": "O", children: "O" }), /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { "data-text": "A", children: "A" }), /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { "data-text": "D", children: "D" }), /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { "data-text": "I", children: "I" }), /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { "data-text": "N", children: "N" }), /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { "data-text": "G", children: "G" }), /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { "data-text": ".", children: "." }), /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { "data-text": ".", children: "." }), /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { "data-text": ".", children: "." }) ] }) ] } ) }) }); }; // src/NavBarMenu/NavBarMenuItems.tsx var import_react_bootstrap7 = require("react-bootstrap"); var import_jsx_runtime14 = require("react/jsx-runtime"); var NavBarMenuItems = ({ url, text, subMenu, isRadius, menu, icon }) => { return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)( import_react_bootstrap7.Nav.Link, { href: url, className: isRadius ? `is_radius ${menu === text ? "active" : ""}` : `header-css ${subMenu === text ? "active" : ""}`, id: text, children: [ icon && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "nav-icon", children: icon }), "\xA0", text ] } ); }; // src/Notify/Notify.tsx var import_react_toastify = require("react-toastify"); var Notify = ({ message, type, position = "top-right", autoClose = 3e3 }) => { const getIconAndBgColor = () => { let bgColor; let color; switch (type) { case "SUCCESS": bgColor = `var(--success)`; return { bgColor }; case "ERROR": bgColor = "var(--danger)"; return { bgColor }; case "LOADING": bgColor = "white"; color = "black"; return { bgColor, color }; } }; (0, import_react_toastify.toast)(message, { position, style: { background: getIconAndBgColor()?.bgColor, borderRadius: "50px", color: getIconAndBgColor()?.color ?? "#fff", width: "fit-content", textWrap: "wrap" }, autoClose, closeButton: false, hideProgressBar: true, containerId: message }); }; // src/Notify/ToastProvider.tsx var import_react_toastify2 = require("react-toastify"); var import_ReactToastify = require("react-toastify/dist/ReactToastify.css"); var import_jsx_runtime15 = require("react/jsx-runtime"); var ToastProvider = () => { return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_toastify2.ToastContainer, {}); }; // src/Util/index.ts var import_js_file_download = __toESM(require("js-file-download")); var BuildQueryParams = (params) => { if (params) { const queryParams = []; Object.keys(params).forEach((key) => { const value = params[key]; if (value !== null && value !== void 0) { if (Array.isArray(value)) { value.forEach((item) => { if (item !== null && item !== void 0 && item.toString().length) { queryParams.push( `${encodeURIComponent(key)}=${encodeURIComponent(item)}` ); } }); } else { if (value !== null && value !== void 0 && value.toString().length) { queryParams.push( `${encodeURIComponent(key)}=${encodeURIComponent(value)}` ); } } } }); return queryParams.join("&"); } return ""; }; var ToPascalCase = (data) => { return data.toLowerCase().split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" "); }; var ToHexColor = (str) => { let hash = 0; for (let i = 0; i < str.length; i++) { hash = str.charCodeAt(i) + ((hash << 5) - hash); } const color = (hash & 16777215).toString(16).toUpperCase(); return "#" + "00000".substring(0, 6 - color.length) + color; }; var RemoveNullValues = (obj) => { let isEmpty = true; for (const key in obj) { if (obj[key] === null) { delete obj[key]; } else if (typeof obj[key] === "object") { RemoveNullValues(obj[key]); if (Object.keys(obj[key]).length === 0) { delete obj[key]; } else { isEmpty = false; } } else { if (obj[key] === "true") { obj[key] = true; } else if (obj[key] === "false") { obj[key] = false; } isEmpty = false; } } if (isEmpty) { return {}; } else { return obj; } }; var IsNullOrUndefinedOrEmpty = async (value) => { return new Promise((resolve) => { resolve(value === void 0 || value === null || value.trim() === ""); }); }; var ToBase64 = (file) => new Promise((resolve, reject) => { const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = () => resolve(reader.result); reader.onerror = reject; }); var DownloadFile = (data, fileName, fileExtension) => { const mimeTypes = { xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", pdf: "application/pdf", html: "text/html", zip: "application/zip", jpeg: "image/jpeg", txt: "text/plain", fvu: "text/plain", csv: "text/csv" }; const fileType = mimeTypes[fileExtension.toLowerCase()]; (0, import_js_file_download.default)(data, fileName, fileType); }; // src/Pill/Pill.tsx var import_jsx_runtime16 = require("react/jsx-runtime"); var Pill = ({ pillText, pillColorClassName }) => { return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)( "span", { className: `fw-semibold rounded-3 pill_view ${pillColorClassName} `, id: pillText, children: ToPascalCase(pillText.replaceAll("_", " ").replaceAll("-", " ")) } ); }; // src/Table/Context.tsx var import_react5 = require("react"); var import_jsx_runtime17 = require("react/jsx-runtime"); var TableContext = (0, import_react5.createContext)( void 0 ); var TableProvider = ({ getData, children }) => { const [data, setData] = (0, import_react5.useState)([]); const [meta, setMeta] = (0, import_react5.useState)(null); (0, import_react5.useEffect)(() => { const fetchData = async () => { try { const { data: data2, meta: meta2 } = await getData(); setData(data2); setMeta(meta2); } catch (error) { console.error("Error fetching data:", error); } }; fetchData(); }, [getData]); return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(TableContext.Provider, { value: { data, meta }, children: children({ data, meta }) }); }; var useTableContext = () => { const context = (0, import_react5.useContext)(TableContext); if (!context) { throw new Error("useTableContext must be used within a TableProvider"); } return context; }; // src/ToggleSwitch/ToggleSwitch.tsx var import_jsx_runtime18 = require("react/jsx-runtime"); var ToggleSwitch = ({ textOff, textOn, isSwitchDefault = false, onChange, className, isDisabled, checked }) => { const getSwitchClasses = (isSwitchDefault2) => { if (isSwitchDefault2) { return "toggle_switch switch_default"; } else { return "toggle_switch switch_custom"; } }; const getOnClasses = (isSwitchDefault2) => { if (isSwitchDefault2) { return "on_default"; } else { return "on"; } }; const getOffClasses = (isSwitchDefault2) => { if (isSwitchDefault2) { return "off_default"; } else { return "off"; } }; return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: ` ${className}`, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("label", { className: "common_toggle_switch", children: [ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( "input", { type: "checkbox", id: "togBtn", disabled: isDisabled, checked, onChange, "data-testid": "toggle_switch_input" } ), /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getSwitchClasses(isSwitchDefault), children: [ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: `pe-4 fw-semibold ${getOnClasses(isSwitchDefault)}`, children: textOn }), /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( "div", { className: `ps-4 pe-1 fw-semibold ${getOffClasses( isSwitchDefault )}`, children: textOff } ) ] }) ] }) }); }; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { Accordion, BreadCrumb, BuildQueryParams, Button, CustomCreatableSelect, CustomInputField, CustomSelect, CustomStyles, DownloadFile, FormikField, FormikPhoneNumber, FormikTimeField, InputField, IsNullOrUndefinedOrEmpty, Loader, Modal, ModalProvider, NavBarMenuItems, Notify, Pill, RemoveNullValues, TableProvider, ToBase64, ToHexColor, ToPascalCase, ToastProvider, ToggleSwitch, useModal, useTableContext });