{"version":3,"file":"index.mjs","sources":["../src/components/common/commonfunctions.ts","../src/components/common/RDrawer.tsx","../src/components/common/RModal.tsx","../node_modules/tslib/tslib.es6.js","../src/components/common/RUploader.tsx","../src/components/common/StaticData.tsx","../src/components/common/RForm.tsx","../src/components/common/RFormWithDrawer.tsx","../src/components/common/RTableFilter.tsx","../src/components/common/RMenus.tsx","../src/components/Far/RFormFar.tsx"],"sourcesContent":["const ThemeChange = (primaryColor: string) => {\r\n  localStorage.setItem(\"theme\", String(primaryColor));\r\n\r\n  if (primaryColor == \"#025c5f\") {\r\n    document.documentElement.style.setProperty(\"--primary\", \"#025c5f\");\r\n    document.documentElement.style.setProperty(\"--primarytextcolor\", \"#025c5f\");\r\n    document.documentElement.style.setProperty(\"--NavbarActivecolor\", \"#1f7e82\");\r\n    document.documentElement.style.setProperty(\"--primaryhover\", \"#339093\");\r\n    document.documentElement.style.setProperty(\"--primaryfatcolor\", \"#c0ddde\");\r\n    document.documentElement.style.setProperty(\"--primaryextrafatcolor\", \"#e0eeee\");\r\n  } else if (primaryColor == \"#7c1d21\") {\r\n    document.documentElement.style.setProperty(\"--primary\", \"#7c1d21\");\r\n    document.documentElement.style.setProperty(\"--primarytextcolor\", \"#7c1d21\");\r\n    document.documentElement.style.setProperty(\"--NavbarActivecolor\", \"#a4262c\");\r\n    document.documentElement.style.setProperty(\"--primaryhover\", \"#a4262c\");\r\n    document.documentElement.style.setProperty(\"--primaryfatcolor\", \"#e8c9ca\");\r\n    document.documentElement.style.setProperty(\"--primaryextrafatcolor\", \"#f5e3e4\");\r\n  } else if (primaryColor == \"#005a9e\") {\r\n    document.documentElement.style.setProperty(\"--primary\", \"#005a9e\");\r\n    document.documentElement.style.setProperty(\"--primarytextcolor\", \"#005a9e\");\r\n    document.documentElement.style.setProperty(\"--NavbarActivecolor\", \"#0078d4\");\r\n    document.documentElement.style.setProperty(\"--primaryhover\", \"#0078d4\");\r\n    document.documentElement.style.setProperty(\"--primaryfatcolor\", \"#bfddf4\");\r\n    document.documentElement.style.setProperty(\"--primaryextrafatcolor\", \"#e0effa\");\r\n  } else if (primaryColor == \"#993e0c\") {\r\n    document.documentElement.style.setProperty(\"--primary\", \"#993e0c\");\r\n    document.documentElement.style.setProperty(\"--primarytextcolor\", \"#993e0c\");\r\n    document.documentElement.style.setProperty(\"--NavbarActivecolor\", \"#ca5010\");\r\n    document.documentElement.style.setProperty(\"--primaryhover\", \"#ca5010\");\r\n    document.documentElement.style.setProperty(\"--primaryfatcolor\", \"#f2d3c3\");\r\n    document.documentElement.style.setProperty(\"--primaryextrafatcolor\", \"#f9e8de\");\r\n  } else if (primaryColor == \"#27469b\") {\r\n    document.documentElement.style.setProperty(\"--primary\", \"#27469b\");\r\n    document.documentElement.style.setProperty(\"--primarytextcolor\", \"#27469b\");\r\n    document.documentElement.style.setProperty(\"--NavbarActivecolor\", \"#335ccc\");\r\n    document.documentElement.style.setProperty(\"--primaryhover\", \"#335ccc\");\r\n    document.documentElement.style.setProperty(\"--primaryfatcolor\", \"#ccd6f2\");\r\n    document.documentElement.style.setProperty(\"--primaryextrafatcolor\", \"#e3e9f8\");\r\n  } else if (primaryColor == \"#664b8c\") {\r\n    document.documentElement.style.setProperty(\"--primary\", \"#664b8c\");\r\n    document.documentElement.style.setProperty(\"--primarytextcolor\", \"#664b8c\");\r\n    document.documentElement.style.setProperty(\"--NavbarActivecolor\", \"#8764b8\");\r\n    document.documentElement.style.setProperty(\"--primaryhover\", \"#8764b8\");\r\n    document.documentElement.style.setProperty(\"--primaryfatcolor\", \"#e1d8ed\");\r\n    document.documentElement.style.setProperty(\"--primaryextrafatcolor\", \"#f0ebf6\");\r\n  } else if (primaryColor == \"#386304\") {\r\n    document.documentElement.style.setProperty(\"--primary\", \"#386304\");\r\n    document.documentElement.style.setProperty(\"--primarytextcolor\", \"#386304\");\r\n    document.documentElement.style.setProperty(\"--NavbarActivecolor\", \"#498205\");\r\n    document.documentElement.style.setProperty(\"--primaryhover\", \"#498205\");\r\n    document.documentElement.style.setProperty(\"--primaryfatcolor\", \"#d1e0c0\");\r\n    document.documentElement.style.setProperty(\"--primaryextrafatcolor\", \"#e7efd9\");\r\n  } else if (primaryColor == \"#745608\") {\r\n    document.documentElement.style.setProperty(\"--primary\", \"#745608\");\r\n    document.documentElement.style.setProperty(\"--primarytextcolor\", \"#745608\");\r\n    document.documentElement.style.setProperty(\"--NavbarActivecolor\", \"#986f0b\");\r\n    document.documentElement.style.setProperty(\"--primaryhover\", \"#986f0b\");\r\n    document.documentElement.style.setProperty(\"--primaryfatcolor\", \"#e5dbc2\");\r\n    document.documentElement.style.setProperty(\"--primaryextrafatcolor\", \"#f2eddd\");\r\n  } else if (primaryColor == \"#19577d\") {\r\n    document.documentElement.style.setProperty(\"--primary\", \"#19577d\");\r\n    document.documentElement.style.setProperty(\"--primarytextcolor\", \"#19577d\");\r\n    document.documentElement.style.setProperty(\"--NavbarActivecolor\", \"#1b72a8\");\r\n    document.documentElement.style.setProperty(\"--primaryhover\", \"#1b72a8\");\r\n    document.documentElement.style.setProperty(\"--primaryfatcolor\", \"#c6dce9\");\r\n    document.documentElement.style.setProperty(\"--primaryextrafatcolor\", \"#e0edf3\");\r\n  } else if (primaryColor == \"#003b6b\") {\r\n    document.documentElement.style.setProperty(\"--primary\", \"#003b6b\");\r\n    document.documentElement.style.setProperty(\"--primarytextcolor\", \"#003b6b\");\r\n    document.documentElement.style.setProperty(\"--NavbarActivecolor\", \"#004e8c\");\r\n    document.documentElement.style.setProperty(\"--primaryhover\", \"#125d9a\");\r\n    document.documentElement.style.setProperty(\"--primaryfatcolor\", \"#bfd3e2\");\r\n    document.documentElement.style.setProperty(\"--primaryextrafatcolor\", \"#dce6ef\");\r\n  }\r\n  // common colors\r\n  document.documentElement.style.setProperty('--primarytexthovercolor', '#ffffff');\r\n  document.documentElement.style.setProperty('--PanleBGcolor', '#f5f5f5');\r\n  document.documentElement.style.setProperty('--Bordercolor', '#dbd3d3');\r\n};\r\n\r\nconst filterOption = (input: string, option?: { label: string; value: string }) => (option?.label ?? '').toLowerCase().includes(input.toLowerCase());\r\n\r\nconst filterOption2 = (input: string, option?: { label?: string; value?: string }) => option?.label?.toLowerCase().includes(input.toLowerCase()) || option?.value?.toLowerCase()?.includes(input.toLowerCase());\r\n\r\n// export const filterOption3 = (input: string, option?: { key?: string; label?: string; value?: string }) => option?.key?.toLowerCase().includes(input.toLowerCase()) || option?.label?.toLowerCase().includes(input.toLowerCase()) || option?.value?.toLowerCase()?.includes(input.toLowerCase())\r\n\r\nconst filterOption3 = (input: string, option?: { key?: string; label?: string; value?: string }): boolean => {\r\n  const inputLower = input.toLowerCase();\r\n  return (\r\n    (option?.key ?? '').toLowerCase().includes(inputLower) ||\r\n    (option?.label ?? '').toLowerCase().includes(inputLower) ||\r\n    (option?.value ?? '').toLowerCase().includes(inputLower)\r\n  );\r\n};\r\n\r\n\r\nexport { ThemeChange, filterOption, filterOption2, filterOption3 };","import { Drawer } from 'antd';\r\nimport { CloseOutlined } from '@ant-design/icons';\r\nimport { ReactNode } from 'react';\r\n\r\ninterface AntDrawerProps {\r\n  title: ReactNode;\r\n  open: boolean;\r\n  closePanle: () => void;\r\n  children: ReactNode;\r\n  position?: 'left' | 'right' | 'top' | 'bottom';\r\n  size?: number | string;\r\n  loading?: boolean;\r\n  customActions?: ReactNode;\r\n  drawerId: string;\r\n  className?: string;\r\n}\r\n\r\nconst RDrawer = ({\r\n  title,\r\n  size = 500,\r\n  position = 'right',\r\n  open,\r\n  closePanle,\r\n  loading,\r\n  children,\r\n  customActions,\r\n  drawerId,\r\n  className = '',\r\n}: AntDrawerProps) => {\r\n  return (\r\n    <Drawer\r\n      title={title}\r\n      placement={position}\r\n      width={size}\r\n      id={drawerId}\r\n      onClose={closePanle}\r\n      loading={loading}\r\n      open={open}\r\n      closable={false}\r\n      className={`${className} customRDrawer`}\r\n      extra={\r\n        <div className=\"flex items-center gap-3\">\r\n          {customActions}\r\n          <CloseOutlined size={15} onClick={closePanle} className=\"!text-white\" title=\"Close\" />\r\n        </div>\r\n      }\r\n    >\r\n      {children}\r\n    </Drawer>\r\n  );\r\n};\r\n\r\nexport { RDrawer };\r\n","import { Modal, ModalProps } from 'antd';\r\nimport { ReactNode } from 'react';\r\n\r\ninterface ReusableModalProps extends Partial<ModalProps> {\r\n  isVisible: boolean;\r\n  onOk?: () => void;\r\n  closePanle?: () => void;\r\n  title?: string;\r\n  size?: number;\r\n  loading?: boolean;\r\n  children?: ReactNode;\r\n  footer?: ReactNode;\r\n  closable?: boolean;\r\n  maskClosable?: boolean;\r\n}\r\n\r\nconst RModal: React.FC<ReusableModalProps> = ({\r\n  isVisible,\r\n  onOk,\r\n  closePanle,\r\n  title,\r\n  size = 500,\r\n  loading = false,\r\n  children,\r\n  footer = undefined,\r\n  closable = true,\r\n  maskClosable = true,\r\n}) => {\r\n  return (\r\n    <Modal\r\n      title={title}\r\n      open={isVisible}\r\n      onOk={onOk}\r\n      onCancel={closePanle}\r\n      centered\r\n      width={size}\r\n      confirmLoading={loading}\r\n      footer={footer}\r\n      closable={closable}\r\n      maskClosable={maskClosable}\r\n    >\r\n      {children}\r\n    </Modal>\r\n  );\r\n};\r\n\r\nexport { RModal };\r\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n    function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n    var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n    var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n    var _, done = false;\r\n    for (var i = decorators.length - 1; i >= 0; i--) {\r\n        var context = {};\r\n        for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n        for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n        context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n        var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n        if (kind === \"accessor\") {\r\n            if (result === void 0) continue;\r\n            if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n            if (_ = accept(result.get)) descriptor.get = _;\r\n            if (_ = accept(result.set)) descriptor.set = _;\r\n            if (_ = accept(result.init)) initializers.unshift(_);\r\n        }\r\n        else if (_ = accept(result)) {\r\n            if (kind === \"field\") initializers.unshift(_);\r\n            else descriptor[key] = _;\r\n        }\r\n    }\r\n    if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n    done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n    var useValue = arguments.length > 2;\r\n    for (var i = 0; i < initializers.length; i++) {\r\n        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n    }\r\n    return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n    return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n    if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n    return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n    return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n    function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n    ownKeys = Object.getOwnPropertyNames || function (o) {\r\n        var ar = [];\r\n        for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n        return ar;\r\n    };\r\n    return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n    if (value !== null && value !== void 0) {\r\n        if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n        var dispose, inner;\r\n        if (async) {\r\n            if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n            dispose = value[Symbol.asyncDispose];\r\n        }\r\n        if (dispose === void 0) {\r\n            if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n            dispose = value[Symbol.dispose];\r\n            if (async) inner = dispose;\r\n        }\r\n        if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n        if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n        env.stack.push({ value: value, dispose: dispose, async: async });\r\n    }\r\n    else if (async) {\r\n        env.stack.push({ async: true });\r\n    }\r\n    return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n    var e = new Error(message);\r\n    return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n    function fail(e) {\r\n        env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n        env.hasError = true;\r\n    }\r\n    var r, s = 0;\r\n    function next() {\r\n        while (r = env.stack.pop()) {\r\n            try {\r\n                if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n                if (r.dispose) {\r\n                    var result = r.dispose.call(r.value);\r\n                    if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n                }\r\n                else s |= 1;\r\n            }\r\n            catch (e) {\r\n                fail(e);\r\n            }\r\n        }\r\n        if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n        if (env.hasError) throw env.error;\r\n    }\r\n    return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n    if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n        return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n            return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n        });\r\n    }\r\n    return path;\r\n}\r\n\r\nexport default {\r\n    __extends: __extends,\r\n    __assign: __assign,\r\n    __rest: __rest,\r\n    __decorate: __decorate,\r\n    __param: __param,\r\n    __esDecorate: __esDecorate,\r\n    __runInitializers: __runInitializers,\r\n    __propKey: __propKey,\r\n    __setFunctionName: __setFunctionName,\r\n    __metadata: __metadata,\r\n    __awaiter: __awaiter,\r\n    __generator: __generator,\r\n    __createBinding: __createBinding,\r\n    __exportStar: __exportStar,\r\n    __values: __values,\r\n    __read: __read,\r\n    __spread: __spread,\r\n    __spreadArrays: __spreadArrays,\r\n    __spreadArray: __spreadArray,\r\n    __await: __await,\r\n    __asyncGenerator: __asyncGenerator,\r\n    __asyncDelegator: __asyncDelegator,\r\n    __asyncValues: __asyncValues,\r\n    __makeTemplateObject: __makeTemplateObject,\r\n    __importStar: __importStar,\r\n    __importDefault: __importDefault,\r\n    __classPrivateFieldGet: __classPrivateFieldGet,\r\n    __classPrivateFieldSet: __classPrivateFieldSet,\r\n    __classPrivateFieldIn: __classPrivateFieldIn,\r\n    __addDisposableResource: __addDisposableResource,\r\n    __disposeResources: __disposeResources,\r\n    __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import React, { ReactNode, useEffect, useState } from \"react\";\r\nimport { Modal, Select, Tooltip, Upload } from \"antd\";\r\nimport { RiFileExcel2Line } from \"react-icons/ri\";\r\nimport * as XLSX from \"xlsx\";\r\n\r\nconst { Dragger } = Upload;\r\n\r\ninterface ExcelKeyMapping {\r\n  uploadedKey: string;\r\n  convertedKey: string;\r\n  required: boolean;\r\n  type?: string;\r\n}\r\ninterface ReusableUploaderProps {\r\n  uploadName?: string;\r\n  requiredKeys: ExcelKeyMapping[];\r\n  onUploadSuccess: (data: any[]) => boolean | Promise<boolean>;\r\n  accept?: string;\r\n  isOpen: boolean;\r\n  text?: ReactNode;\r\n  tooltip?: string;\r\n  disabledTooltip?: string;\r\n  disable?: boolean;\r\n  uploaderId?: string;\r\n  SuccessAlert: (message: string, uploaderId: string, duration?: number | null, isConfirmBtn?: boolean, isWait?: boolean) => void;\r\n  WarningAlert: (message: string, uploaderId: string, duration?: number | null, isConfirmBtn?: boolean, isWait?: boolean) => void;\r\n}\r\n\r\nconst RUploader: React.FC<ReusableUploaderProps> = ({\r\n  uploadName = \"Click or drag file to this area to upload File\",\r\n  requiredKeys,\r\n  onUploadSuccess,\r\n  accept = \".xlsm, .xlsx, .xls, .csv\",\r\n  isOpen,\r\n  disable = false,\r\n  tooltip = \"Click And Upload File\",\r\n  disabledTooltip = \"Please select period\",\r\n  text = \"\",\r\n  uploaderId = \"ReusableUploader\",\r\n  SuccessAlert,\r\n  WarningAlert\r\n}) => {\r\n  const [fileList, setFileList] = useState<any[]>([]);\r\n  const [sheetNames, setSheetNames] = useState<string[]>([]);\r\n  const [selectedSheet, setSelectedSheet] = useState<string>(\"\");\r\n  const [modalVisible, setModalVisible] = useState<boolean>(false);\r\n  const [workbook, setWorkbook] = useState<any>(null);\r\n  const [fileReaderResolve, setFileReaderResolve] = useState<any>(null);\r\n  const [instanceKey, setInstanceKey] = useState(0);\r\n\r\n  useEffect(() => {\r\n    if (isOpen) {\r\n      setFileList([]);\r\n      setWorkbook(null);\r\n      setSelectedSheet(\"\");\r\n      setSheetNames([]);\r\n      setInstanceKey((k) => k + 1);\r\n    }\r\n  }, [isOpen]);\r\n\r\n  const handleModalOk = async () => {\r\n    setModalVisible(false);\r\n    if (workbook && selectedSheet) {\r\n      const sheet = workbook.Sheets[selectedSheet];\r\n      const jsonData: any[] = XLSX.utils.sheet_to_json(sheet);\r\n      const processedData = processExcelData(jsonData);\r\n      if (processedData?.length > 0) {\r\n        const status = await onUploadSuccess(processedData);\r\n        fileReaderResolve(status);\r\n      } else {\r\n        fileReaderResolve(false);\r\n      }\r\n    } else {\r\n      fileReaderResolve(false);\r\n    }\r\n  };\r\n\r\n  const handleModalCancel = () => {\r\n    setModalVisible(false);\r\n    fileReaderResolve(false);\r\n  };\r\n\r\n  const processExcelData = (jsonData: any[]) => {\r\n    const formattedData: any[] = [];\r\n    for (let i = 0; i < jsonData?.length; i++) {\r\n      const row = jsonData[i];\r\n      const formattedRow: any = {};\r\n      const missingKeys: string[] = [];\r\n      const isRowEmpty = Object.keys(row).every((key) => key === \"__rowNum__\" || row[key] === \"\" || row[key] === null || row[key] === undefined);\r\n      if (isRowEmpty) {\r\n        continue;\r\n      }\r\n\r\n      requiredKeys.forEach(({ uploadedKey, convertedKey, required }) => {\r\n        const foundKey = Object.keys(row).find((key) => key.trim().toLowerCase() === uploadedKey.trim().toLowerCase());\r\n        if (foundKey) {\r\n          const trimmedValue = typeof row[foundKey] === \"string\" ? row[foundKey].trim() : row[foundKey];\r\n          formattedRow[convertedKey] = trimmedValue;\r\n        } else if (required) {\r\n          missingKeys.push(convertedKey);\r\n        }\r\n      });\r\n\r\n      if (missingKeys.length === 0) {\r\n        formattedData.push(formattedRow);\r\n      } else {\r\n        WarningAlert(`Row ${i + 2} is missing required columns: ${missingKeys.join(\", \")}.`, uploaderId, null, true)\r\n        return [];\r\n      }\r\n    }\r\n    return formattedData;\r\n  };\r\n\r\n  const customRequest = ({ file, onError, onSuccess }: any) => {\r\n    if (file && (file.type === \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\" ||\r\n      file.type === \"application/vnd.ms-excel\" ||\r\n      file.type === \"application/vnd.ms-excel.sheet.macroEnabled.12\" ||\r\n      file.type === \"text/csv\")\r\n    ) {\r\n      const reader = new FileReader();\r\n      reader.onload = async (event) => {\r\n        if (event.target) {\r\n          const data = event.target.result;\r\n          const wb = XLSX.read(data, { type: \"binary\", cellDates: true, cellText: false, cellNF: false, });\r\n          setWorkbook(wb);\r\n          setSheetNames(wb.SheetNames);\r\n          setSelectedSheet(wb.SheetNames[0]);\r\n          if (wb.SheetNames.length === 1) {\r\n            const sheet = wb.Sheets[wb.SheetNames[0]];\r\n            const jsonData: any[] = XLSX.utils.sheet_to_json(sheet);\r\n            const processedData = processExcelData(jsonData);\r\n            if (processedData.length > 0) {\r\n              const status = await onUploadSuccess(processedData);\r\n              if (status) {\r\n                setInstanceKey((k) => k + 1);\r\n              }\r\n              status ? onSuccess() : onError();\r\n            } else {\r\n              onError();\r\n            }\r\n          } else {\r\n            setModalVisible(true);\r\n            const result = await new Promise<boolean>((resolve) => {\r\n              setFileReaderResolve(() => resolve);\r\n            });\r\n            result ? onSuccess() : onError();\r\n          }\r\n        }\r\n      };\r\n      reader.readAsArrayBuffer(file);\r\n    } else {\r\n      onError();\r\n      setTimeout(() => {\r\n        WarningAlert(\"Please upload a valid Excel file.\", uploaderId)\r\n      }, 2000);\r\n    }\r\n  };\r\n\r\n  const props = {\r\n    name: \"file\",\r\n    multiple: false,\r\n    accept,\r\n    maxCount: 1,\r\n    customRequest,\r\n    fileList,\r\n    onChange(info: any) {\r\n      const { status } = info.file;\r\n      if (status === \"done\") {\r\n        SuccessAlert(`${info.file.name} file uploaded successfully.`, uploaderId)\r\n        info.file.status = undefined;\r\n      } else if (status === \"error\") {\r\n        WarningAlert(`${info.file.name} file upload failed.`, uploaderId)\r\n      }\r\n      setFileList(info.fileList);\r\n    },\r\n    onDrop(e: any) {\r\n      console.log(\"Dropped files\", e.dataTransfer.files);\r\n    },\r\n    onRemove() {\r\n      setFileList([]);\r\n      onUploadSuccess([]);\r\n    },\r\n  };\r\n\r\n  return (\r\n    <div id={`${uploaderId ? uploaderId : \"ReusableUploader\"}`}>\r\n      <Tooltip title={disable ? disabledTooltip : tooltip}>\r\n        <div className=\"h-[200px] mb-9\">\r\n          <Dragger {...props} disabled={disable} key={instanceKey}>\r\n            <p className=\"ant-upload-drag-icon flex justify-center\">\r\n              <RiFileExcel2Line className=\"text-5xl primarytext\" />\r\n            </p>\r\n            <p className=\"ant-upload-text\">{uploadName}</p>\r\n            {text}\r\n          </Dragger>\r\n        </div>\r\n      </Tooltip>\r\n      <Modal\r\n        title=\"Select a sheet to upload\"\r\n        open={modalVisible}\r\n        onOk={handleModalOk}\r\n        onCancel={handleModalCancel}\r\n        okText=\"Upload\"\r\n        cancelText=\"Cancel\"\r\n      >\r\n        <Select\r\n          value={selectedSheet}\r\n          style={{ width: \"100%\" }}\r\n          onChange={(value) => setSelectedSheet(value)}\r\n        >\r\n          {sheetNames?.map((name) => (\r\n            <Select.Option key={name} value={name}>\r\n              {name}\r\n            </Select.Option>\r\n          ))}\r\n        </Select>\r\n      </Modal>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport { RUploader };","const colorOptions = [\r\n  '#025c5f',\r\n  '#7c1d21',\r\n  '#005a9e',\r\n  '#993e0c',\r\n  '#27469b',\r\n  '#664b8c',\r\n  '#386304',\r\n  '#745608',\r\n  '#19577d',\r\n  '#003b6b',\r\n  // \"#4f5b5f\",\r\n];\r\n\r\nconst dateFormats = [\r\n  'DD/MM/YYYY',\r\n  'MM/DD/YYYY',\r\n  'YYYY/MM/DD',\r\n  'YYYY/DD/MM',\r\n  'DD/MMM/YYYY',\r\n  'DD-MMM-YYYY',\r\n  'MMMM DD, YYYY',\r\n  'DD MMMM YYYY',\r\n  'MMM DD, YYYY',\r\n  'DD MMM, YYYY',\r\n  'YYYY MMMM DD',\r\n  'dddd, MMMM DD, YYYY',\r\n  'ddd, MMM DD, YYYY',\r\n];\r\n\r\nconst countryCurrency = [\r\n  { code: 'AF', label: 'Afghanistan', value: 'AFN' },\r\n  { code: 'AL', label: 'Albania', value: 'ALL' },\r\n  { code: 'DZ', label: 'Algeria', value: 'DZD' },\r\n  { code: 'AS', label: 'American Samoa', value: 'USD' },\r\n  { code: 'AD', label: 'Andorra', value: 'EUR' },\r\n  { code: 'AO', label: 'Angola', value: 'AOA' },\r\n  { code: 'AI', label: 'Anguilla', value: 'XCD' },\r\n  { code: 'AG', label: 'Antigua and Barbuda', value: 'XCD' },\r\n  { code: 'AR', label: 'Argentina', value: 'ARS' },\r\n  { code: 'AM', label: 'Armenia', value: 'AMD' },\r\n  { code: 'AU', label: 'Australia', value: 'AUD' },\r\n  { code: 'AT', label: 'Austria', value: 'EUR' },\r\n  { code: 'AZ', label: 'Azerbaijan', value: 'AZN' },\r\n  { code: 'BS', label: 'Bahamas', value: 'BSD' },\r\n  { code: 'BH', label: 'Bahrain', value: 'BHD' },\r\n  { code: 'BD', label: 'Bangladesh', value: 'BDT' },\r\n  { code: 'BB', label: 'Barbados', value: 'BBD' },\r\n  { code: 'BY', label: 'Belarus', value: 'BYN' },\r\n  { code: 'BE', label: 'Belgium', value: 'EUR' },\r\n  { code: 'BZ', label: 'Belize', value: 'BZD' },\r\n  { code: 'BJ', label: 'Benin', value: 'XOF' },\r\n  { code: 'BM', label: 'Bermuda', value: 'BMD' },\r\n  { code: 'BT', label: 'Bhutan', value: 'BTN' },\r\n  { code: 'BO', label: 'Bolivia', value: 'BOB' },\r\n  { code: 'BA', label: 'Bosnia and Herzegovina', value: 'BAM' },\r\n  { code: 'BW', label: 'Botswana', value: 'BWP' },\r\n  { code: 'BR', label: 'Brazil', value: 'BRL' },\r\n  { code: 'BN', label: 'Brunei', value: 'BND' },\r\n  { code: 'BG', label: 'Bulgaria', value: 'BGN' },\r\n  { code: 'BF', label: 'Burkina Faso', value: 'XOF' },\r\n  { code: 'BI', label: 'Burundi', value: 'BIF' },\r\n  { code: 'KH', label: 'Cambodia', value: 'KHR' },\r\n  { code: 'CM', label: 'Cameroon', value: 'XAF' },\r\n  { code: 'CA', label: 'Canada', value: 'CAD' },\r\n  { code: 'CV', label: 'Cape Verde', value: 'CVE' },\r\n  { code: 'CF', label: 'Central African Republic', value: 'XAF' },\r\n  { code: 'TD', label: 'Chad', value: 'XAF' },\r\n  { code: 'CL', label: 'Chile', value: 'CLP' },\r\n  { code: 'CN', label: 'China', value: 'CNY' },\r\n  { code: 'CO', label: 'Colombia', value: 'COP' },\r\n  { code: 'KM', label: 'Comoros', value: 'KMF' },\r\n  { code: 'CG', label: 'Congo', value: 'XAF' },\r\n  { code: 'CR', label: 'Costa Rica', value: 'CRC' },\r\n  { code: 'HR', label: 'Croatia', value: 'EUR' },\r\n  { code: 'CU', label: 'Cuba', value: 'CUP' },\r\n  { code: 'CY', label: 'Cyprus', value: 'EUR' },\r\n  { code: 'CZ', label: 'Czech Republic', value: 'CZK' },\r\n  { code: 'DK', label: 'Denmark', value: 'DKK' },\r\n  { code: 'DJ', label: 'Djibouti', value: 'DJF' },\r\n  { code: 'DM', label: 'Dominica', value: 'XCD' },\r\n  { code: 'DO', label: 'Dominican Republic', value: 'DOP' },\r\n  { code: 'EC', label: 'Ecuador', value: 'USD' },\r\n  { code: 'EG', label: 'Egypt', value: 'EGP' },\r\n  { code: 'SV', label: 'El Salvador', value: 'USD' },\r\n  { code: 'GQ', label: 'Equatorial Guinea', value: 'XAF' },\r\n  { code: 'ER', label: 'Eritrea', value: 'ERN' },\r\n  { code: 'EE', label: 'Estonia', value: 'EUR' },\r\n  { code: 'ET', label: 'Ethiopia', value: 'ETB' },\r\n  { code: 'FJ', label: 'Fiji', value: 'FJD' },\r\n  { code: 'FI', label: 'Finland', value: 'EUR' },\r\n  { code: 'FR', label: 'France', value: 'EUR' },\r\n  { code: 'GA', label: 'Gabon', value: 'XAF' },\r\n  { code: 'GM', label: 'Gambia', value: 'GMD' },\r\n  { code: 'GE', label: 'Georgia', value: 'GEL' },\r\n  { code: 'DE', label: 'Germany', value: 'EUR' },\r\n  { code: 'GH', label: 'Ghana', value: 'GHS' },\r\n  { code: 'GR', label: 'Greece', value: 'EUR' },\r\n  { code: 'GD', label: 'Grenada', value: 'XCD' },\r\n  { code: 'GT', label: 'Guatemala', value: 'GTQ' },\r\n  { code: 'GN', label: 'Guinea', value: 'GNF' },\r\n  { code: 'GW', label: 'Guinea-Bissau', value: 'XOF' },\r\n  { code: 'GY', label: 'Guyana', value: 'GYD' },\r\n  { code: 'HT', label: 'Haiti', value: 'HTG' },\r\n  { code: 'HN', label: 'Honduras', value: 'HNL' },\r\n  { code: 'HK', label: 'Hong Kong', value: 'HKD' },\r\n  { code: 'HU', label: 'Hungary', value: 'HUF' },\r\n  { code: 'IS', label: 'Iceland', value: 'ISK' },\r\n  { code: 'IN', label: 'India', value: 'INR' },\r\n  { code: 'ID', label: 'Indonesia', value: 'IDR' },\r\n  { code: 'IR', label: 'Iran', value: 'IRR' },\r\n  { code: 'IQ', label: 'Iraq', value: 'IQD' },\r\n  { code: 'IE', label: 'Ireland', value: 'EUR' },\r\n  { code: 'IL', label: 'Israel', value: 'ILS' },\r\n  { code: 'IT', label: 'Italy', value: 'EUR' },\r\n  { code: 'JM', label: 'Jamaica', value: 'JMD' },\r\n  { code: 'JP', label: 'Japan', value: 'JPY' },\r\n  { code: 'JO', label: 'Jordan', value: 'JOD' },\r\n  { code: 'KZ', label: 'Kazakhstan', value: 'KZT' },\r\n  { code: 'KE', label: 'Kenya', value: 'KES' },\r\n  { code: 'KI', label: 'Kiribati', value: 'AUD' },\r\n  { code: 'KR', label: 'South Korea', value: 'KRW' },\r\n  { code: 'KW', label: 'Kuwait', value: 'KWD' },\r\n  { code: 'KG', label: 'Kyrgyzstan', value: 'KGS' },\r\n  { code: 'LA', label: 'Laos', value: 'LAK' },\r\n  { code: 'LV', label: 'Latvia', value: 'EUR' },\r\n  { code: 'LB', label: 'Lebanon', value: 'LBP' },\r\n  { code: 'LS', label: 'Lesotho', value: 'LSL' },\r\n  { code: 'LR', label: 'Liberia', value: 'LRD' },\r\n  { code: 'LY', label: 'Libya', value: 'LYD' },\r\n  { code: 'LI', label: 'Liechtenstein', value: 'CHF' },\r\n  { code: 'LT', label: 'Lithuania', value: 'EUR' },\r\n  { code: 'LU', label: 'Luxembourg', value: 'EUR' },\r\n  { code: 'MG', label: 'Madagascar', value: 'MGA' },\r\n  { code: 'MW', label: 'Malawi', value: 'MWK' },\r\n  { code: 'MY', label: 'Malaysia', value: 'MYR' },\r\n  { code: 'MV', label: 'Maldives', value: 'MVR' },\r\n  { code: 'ML', label: 'Mali', value: 'XOF' },\r\n  { code: 'MT', label: 'Malta', value: 'EUR' },\r\n  { code: 'MH', label: 'Marshall Islands', value: 'USD' },\r\n  { code: 'MR', label: 'Mauritania', value: 'MRU' },\r\n  { code: 'MU', label: 'Mauritius', value: 'MUR' },\r\n  { code: 'MX', label: 'Mexico', value: 'MXN' },\r\n  { code: 'FM', label: 'Micronesia', value: 'USD' },\r\n  { code: 'MD', label: 'Moldova', value: 'MDL' },\r\n  { code: 'MC', label: 'Monaco', value: 'EUR' },\r\n  { code: 'MN', label: 'Mongolia', value: 'MNT' },\r\n  { code: 'ME', label: 'Montenegro', value: 'EUR' },\r\n  { code: 'MA', label: 'Morocco', value: 'MAD' },\r\n  { code: 'MZ', label: 'Mozambique', value: 'MZN' },\r\n  { code: 'MM', label: 'Myanmar', value: 'MMK' },\r\n  { code: 'NA', label: 'Namibia', value: 'NAD' },\r\n  { code: 'NR', label: 'Nauru', value: 'AUD' },\r\n  { code: 'NP', label: 'Nepal', value: 'NPR' },\r\n  { code: 'NL', label: 'Netherlands', value: 'EUR' },\r\n  { code: 'NZ', label: 'New Zealand', value: 'NZD' },\r\n  { code: 'NI', label: 'Nicaragua', value: 'NIO' },\r\n  { code: 'NE', label: 'Niger', value: 'XOF' },\r\n  { code: 'NG', label: 'Nigeria', value: 'NGN' },\r\n  { code: 'KP', label: 'North Korea', value: 'KPW' },\r\n  { code: 'NO', label: 'Norway', value: 'NOK' },\r\n  { code: 'OM', label: 'Oman', value: 'OMR' },\r\n  { code: 'PK', label: 'Pakistan', value: 'PKR' },\r\n  { code: 'PW', label: 'Palau', value: 'USD' },\r\n  { code: 'PS', label: 'Palestine', value: 'ILS' },\r\n  { code: 'PA', label: 'Panama', value: 'PAB' },\r\n  { code: 'PG', label: 'Papua New Guinea', value: 'PGK' },\r\n  { code: 'PY', label: 'Paraguay', value: 'PYG' },\r\n  { code: 'PE', label: 'Peru', value: 'PEN' },\r\n  { code: 'PH', label: 'Philippines', value: 'PHP' },\r\n  { code: 'PL', label: 'Poland', value: 'PLN' },\r\n  { code: 'PT', label: 'Portugal', value: 'EUR' },\r\n  { code: 'QA', label: 'Qatar', value: 'QAR' },\r\n  { code: 'RO', label: 'Romania', value: 'RON' },\r\n  { code: 'RU', label: 'Russia', value: 'RUB' },\r\n  { code: 'RW', label: 'Rwanda', value: 'RWF' },\r\n  { code: 'WS', label: 'Samoa', value: 'WST' },\r\n  { code: 'SA', label: 'Saudi Arabia', value: 'SAR' },\r\n  { code: 'SN', label: 'Senegal', value: 'XOF' },\r\n  { code: 'RS', label: 'Serbia', value: 'RSD' },\r\n  { code: 'SC', label: 'Seychelles', value: 'SCR' },\r\n  { code: 'SL', label: 'Sierra Leone', value: 'SLL' },\r\n  { code: 'SG', label: 'Singapore', value: 'SGD' },\r\n  { code: 'SK', label: 'Slovakia', value: 'EUR' },\r\n  { code: 'SI', label: 'Slovenia', value: 'EUR' },\r\n  { code: 'SB', label: 'Solomon Islands', value: 'SBD' },\r\n  { code: 'SO', label: 'Somalia', value: 'SOS' },\r\n  { code: 'ZA', label: 'South Africa', value: 'ZAR' },\r\n  { code: 'ES', label: 'Spain', value: 'EUR' },\r\n  { code: 'LK', label: 'Sri Lanka', value: 'LKR' },\r\n  { code: 'SD', label: 'Sudan', value: 'SDG' },\r\n  { code: 'SR', label: 'Suriname', value: 'SRD' },\r\n  { code: 'SZ', label: 'Eswatini', value: 'SZL' },\r\n  { code: 'SE', label: 'Sweden', value: 'SEK' },\r\n  { code: 'CH', label: 'Switzerland', value: 'CHF' },\r\n  { code: 'SY', label: 'Syria', value: 'SYP' },\r\n  { code: 'TW', label: 'Taiwan', value: 'TWD' },\r\n  { code: 'TJ', label: 'Tajikistan', value: 'TJS' },\r\n  { code: 'TZ', label: 'Tanzania', value: 'TZS' },\r\n  { code: 'TH', label: 'Thailand', value: 'THB' },\r\n  { code: 'TL', label: 'Timor-Leste', value: 'USD' },\r\n  { code: 'TG', label: 'Togo', value: 'XOF' },\r\n  { code: 'TO', label: 'Tonga', value: 'TOP' },\r\n  { code: 'TT', label: 'Trinidad and Tobago', value: 'TTD' },\r\n  { code: 'TN', label: 'Tunisia', value: 'TND' },\r\n  { code: 'TR', label: 'Turkey', value: 'TRY' },\r\n  { code: 'TM', label: 'Turkmenistan', value: 'TMT' },\r\n  { code: 'TV', label: 'Tuvalu', value: 'AUD' },\r\n  { code: 'UG', label: 'Uganda', value: 'UGX' },\r\n  { code: 'UA', label: 'Ukraine', value: 'UAH' },\r\n  { code: 'AE', label: 'United Arab Emirates', value: 'AED' },\r\n  { code: 'GB', label: 'United Kingdom', value: 'GBP' },\r\n  { code: 'US', label: 'United States', value: 'USD' },\r\n  { code: 'UY', label: 'Uruguay', value: 'UYU' },\r\n  { code: 'UZ', label: 'Uzbekistan', value: 'UZS' },\r\n  { code: 'VU', label: 'Vanuatu', value: 'VUV' },\r\n  { code: 'VE', label: 'Venezuela', value: 'VES' },\r\n  { code: 'VN', label: 'Vietnam', value: 'VND' },\r\n  { code: 'YE', label: 'Yemen', value: 'YER' },\r\n  { code: 'ZM', label: 'Zambia', value: 'ZMW' },\r\n  { code: 'ZW', label: 'Zimbabwe', value: 'ZWL' },\r\n];\r\n\r\nconst AvatarBgColor = (name: any, mode = \"dark\") => {\r\n  const lightColors = [\r\n    \"#FFB4A2\",\r\n    \"#FFC8A2\",\r\n    \"#FFE0A2\",\r\n    \"#D8F3DC\",\r\n    \"#A2D2FF\",\r\n    \"#BDE0FE\",\r\n    \"#CDB4DB\",\r\n    \"#FFAFCC\",\r\n    \"#A8D5BA\",\r\n    \"#FDCBBA\",\r\n  ];\r\n  const darkColors = [\r\n    \"#8B0000\",\r\n    \"#C75C00\",\r\n    \"#9C6D00\",\r\n    \"#1B5E20\",\r\n    \"#0D47A1\",\r\n    \"#283593\",\r\n    \"#4A148C\",\r\n    \"#880E4F\",\r\n    \"#3E2723\",\r\n    \"#37474F\",\r\n  ];\r\n  const colors = mode === \"dark\" ? darkColors : lightColors;\r\n  let hash = 0;\r\n  for (let i = 0; i < name?.length; i++) {\r\n    hash = name?.charCodeAt(i) + ((hash << 5) - hash);\r\n  }\r\n  const index = Math?.abs(hash % colors?.length);\r\n  return colors[index];\r\n};\r\n\r\n\r\nexport { colorOptions, dateFormats, countryCurrency, AvatarBgColor }","import { Form, Input, Button, Select, DatePicker, InputNumber, Switch, Checkbox, ColorPicker } from 'antd';\r\nimport { useEffect, useRef } from 'react';\r\nimport dayjs from 'dayjs';\r\nimport { countryCurrency } from './StaticData';\r\nimport { filterOption3 } from './commonfunctions';\r\nimport { RFormWithDrawerProps } from 'utils/types';\r\n\r\n\r\nconst RForm: React.FC<RFormWithDrawerProps> = ({\r\n    formConfig = [],\r\n    onSubmit,\r\n    record = null,\r\n    loading,\r\n    RowItem = 1,\r\n    handleFieldChange = null,\r\n    buttonText = 'Submit',\r\n    buttonAlign = \"Left\",\r\n    showsubmit = true,\r\n    dateFormat = 'YYYY-MM-DD',\r\n}: any) => {\r\n    const { RangePicker } = DatePicker;\r\n    const buttonTypeRef = useRef(false);\r\n    const [form] = Form.useForm();\r\n    const handleFinish = (values: any) => {\r\n        const formattedValues = { ...values };\r\n        Object.keys(formattedValues)?.forEach((key) => {\r\n            if (dayjs.isDayjs(formattedValues[key])) {\r\n                formattedValues[key] = formattedValues[key]?.format('YYYY-MM-DD');\r\n            } else if (Array.isArray(formattedValues[key]) && formattedValues[key].length === 2) {\r\n                const [startDate, endDate] = formattedValues[key];\r\n                formattedValues[key] =\r\n                    `${dayjs(startDate)?.format('YYYY-MM-DD')} - ${dayjs(endDate)?.format('YYYY-MM-DD')}`;\r\n            }\r\n        });\r\n        onSubmit(formattedValues, buttonTypeRef.current);\r\n    };\r\n\r\n    useEffect(() => {\r\n        if (formConfig.length > 0) {\r\n            let initialValues: any = {};\r\n            formConfig.forEach((field: any) => {\r\n                if (field.defaultValue) {\r\n                    initialValues[field.name] = field.defaultValue;\r\n                }\r\n                if (record && record[field.name]) {\r\n                    initialValues[field.name] = record[field.name];\r\n                }\r\n                if (field.type == \"multipleCheckboxRow\" && field?.items?.length > 0) {\r\n                    field.items.forEach((item: any) => {\r\n                        initialValues[item.name] = record[item.name];\r\n                    });\r\n                }\r\n                if (record && record[field.name] && field.type == 'date') {\r\n                    let parsedDate = dayjs(record[field.name], 'YYYY-MM-DD');\r\n                    if (!parsedDate.isValid()) {\r\n                        parsedDate = dayjs(record[field.name], 'MMMM DD, YYYY');\r\n                    }\r\n                    initialValues[field.name] = parsedDate;\r\n                }\r\n                if (record && record[field.name] && field.type === 'rangepicker') {\r\n                    const dateRange = record[field.name].split(' - ');\r\n                    if (dateRange.length === 2) {\r\n                        initialValues[field.name] = [dayjs(dateRange[0], 'YYYY-MM-DD'), dayjs(dateRange[1], 'YYYY-MM-DD')];\r\n                    }\r\n                }\r\n            });\r\n            form.setFieldsValue(initialValues);\r\n        } else {\r\n            form.resetFields();\r\n        }\r\n    }, [formConfig, record]);\r\n    const onValuesChangeHandler = (changedValues: any, allValues: any) => {\r\n        if (handleFieldChange) {\r\n            handleFieldChange(changedValues, allValues, form);\r\n        }\r\n    };\r\n    return (\r\n        <Form\r\n            form={form}\r\n            layout=\"vertical\"\r\n            onFinish={handleFinish}\r\n            onValuesChange={(changedValues, allValues) => onValuesChangeHandler(changedValues, allValues)}\r\n            autoComplete=\"off\"\r\n        >\r\n            <div className={`${RowItem > 1 ? `grid grid-cols-${RowItem} gap-x-4` : ''}`}>\r\n                {formConfig?.map((field: any) => (\r\n                    <Form.Item\r\n                        key={field.name}\r\n                        label={field.label}\r\n                        name={field.name}\r\n                        rules={\r\n                            field.type == 'number'\r\n                                ? [\r\n                                    ...field.rules,\r\n                                    ...[\r\n                                        {\r\n                                            validator: (_: any, value: any) => {\r\n                                                if (value < (field?.minvalue || 0)) {\r\n                                                    return Promise.reject(new Error(`Value cannot be less than ${field?.minvalue || 0}`));\r\n                                                }\r\n                                                if (field?.maxvalue && value > field.maxvalue) {\r\n                                                    return Promise.reject(new Error(`Value cannot exceed ${field?.maxvalue}`));\r\n                                                }\r\n                                                return Promise.resolve();\r\n                                            },\r\n                                        },\r\n                                    ],\r\n                                ]\r\n                                : field.rules\r\n                        }\r\n                        required={field.required}\r\n                    >\r\n                        {field.type == 'text' && (\r\n                            <Input placeholder={`Please enter ${field.label}`} disabled={field?.disabled || false} />\r\n                        )}\r\n                        {field.type == 'number' && (\r\n                            <InputNumber\r\n                                className=\"!w-full\"\r\n                                type=\"number\"\r\n                                max={field?.maxvalue}\r\n                                min={0}\r\n                                placeholder={`Please enter ${field.label}`}\r\n                                disabled={field?.disabled || false}\r\n                            />\r\n                        )}\r\n                        {field.type == 'password' && (\r\n                            <Input.Password placeholder={`Please enter ${field.label}`} disabled={field?.disabled || false} />\r\n                        )}\r\n                        {field.type == 'dropdown' && (\r\n                            <Select\r\n                                placeholder={`Please select ${field.label}`}\r\n                                disabled={field?.disabled || false}\r\n                                mode={field?.mode || undefined}\r\n                                maxTagCount={field?.maxTagCount || undefined}\r\n                                showSearch\r\n                                virtual\r\n                                filterOption={(input, option: any) => option?.children?.toLowerCase()?.includes(input?.toLowerCase())}\r\n                            >\r\n                                {field?.options?.map((option: any, optionIndex: number) => (\r\n                                    <Select.Option key={optionIndex} value={option.value}>\r\n                                        {option.label}\r\n                                    </Select.Option>\r\n                                ))}\r\n                            </Select>\r\n                        )}\r\n                        {field.type === 'date' && (\r\n                            <DatePicker\r\n                                format={dateFormat}\r\n                                placeholder={`Please select ${field.label}`}\r\n                                disabled={field?.disabled || false}\r\n                                className=\"w-full\"\r\n                                disabledDate={(current) =>\r\n                                    field.minDate ? current && current.isBefore(dayjs(field.minDate, 'YYYY-MM-DD'), 'day') : false\r\n                                }\r\n                            />\r\n                        )}\r\n                        {field.type === 'rangepicker' && (\r\n                            <RangePicker format={dateFormat} disabled={field?.disabled || false} className=\"w-full\" />\r\n                        )}\r\n                        {field.type == 'currencySelect' && (\r\n                            <Select\r\n                                placeholder={`Please select ${field.label}`}\r\n                                disabled={field?.disabled || false}\r\n                                showSearch\r\n                                virtual\r\n                                filterOption={filterOption3}\r\n                                defaultValue={field?.defaultValue}\r\n                            >\r\n                                {countryCurrency?.map((option) => (\r\n                                    <Select.Option key={option.label} value={option.value}>\r\n                                        <div className=\"flex items-center gap-2\">\r\n                                            <div className=\"flex items-center\">\r\n                                                <img\r\n                                                    src={`https://flagcdn.com/w40/${option.code.toLowerCase()}.png`}\r\n                                                    alt={option.code}\r\n                                                    style={{ width: 30, height: 20, marginRight: 8 }}\r\n                                                />\r\n                                                {option.label}\r\n                                            </div>\r\n                                            <span>({option.value})</span>\r\n                                        </div>\r\n                                    </Select.Option>\r\n                                ))}\r\n                            </Select>\r\n                        )}\r\n                        {field.type == 'toggle' && (\r\n                            <Form.Item name={field.name} valuePropName=\"checked\">\r\n                                <Switch disabled={field?.disabled || false} />\r\n                            </Form.Item>\r\n                        )}\r\n                        {field.type === 'checkboxGroup' && (\r\n                            <div className={field.inline ? 'flex flex-wrap gap-4 items-center' : 'flex flex-col gap-2'}>\r\n                                <Form.Item name={field.name}>\r\n                                    <Checkbox.Group>\r\n                                        {field?.checkboxGroup?.map((option: any, idx: number) => (\r\n                                            <Checkbox key={idx} value={option.value}>\r\n                                                {option.label}\r\n                                            </Checkbox>\r\n                                        ))}\r\n                                    </Checkbox.Group>\r\n                                </Form.Item>\r\n                            </div>\r\n                        )}\r\n                        {field.type === 'multipleCheckboxRow' && (\r\n                            <div className={field.css ? field.css : 'flex justify-between items-center'}>\r\n                                {field?.multipleCheckboxRow?.map((checkbox: any, idx: number) => (\r\n                                    <Form.Item\r\n                                        key={checkbox.name}\r\n                                        name={checkbox.name}\r\n                                        valuePropName=\"checked\"\r\n                                    >\r\n                                        <Checkbox disabled={checkbox.disabled || false}>{checkbox.label}</Checkbox>\r\n                                    </Form.Item>\r\n                                ))}\r\n                            </div>\r\n                        )}\r\n                        {field.type === 'colorPicker' && (\r\n                            <Form.Item name={field.name} valuePropName=\"value\">\r\n                                <ColorPicker\r\n                                    size='small'\r\n                                    disabled={field?.disabled || false}\r\n                                    defaultValue={field?.defaultValue || '#1677ff'}\r\n                                    showText\r\n                                />\r\n                            </Form.Item>\r\n                        )}\r\n                    </Form.Item>\r\n                ))}\r\n            </div>\r\n            {showsubmit && (\r\n                <Form.Item>\r\n                    <div className={`flex gap-4 ${buttonAlign == \"Center\" ? 'justify-center' : ''}`}>\r\n                        <Button type=\"primary\" htmlType=\"submit\" className='mt-5' loading={loading}>\r\n                            {buttonText}\r\n                        </Button>\r\n                    </div>\r\n                </Form.Item>\r\n            )}\r\n        </Form>\r\n    );\r\n};\r\n\r\nexport { RForm };\r\n","import { Form, Input, Button, Select, DatePicker, InputNumber, Switch, Checkbox, ColorPicker } from 'antd';\r\nimport { RDrawer } from './RDrawer';\r\nimport { useEffect, useRef } from 'react';\r\nimport dayjs from 'dayjs';\r\nimport { countryCurrency } from './StaticData';\r\nimport { filterOption3 } from './commonfunctions';\r\nimport { RFormWithDrawerProps } from 'utils/types';\r\n\r\n\r\nconst RFormWithDrawer: React.FC<RFormWithDrawerProps> = ({\r\n  title,\r\n  open,\r\n  closePanle,\r\n  formConfig = [],\r\n  onSubmit,\r\n  record = null,\r\n  loading,\r\n  size = 550,\r\n  RowItem = 1,\r\n  handleFieldChange = null,\r\n  buttonText = 'Submit',\r\n  drawerId,\r\n  saveAndAddMoreButton = false,\r\n  dateFormat = 'YYYY-MM-DD',\r\n}: any) => {\r\n  const { RangePicker } = DatePicker;\r\n  const buttonTypeRef = useRef(false);\r\n  const [form] = Form.useForm();\r\n  const handleFinish = (values: any) => {\r\n    const formattedValues = { ...values };\r\n    Object.keys(formattedValues)?.forEach((key) => {\r\n      if (dayjs.isDayjs(formattedValues[key])) {\r\n        formattedValues[key] = formattedValues[key]?.format('YYYY-MM-DD');\r\n      } else if (Array.isArray(formattedValues[key]) && formattedValues[key].length === 2) {\r\n        const [startDate, endDate] = formattedValues[key];\r\n        formattedValues[key] = `${dayjs(startDate)?.format('YYYY-MM-DD')} - ${dayjs(endDate)?.format('YYYY-MM-DD')}`;\r\n      }\r\n    });\r\n    onSubmit(formattedValues, buttonTypeRef.current);\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (open && formConfig.length > 0) {\r\n      let initialValues: any = {};\r\n      formConfig.forEach((field: any) => {\r\n        if (field.defaultValue) {\r\n          initialValues[field.name] = field.defaultValue;\r\n        }\r\n        if (record && record[field.name]) {\r\n          initialValues[field.name] = record[field.name];\r\n        }\r\n        if (field.type == \"multipleCheckboxRow\" && field?.items?.length > 0) {\r\n          field.items.forEach((item: any) => {\r\n            initialValues[item.name] = record[item.name];\r\n          });\r\n        }\r\n        if (record && record[field.name] && field.type == 'date') {\r\n          let parsedDate = dayjs(record[field.name], \"YYYY-MM-DD\");\r\n          if (!parsedDate.isValid()) {\r\n            parsedDate = dayjs(record[field.name], 'MMMM DD, YYYY');\r\n          }\r\n          initialValues[field.name] = parsedDate;\r\n        }\r\n        if (record && record[field.name] && field.type === 'rangepicker') {\r\n          const dateRange = record[field.name].split(' - ');\r\n          if (dateRange.length === 2) {\r\n            initialValues[field.name] = [dayjs(dateRange[0], \"YYYY-MM-DD\"), dayjs(dateRange[1], \"YYYY-MM-DD\")];\r\n          }\r\n        }\r\n      });\r\n      form.setFieldsValue(initialValues);\r\n    } else {\r\n      form.resetFields();\r\n    }\r\n  }, [open, formConfig]);\r\n  const onValuesChangeHandler = (changedValues: any, allValues: any) => {\r\n    if (handleFieldChange) {\r\n      handleFieldChange(changedValues, allValues, form);\r\n    }\r\n  };\r\n  return (\r\n    <RDrawer title={title} size={size} position=\"right\" open={open} closePanle={closePanle} drawerId={drawerId}>\r\n      <Form\r\n        form={form}\r\n        layout=\"vertical\"\r\n        onFinish={handleFinish}\r\n        onValuesChange={(changedValues, allValues) => onValuesChangeHandler(changedValues, allValues)}\r\n        autoComplete=\"off\"\r\n      >\r\n        <div className={`${RowItem > 1 ? `grid grid-cols-${RowItem} gap-x-4` : ''}`}>\r\n          {Array.isArray(formConfig) && formConfig?.map((field: any) => (\r\n            <Form.Item\r\n              key={field.name}\r\n              label={field?.hideLabel ? undefined : field.label}\r\n              name={field.name}\r\n              rules={\r\n                field.type == 'number'\r\n                  ? [\r\n                    ...field.rules,\r\n                    ...[\r\n                      {\r\n                        validator: (_: any, value: any) => {\r\n                          if (value < (field?.minvalue || 0)) {\r\n                            return Promise.reject(new Error(`Value cannot be less than ${field?.minvalue || 0}`));\r\n                          }\r\n                          if (field?.maxvalue && value > field.maxvalue) {\r\n                            return Promise.reject(new Error(`Value cannot exceed ${field?.maxvalue}`));\r\n                          }\r\n                          return Promise.resolve();\r\n                        },\r\n                      },\r\n                    ],\r\n                  ]\r\n                  : field.rules\r\n              }\r\n              required={field.required}\r\n            >\r\n              {field.type == 'text' && (\r\n                <Input placeholder={`Please enter ${field.label}`} disabled={field?.disabled || false} />\r\n              )}\r\n              {field.type == 'number' && (\r\n                <InputNumber\r\n                  className=\"!w-full\"\r\n                  type=\"number\"\r\n                  max={field?.maxvalue}\r\n                  min={0}\r\n                  placeholder={`Please enter ${field.label}`}\r\n                  disabled={field?.disabled || false}\r\n                />\r\n              )}\r\n              {field.type == 'password' && (\r\n                <Input.Password placeholder={`Please enter ${field.label}`} disabled={field?.disabled || false} />\r\n              )}\r\n              {field.type == 'dropdown' && (\r\n                <Select\r\n                  placeholder={`Please select ${field.label}`}\r\n                  disabled={field?.disabled || false}\r\n                  mode={field?.mode || undefined}\r\n                  maxTagCount={field?.maxTagCount || undefined}\r\n                  showSearch\r\n                  virtual\r\n                  filterOption={(input, option: any) => option?.children?.toLowerCase()?.includes(input?.toLowerCase())}\r\n                >\r\n                  {Array.isArray(field?.options) && field?.options?.map((option: any, optionIndex: number) => (\r\n                    <Select.Option key={optionIndex} value={option.value}>\r\n                      {option.label}\r\n                    </Select.Option>\r\n                  ))}\r\n                </Select>\r\n              )}\r\n              {field.type === 'date' && (\r\n                <DatePicker\r\n                  format={dateFormat}\r\n                  placeholder={`Please select ${field.label}`}\r\n                  disabled={field?.disabled || false}\r\n                  className=\"w-full\"\r\n                  disabledDate={(current) =>\r\n                    field.minDate ? current && current.isBefore(dayjs(field.minDate, 'YYYY-MM-DD'), 'day') : false\r\n                  }\r\n                />\r\n              )}\r\n              {field.type === 'rangepicker' && (\r\n                <RangePicker format={dateFormat} disabled={field?.disabled || false} className=\"w-full\" />\r\n              )}\r\n              {field.type == 'currencySelect' && (\r\n                <Select\r\n                  placeholder={`Please select ${field.label}`}\r\n                  disabled={field?.disabled || false}\r\n                  showSearch\r\n                  virtual\r\n                  filterOption={filterOption3}\r\n                  defaultValue={field?.defaultValue}\r\n                >\r\n                  {countryCurrency?.map((option) => (\r\n                    <Select.Option key={option.label} value={option.value}>\r\n                      <div className=\"flex items-center gap-2\">\r\n                        <div className=\"flex items-center\">\r\n                          <img\r\n                            src={`https://flagcdn.com/w40/${option.code.toLowerCase()}.png`}\r\n                            alt={option.code}\r\n                            style={{ width: 30, height: 20, marginRight: 8 }}\r\n                          />\r\n                          {option.label}\r\n                        </div>\r\n                        <span>({option.value})</span>\r\n                      </div>\r\n                    </Select.Option>\r\n                  ))}\r\n                </Select>\r\n              )}\r\n              {field.type == 'toggle' && (\r\n                <Form.Item name={field.name} valuePropName=\"checked\">\r\n                  <Switch disabled={field?.disabled || false} />\r\n                </Form.Item>\r\n              )}\r\n              {field.type === 'checkboxGroup' && (\r\n                <div className={field?.css ? field?.css : 'flex flex-col gap-2'}>\r\n                  <Form.Item name={field?.name}>\r\n                    <Checkbox.Group>\r\n                      {Array.isArray(field?.checkboxGroup) && field?.checkboxGroup?.map((option: any, idx: number) => (\r\n                        <Checkbox key={idx} value={option.value}>\r\n                          {option.label}\r\n                        </Checkbox>\r\n                      ))}\r\n                    </Checkbox.Group>\r\n                  </Form.Item>\r\n                </div>\r\n              )}\r\n              {field.type === 'multipleCheckboxRow' && (\r\n                <div className={field?.css ? field?.css : 'flex justify-between items-center'}>\r\n                  {Array.isArray(field?.multipleCheckboxRow) && field?.multipleCheckboxRow?.map((checkbox: any, idx: number) => (\r\n                    <Form.Item\r\n                      key={checkbox.name}\r\n                      name={checkbox.name}\r\n                      valuePropName=\"checked\"\r\n                    >\r\n                      <Checkbox disabled={checkbox.disabled || false}>{checkbox.label}</Checkbox>\r\n                    </Form.Item>\r\n                  ))}\r\n                </div>\r\n              )}\r\n              {field.type === 'colorPicker' && (\r\n                <Form.Item name={field.name} valuePropName=\"value\">\r\n                  <ColorPicker\r\n                    size='small'\r\n                    disabled={field?.disabled || false}\r\n                    defaultValue={field?.defaultValue || '#1677ff'}\r\n                    showText\r\n                  />\r\n                </Form.Item>\r\n              )}\r\n            </Form.Item>\r\n          ))}\r\n        </div>\r\n        <Form.Item>\r\n          <div className=\"flex gap-4\">\r\n            <Button\r\n              type=\"primary\"\r\n              onClick={() => {\r\n                buttonTypeRef.current = false;\r\n                form.submit();\r\n              }}\r\n              className=\"mt-4\"\r\n              loading={loading && !buttonTypeRef.current}\r\n            >\r\n              {buttonText}\r\n            </Button>\r\n            {!record?._id && saveAndAddMoreButton && (\r\n              <Button\r\n                type=\"primary\"\r\n                onClick={() => {\r\n                  buttonTypeRef.current = true;\r\n                  form.submit();\r\n                }}\r\n                className=\"mt-4\"\r\n                loading={loading && buttonTypeRef.current}\r\n              >\r\n                Save & Add More\r\n              </Button>\r\n            )}\r\n            <Button className=\"mt-4\" onClick={closePanle}>\r\n              Cancel\r\n            </Button>\r\n          </div>\r\n        </Form.Item>\r\n      </Form>\r\n    </RDrawer>\r\n  );\r\n};\r\n\r\n\r\nexport { RFormWithDrawer };","import { Button, Checkbox, Input, List, Tooltip } from \"antd\";\r\nimport VirtualList from \"rc-virtual-list\";\r\nimport { useState } from \"react\";\r\nimport { MdOutlineFilterAlt } from \"react-icons/md\";\r\nimport { RiCollapseDiagonalFill, RiExpandDiagonalFill } from \"react-icons/ri\";\r\ninterface DataItem {\r\n  [key: string]: any;\r\n}\r\ninterface FilterDropdownProps {\r\n  setSelectedKeys: (keys: string[]) => void;\r\n  selectedKeys: string[];\r\n  confirm: () => void;\r\n  clearFilters: () => void;\r\n}\r\ninterface TreeDataItem {\r\n  id: string;\r\n  value: string;\r\n  extraValues?: string[];\r\n}\r\n\r\nexport const getColumnSearchProps = (dataIndex: string, data: DataItem[], extraDataIndices?: string[]) => ({\r\n  filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters, }: FilterDropdownProps) => {\r\n    const [searchQuery, setSearchQuery] = useState<string>(\"\");\r\n    const [expand, setExpand] = useState<boolean>(false);\r\n    const lowerSearchQuery = searchQuery?.toLowerCase()?.trim();\r\n    const treeData: TreeDataItem[] = [];\r\n    const seenValues = new Set<string>();\r\n\r\n    data?.forEach((item) => {\r\n      const primaryValue = String(item[dataIndex] ?? \"\")?.trim();\r\n      if ((!primaryValue && !seenValues.has(\"Blank\"))) {\r\n        seenValues.add(\"Blank\");\r\n        treeData.push({\r\n          id: \"Blank\",\r\n          value: \"Blank\",\r\n          extraValues: [],\r\n        });\r\n        return;\r\n      }\r\n      if (!primaryValue || seenValues?.has(primaryValue)) return;\r\n      const extraValues = extraDataIndices?.map((key) => String(item[key] ?? \"-\")) ?? [];\r\n      const combinedValues = [primaryValue.toLowerCase(), ...extraValues.map((val) => val.toLowerCase())];\r\n\r\n      if (!lowerSearchQuery || combinedValues.some((val) => val.includes(lowerSearchQuery))) {\r\n        seenValues.add(primaryValue);\r\n        treeData.push({\r\n          id: primaryValue,\r\n          value: primaryValue,\r\n          extraValues,\r\n        });\r\n      }\r\n    });\r\n\r\n    const handleCheckboxChange = (id: string) => {\r\n      if (selectedKeys?.includes(id)) {\r\n        setSelectedKeys(selectedKeys.filter((item) => item !== id));\r\n      } else {\r\n        setSelectedKeys([...selectedKeys, id]);\r\n      }\r\n    };\r\n\r\n    return (\r\n      <div style={{ width: expand ? \"450px\" : \"250px\", margin: \"10px\" }} key={dataIndex}>\r\n        <div className=\"flex justify-center items-start gap-1\">\r\n          <Input.Search\r\n            placeholder={`Search`}\r\n            onChange={(e) => setSearchQuery(e.target.value)}\r\n            style={{ width: \"100%\", marginBottom: 10 }}\r\n          />\r\n          <Tooltip title={expand ? \"Collapse\" : \"Expand\"}>\r\n            <Button\r\n              type=\"primary\"\r\n              size=\"small\"\r\n              className=\"!h-[30px] !w-[30px]\"\r\n              icon={\r\n                !expand ? (\r\n                  <RiExpandDiagonalFill size={18} />\r\n                ) : (\r\n                  <RiCollapseDiagonalFill size={18} />\r\n                )\r\n              }\r\n              onClick={() => {\r\n                setExpand(!expand);\r\n              }}\r\n            />\r\n          </Tooltip>\r\n        </div>\r\n        <List className=\"my-1\" key={dataIndex}>\r\n          <VirtualList<TreeDataItem>\r\n            data={treeData}\r\n            height={Math.min(150, treeData?.length * 55)}\r\n            itemHeight={20}\r\n            itemKey=\"id\"\r\n            style={{ maxHeight: \"150px\", overflow: \"auto\", }}\r\n          >\r\n            {(item: TreeDataItem) => (\r\n              <List.Item key={item.id} style={{ padding: 0 }}>\r\n                <label\r\n                  htmlFor={`checkbox-${item.id}`}\r\n                  className=\"w-[100%] py-[5px] m-1 cursor-pointer flex items-center gap-3 ellipsis overflow-hidden pr-1\"\r\n                // title={item.value}\r\n                >\r\n                  <Checkbox\r\n                    id={`checkbox-${item.id}`}\r\n                    checked={selectedKeys.includes(item.id)}\r\n                    onChange={() => handleCheckboxChange(item.id)}\r\n                  />\r\n                  {expand ? (\r\n                    <div className=\"flex flex-col w-full\">\r\n                      <div className=\"text-sm\">{item?.value?.toString()}</div>\r\n                      {item?.extraValues && item.extraValues?.length > 0 && (\r\n                        <>\r\n                          {item.extraValues?.map((val, idx) => (\r\n                            <div className=\"text-xs  text-gray-600\" key={val + idx} title={val}>\r\n                              {val}\r\n                            </div>\r\n                          ))}\r\n                        </>\r\n                      )}\r\n                    </div>\r\n                  ) : (\r\n                    <div className=\"flex flex-col w-full\">\r\n                      <div className=\"ellipsis overflow-hidden whitespace-nowrap\" title={item?.value?.toString()}>{item?.value?.toString()}</div>\r\n                      {item?.extraValues && item.extraValues?.length > 0 && (\r\n                        <>\r\n                          {item.extraValues?.map((val, idx) => (\r\n                            <div className=\"ellipsis overflow-hidden whitespace-nowrap text-xs  text-gray-600\" key={val + idx} title={val}>\r\n                              {val}\r\n                            </div>\r\n                          ))}\r\n                        </>\r\n                      )}\r\n                    </div>\r\n                  )}\r\n                </label>\r\n              </List.Item>\r\n            )}\r\n          </VirtualList>\r\n        </List>\r\n        <div className=\"flex justify-between mt-4\">\r\n          <Button size=\"small\" onClick={() => { clearFilters(); setSelectedKeys([]); confirm(); }}>\r\n            Reset\r\n          </Button>\r\n          <Button type=\"primary\" size=\"small\" onClick={() => { confirm(); }} style={{ marginRight: 8 }}>\r\n            OK\r\n          </Button>\r\n        </div>\r\n      </div>\r\n    );\r\n  },\r\n  filterIcon: (filtered: boolean) => (\r\n    <MdOutlineFilterAlt\r\n      style={{\r\n        color: filtered ? \"red\" : \"var(--primary)\",\r\n        fontSize: \"18px\",\r\n      }}\r\n    />\r\n  ),\r\n  onFilter: (value: string, record: DataItem) => {\r\n    if (value == \"Blank\") {\r\n      const rawValue = record[dataIndex];\r\n      return rawValue === null || rawValue === undefined || String(rawValue).trim() === \"\";\r\n    }\r\n    return String(value) == String(record[dataIndex]);\r\n  },\r\n});\r\n","import React, { useRef, useState, useEffect, type ComponentProps } from \"react\";\r\n\r\ntype ClassName = ComponentProps<\"div\">[\"className\"];\r\n\r\ninterface RMenuItem {\r\n    key: string;\r\n    label: React.ReactNode;\r\n    onClick?: () => void;\r\n}\r\n\r\ninterface RMenuProps {\r\n    items: RMenuItem[];\r\n    itemGap: number;\r\n    mainContainerClassName: ClassName;\r\n    visibleItemClassName: ClassName;\r\n    hiddenItemClassName: ClassName;\r\n    overflowButton: React.ReactNode;\r\n    overflowButtonClassName: ClassName;\r\n    hiddenMainContainerClassName: ClassName;\r\n    activeItemKey?: string;\r\n    activeItemClassName?: ClassName;\r\n}\r\n\r\nconst RMenus: React.FC<RMenuProps> = ({\r\n    items,\r\n    mainContainerClassName,\r\n    visibleItemClassName,\r\n    hiddenItemClassName,\r\n    overflowButtonClassName,\r\n    itemGap,\r\n    overflowButton,\r\n    hiddenMainContainerClassName,\r\n    activeItemKey,\r\n    activeItemClassName\r\n}) => {\r\n    const containerRef = useRef<HTMLDivElement>(null);\r\n    const measureRef = useRef<HTMLDivElement>(null);\r\n    const dropdownRef = useRef<HTMLDivElement>(null);\r\n    const [visibleItems, setVisibleItems] = useState<RMenuItem[]>(items);\r\n    const [hiddenItems, setHiddenItems] = useState<RMenuItem[]>([]);\r\n    const [isOpen, setIsOpen] = useState(false);\r\n\r\n    useEffect(() => {\r\n        const checkOverflow = () => {\r\n            if (!containerRef.current || !measureRef.current) return;\r\n\r\n            const containerWidth = containerRef.current.offsetWidth;\r\n            const measureChildren = Array.from(measureRef.current.children) as HTMLElement[];\r\n\r\n            const itemWidths = measureChildren.slice(0, -1)?.map(child => child.offsetWidth + itemGap);\r\n            const dotsWidth = measureChildren[measureChildren.length - 1]?.offsetWidth\r\n\r\n            let total = 0;\r\n            let visibleCount = items?.length;\r\n\r\n            for (let i = 0; i < items?.length; i++) {\r\n                const needDots = i < items?.length - 1;\r\n                const available = containerWidth - (needDots ? dotsWidth : 0);\r\n\r\n                if (total + itemWidths[i] > available) {\r\n                    visibleCount = i;\r\n                    break;\r\n                }\r\n                total += itemWidths[i];\r\n            }\r\n\r\n            setVisibleItems(items?.slice(0, visibleCount));\r\n            setHiddenItems(items?.slice(visibleCount));\r\n        };\r\n        checkOverflow();\r\n        window.addEventListener(\"resize\", checkOverflow);\r\n        return () => window.removeEventListener(\"resize\", checkOverflow);\r\n    }, [items, itemGap]);\r\n\r\n    useEffect(() => {\r\n        const handleClickOutside = (event: MouseEvent) => {\r\n            if (\r\n                dropdownRef.current &&\r\n                !dropdownRef.current.contains(event.target as Node)\r\n            ) {\r\n                setIsOpen(false);\r\n            }\r\n        };\r\n\r\n        if (isOpen) {\r\n            document.addEventListener(\"mousedown\", handleClickOutside);\r\n        } else {\r\n            document.removeEventListener(\"mousedown\", handleClickOutside);\r\n        }\r\n\r\n        return () => document.removeEventListener(\"mousedown\", handleClickOutside);\r\n    }, [isOpen]);\r\n\r\n    return (\r\n        <>\r\n            <div\r\n                ref={measureRef}\r\n                style={{ visibility: \"hidden\", position: \"absolute\", pointerEvents: \"none\", height: 0, overflow: \"hidden\", whiteSpace: \"nowrap\", display: \"flex\", gap: itemGap }}\r\n            >\r\n                {items?.map((item) => (\r\n                    <div key={item?.key} className={`${visibleItemClassName}`}>{item?.label}</div>\r\n                ))}\r\n                <div className={`${overflowButtonClassName}`}>\r\n                    {overflowButton}\r\n                </div>\r\n            </div>\r\n\r\n            <div\r\n                ref={containerRef}\r\n                className={`${mainContainerClassName}`}\r\n                style={{ gap: itemGap }}\r\n            >\r\n                {visibleItems?.map((item) => (\r\n                    <div\r\n                        key={item?.key}\r\n                        onClick={item?.onClick}\r\n                        className={`${visibleItemClassName}  ${item?.key === activeItemKey ? activeItemClassName ?? \"\" : \"\"}`}\r\n                    >\r\n                        {item?.label}\r\n                    </div>\r\n                ))}\r\n\r\n                {hiddenItems?.length > 0 && (\r\n                    <div\r\n                        className={`${overflowButtonClassName}`}\r\n                        ref={dropdownRef}\r\n                        onClick={() => setIsOpen((prev) => !prev)}\r\n                    >\r\n                        {overflowButton}\r\n                        {isOpen && (\r\n                            <div className={`${hiddenMainContainerClassName}`}>\r\n                                {hiddenItems?.map((item) => (\r\n                                    <button\r\n                                        key={item.key}\r\n                                        onClick={item.onClick}\r\n                                        className={`${hiddenItemClassName}`}\r\n                                    >\r\n                                        {item.label}\r\n                                    </button>\r\n                                ))}\r\n                            </div>\r\n                        )}\r\n                    </div>\r\n                )}\r\n            </div>\r\n        </>\r\n    );\r\n};\r\n\r\nexport { RMenus };\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n{/* <Menus\r\n        items={menuItems}\r\n        mainContainerClassName=\"flex items-center\"\r\n        itemGap={4}\r\n        overflowButton=\"...\"\r\n        visibleItemClassName=\"text-sm font-medium px-3 py-1 bg-gray-100 w-full transition whitespace-nowrap text-center\"\r\n        overflowButtonClassName=\"relative px-3 py-1 bg-gray-100 hover:bg-gray-200  transition whitespace-nowrap cursor-pointer text-center\"\r\n        hiddenItemClassName=\"text-sm font-medium px-3 py-1 bg-gray-100 w-full transition whitespace-nowrap text-center\"\r\n        hiddenMainContainerClassName=\"absolute right-0 top-8 flex flex-col bg-white shadow-lg z-10\"\r\n      // activeItemKey=\"3\"\r\n      // activeItemClassName=\"bg-blue-500 text-white\"\r\n      /> */}\r\n\r\n\r\n//   <RMenus\r\n//     items={menuItems}\r\n//     mainContainerClassName=\"flex items-center\"\r\n//     itemGap={4}\r\n//     overflowButton=\"...\"\r\n//     visibleItemClassName=\"text-sm font-medium px-3 py-1 bg-gray-100 transition whitespace-nowrap text-center cursor-pointer w-full\"\r\n//     overflowButtonClassName=\"text-sm font-medium px-3 py-1 bg-gray-100 hover:bg-gray-100 transition whitespace-nowrap text-center cursor-pointer relative pb-1\"\r\n//     hiddenItemClassName=\"text-sm font-medium px-3 py-1 bg-gray-100 transition whitespace-nowrap text-left cursor-pointer w-full\"\r\n//     hiddenMainContainerClassName=\"absolute right-0 top-8 flex flex-col bg-white shadow-lg z-10 max-h-[300px] overflow-y-scroll\"\r\n//   // activeItemKey=\"3\"\r\n//   // activeItemClassName=\"bg-blue-500 text-white\"\r\n//   />\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n// *********************************************************************************************************************************************\r\n\r\n\r\n\r\n// import React, { useRef, useState, useEffect } from \"react\";\r\n\r\n// interface MenuItem {\r\n//     key: string;\r\n//     label: React.ReactNode;\r\n//     onClick?: () => void;\r\n// }\r\n\r\n// interface MenuProps {\r\n//     items: MenuItem[];\r\n//     mainContainerClassName?: string;\r\n//     itemClassName?: string;\r\n//     itemGap?: number;\r\n//     overflowButtonClassName?: string;\r\n//     DOTS_BUTTON_WIDTH?: number;\r\n// }\r\n\r\n// const Menus: React.FC<MenuProps> = ({ items, mainContainerClassName = \"\", itemClassName = \"\", itemGap = 4, overflowButtonClassName = \"\", DOTS_BUTTON_WIDTH = 40 }: MenuProps) => {\r\n//     const containerRef = useRef<HTMLDivElement>(null);\r\n//     const dropdownRef = useRef<HTMLDivElement>(null);\r\n//     const [visibleItems, setVisibleItems] = useState<MenuItem[]>(items);\r\n//     const [hiddenItems, setHiddenItems] = useState<MenuItem[]>([]);\r\n//     const [isOpen, setIsOpen] = useState(false);\r\n\r\n//     useEffect(() => {\r\n//         const checkOverflow = () => {\r\n//             if (!containerRef.current) return;\r\n\r\n//             const container = containerRef.current;\r\n//             const children = Array.from(container.children) as HTMLElement[];\r\n\r\n//             let totalWidth = 0;\r\n//             const newVisible: MenuItem[] = [];\r\n//             const newHidden: MenuItem[] = [];\r\n\r\n//             const itemWidths = children.map(child => child.offsetWidth + 4);\r\n\r\n//             for (let i = 0; i < items.length; i++) {\r\n//                 const remainingItems = items.length - i;\r\n//                 const needDots = remainingItems > 1;\r\n\r\n//                 const availableWidth = container.offsetWidth - (needDots ? DOTS_BUTTON_WIDTH : 0);\r\n//                 console.log(\"container.offsetWidth\", container.offsetWidth);\r\n//                 if (totalWidth + itemWidths[i] <= availableWidth) {\r\n//                     totalWidth += itemWidths[i];\r\n//                     newVisible.push(items[i]);\r\n//                 } else {\r\n//                     newHidden.push(items[i]);\r\n//                 }\r\n//             }\r\n\r\n//             setVisibleItems(newVisible);\r\n//             setHiddenItems(newHidden);\r\n//         };\r\n\r\n//         checkOverflow();\r\n//         window.addEventListener(\"resize\", checkOverflow);\r\n//         return () => window.removeEventListener(\"resize\", checkOverflow);\r\n//     }, [items]);\r\n\r\n//     useEffect(() => {\r\n//         const handleClickOutside = (event: MouseEvent) => {\r\n//             if (\r\n//                 dropdownRef.current &&\r\n//                 !dropdownRef.current.contains(event.target as Node)\r\n//             ) {\r\n//                 setIsOpen(false);\r\n//             }\r\n//         };\r\n\r\n//         if (isOpen) {\r\n//             document.addEventListener(\"mousedown\", handleClickOutside);\r\n//         } else {\r\n//             document.removeEventListener(\"mousedown\", handleClickOutside);\r\n//         }\r\n\r\n//         return () => document.removeEventListener(\"mousedown\", handleClickOutside);\r\n//     }, [isOpen]);\r\n\r\n//     console.log(\"visibleItems\", visibleItems);\r\n//     console.log(\"hiddenItems\", hiddenItems);\r\n//     return (\r\n//         <div\r\n//             ref={containerRef}\r\n//             className={`flex items-center gap-1  ${mainContainerClassName}`}\r\n//         >\r\n//             {visibleItems.map((item) => (\r\n//                 <button\r\n//                     key={item.key}\r\n//                     onClick={item.onClick}\r\n//                     className={`px-3 py-1 rounded-1 bg-gray-100 hover:bg-gray-200 min-w-[100px] transition whitespace-nowrap flex-shrink-0 ${itemClassName}`}\r\n//                 >\r\n//                     {item.label}\r\n//                 </button>\r\n//             ))}\r\n\r\n//             {hiddenItems.length > 0 && (\r\n//                 <div className=\"relative\" ref={dropdownRef}>\r\n//                     <button\r\n//                         onClick={() => setIsOpen((prev) => !prev)}\r\n//                         className={`px-3 py-1 rounded bg-gray-100 hover:bg-gray-200 text-lg leading-none flex items-center justify-center ${overflowButtonClassName}`}\r\n//                     >\r\n//                         …\r\n//                     </button>\r\n\r\n//                     {isOpen && (\r\n//                         <div className=\"absolute right-0 top-5 mt-2 flex flex-col rounded-sm border bg-white shadow-lg z-10\">\r\n//                             {hiddenItems.map((item) => (\r\n//                                 <button\r\n//                                     key={item.key}\r\n//                                     onClick={item.onClick}\r\n//                                     className={`px-4 py-2 text-left hover:bg-gray-100 whitespace-nowrap ${itemClassName}`}\r\n//                                 >\r\n//                                     {item.label}\r\n//                                 </button>\r\n//                             ))}\r\n//                         </div>\r\n//                     )}\r\n//                 </div>\r\n//             )}\r\n//         </div>\r\n//     );\r\n// };\r\n\r\n// export default Menus;\r\n","import { Form, Input, Button, Select, DatePicker, InputNumber, FormInstance } from 'antd';\r\nimport { RDrawer } from '../common/RDrawer';\r\nimport { useEffect } from 'react';\r\nimport dayjs from 'dayjs';\r\n\r\ntype FormFieldType = 'text' | 'number' | 'password' | 'dropdown' | 'date';\r\n\r\ninterface FormFieldOption {\r\n  label: string;\r\n  value: string | number;\r\n}\r\n\r\ninterface FormField {\r\n  name: string;\r\n  label: string;\r\n  type: FormFieldType;\r\n  required?: boolean;\r\n  disabled?: boolean;\r\n  defaultValue?: any;\r\n  rules?: any[];\r\n  options?: FormFieldOption[];\r\n  maxvalue?: number;\r\n  minDate?: string;\r\n}\r\n\r\ninterface ReusableFormProps {\r\n  title: string;\r\n  open: boolean;\r\n  setOpen: (open: boolean) => void;\r\n  formConfig?: FormField[];\r\n  onSubmit: (values: any) => void;\r\n  record?: Record<string, any> | null;\r\n  loading?: boolean;\r\n  size?: number;\r\n  twoColumns?: boolean;\r\n  handleFieldChange?: (changedValues: Record<string, any>, allValues: Record<string, any>, form: FormInstance) => void;\r\n  buttonText?: string;\r\n}\r\n\r\nconst RForm: React.FC<ReusableFormProps> = ({\r\n  title,\r\n  open,\r\n  setOpen,\r\n  formConfig = [],\r\n  onSubmit,\r\n  record = null,\r\n  loading,\r\n  size = 500,\r\n  twoColumns = false,\r\n  handleFieldChange = null,\r\n  buttonText = 'Submit',\r\n}) => {\r\n  const [form] = Form.useForm();\r\n  const handleFinish = (values: Record<string, any>) => {\r\n    onSubmit(values);\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (open && formConfig.length > 0) {\r\n      let initialValues: any = {};\r\n      formConfig.forEach((field) => {\r\n        if (field.defaultValue) {\r\n          initialValues[field.name] = field.defaultValue;\r\n        }\r\n        if (record && record[field.name]) {\r\n          initialValues[field.name] = record[field.name];\r\n        }\r\n        if (record && record[field.name] && field.type == 'date') {\r\n          initialValues[field.name] = dayjs(record[field.name], 'YYYY/MM/DD');\r\n        }\r\n      });\r\n      form.setFieldsValue(initialValues);\r\n    } else {\r\n      form.resetFields();\r\n    }\r\n  }, [open, formConfig]);\r\n  const onValuesChangeHandler = (changedValues: Record<string, any>, allValues: Record<string, any>) => {\r\n    if (handleFieldChange) {\r\n      handleFieldChange(changedValues, allValues, form);\r\n    }\r\n  };\r\n  return (\r\n    <RDrawer\r\n      drawerId=\"drawer-id\"\r\n      title={title}\r\n      size={size}\r\n      position=\"right\"\r\n      open={open}\r\n      closePanle={() => setOpen(false)}\r\n    >\r\n      <Form\r\n        form={form}\r\n        layout=\"vertical\"\r\n        onFinish={handleFinish}\r\n        onValuesChange={(changedValues, allValues) => onValuesChangeHandler(changedValues, allValues)}\r\n        autoComplete=\"off\"\r\n      >\r\n        <div className={`${twoColumns ? 'grid grid-cols-2 gap-x-4' : ''}`}>\r\n          {formConfig.map((field) => (\r\n            <Form.Item\r\n              key={field.name}\r\n              label={field.label}\r\n              name={field.name}\r\n              rules={field.rules}\r\n              required={field.required}\r\n            >\r\n              {field.type == 'text' && (\r\n                <Input placeholder={`Please enter ${field.label}`} disabled={field?.disabled || false} />\r\n              )}\r\n              {field.type == 'number' && (\r\n                <InputNumber\r\n                  className=\"!w-full\"\r\n                  type=\"number\"\r\n                  max={field?.maxvalue}\r\n                  min={1}\r\n                  placeholder={`Please enter ${field.label}`}\r\n                  disabled={field?.disabled || false}\r\n                />\r\n              )}\r\n              {field.type == 'password' && (\r\n                <Input.Password placeholder={`Please enter ${field.label}`} disabled={field?.disabled || false} />\r\n              )}\r\n              {field.type == 'dropdown' && (\r\n                <Select\r\n                  placeholder={`Please select ${field.label}`}\r\n                  disabled={field?.disabled || false}\r\n                  showSearch\r\n                  virtual\r\n                  filterOption={(input, option: any) => option?.children?.toLowerCase()?.includes(input?.toLowerCase())}\r\n                >\r\n                  {field.options?.map((option, optionIndex) => (\r\n                    <Select.Option key={optionIndex} value={option.value}>\r\n                      {option.label}\r\n                    </Select.Option>\r\n                  ))}\r\n                </Select>\r\n              )}\r\n              {field.type === 'date' && (\r\n                <DatePicker\r\n                  format={'DD/MM/YYYY'}\r\n                  placeholder={`Please select ${field.label}`}\r\n                  disabled={field?.disabled || false}\r\n                  className=\"w-full\"\r\n                  disabledDate={(current) =>\r\n                    field.minDate ? current && current.isBefore(dayjs(field.minDate, 'YYYY/MM/DD'), 'day') : false\r\n                  }\r\n                />\r\n              )}\r\n            </Form.Item>\r\n          ))}\r\n        </div>\r\n        <Form.Item>\r\n          <div className=\"flex gap-4\">\r\n            <Button type=\"primary\" htmlType=\"submit\" className=\"mt-4\" loading={loading}>\r\n              {buttonText}\r\n            </Button>\r\n            <Button className=\"mt-4\" onClick={() => setOpen(false)}>\r\n              Cancel\r\n            </Button>\r\n          </div>\r\n        </Form.Item>\r\n      </Form>\r\n    </RDrawer>\r\n  );\r\n};\r\n\r\nexport default RForm;\r\n"],"names":["ThemeChange","primaryColor","localStorage","setItem","String","document","documentElement","style","setProperty","filterOption","input","option","_a","label","toLowerCase","includes","filterOption2","_b","_c","value","filterOption3","inputLower","key","RDrawer","title","size","position","open","closePanle","loading","children","customActions","drawerId","_d","className","_jsx","Drawer","placement","width","id","onClose","closable","concat","extra","_jsxs","CloseOutlined","onClick","RModal","isVisible","onOk","footer","undefined","_e","_f","Modal","onCancel","centered","confirmLoading","maskClosable","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","f","y","_","sent","trys","ops","g","create","Iterator","verb","Symbol","iterator","v","op","TypeError","pop","push","__spreadArray","to","from","pack","ar","l","Array","slice","SuppressedError","Dragger","Upload","RUploader","uploadName","requiredKeys","onUploadSuccess","accept","isOpen","disable","tooltip","disabledTooltip","_g","text","_h","uploaderId","SuccessAlert","WarningAlert","_j","useState","fileList","setFileList","_k","sheetNames","setSheetNames","_l","selectedSheet","setSelectedSheet","_m","modalVisible","setModalVisible","_o","workbook","setWorkbook","_p","fileReaderResolve","setFileReaderResolve","_q","instanceKey","setInstanceKey","useEffect","k","processExcelData","jsonData","formattedData","row","formattedRow","missingKeys","keys","every","forEach","uploadedKey","convertedKey","required","foundKey","find","trim","trimmedValue","join","props","name","multiple","maxCount","customRequest","file","onError","onSuccess","type","setTimeout","reader","FileReader","onload","event","target","data","wb","XLSX","read","cellDates","cellText","cellNF","SheetNames","sheet","Sheets","utils","sheet_to_json","processedData","status_2","readAsArrayBuffer","onChange","info","status","onDrop","console","log","dataTransfer","files","onRemove","Tooltip","_createElement","disabled","RiFileExcel2Line","status_1","okText","cancelText","Select","map","Option","colorOptions","dateFormats","countryCurrency","code","AvatarBgColor","mode","colors","hash","charCodeAt","Math","abs","RForm","formConfig","onSubmit","record","RowItem","handleFieldChange","buttonText","buttonAlign","showsubmit","dateFormat","RangePicker","DatePicker","buttonTypeRef","useRef","form","Form","useForm","initialValues_1","field","defaultValue","items","item","parsedDate","dayjs","isValid","dateRange","split","setFieldsValue","resetFields","layout","onFinish","values","formattedValues","isDayjs","format","isArray","startDate","endDate","current","onValuesChange","changedValues","allValues","onValuesChangeHandler","autoComplete","Item","rules","validator","minvalue","Error","maxvalue","Input","placeholder","InputNumber","max","min","Password","maxTagCount","showSearch","virtual","options","optionIndex","disabledDate","minDate","isBefore","src","alt","height","marginRight","valuePropName","Switch","inline","Checkbox","Group","checkboxGroup","idx","css","multipleCheckboxRow","checkbox","ColorPicker","showText","Button","htmlType","RFormWithDrawer","saveAndAddMoreButton","hideLabel","submit","_id","getColumnSearchProps","dataIndex","extraDataIndices","filterDropdown","setSelectedKeys","selectedKeys","confirm","clearFilters","searchQuery","setSearchQuery","expand","setExpand","lowerSearchQuery","treeData","seenValues","Set","primaryValue","has","add","extraValues","combinedValues","val","some","margin","Search","marginBottom","icon","RiCollapseDiagonalFill","RiExpandDiagonalFill","List","VirtualList","itemHeight","itemKey","maxHeight","overflow","padding","htmlFor","checked","filter","toString","_Fragment","filterIcon","filtered","MdOutlineFilterAlt","color","fontSize","onFilter","rawValue","RMenus","mainContainerClassName","visibleItemClassName","hiddenItemClassName","overflowButtonClassName","itemGap","overflowButton","hiddenMainContainerClassName","activeItemKey","activeItemClassName","containerRef","measureRef","dropdownRef","visibleItems","setVisibleItems","hiddenItems","setHiddenItems","setIsOpen","checkOverflow","containerWidth","offsetWidth","measureChildren","itemWidths","child","dotsWidth","total","visibleCount","available","window","addEventListener","removeEventListener","handleClickOutside","contains","ref","visibility","pointerEvents","whiteSpace","display","gap","prev","setOpen","twoColumns"],"mappings":"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","x_google_ignoreList":[3]}