{"version":3,"file":"index.mjs","sources":["../node_modules/tslib/tslib.es6.js","../src/BABox.tsx","../src/BALoader.tsx","../src/BABackdropLoader.tsx","../src/BAButton.tsx","../src/BACheckbox.tsx","../src/BAPera.tsx","../src/BACollapse.tsx","../src/BADate.tsx","../src/BAGrid.tsx","../src/BAPagination.tsx","../src/BADropDownLookup.tsx","../src/BAFieldset.tsx","../src/BAInput.tsx","../src/BAModal.tsx","../src/BASearchLookup.tsx","../src/BASelect.tsx","../src/BASwitch.tsx","../src/BADragDrop.tsx","../src/BATextarea.tsx","../src/BAImagePicker.tsx","../src/BAComponentSwitcher.tsx","../src/config/helpers.ts","../src/BAFormElement.tsx","../src/BAIconButton.tsx","../src/BAFormGrid.tsx","../src/BAMenu.tsx","../src/BAScreenHeader.tsx","../src/config/apimethods.ts","../src/config/generalCoreService.ts","../src/MasterContainer.tsx","../src/BASetupGrid.tsx","../src/BAScreenWraper.tsx"],"sourcesContent":["/******************************************************************************\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 from \"react\";\r\n\r\nexport type BABoxProps = React.HTMLAttributes<HTMLDivElement> & {\r\n    children?: React.ReactNode;\r\n    className?: string;\r\n    sx?: React.CSSProperties; // better typed\r\n};\r\n\r\nconst BABox = React.forwardRef<HTMLDivElement, BABoxProps>(\r\n    ({ children, className = \"\", sx, style, ...rest }, ref) => {\r\n        return (\r\n            <div\r\n                ref={ref}\r\n                className={className}\r\n                style={{ ...style, ...sx }}\r\n                {...rest}\r\n            >\r\n                {children}\r\n            </div>\r\n        );\r\n    }\r\n);\r\n\r\nBABox.displayName = \"BABox\";\r\n\r\nexport default BABox;\r\n","\r\nimport {\r\n    LoadingOutlined,\r\n} from '@ant-design/icons';\r\nimport BABox from \"./BABox\"\r\n\r\nexport default function BALoader() {\r\n    return <>\r\n        <BABox className=\"flex h-full items-center justify-center\">\r\n            <LoadingOutlined style={{ fontSize: '3em' }} />\r\n        </BABox>\r\n    </>\r\n}","import BABox from \"./BABox\";\r\nimport BALoader from \"./BALoader\";\r\n\r\nexport default function BABackdropLoader({ loading = true }) {\r\n    if (!loading) return null;\r\n    return (\r\n        <BABox\r\n            sx={{\r\n                position: \"fixed\",\r\n                top: 0,\r\n                left: 0,\r\n                width: \"100vw\",\r\n                height: \"100vh\",\r\n                background: \"rgba(255,255,255,0.6)\",\r\n                zIndex: 9999,\r\n                display: \"flex\",\r\n                alignItems: \"center\",\r\n                justifyContent: \"center\",\r\n            }}\r\n        >\r\n            <BALoader />\r\n        </BABox>\r\n    );\r\n}\r\n","import React from \"react\";\r\nimport { Button } from \"antd\";\r\nimport type { ButtonProps } from \"antd\";\r\n\r\nexport type BAButtonProps = ButtonProps & {\r\n    label?: React.ReactNode;\r\n    sx?: React.CSSProperties;\r\n};\r\n\r\nconst BAButton = React.forwardRef<HTMLButtonElement, BAButtonProps>(\r\n    ({ label, children, sx, style, type = \"primary\", ...rest }, ref) => {\r\n        return (\r\n            <Button\r\n                ref={ref}\r\n                type={type}\r\n                style={{ ...style, ...sx }}\r\n                {...rest}\r\n            >\r\n                {label ?? children}\r\n            </Button>\r\n        );\r\n    }\r\n);\r\n\r\nBAButton.displayName = \"BAButton\";\r\n\r\nexport default BAButton;\r\n","import { Checkbox } from 'antd';\r\nimport type { CheckboxProps } from 'antd';\r\n\r\ntype propTypes = {\r\n  isMultiple?: boolean;\r\n  label?: string;\r\n  onChange?: CheckboxProps['onChange'];\r\n  checked?: boolean\r\n  disabled?: boolean\r\n}\r\n\r\nconst BACheckbox = (props: propTypes) => {\r\n  const { isMultiple, label, onChange, checked, disabled } = props\r\n\r\n  return (\r\n    <>\r\n      <Checkbox disabled={disabled} indeterminate={isMultiple} onChange={onChange} checked={checked}>\r\n        {label}\r\n      </Checkbox>\r\n    </>\r\n  );\r\n};\r\n\r\nexport default BACheckbox;","\r\n\r\ntype propsType = {\r\n    children?: React.ReactNode,\r\n    className?: string,\r\n    sx?: any,\r\n    onClick?: () => void,\r\n}\r\nexport default function BAPera(props: propsType) {\r\n    const { children, className, sx, onClick } = props;\r\n    return <>\r\n        <p onClick={onClick} style={sx} className={`m-0 ${className}`}>{children}</p>\r\n    </>\r\n}","\"use client\";\r\n\r\nimport { useState } from \"react\"\r\nimport BABox from \"./BABox\"\r\nimport BAPera from \"./BAPera\"\r\nimport {\r\n    RightOutlined,\r\n    DownOutlined\r\n} from \"@ant-design/icons\";\r\n\r\nexport default function BACollapse(props: { label: string, children: any, icon?: any, expand?: boolean, labelClick?: any }) {\r\n    const { label, children, icon, expand, labelClick } = props\r\n    const [open, setOpen] = useState(expand)\r\n    const handleOpen = () => {\r\n        setOpen(!open)\r\n        if (labelClick) {\r\n            labelClick()\r\n        }\r\n    }\r\n    return <>\r\n        <BABox className=\"mb-2 border \" >\r\n            <BAPera onClick={handleOpen} className={`p-2 text-drawer font-semibold text-lg border-b hover:bg-[rgba(0,0,0,.1)] border-b-[drawer] cursor-pointer flex justify-between items-center`}><span>{icon && <span className=\"me-3 inline-block\">{icon}</span>}{label}</span>{<span style={{ fontSize: \"1rem\" }}>{open ? <DownOutlined /> : <RightOutlined />}</span>}</BAPera>\r\n            {open && <BABox className=\"p-2\">\r\n                {children}\r\n            </BABox>}\r\n        </BABox>\r\n    </>\r\n}","\"use client\";\r\n\r\nimport { DatePicker, Typography } from 'antd';\r\nimport dayjs from 'dayjs';\r\nimport BABox from './BABox';\r\n\r\n\r\ntype propsType = {\r\n    label: string,\r\n    disabled?: boolean,\r\n    required?: boolean,\r\n    onChange?: any,\r\n    value?: any,\r\n    minDate?: any,\r\n    maxDate?: any,\r\n    validate?: boolean,\r\n    picker?: 'week' | 'month' | 'quarter' | 'year' | undefined;\r\n    showTime?: boolean,\r\n}\r\n\r\n\r\n\r\n\r\nexport default function BADate(props: propsType) {\r\n    const { label, disabled, required, onChange, value, showTime, minDate, maxDate, picker } = props;\r\n    const { Title } = Typography;\r\n    const validatePeriod = (date: any, dateString: any) => {\r\n        if (!date) {\r\n            onChange(null, dateString);\r\n            return;\r\n        }\r\n        // Use local timezone (dayjs returns local by default)\r\n        const localDate = dayjs(date).toDate();\r\n        onChange(localDate, dateString);\r\n    };\r\n\r\n\r\n    return <BABox className=''>\r\n        {label && <Title level={5}>{label}<span className=\"text-2xl\">{required && \"*\"}</span></Title>}\r\n        <BABox>\r\n            <DatePicker\r\n                picker={picker}\r\n                minDate={minDate}\r\n                maxDate={maxDate}\r\n                required={required}\r\n                style={{ width: '100%' }}\r\n                onChange={validatePeriod}\r\n                value={value ? dayjs(value) : null}\r\n                disabled={disabled}\r\n                placeholder=''\r\n                showTime={showTime}\r\n                format={'DD-MMM-YYYY'}\r\n            />\r\n        </BABox>\r\n    </BABox>\r\n}","\"use client\";\r\n\r\nimport BABox from \"./BABox\";\r\nimport { BACheckbox, BALoader, BAPera } from \".\";\r\nimport { DeleteOutlined } from \"@ant-design/icons\";\r\nimport { useState } from \"react\";\r\nimport { theme } from \"antd\";\r\n\r\ntype propsType = {\r\n  datasourse: any[];\r\n  cols: {\r\n    key: string;\r\n    label: string;\r\n    displayField?: (data: any, i: number) => any;\r\n    HeaderField?: any;\r\n  }[];\r\n  loading?: boolean;\r\n  onChange?: any;\r\n  displayField?: any;\r\n  closeModal?: any;\r\n  onRowClick?: any;\r\n  allowMultiple?: boolean;\r\n  setDataSource?: any;\r\n  className?: string;\r\n  allowSearch?: boolean;\r\n  allowDelete?: boolean;\r\n  onDelete?: (index: number) => void;\r\n  colSearchObj?: any,\r\n  handleSearch?: (pgObj?: any, SearchObj?: any) => void;\r\n};\r\n\r\nexport default function BAGrid(props: propsType) {\r\n  const {\r\n    datasourse,\r\n    cols,\r\n    loading,\r\n    displayField,\r\n    onRowClick,\r\n    allowMultiple,\r\n    setDataSource,\r\n    allowSearch,\r\n    handleSearch,\r\n    colSearchObj = {},\r\n    allowDelete,\r\n    onDelete\r\n  } = props;\r\n\r\n  const { token }: any = theme.useToken();\r\n\r\n  const [isAllSelected, setIsAllSelected] = useState<boolean>(false);\r\n  const [gridSearchObj, setGridSearchObj] = useState<any>(colSearchObj);\r\n\r\n  const onRowSelect = (data: any, i: number, checked: boolean) => {\r\n    if (datasourse.length) {\r\n      const listData = [...datasourse];\r\n      listData[i] = { ...data, isSelected: checked };\r\n      const selectionRemaining = listData.find((el) => !el.isSelected);\r\n      if (!selectionRemaining) setIsAllSelected(true);\r\n      else setIsAllSelected(false);\r\n      setDataSource(listData);\r\n    }\r\n  };\r\n\r\n  const onSelectAll = (checked: boolean) => {\r\n    setIsAllSelected(checked);\r\n    const listData = [...datasourse];\r\n    listData.map((item) => ({ ...item, isSelected: checked }));\r\n    setDataSource(listData.map((item) => ({ ...item, isSelected: checked })));\r\n  };\r\n\r\n  const indeterminate =\r\n    !isAllSelected && datasourse?.find((el) => el.isSelected);\r\n\r\n  return (\r\n    <BABox\r\n      className={\"overflow-x-auto h-[calc(100vh-16rem)]\"}\r\n    >\r\n      <table\r\n        style={{ tableLayout: \"auto\" }}\r\n        className={\r\n          loading\r\n            ? \"blur-background w-full divide-y overflow-hidden divide-gray-200\"\r\n            : \"w-full divide-y  overflow-hidden divide-gray-200\"\r\n        }\r\n      >\r\n        <thead style={{ backgroundColor: token.token.colorPrimary, color: \"white\" }}>\r\n          <tr>\r\n            {allowSearch && <th></th>}\r\n            {allowMultiple && (\r\n              <th>\r\n                <BACheckbox\r\n                  onChange={(e) => onSelectAll(e.target.checked)}\r\n                  checked={isAllSelected || false}\r\n                  isMultiple={indeterminate}\r\n                />\r\n              </th>\r\n            )}\r\n            {allowDelete && <th\r\n              className={`p-1 text-left text-xs font-medium text-plain tracking-wider`}\r\n            >Action</th>}\r\n            {cols.map((col: any, index: number) => (\r\n              <th\r\n                key={index}\r\n                className={`p-2 border-bottom text-center text-xs font-medium tracking-wider`}\r\n              >\r\n                {col.label}\r\n              </th>\r\n            ))}\r\n          </tr>\r\n        </thead>\r\n        <tbody className=\"bg-white divide-y divide-gray-200 \">\r\n          {datasourse && datasourse.length > 0 ? (\r\n            datasourse.map((row: any, rowIndex: number) => (\r\n              <tr\r\n                key={rowIndex}\r\n                className={displayField ? \" cursor-pointer transition \" : row.rowClass && typeof row.rowClass === \"function\" ? row.rowClass(row) : \"\"}\r\n                // style={{height:'12px'}}\r\n                style={{ backgroundColor: row.rowColor && typeof row.rowColor === \"function\" ? row.rowColor(row) : rowIndex % 2 === 1 ? \"\" : \"#edf0f4\" }}\r\n                onClick={() => (onRowClick ? onRowClick(rowIndex, row) : {})}\r\n              >\r\n                {allowSearch && <td></td>}\r\n                {allowMultiple && (\r\n                  <td className=\"pl-1\">\r\n                    <BACheckbox\r\n                      checked={row.isSelected || false}\r\n                      onChange={(e) =>\r\n                        onRowSelect(row, rowIndex, e.target.checked)\r\n                      }\r\n                    />\r\n                  </td>\r\n                )}\r\n                {allowDelete && onDelete && <td\r\n                  className={`p-1 whitespace-nowrap text-sm text-gray-900 h-0.5`}\r\n                ><DeleteOutlined className=\"text-xl m-1 hover:text-red-600\" onClick={() => onDelete(rowIndex)} /></td>}\r\n                {cols.map((col: any, colIndex: number) => (\r\n                  <td\r\n                    key={colIndex}\r\n                    className={`p-2 whitespace-nowrap text-sm border-bottom border-[lightgrey] text-gray-900 ${col.className ? col.className : \"\"\r\n                      }`}\r\n                  >\r\n                    {col.displayField\r\n                      ? col.displayField(row, rowIndex)\r\n                      : row[col.key]}\r\n                    {col.HeaderField ? col.HeaderField(rowIndex) : \"\"}\r\n                  </td>\r\n                ))}\r\n              </tr>\r\n            ))\r\n          ) : loading ? (\r\n            <tr>\r\n              <td colSpan={cols.length + 1} className=\"text-center py-4\"><BALoader /></td></tr>\r\n          ) : (\r\n            <tr>\r\n              <td colSpan={cols.length + 1} className=\"text-center py-4\">\r\n                <BABox className=\"flex justify-center w-full\">\r\n                  <BAPera>No Data Found</BAPera>\r\n                </BABox>\r\n              </td>\r\n            </tr>\r\n          )}\r\n        </tbody>\r\n      </table>\r\n    </BABox>\r\n  );\r\n}\r\n","\"use client\";\r\n\r\nimport { Pagination } from \"antd\";\r\nimport BABox from \"./BABox\";\r\nimport { useState } from \"react\";\r\nimport BASelect from \"./BASelect\";\r\n\r\ntype propsType = {\r\n  totalRecords: number;\r\n  onPageChange: any;\r\n  onOk?: any;\r\n  multiSelect?: boolean;\r\n  content?: React.ReactNode;\r\n  pageSize?: number;\r\n};\r\nexport default function BAPagination(props: propsType) {\r\n  const { totalRecords, onPageChange, pageSize } = props;\r\n  const [pageConfig, setPageConfig] = useState({\r\n    current: 1,\r\n    pageSize: pageSize,\r\n  });\r\n\r\n  const handlePageChange = (page: number, pageSize: number) => {\r\n    if (onPageChange) onPageChange(page, pageSize);\r\n    setPageConfig({ ...pageConfig, current: page, pageSize: pageSize });\r\n  };\r\n\r\n  const pageSizeChange = (value: any) => {\r\n    setPageConfig({ ...pageConfig, pageSize: value });\r\n    handlePageChange(1, value);\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <BABox className=\"p-3 rounded-lg bg-white shadow mt-1 md:mt-2\">\r\n        <BABox className=\"flex justify-between items-center\">\r\n          <Pagination\r\n            defaultCurrent={1}\r\n            total={totalRecords}\r\n            pageSize={pageConfig.pageSize}\r\n            onChange={handlePageChange}\r\n          />\r\n          <BABox className=\"ms-2\">Total Records: {totalRecords}</BABox>\r\n        </BABox>\r\n      </BABox>\r\n    </>\r\n  );\r\n}\r\n","\"use client\";\r\n\r\nimport { Input, message, Typography, Grid, Popover } from \"antd\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { CloseOutlined, SearchOutlined } from \"@ant-design/icons\";\r\nimport BAGrid from \"./BAGrid\";\r\nimport BAPagination from \"./BAPagination\";\r\nimport BAButton from \"./BAButton\";\r\nimport BABox from \"./BABox\";\r\n\r\nconst { useBreakpoint } = Grid;\r\n\r\ntype propsType = {\r\n    label: string;\r\n    placeholder?: string;\r\n    disabled?: boolean;\r\n    required?: boolean;\r\n    className?: string;\r\n    onChange?: any;\r\n    onCancel?: any;\r\n    value?: any;\r\n    type?: any;\r\n    controller?: any;\r\n    apiName?: string;\r\n    config?: any;\r\n    displayField?: any;\r\n    multiple?: any;\r\n    onRowClick?: any;\r\n    onBlur?: any;\r\n    allowMultiple?: boolean;\r\n    onSelectMultiple?: any;\r\n    isRowSelected?: boolean;\r\n    isAllSelected?: boolean;\r\n    data?: any;\r\n    fillObj?: any;\r\n    params?: any\r\n    apiFunctions?: any\r\n};\r\n\r\n\r\n\r\nexport default function BADropDownLookup(props: propsType) {\r\n\r\n    const screens = useBreakpoint();\r\n    const isMobile = !screens.md; // md = 768px breakpoint\r\n\r\n    const {\r\n        label,\r\n        placeholder,\r\n        disabled,\r\n        required,\r\n        className,\r\n        onChange,\r\n        value,\r\n        type,\r\n        controller,\r\n        config,\r\n        displayField,\r\n        onRowClick,\r\n        onBlur,\r\n        allowMultiple,\r\n        onSelectMultiple,\r\n        fillObj,\r\n        onCancel,\r\n        apiFunctions,\r\n    } = props;\r\n    const { Get } = apiFunctions\r\n    const { Title } = Typography;\r\n\r\n    const [listData, setListData] = useState<any[]>([]);\r\n    const [loading, setLoading] = useState(false);\r\n    const [openModal, setOpenModal] = useState<any>(false);\r\n    const [paginationConfig, setPaginationConfig] = useState({\r\n        pageSize: 10,\r\n        page: 1,\r\n        totalRecords: 0,\r\n    });\r\n    const [inpValue, setInpValue] = useState<any>(value);\r\n\r\n    const getData = (pgObj?: any, SearchObj?: any) => {\r\n        setLoading(true);\r\n\r\n\r\n\r\n        const updatedSearchObj = Object.fromEntries(\r\n            Object.entries(SearchObj || {}).filter(([_, value]) => value)\r\n        );\r\n        Get(`lookup/${controller}`, null, {\r\n            page: pgObj?.page || paginationConfig.page,\r\n            limit: pgObj?.pageSize || paginationConfig.pageSize,\r\n            selector: config.map((col: any) => col.key).filter(Boolean).join(\",\"),\r\n            search: updatedSearchObj,\r\n            filter: JSON.stringify({ ...SearchObj })\r\n        })\r\n            .then((res: any) => {\r\n                if (res?.items) {\r\n                    setListData([...res.items]);\r\n                    setPaginationConfig({ ...paginationConfig, totalRecords: res.meta?.totalItems });\r\n                    setLoading(false);\r\n                } else {\r\n                    message.error(res.message || \"An error occurred.\");\r\n                }\r\n            }).catch((err: any) => {\r\n                setLoading(false);\r\n                message.error(err.error)\r\n            });\r\n    };\r\n    const handleOpen = () => {\r\n        setOpenModal(true);\r\n        getData();\r\n    };\r\n\r\n    const handleCancel = () => {\r\n        onChange(null, null, {});\r\n        setInpValue(\"\");\r\n        onCancel && onCancel();\r\n    }\r\n\r\n    const onInputChange = (e: any) => {\r\n        setInpValue(e.target.value);\r\n    }\r\n\r\n    const handleKeyDown = (event: any) => {\r\n        if (event.key === \"Enter\") {\r\n            handleOpen();\r\n        }\r\n    };\r\n    const onOK = () => setOpenModal(false);\r\n\r\n    const pageChange = async (page: any, pageSize: any) => {\r\n        paginationConfig.pageSize = pageSize;\r\n        paginationConfig.page = page;\r\n        setPaginationConfig({ ...paginationConfig });\r\n        getData({ ...paginationConfig, page, pageSize });\r\n    };\r\n\r\n    const setSelectedRows = () => {\r\n        const selectedRows = listData.filter((el: any) => el.isSelected);\r\n        onSelectMultiple(selectedRows);\r\n        onOK();\r\n    };\r\n\r\n    useEffect(() => {\r\n        if (fillObj && value) {\r\n            setInpValue(fillObj[displayField]);\r\n        }\r\n    }, [])\r\n\r\n    return (\r\n        <>\r\n            {/* <BAModal\r\n                title={label ? label : \"Search Lookup\"}\r\n                open={openModal}\r\n                handleOK={onOK}\r\n                close={setOpenModal}\r\n                width={isMobile ? \"95%\" : \"70%\"}\r\n                content={\r\n                    <>\r\n                        <BAGrid\r\n                            closeModal={onOK}\r\n                            displayField={displayField}\r\n                            onChange={onChange}\r\n                            datasourse={listData}\r\n                            cols={config}\r\n                            loading={loading}\r\n                            onRowClick={(i: number, data: any) => {\r\n                                if (!allowMultiple) onOK();\r\n                                onRowClick(i, data, listData);\r\n                                setInpValue(data[displayField]);\r\n                            }}\r\n                            allowMultiple={allowMultiple}\r\n                            setDataSource={setListData}\r\n                            allowSearch\r\n                            handleSearch={getData}\r\n                        />\r\n                        <BAPagination\r\n                            pageSize={paginationConfig.pageSize}\r\n                            totalRecords={paginationConfig.totalRecords}\r\n                            onPageChange={pageChange}\r\n                            multiSelect={allowMultiple}\r\n                            onOk={() => (allowMultiple ? setSelectedRows() : {})}\r\n                        />\r\n                    </>\r\n                }\r\n            /> */}\r\n            {type === \"button\" ? (\r\n                <BAButton label={label} disabled={disabled} onClick={handleOpen} />\r\n            ) : (\r\n                <BABox className={`${className}`}>\r\n                    {label && <Title level={5}>{label}<span className=\"text-2xl\">{required && \"*\"}</span></Title>}\r\n                    <BABox>\r\n                        <Popover\r\n                            placement=\"bottomRight\"\r\n                            style={{ width: '100%' }}\r\n\r\n                            content={\r\n                                <>\r\n                                    <BAGrid\r\n                                        closeModal={onOK}\r\n                                        displayField={displayField}\r\n                                        onChange={onChange}\r\n                                        datasourse={listData}\r\n                                        cols={config}\r\n                                        loading={loading}\r\n                                        onRowClick={(i: number, data: any) => {\r\n                                            if (!allowMultiple) onOK();\r\n                                            onRowClick(i, data, listData);\r\n                                            setInpValue(data[displayField]);\r\n                                        }}\r\n                                        allowMultiple={allowMultiple}\r\n                                        setDataSource={setListData}\r\n                                        allowSearch\r\n                                        handleSearch={getData}\r\n                                    />\r\n                                    <BAPagination\r\n                                        pageSize={paginationConfig.pageSize}\r\n                                        totalRecords={paginationConfig.totalRecords}\r\n                                        onPageChange={pageChange}\r\n                                        multiSelect={allowMultiple}\r\n                                        onOk={() => (allowMultiple ? setSelectedRows() : {})}\r\n                                    />\r\n                                </>\r\n                            }\r\n                            title={label ? label : \"Search Lookup\"}\r\n                            trigger=\"click\"\r\n                            onOpenChange={setOpenModal}\r\n                            open={openModal}\r\n                        />\r\n                        <Input\r\n                            value={inpValue}\r\n                            placeholder={placeholder}\r\n                            disabled={disabled}\r\n                            required={required}\r\n                            suffix={\r\n                                <>\r\n                                    {value ? <CloseOutlined disabled={disabled} onClick={() => disabled ? {} : handleCancel()} /> : <SearchOutlined disabled={disabled} onClick={() => disabled ? {} : handleOpen()} />}\r\n                                    {/* <BAIconButton\r\n                  className=\"bg-primary\"\r\n\r\n                  icon={<SearchOutlined />}\r\n\r\n                /> */}\r\n                                </>\r\n                            }\r\n                            className={className}\r\n                            onChange={onInputChange}\r\n                            onKeyDown={handleKeyDown}\r\n                            onBlur={(e) => {\r\n                                if (value === \"\") {\r\n                                    onChange(e, \"\", {});\r\n                                }\r\n                                if (onBlur) {\r\n                                    onBlur(e);\r\n                                }\r\n                            }}\r\n                        />\r\n                    </BABox>\r\n                </BABox>\r\n            )}\r\n        </>\r\n    );\r\n}\r\n","\"use client\";\r\n\r\nimport { theme } from \"antd\";\r\n\r\nexport default function BAFieldset({ title, body }: { title: string; body: React.ReactNode }) {\r\n    const { token }: any = theme.useToken();\r\n    return (\r\n        <fieldset className=\"rounded-lg border bg-white p-2\">\r\n            <legend style={{ backgroundColor: token.token.colorPrimary }} className=\"rounded-lg p-2 px-4 text-white\">{title}</legend>\r\n            {body}\r\n        </fieldset>\r\n    );\r\n}","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { Input, Typography } from \"antd\";\r\nimport { PatternFormat, NumericFormat } from 'react-number-format';\r\nimport BABox from \"./BABox\";\r\nimport { OTPProps } from \"antd/es/input/OTP\";\r\nimport {\r\n    LoadingOutlined,\r\n} from '@ant-design/icons';\r\n\r\ntype propsType = {\r\n    label: string,\r\n    placeholder?: string,\r\n    disabled?: boolean,\r\n    required?: boolean,\r\n    className?: string,\r\n    onChange?: any,\r\n    onInput?: any,\r\n    onKeyDown?: any,\r\n    onBlur?: any,\r\n    value?: any,\r\n    type?: any\r\n    inputType?: \"numericinput\" | \"maskinput\" | \"passwordinput\" | \"otpinput\"\r\n    mask?: string,\r\n    textAlign?: \"left\" | \"right\" | \"center\" | undefined,\r\n    validationType?: \"email\" | \"contactNumber\",\r\n    onFocus?: any,\r\n    decimalScale?: any,\r\n    prefix?: any,\r\n    suffix?: any,\r\n    allowNegative?: boolean,\r\n    loading?: boolean,\r\n    maxlength?: any,\r\n    length?: number,\r\n    otpMark?: string,\r\n}\r\nexport default function BAinput(props: propsType) {\r\n    const {\r\n        label,\r\n        placeholder,\r\n        disabled,\r\n        required,\r\n        onChange,\r\n        onInput,\r\n        value,\r\n        type,\r\n        onBlur,\r\n        onKeyDown,\r\n        validationType,\r\n        mask,\r\n        onFocus,\r\n        textAlign,\r\n        inputType,\r\n        decimalScale,\r\n        allowNegative,\r\n        prefix,\r\n        suffix,\r\n        maxlength,\r\n        otpMark,\r\n        loading,\r\n        length\r\n    } = props;\r\n    const [isError, setIsError] = useState(false);\r\n    const { Title } = Typography;\r\n    const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\r\n    const sharedProps: OTPProps = {\r\n        onChange,\r\n        onInput,\r\n    };\r\n\r\n    return <BABox>\r\n        {label && <Title level={5}>{label}<span className=\"text-2xl\">{required && \"*\"}</span></Title>}\r\n        <BABox>\r\n            {inputType === \"maskinput\" && mask ? <PatternFormat\r\n                value={value}\r\n                onChange={(e) => {\r\n                    const rawNumber = e.target.value.replace(/\\D/g, \"\"); // Remove all non-numeric characters\r\n                    onChange(rawNumber || null)\r\n                }}\r\n                customInput={Input}\r\n                format={mask}\r\n                disabled={disabled || loading}\r\n                allowEmptyFormatting\r\n                suffix={loading ? <LoadingOutlined /> : suffix}\r\n                mask=\"_\"\r\n            /> : inputType === \"passwordinput\" ? <Input.Password\r\n\r\n                value={value}\r\n                placeholder={placeholder}\r\n                suffix={loading ? <LoadingOutlined /> : suffix}\r\n                prefix={prefix}\r\n                disabled={disabled || loading}\r\n                required={required}\r\n                onChange={onChange}\r\n            /> : inputType === \"numericinput\" ? <NumericFormat\r\n                onKeyDown={onKeyDown}\r\n                value={value}\r\n                customInput={Input}\r\n                thousandSeparator=\",\"\r\n                decimalScale={decimalScale}\r\n                fixedDecimalScale\r\n                allowNegative={allowNegative}\r\n                prefix={prefix ? `${prefix} ` : ''}\r\n                suffix={loading ? `${<LoadingOutlined />}` : suffix ? ` ${suffix}` : ''}\r\n                placeholder={placeholder}\r\n                disabled={disabled || loading}\r\n                onValueChange={onChange}\r\n                onBlur={onBlur}\r\n                onFocus={onFocus}\r\n                style={{\r\n                    textAlign: 'right',\r\n                }}\r\n            /> : inputType === \"otpinput\" ? <Input.OTP\r\n                {...sharedProps}\r\n                value={value}\r\n                length={length || 6}\r\n                disabled={disabled}\r\n                onChange={onChange}\r\n                mask={otpMark}\r\n                className=\"custom-otp\"\r\n            /> : <Input\r\n                suffix={loading ? <LoadingOutlined /> : suffix}\r\n                maxLength={maxlength}\r\n                onKeyDown={onKeyDown}\r\n                onBlur={onBlur}\r\n                status={isError ? \"error\" : \"\"}\r\n                type={type === 'number' ? 'Number' : 'text'}\r\n                value={value}\r\n                placeholder={placeholder}\r\n                disabled={disabled || loading}\r\n                required={required}\r\n                style={{\r\n                    textAlign: textAlign || \"left\"\r\n                }}\r\n                onChange={(e) => {\r\n                    onChange(e)\r\n                    if (validationType === 'email') {\r\n                        if (emailRegex.test(e.target.value)) {\r\n                            setIsError(false);\r\n                        } else {\r\n                            setIsError(true);\r\n                        }\r\n                    }\r\n                }}\r\n                onFocus={onFocus}\r\n            />}\r\n        </BABox>\r\n    </BABox>\r\n}\r\n","\r\n\r\nimport { Modal } from \"antd\"\r\n\r\ntype propsType = {\r\n    title: string,\r\n    open: boolean,\r\n    close: any,\r\n    content: any,\r\n    style?: any,\r\n    footer?: any,\r\n    width?: any,\r\n    handleOK?: any,\r\n    className?: string\r\n}\r\n\r\nexport default function BAModal(props: propsType) {\r\n    const { title, open, close, content, style, footer, width, handleOK, className } = props;\r\n    const handleClose = () => {\r\n        if (close) close()\r\n    }\r\n\r\n    return <>\r\n        <Modal\r\n            width={width}\r\n            style={style}\r\n            title={title}\r\n            open={open}\r\n            onCancel={handleClose}\r\n            footer={footer ? footer : null}\r\n            onOk={handleOK}\r\n            className={className}\r\n        >\r\n            {content}\r\n        </Modal>\r\n    </>\r\n}","\"use client\";\r\n\r\nimport { Input, message, Typography, Grid } from \"antd\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { CloseOutlined, SearchOutlined } from \"@ant-design/icons\";\r\nimport BAModal from \"./BAModal\";\r\nimport BAGrid from \"./BAGrid\";\r\nimport BAPagination from \"./BAPagination\";\r\nimport BAButton from \"./BAButton\";\r\nimport BABox from \"./BABox\";\r\nimport createApiFunction from \"./config/apimethods\";\r\n\r\nconst { useBreakpoint } = Grid;\r\n\r\ntype propsType = {\r\n  label: string;\r\n  placeholder?: string;\r\n  disabled?: boolean;\r\n  required?: boolean;\r\n  className?: string;\r\n  onChange?: any;\r\n  onCancel?: any;\r\n  value?: any;\r\n  type?: any;\r\n  controller?: any;\r\n  apiName?: string;\r\n  config?: any;\r\n  displayField?: any;\r\n  multiple?: any;\r\n  onRowClick?: any;\r\n  onBlur?: any;\r\n  allowMultiple?: boolean;\r\n  onSelectMultiple?: any;\r\n  isRowSelected?: boolean;\r\n  isAllSelected?: boolean;\r\n  data?: any;\r\n  fillObj?: any;\r\n  params?: any\r\n  apiFunctions?: any\r\n};\r\n\r\n\r\n\r\nexport default function BASearchLookup(props: propsType) {\r\n\r\n  const screens = useBreakpoint();\r\n  const isMobile = !screens.md; // md = 768px breakpoint\r\n\r\n  const {\r\n    label,\r\n    placeholder,\r\n    disabled,\r\n    required,\r\n    className,\r\n    onChange,\r\n    value,\r\n    type,\r\n    controller,\r\n    config,\r\n    displayField,\r\n    onRowClick,\r\n    onBlur,\r\n    allowMultiple,\r\n    onSelectMultiple,\r\n    fillObj,\r\n    onCancel,\r\n    apiFunctions,\r\n  } = props;\r\n  const { Get } = apiFunctions\r\n  const { Title } = Typography;\r\n\r\n  const [listData, setListData] = useState<any[]>([]);\r\n  const [loading, setLoading] = useState(false);\r\n  const [openModal, setOpenModal] = useState<any>(false);\r\n  const [paginationConfig, setPaginationConfig] = useState({\r\n    pageSize: 10,\r\n    page: 1,\r\n    totalRecords: 0,\r\n  });\r\n  const [inpValue, setInpValue] = useState<any>(value);\r\n\r\n  const getData = (pgObj?: any, SearchObj?: any) => {\r\n    setLoading(true);\r\n\r\n\r\n\r\n    const updatedSearchObj = Object.fromEntries(\r\n      Object.entries(SearchObj || {}).filter(([_, value]) => value)\r\n    );\r\n    Get(`lookup/${controller}`, null, {\r\n      page: pgObj?.page || paginationConfig.page,\r\n      limit: pgObj?.pageSize || paginationConfig.pageSize,\r\n      selector: config.map((col: any) => col.key).filter(Boolean).join(\",\"),\r\n      search: updatedSearchObj,\r\n      filter: JSON.stringify({ ...SearchObj })\r\n    })\r\n      .then((res: any) => {\r\n        if (res?.items) {\r\n          setListData([...res.items]);\r\n          setPaginationConfig({ ...paginationConfig, totalRecords: res.meta?.totalItems });\r\n          setLoading(false);\r\n        } else {\r\n          message.error(res.message || \"An error occurred.\");\r\n        }\r\n      }).catch((err: any) => {\r\n        setLoading(false);\r\n        message.error(err.error)\r\n      });\r\n  };\r\n  const handleOpen = () => {\r\n    setOpenModal(true);\r\n    getData();\r\n  };\r\n\r\n  const handleCancel = () => {\r\n    onChange(null, null, {});\r\n    setInpValue(\"\");\r\n    onCancel && onCancel();\r\n  }\r\n\r\n  const onInputChange = (e: any) => {\r\n    setInpValue(e.target.value);\r\n  }\r\n\r\n  const handleKeyDown = (event: any) => {\r\n    if (event.key === \"Enter\") {\r\n      handleOpen();\r\n    }\r\n  };\r\n  const onOK = () => setOpenModal(false);\r\n\r\n  const pageChange = async (page: any, pageSize: any) => {\r\n    paginationConfig.pageSize = pageSize;\r\n    paginationConfig.page = page;\r\n    setPaginationConfig({ ...paginationConfig });\r\n    getData({ ...paginationConfig, page, pageSize });\r\n  };\r\n\r\n  const setSelectedRows = () => {\r\n    const selectedRows = listData.filter((el: any) => el.isSelected);\r\n    onSelectMultiple(selectedRows);\r\n    onOK();\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (fillObj && value) {\r\n      setInpValue(fillObj[displayField]);\r\n    }\r\n  }, [])\r\n\r\n  return (\r\n    <>\r\n      <BAModal\r\n        title={label ? label : \"Search Lookup\"}\r\n        open={openModal}\r\n        handleOK={onOK}\r\n        close={setOpenModal}\r\n        width={isMobile ? \"95%\" : \"70%\"}\r\n        content={\r\n          <>\r\n            <BAGrid\r\n              closeModal={onOK}\r\n              displayField={displayField}\r\n              onChange={onChange}\r\n              datasourse={listData}\r\n              cols={config}\r\n              loading={loading}\r\n              onRowClick={(i: number, data: any) => {\r\n                if (!allowMultiple) onOK();\r\n                onRowClick(i, data, listData);\r\n                setInpValue(data[displayField]);\r\n              }}\r\n              allowMultiple={allowMultiple}\r\n              setDataSource={setListData}\r\n              allowSearch\r\n              handleSearch={getData}\r\n            />\r\n            <BAPagination\r\n              pageSize={paginationConfig.pageSize}\r\n              totalRecords={paginationConfig.totalRecords}\r\n              onPageChange={pageChange}\r\n              multiSelect={allowMultiple}\r\n              onOk={() => (allowMultiple ? setSelectedRows() : {})}\r\n            />\r\n          </>\r\n        }\r\n      />\r\n      {type === \"button\" ? (\r\n        <BAButton label={label} disabled={disabled} onClick={handleOpen} />\r\n      ) : (\r\n        <BABox className={`${className}`}>\r\n          {label && <Title level={5}>{label}<span className=\"text-2xl\">{required && \"*\"}</span></Title>}\r\n          <BABox>\r\n            <Input\r\n              value={inpValue}\r\n              placeholder={placeholder}\r\n              disabled={disabled}\r\n              required={required}\r\n              suffix={\r\n                <>\r\n                  {value ? <CloseOutlined disabled={disabled} onClick={() => disabled ? {} : handleCancel()} /> : <SearchOutlined disabled={disabled} onClick={() => disabled ? {} : handleOpen()} />}\r\n                  {/* <BAIconButton\r\n                  className=\"bg-primary\"\r\n\r\n                  icon={<SearchOutlined />}\r\n\r\n                /> */}\r\n                </>\r\n              }\r\n              className={className}\r\n              onChange={onInputChange}\r\n              onKeyDown={handleKeyDown}\r\n              onBlur={(e) => {\r\n                if (value === \"\") {\r\n                  onChange(e, \"\", {});\r\n                }\r\n                if (onBlur) {\r\n                  onBlur(e);\r\n                }\r\n              }}\r\n            />\r\n          </BABox>\r\n        </BABox>\r\n      )}\r\n    </>\r\n  );\r\n}\r\n","\"use client\";\r\n\r\nimport { Select, Typography } from \"antd\"\r\nimport BABox from \"./BABox\";\r\n\r\n\r\ntype propsType = {\r\n    onChange: any,\r\n    options: {\r\n        value: any,\r\n        label: string,\r\n        disabled?: boolean,\r\n    }[],\r\n    value: any,\r\n    label: string,\r\n    disabled?: boolean,\r\n    multiple?: boolean,\r\n    required?: boolean,\r\n    width?: any,\r\n    onFocus?: any,\r\n    loading?: any,\r\n    showSearch?: boolean\r\n    api?: string,\r\n    apiParams?: any\r\n    valueField?: string\r\n    displayField?: string\r\n}\r\nexport default function BASelect(props: propsType) {\r\n    const { onChange, options, value, label, disabled, multiple, width, required, onFocus, loading, showSearch } = props;\r\n    const { Title } = Typography;\r\n\r\n    const handleChange = (ev: any, option: any) => {\r\n        onChange(ev, option);\r\n    }\r\n\r\n\r\n    return <>\r\n        <BABox className=\"\">\r\n            {label && <Title level={5}>{label}<span className=\"text-2xl\">{required && \"*\"}</span></Title>}\r\n            <BABox >\r\n                <Select\r\n                    showSearch={showSearch}\r\n                    loading={loading}\r\n                    onFocus={(ev: any) => {\r\n                        if (onFocus) onFocus(ev);\r\n                    }}\r\n                    mode={multiple ? \"multiple\" : undefined}\r\n                    disabled={disabled}\r\n                    value={value}\r\n                    style={{ width: width ? width : '100%' }}\r\n                    onChange={handleChange}\r\n                    options={options}\r\n                />\r\n            </BABox>\r\n        </BABox>\r\n    </>\r\n}","import { Typography } from \"antd\";\r\nimport { Switch } from 'antd';\r\nimport BABox from \"./BABox\";\r\n\r\ntype propsType = {\r\n    label: string,\r\n    value: boolean,\r\n    onChange: any,\r\n    disabled?: boolean,\r\n    required?: boolean,\r\n    className?: string,\r\n    labelClass?: string,\r\n    size?: 'small' | 'default'\r\n}\r\n\r\nexport default function BASwitch(props: propsType) {\r\n    const { label, value, onChange, disabled, required, className, labelClass, size } = props\r\n    const { Title } = Typography;\r\n    return <>\r\n        <BABox>\r\n            {label && <Title level={5} className={`${labelClass}`}>{label}{required && \"*\"}</Title>}\r\n            <BABox >\r\n                <Switch size={size} defaultChecked={value} onChange={onChange} disabled={disabled} value={value} />\r\n            </BABox>\r\n        </BABox>\r\n    </>\r\n}","\"use client\";\r\n\r\nimport React, { useState, useRef } from \"react\";\r\nimport { InboxOutlined } from \"@ant-design/icons\";\r\nimport type { GetProp, UploadFile, UploadProps } from \"antd\";\r\nimport { message, Upload, Image } from \"antd\";\r\n\r\nconst { Dragger } = Upload;\r\n\r\ninterface FileUploadToBlobProps extends UploadProps {\r\n  onFileUpload: (file: any) => void;\r\n  accept?: string;\r\n  multiple?: boolean;\r\n  disabled?: boolean;\r\n  uploadText?: string;\r\n  action?: string;\r\n}\r\n\r\ntype FileType = Parameters<GetProp<UploadProps, \"beforeUpload\">>[0];\r\n\r\nconst getBase64 = (file: FileType): Promise<string> =>\r\n  new Promise((resolve, reject) => {\r\n    const reader = new FileReader();\r\n    reader.readAsDataURL(file);\r\n    reader.onload = () => resolve(reader.result as string);\r\n    reader.onerror = (error) => reject(error);\r\n  });\r\n\r\nconst BADragDropFile: React.FC<FileUploadToBlobProps> = ({\r\n  onFileUpload,\r\n  accept = \".jpg, .jpeg, .png, .pdf, .xls, .xlsx\",\r\n  multiple = false,\r\n  disabled = false,\r\n  uploadText = \"Click or drag file to this area to upload\",\r\n  action,\r\n  ...rest\r\n}) => {\r\n  const [previewOpen, setPreviewOpen] = useState(false);\r\n  const [previewImage, setPreviewImage] = useState(\"\");\r\n  const [fileList, setFileList] = useState<UploadFile[]>([]);\r\n  const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n  const handleFiles = (files: FileList | null) => {\r\n    if (!files) return;\r\n    const fileArr = Array.from(files);\r\n    const newImages = fileArr.map((file) => ({\r\n      file,\r\n      url: URL.createObjectURL(file),\r\n    }));\r\n    const updatedImages: any = [...fileList, ...newImages];\r\n    setFileList(updatedImages);\r\n    onFileUpload(updatedImages.map((img: any) => img.file));\r\n  };\r\n\r\n  const handleRemove = (idx: number) => {\r\n    const updatedImages = fileList.filter((_, i) => i !== idx);\r\n    setFileList(updatedImages);\r\n    onFileUpload(updatedImages.map((img: any) => img.file));\r\n  };\r\n\r\n  const uploadProps: UploadProps = {\r\n    name: \"file\",\r\n    multiple,\r\n    accept,\r\n    action,\r\n    disabled,\r\n    fileList,\r\n    showUploadList: true,\r\n    beforeUpload(file) {\r\n      if (fileList.length >= 3) {\r\n        message.error(\"You can only upload up to 3 files.\");\r\n        return Upload.LIST_IGNORE;\r\n      }\r\n\r\n      if (onFileUpload) {\r\n        onFileUpload(file);\r\n      }\r\n\r\n      setFileList((prev) => [...prev, file]);\r\n      return false; // Prevents default upload\r\n    },\r\n    onChange(info) {\r\n      setFileList(info.fileList);\r\n      if (onFileUpload) {\r\n        onFileUpload(info.fileList);\r\n      }\r\n    },\r\n    onDrop(e) {\r\n      onFileUpload(e);\r\n    },\r\n    onRemove: (file) => {\r\n      setFileList((prev) => prev.filter((f) => f.uid !== file.uid));\r\n      if (onFileUpload) {\r\n        onFileUpload(fileList.filter((f) => f.uid !== file.uid));\r\n      }\r\n    },\r\n    ...rest,\r\n  };\r\n\r\n  const handlePreview = async (file: UploadFile) => {\r\n    if (!file.url && !file.preview) {\r\n      file.preview = await getBase64(file.originFileObj as FileType);\r\n    }\r\n    setPreviewImage(file.url || (file.preview as string));\r\n    setPreviewOpen(true);\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <Dragger {...uploadProps} maxCount={3}>\r\n        <p className=\"ant-upload-drag-icon\">\r\n          <InboxOutlined />\r\n        </p>\r\n        <p className=\"ant-upload-text\">{uploadText}</p>\r\n        <p className=\"ant-upload-hint\">Supports single or bulk upload.</p>\r\n      </Dragger>\r\n\r\n      {fileList.length > 0 && (\r\n        <div className=\"flex justify-center p-5\">\r\n          <Upload\r\n            listType=\"picture-card\"\r\n            fileList={fileList}\r\n            onPreview={handlePreview}\r\n            onRemove={(file) =>\r\n              setFileList((prev) => prev.filter((f) => f.uid !== file.uid))\r\n            }\r\n            openFileDialogOnClick={false}\r\n          />\r\n        </div>\r\n      )}\r\n\r\n      {previewImage && (\r\n        <Image\r\n          wrapperStyle={{ display: \"none\" }}\r\n          preview={{\r\n            visible: previewOpen,\r\n            onVisibleChange: (visible) => setPreviewOpen(visible),\r\n            afterOpenChange: (visible) => !visible && setPreviewImage(\"\"),\r\n          }}\r\n          src={previewImage}\r\n        />\r\n      )}\r\n\r\n      <input\r\n        ref={inputRef}\r\n        type=\"file\"\r\n        accept=\"image/*\"\r\n        multiple\r\n        style={{ display: \"none\" }}\r\n        onChange={(e) => handleFiles(e.target.files)}\r\n      />\r\n      <button type=\"button\" onClick={() => inputRef.current?.click()}>\r\n        Select Images\r\n      </button>\r\n      <div style={{ display: \"flex\", gap: 8, marginTop: 8 }}>\r\n        {fileList.map((img, idx) => (\r\n          <div key={idx} style={{ position: \"relative\" }}>\r\n            <img\r\n              src={img.url}\r\n              alt={`preview-${idx}`}\r\n              style={{\r\n                width: 80,\r\n                height: 80,\r\n                objectFit: \"cover\",\r\n                borderRadius: 4,\r\n              }}\r\n            />\r\n            <button\r\n              type=\"button\"\r\n              onClick={() => handleRemove(idx)}\r\n              style={{\r\n                position: \"absolute\",\r\n                top: 0,\r\n                right: 0,\r\n                background: \"red\",\r\n                color: \"white\",\r\n                border: \"none\",\r\n                borderRadius: \"50%\",\r\n                width: 20,\r\n                height: 20,\r\n                cursor: \"pointer\",\r\n              }}\r\n            >\r\n              ×\r\n            </button>\r\n          </div>\r\n        ))}\r\n      </div>\r\n    </>\r\n  );\r\n};\r\n\r\nexport default BADragDropFile;\r\n","\"use client\";\r\n\r\n\r\nimport { Input, Typography } from \"antd\";\r\ntype propsType = {\r\n    label: string,\r\n    placeholder?: string,\r\n    disabled?: boolean,\r\n    required?: boolean,\r\n    className?: string,\r\n    onChange?: any,\r\n    value?: string,\r\n    type?: any,\r\n    onBlur?: any,\r\n    onFocus?: any,\r\n    rows?: number\r\n}\r\nexport default function BATextarea(props: propsType) {\r\n    const { label, placeholder, disabled, required, onChange, value, onBlur, onFocus, rows } = props;\r\n\r\n    const { TextArea } = Input;\r\n\r\n    return <>\r\n        {label && <Typography.Title level={5}>{label}{required && \"*\"}</Typography.Title>}\r\n        <TextArea\r\n            {...props}\r\n            onBlur={onBlur}\r\n            onFocus={onFocus}\r\n            rows={rows || 4}\r\n            value={value}\r\n            placeholder={placeholder}\r\n            disabled={disabled}\r\n            required={required}\r\n            onChange={onChange}\r\n        />\r\n    </>\r\n}\r\n","\"use client\";\r\n\r\nimport React, { useRef, useState } from \"react\";\r\nimport { CloseOutlined } from '@ant-design/icons';\r\nimport { theme } from \"antd\";\r\n\r\ninterface BAImagePickerProps {\r\n    onChange: (files: File[]) => void;\r\n    accept?: string;\r\n    disabled?: boolean;\r\n    uploadText?: string;\r\n    value?: string;\r\n}\r\n\r\nconst BAImagePicker: React.FC<BAImagePickerProps> = ({\r\n    onChange,\r\n    accept = \"image/*\",\r\n    disabled = false,\r\n    uploadText = \"Select Image\",\r\n    value\r\n}) => {\r\n    const { token } = theme.useToken();\r\n    const [image, setImage] = useState<{ file: File; url: string } | null>(null);\r\n    const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n    const handleFiles = (files: FileList | null) => {\r\n        if (!files || files.length === 0) return;\r\n        const file = files[0];\r\n        const imgObj = { file, url: URL.createObjectURL(file) };\r\n        setImage(imgObj);\r\n        onChange([file]);\r\n    };\r\n\r\n    const handleRemove = () => {\r\n        setImage(null);\r\n        onChange([]);\r\n    };\r\n\r\n    return (\r\n        <div>\r\n            <input\r\n                ref={inputRef}\r\n                type=\"file\"\r\n                accept={accept}\r\n                multiple={false}\r\n                style={{ display: \"none\" }}\r\n                disabled={disabled}\r\n                onChange={(e) => handleFiles(e.target.files)}\r\n            />\r\n            <div\r\n                className=\"flex flex-col items-center justify-center border-2 border-dashed border-gray-300 hover:border-gray-500 rounded-lg cursor-pointer\"\r\n                onClick={() => inputRef.current?.click()}\r\n                style={{ display: \"flex\", gap: 8, marginTop: 8, width: 100, height: 100 }}\r\n            >\r\n                {image ? (\r\n                    <div style={{ position: \"relative\" }}>\r\n                        <img\r\n                            className=\"rounded-lg\"\r\n                            src={image.url}\r\n                            alt=\"preview\"\r\n                            style={{ width: 100, height: 100, objectFit: \"cover\", borderRadius: 4 }}\r\n                        />\r\n                        <button\r\n                            type=\"button\"\r\n                            onClick={(e) => { e.stopPropagation(); handleRemove(); }}\r\n                            style={{\r\n                                position: \"absolute\",\r\n                                top: 0,\r\n                                right: 0,\r\n                                background: token.colorPrimary,\r\n                                color: \"white\",\r\n                                border: \"none\",\r\n                                borderRadius: \"20%\",\r\n                                width: 20,\r\n                                height: 20,\r\n                                cursor: \"pointer\",\r\n                                padding: 0,\r\n                            }}\r\n                        >\r\n                            <CloseOutlined />\r\n                        </button>\r\n                    </div>\r\n                ) : value ? (\r\n                    <img\r\n                        src={value}\r\n                        alt=\"preview-value\"\r\n                        style={{ width: 80, height: 80, objectFit: \"cover\", borderRadius: 4 }}\r\n                    />\r\n                ) : (\r\n                    <span style={{ color: \"#aaa\" }}>{uploadText}</span>\r\n                )}\r\n            </div>\r\n        </div>\r\n    );\r\n};\r\n\r\nexport default BAImagePicker;","\r\n\r\nimport BAButton from \"./BAButton\";\r\nimport BAinput from \"./BAInput\";\r\nimport BASearchLookup from \"./BASearchLookup\";\r\nimport BASelect from \"./BASelect\";\r\nimport BASwitch from \"./BASwitch\";\r\nimport BADate from \"./BADate\";\r\nimport BABox from \"./BABox\";\r\nimport BAPera from \"./BAPera\";\r\nimport BAFieldset from \"./BAFieldset\";\r\nimport BADragDropFile from \"./BADragDrop\";\r\nimport BATextarea from \"./BATextarea\";\r\nimport BAImagePicker from \"./BAImagePicker\";\r\n\r\n\r\ntype propsType = {\r\n    model: any,\r\n    setModel: any,\r\n    element: formElement,\r\n    disabledForm?: boolean,\r\n    rowChangeEv?: any,\r\n    rowIndex?: number,\r\n    apiFunctions?: any,\r\n}\r\n\r\nexport default function BAComponentSwitcher(props: propsType) {\r\n    const { model, setModel, element, disabledForm, rowChangeEv, rowIndex, apiFunctions } = props;\r\n    const fillModel = (key: any, val: any) => {\r\n        model[key] = val;\r\n        setModel({ ...model });\r\n    };\r\n\r\n    const handleLookupBlur = (key: string, value: string, controller: string, element: formElement) => {\r\n        // Get the current value from model[controller] for the specified key\r\n        const currentValue = model[controller]?.[key];\r\n        // Only proceed if the value does not match the current value\r\n        if (currentValue !== value && currentValue) {\r\n            const lookupData = Object.keys(model[controller] || {}).reduce((acc, objKey) => {\r\n                acc[objKey] = objKey === key ? value : '';\r\n                return acc;\r\n            }, {} as Record<string, string>);\r\n            if (element.reqFields?.length) {\r\n                Object.keys(lookupData).forEach(key => {\r\n                    if (!element.reqFields?.includes(key)) delete lookupData[key]\r\n                })\r\n            }\r\n            if (element.fieldAlias) lookupData[key] = lookupData[element.fieldAlias]\r\n            // Update the model with the modified lookupData\r\n            setModel({ ...model, ...lookupData, [element.controller]: undefined });\r\n            if (rowChangeEv) {\r\n                rowChangeEv(null, lookupData, element, rowIndex)\r\n            }\r\n            return;\r\n        } setModel({ ...model, [element.controller]: undefined })\r\n    };\r\n\r\n\r\n    const handleMultiSelect = (element: formElement, selectedRows: any[], isMultiple?: boolean, arrKey?: string) => {\r\n        if (isMultiple && arrKey) {\r\n            const modifiedData = [];\r\n            for (var i = 0; i < selectedRows.length; i++) {\r\n                const lookupData = { ...selectedRows[i] }\r\n                if (element.fieldAlias) lookupData[element.key] = lookupData[element.fieldAlias];\r\n                if (element.reqFields?.length) Object.keys(lookupData).forEach(key => {\r\n                    if (!element.reqFields?.includes(key)) delete lookupData[key]\r\n                })\r\n                modifiedData.push({ ...lookupData })\r\n            }\r\n            setModel({ ...model, [arrKey]: modifiedData })\r\n        }\r\n    }\r\n\r\n    const uploadFile = (blob: Blob, key: string) => {\r\n        setModel({ ...model, [key]: blob })\r\n    }\r\n\r\n    switch (element.elementType) {\r\n        case \"input\":\r\n            return <BAinput\r\n                inputType={element.inputType}\r\n                otpMark={element.otpMark}\r\n                maxlength={element.maxlength}\r\n                loading={element.loading}\r\n                length={element.lenght}\r\n                mask={element.mask}\r\n                type={element.type}\r\n                value={model[element.key]}\r\n                textAlign={element.textAlign}\r\n                onBlur={() => {\r\n                    if (element.blurEv) element.blurEv(model[element.key], rowIndex, element)\r\n                }}\r\n                onChange={(ev: any) => {\r\n                    setModel({\r\n                        ...model,\r\n                        [element.key]: element.mask ? ev : (element.type == 'number' ? Number(ev.target.value) : ev.target.value)\r\n                    })\r\n                    if (rowChangeEv) {\r\n                        rowChangeEv(ev, (element.type == 'number' ? Number(ev.target.value) : ev.target.value), element, rowIndex)\r\n                    }\r\n                    if (element.ChangeEv) {\r\n                        element.ChangeEv(rowIndex, element.key, (element.type == 'number' ? Number(ev.target.value) : ev.target.value), element, rowIndex);\r\n                    }\r\n                }}\r\n                placeholder={element.placeholder}\r\n                disabled={disabledForm || element.disabled}\r\n                required={element.required}\r\n                label={element.label}\r\n                onFocus={() => element.focusEv ? element.focusEv(model[element.key]) : {}}\r\n            />\r\n        case \"textarea\":\r\n            return <BATextarea\r\n                value={model[element.key]}\r\n                onBlur={() => {\r\n                    if (element.blurEv) element.blurEv(model[element.key], rowIndex, element)\r\n                }}\r\n                onChange={(ev: any) => {\r\n                    setModel({\r\n                        ...model,\r\n                        [element.key]: ev.target.value\r\n                    })\r\n                    if (rowChangeEv) {\r\n                        rowChangeEv(ev, ev.target.value, element, rowIndex)\r\n                    }\r\n                    if (element.ChangeEv) {\r\n                        element.ChangeEv(rowIndex, element.key, ev.target.value, element, rowIndex);\r\n                    }\r\n                }}\r\n                placeholder={element.placeholder}\r\n                disabled={disabledForm || element.disabled}\r\n                required={element.required}\r\n                label={element.label}\r\n            />\r\n        case \"button\":\r\n            return <BAButton\r\n                onClick={element.onClick}\r\n                disabled={disabledForm || element.disabled}\r\n                label={element.label}\r\n                loading={element.loading}\r\n            />\r\n        case \"select\":\r\n            return <BASelect\r\n                api={element.api}\r\n                apiParams={typeof element.apiParams === 'object' ? element.apiParams : typeof element.apiParams === \"function\" ? element.apiParams(rowIndex) : null}\r\n                loading={element.loading}\r\n                onFocus={() => element.focusEv ? element.focusEv(model[element.key], rowIndex) : {}}\r\n                multiple={element.multiple}\r\n                disabled={disabledForm || element.disabled}\r\n                label={element.label}\r\n                valueField={element.valueField}\r\n                displayField={element.displayField}\r\n                showSearch={element.showSearch}\r\n                onChange={(e: any, obj: any) => {\r\n                    setModel({ ...model, [element.key]: e });\r\n                    if (rowChangeEv) {\r\n                        rowChangeEv(e, (element.type == 'number' ? Number(e) : e), element, rowIndex)\r\n                    }\r\n                    if (element.ChangeEv) {\r\n                        element.ChangeEv(rowIndex, element.key, e, element, rowIndex, obj);\r\n                    }\r\n                }}\r\n                options={element.options ?? []}\r\n                required={element.required}\r\n                value={model[element.key]}\r\n            />\r\n        case \"lookup\":\r\n            return <BASearchLookup\r\n                label={element.label}\r\n                controller={element.controller}\r\n                data={element.data}\r\n                params={element.params}\r\n                config={element.config}\r\n                displayField={element.displayField || \"\"}\r\n                value={model && model[element.key]}\r\n                multiple={element.multiple}\r\n                required={element.required}\r\n                allowMultiple={element.multiSelect}\r\n                disabled={disabledForm || element.disabled}\r\n                type={element.type}\r\n                onSelectMultiple={(data: any[]) => handleMultiSelect(element, data, element.multiSelect, element.arrKey)}\r\n                onCancel={() => {\r\n                    if (element.onCancel) {\r\n                        element.onCancel(rowIndex);\r\n                    }\r\n                }}\r\n                onRowClick={async (i: number, data: any, list: any[]) => {\r\n                    const lookupData = { ...data };\r\n                    setModel({ ...model, [element.key]: lookupData[element.valueField || \"\"] });\r\n                    if (element.ChangeEv) {\r\n                        element.ChangeEv(rowIndex, lookupData[element.key], lookupData, element, list);\r\n                    }\r\n                    if (rowChangeEv) {\r\n                        rowChangeEv(null, lookupData, element, rowIndex);\r\n                    }\r\n                }}\r\n                onBlur={() => handleLookupBlur(element.fieldAlias || element.key, model[element.key], element.controller, element)}\r\n                onChange={(e: any, val: any, obj: any) => {\r\n                    if (val) {\r\n                        fillModel(element.key, val);\r\n                        if (element.ChangeEv) {\r\n                            element.ChangeEv(e, val, obj, element, rowIndex);\r\n                        }\r\n                    }\r\n                    else if (!element.multiple) {\r\n                        const lookupData: any = {};\r\n                        if (element.reqFields?.length) {\r\n                            for (var i = 0; i < element.reqFields.length; i++) {\r\n                                lookupData[element.reqFields[i]] = \"\";\r\n                            }\r\n                        }\r\n                        (element.arrKey && (!val || !obj)) ? setModel({ ...model, [element.arrKey]: [], ...lookupData }) : setModel({ ...model, [element.key]: e ? e.target.value : \"\", ...lookupData });\r\n                        if (rowChangeEv) {\r\n                            rowChangeEv(e, (element.type == 'number' ? Number(val) : val), element, rowIndex);\r\n                        }\r\n                    } else {\r\n                        if (element.arrKey && (!val || !obj)) setModel({ ...model, [element.arrKey]: [], [element.key]: \"\" });\r\n                    }\r\n                }}\r\n                apiFunctions={apiFunctions}\r\n            />\r\n        case \"datepicker\":\r\n            return (\r\n                <BADate\r\n                    required={element.required}\r\n                    disabled={disabledForm || element.disabled}\r\n                    label={element.label}\r\n                    value={model[element.key]}\r\n                    onChange={(date: any, dateString: any) => {\r\n                        if (element.ChangeEv) {\r\n                            element.ChangeEv(element.key, date, dateString);\r\n                        } else setModel({ ...model, [element.key]: (dateString) });\r\n                        if (rowChangeEv) {\r\n                            rowChangeEv(date, dateString, element, rowIndex)\r\n                        }\r\n                    }}\r\n                />\r\n            )\r\n        case \"boolean\":\r\n            return (\r\n                <BASwitch\r\n                    required={element.required}\r\n                    disabled={element.disabled}\r\n                    label={element.label}\r\n                    value={model && model[element.key] ? model[element.key] : null}\r\n                    onChange={(e: any) => {\r\n                        setModel({ ...model, [element.key]: e });\r\n                        if (element.ChangeEv) {\r\n                            element.ChangeEv(null, e);\r\n                        }\r\n                        if (rowChangeEv) {\r\n                            rowChangeEv(e, e, element, rowIndex)\r\n                        }\r\n                    }\r\n                    }\r\n                />\r\n            );\r\n        case \"custombody\":\r\n            return (\r\n                <BABox className={element.className}>\r\n                    {element.body}\r\n                </BABox>\r\n            );\r\n        case \"heading\":\r\n            return (\r\n                <BABox className=\"bg-[#E4F6F7] border-s-3 border-[#30ABAB] px-2\">\r\n                    <BAPera className=\"text-xl\">{element.label}</BAPera>\r\n                </BABox>\r\n            );\r\n        case \"text\":\r\n            return (\r\n                <BABox>\r\n                    <BAPera className=\"font-bold\">{element.label}</BAPera>\r\n                    <BAPera className=\"\">{model[element.key]}</BAPera>\r\n                </BABox>\r\n            );\r\n        case \"fieldset\":\r\n            return (\r\n                <>\r\n                    <BAFieldset title={element.label} body={element.body} />\r\n                </>\r\n            );\r\n        case \"imageupload\":\r\n            return (\r\n                <>\r\n                    <BAImagePicker\r\n                        onChange={(file) => fillModel(element.key, file)}\r\n                        uploadText={element.label}\r\n                        value={model[element.key]}\r\n                    />\r\n                </>\r\n            );\r\n        case \"dragfile\":\r\n            return (\r\n                <>\r\n                    <BADragDropFile onFileUpload={(file) => uploadFile(file, element.key)} uploadText={element.label} />\r\n                </>\r\n            )\r\n        default:\r\n            return null;\r\n    }\r\n\r\n}\r\n\r\nexport type formElement = {\r\n    col: 1 | 1.5 | 2 | 2.5 | 3 | 3.5 | 4 | 4.5 | 5 | 5.5 | 6 | 6.5 | 7 | 7.5 | 8 | 8.5 | 9 | 9.5 | 10 | 10.5 | 11 | 11.5 | 12,\r\n    elementType: \"number\" | \"input\" | \"currency\" | \"datepicker\" | \"select\" | \"radio\" | \"date\" | \"lookup\" | \"checkbox\" | \"boolean\" | \"textarea\" | \"passwordinput\" | \"button\" | \"imagepicker\" | \"custombody\" | \"heading\" | \"fieldset\" | \"upload\" | \"text\" | \"dragfile\" | \"imageupload\",\r\n    key: string,\r\n    label: string,\r\n    placeholder?: string,\r\n    textAlign?: \"left\" | \"right\" | \"center\" | undefined,\r\n    inputType?: \"numericinput\" | \"maskinput\" | \"passwordinput\" | \"otpinput\",\r\n    mask?: string,\r\n    lenght?: number,\r\n    otpMark?: string,\r\n    fillObjName?: string,\r\n    api?: string,\r\n    fillObj?: any,\r\n    valueField?: string | undefined,\r\n    options?: any,\r\n    ChangeEv?: any,\r\n    onCancel?: any,\r\n    blurEv?: any,\r\n    focusEv?: any,\r\n    required?: boolean,\r\n    removeDecimals?: boolean,\r\n    isHide?: boolean,\r\n    multiple?: boolean,\r\n    maxlength?: number,\r\n    disabled?: any,\r\n    loading?: boolean,\r\n    showSearch?: boolean,\r\n    onClick?: any,\r\n    body?: any,\r\n    controller?: any,\r\n    type?: any,\r\n    apiParams?: any,\r\n    config?: any,\r\n    displayField?: any,\r\n    singleValue?: any,\r\n    className?: string\r\n    multiSelect?: boolean,\r\n    arrKey?: string,\r\n    validatePeriod?: boolean,\r\n    data?: any,\r\n    showTime?: boolean,\r\n    validateCodeKey?: string,\r\n    validateController?: string,\r\n    fieldAlias?: string;\r\n    reqFields?: string[];\r\n    useLookup?: boolean;\r\n    aliasModel?: { actualKey: String; modelKey: String }[];\r\n    params?: any\r\n}","import { message } from \"antd\";\r\nimport { formElement } from \"../BAComponentSwitcher\";\r\nimport dayjs from \"dayjs\";\r\n\r\n\r\n\r\nexport const formattedNumber = (numString: any) => {\r\n  return numString ? Number(numString).toLocaleString(undefined, {\r\n    minimumFractionDigits: 2,\r\n    maximumFractionDigits: 2\r\n  }) : '0.00';\r\n}\r\n\r\nexport const formattedDate = (dateString: any, format: string = \"YYYY-MM-DD\") => {\r\n  return dateString ? dayjs(dateString).format(format) : \"\";\r\n};\r\n\r\nexport const goBack = () => {\r\n  window.history.back()\r\n}\r\n\r\nexport const checkRequiredElement = (elements: formElement[], model: any) => {\r\n  let missing: any = []\r\n  elements.forEach(x => {\r\n    if (x.required) {\r\n      if (x.elementType == 'boolean') {\r\n        if ((model[x.key] === undefined || model[x.key] === null)) {\r\n          missing.push(`Required ${x.label}`)\r\n        }\r\n      } if (x.type == 'number') {\r\n        if (model[x.key] === undefined || model[x.key] === null || model[x.key] === '') {\r\n          missing.push(`Required ${x.label}`)\r\n        } else if (isNaN(model[x.key])) {\r\n          missing.push(`Invalid ${x.label}`)\r\n        }\r\n\r\n      } else {\r\n        if (!model[x.key]) {\r\n          missing.push(`Required ${x.label}`)\r\n        }\r\n      }\r\n    }\r\n  })\r\n  if (missing.length > 0) {\r\n    message.error(missing)\r\n    return false\r\n  } else {\r\n    return true\r\n  }\r\n}\r\n\r\n\r\n\r\nexport const customEncrypt = (input: any, encryptionKey: string) => {\r\n  let result = '';\r\n  let val = JSON.stringify(input)\r\n  for (let i = 0; i < val.length; i++) {\r\n    const charCode = (val.charCodeAt(i) + encryptionKey.charCodeAt(i % encryptionKey.length)) % 256;\r\n    result += String.fromCharCode(charCode);\r\n  }\r\n  return result;\r\n}\r\n\r\nexport const customDecrypt = (input: any, encryptionKey: string) => {\r\n  let result = '';\r\n  for (let i = 0; i < input.length; i++) {\r\n    const charCode = (input.charCodeAt(i) - encryptionKey.charCodeAt(i % encryptionKey.length) + 256) % 256;\r\n    result += String.fromCharCode(charCode);\r\n  }\r\n  return JSON.parse(result);\r\n}\r\n\r\nexport const removeEmptyRows = (list: any[], key: string) => {\r\n  if (!list || !key) return [];\r\n\r\n  if (key.includes(',')) {\r\n    const reqKeys = key.split(',').map(k => k.trim());\r\n    return list.filter(item =>\r\n      // Check if any of the keys has a value in this item\r\n      reqKeys.some(reqKey => Boolean(item[reqKey]))\r\n    );\r\n  } else {\r\n    // Single key case remains the same\r\n    return list.filter(item => Boolean(item[key]));\r\n  }\r\n};\r\n\r\nexport const printContentSafe = (body: any, config?: any) => {\r\n\r\n  const { pageType = 'A4', allowHeader = false, allowFooter = true, orientation = \"portrait\" } = (config || {})\r\n\r\n  const printWindow = window.open('', '_blank');\r\n\r\n  if (!printWindow) {\r\n    message.error('Pop-up blocked. Please allow pop-ups for this site.');\r\n    return;\r\n  }\r\n\r\n  printWindow.document.write(`\r\n    <!DOCTYPE html>\r\n    <html>\r\n      <head>\r\n        <title>Print</title>\r\n        <style>\r\n          body {\r\n            font-family: Arial, sans-serif;\r\n            padding: 20px;\r\n            counter-reset: page;\r\n          }\r\n          \r\n          /* Print-specific styles */\r\n          @page {\r\n            size: ${pageType || 'A4'} ${orientation || 'portrait'};\r\n            margin-top: 1cm;\r\n            margin-right: 0.5cm;\r\n            margin-bottom: 2cm;\r\n            margin-left: 0.5cm;\r\n            \r\n            /* Custom headers and footers using @page */\r\n            ${allowHeader ? `\r\n            @top-center {\r\n              content: \"My Custom Heeader\";\r\n              font-weight: bold;\r\n              font-family: Arial, sans-serif;\r\n            }\r\n            @top-right {\r\n              content: \"Date: \" attr(data-print-date);\r\n            }\r\n            @top-left {\r\n              content: \"Reference: DOC-2025\";\r\n            }` : ''}\r\n            \r\n            ${allowFooter ? `\r\n            @bottom-center {\r\n              content:  \"Page \" counter(page) \" of \" counter(pages);\r\n            }\r\n            @bottom-left {\r\n              content: \"https://www.finosys.com\";\r\n              color: #777777;\r\n            }\r\n            @bottom-right {\r\n              content: \"${new Date().toLocaleDateString()}\";\r\n            }` : ''}\r\n          }\r\n          \r\n          /* CSS counter for page numbers */\r\n          .page-counter {\r\n            counter-increment: page;\r\n          }\r\n          \r\n          @media print {\r\n            body {\r\n              /* Enable background graphics/colors printing */\r\n              -webkit-print-color-adjust: exact !important;\r\n              print-color-adjust: exact !important;\r\n              color-adjust: exact !important;\r\n            }\r\n            \r\n            /* Other common print settings */\r\n            html, body {\r\n              /* A4 dimensions in portrait */\r\n              width: 210mm;\r\n              height: 283mm;\r\n            }\r\n            \r\n            /* For custom label size if needed */\r\n            .custom-size {\r\n              width: 2.625cm;\r\n              height: 1.0cm;\r\n            }\r\n            \r\n            \r\n            /* Optional: Hide specific elements when printing */\r\n            .no-print {\r\n              display: none;\r\n            }\r\n          }\r\n        </style>\r\n      </head>\r\n      <body data-print-date=\"${new Date().toLocaleDateString()}\">\r\n       ${body}       \r\n      </body>\r\n    </html>\r\n  `);\r\n\r\n  printWindow.document.close();\r\n  printWindow.onload = () => {\r\n    setTimeout(() => {\r\n      printWindow.focus();\r\n      printWindow.print(); // No parameters - they're set via CSS\r\n    }, 10);\r\n  };\r\n\r\n  printWindow.onafterprint = () => {\r\n    printWindow.close();\r\n  };\r\n}\r\n\r\nexport const CreateConfig = (\r\n  key: string,\r\n  searchable: boolean,\r\n  show: boolean,\r\n  title: string,\r\n  type: 'boolean' | 'date' | 'number' | 'percentage' | 'text' | 'time' | 'datetime' | 'filterList' | 'phone' | 'enum' | 'link',\r\n  searchField?: string | null,\r\n  width?: any,\r\n  controller?: string,\r\n  displayField?: any,\r\n  filterEnums?: { value: any, label: string, key: string }[],\r\n  hideFilter?: boolean,\r\n) => {\r\n  return {\r\n    key,\r\n    searchField: searchField ? searchField : key,\r\n    searchable: searchable,\r\n    show: show,\r\n    label: title,\r\n    type: type,\r\n    width: width,\r\n    controller: controller,\r\n    displayField: displayField,\r\n    filterEnums: filterEnums,\r\n    hideFilter: hideFilter,\r\n  }\r\n}\r\n","\r\n\r\nimport { Col, Row, Skeleton } from \"antd\";\r\nimport BAComponentSwitcher, { formElement } from \"./BAComponentSwitcher\"\r\nimport BABox from \"./BABox\";\r\nimport BAButton from \"./BAButton\";\r\nimport { SaveOutlined } from '@ant-design/icons';\r\nimport { checkRequiredElement } from \"./config/helpers\";\r\n\r\ntype propsType = {\r\n    model: any,\r\n    setModel: any,\r\n    formElement: formElement[],\r\n    onSaveClick?: () => void,\r\n    saveLoader?: boolean\r\n    disabledForm?: boolean,\r\n    loading?: boolean,\r\n    containerClass?: string,\r\n    buttonContainerClass?: string,\r\n    customButton?: React.ReactNode,\r\n    hideButton?: boolean\r\n    apiFunctions?: any\r\n}\r\n\r\nexport default function BAFormElement(props: propsType) {\r\n    const { model, setModel, formElement, disabledForm, saveLoader, onSaveClick, loading, customButton, hideButton, apiFunctions } = props;\r\n\r\n    const saveClick = () => {\r\n        if (checkRequiredElement(formElement, model) && onSaveClick) {\r\n            onSaveClick()\r\n        }\r\n    }\r\n\r\n    return <>\r\n\r\n        <BABox className={\"overflow-hidden\"}>\r\n            <Row>\r\n                {formElement.map((element, index) => {\r\n                    return !element.isHide && <Col key={index} xs={24} sm={24} md={element.col * 2} className={element.className}>\r\n                        {loading ? <BABox className=\"p-1\"><Skeleton.Input block active /></BABox> : <BABox className=\"p-2\">\r\n                            <BAComponentSwitcher\r\n                                element={element}\r\n                                model={model}\r\n                                setModel={setModel}\r\n                                disabledForm={disabledForm}\r\n                                apiFunctions={apiFunctions}\r\n                            />\r\n                        </BABox>}\r\n                    </Col>\r\n                })}\r\n            </Row>\r\n        </BABox>\r\n        {!hideButton && <BABox className=\"sticky bottom-0 z-10\">\r\n            <BABox className={\"p-2 shadow bg-[#f8f9fa] rounded text-end\"}>\r\n                {customButton ? customButton : <BAButton className=\"bg-secondary\" disabled={loading} loading={saveLoader} onClick={saveClick} icon={<SaveOutlined />} label=\"Save\" />}\r\n            </BABox>\r\n        </BABox>}\r\n    </>\r\n\r\n}","\r\n\r\nimport { Button } from \"antd\";\r\n\r\ntype propsType = {\r\n    onClick?: any,\r\n    icon: any,\r\n    loading?: boolean,\r\n    className?: string,\r\n    disabled?: any\r\n    danger?: boolean,\r\n    shape?: \"circle\" | \"round\" | \"default\" | undefined,\r\n    type?: \"link\" | \"text\" | \"primary\" | \"default\" | \"dashed\" | undefined\r\n}\r\nexport default function BAIconButton(props: propsType) {\r\n    const { onClick, loading, icon, className, disabled, danger, type, shape } = props;\r\n    return <>\r\n        <Button\r\n            danger={danger}\r\n            type={type ?? \"primary\"}\r\n            disabled={disabled}\r\n            className={className}\r\n            shape={shape || \"circle\"}\r\n            icon={icon}\r\n            loading={loading}\r\n            onClick={onClick}\r\n        ></Button>\r\n    </>\r\n}","\"use client\";\r\n\r\nimport BABox from \"./BABox\";\r\nimport BAComponentSwitcher, { formElement } from \"./BAComponentSwitcher\";\r\nimport React, { useState } from \"react\";\r\nimport BAButton from \"./BAButton\";\r\nimport BAIconButton from \"./BAIconButton\";\r\nimport { PlusOutlined, DeleteOutlined } from \"@ant-design/icons\";\r\nimport BAPera from \"./BAPera\";\r\nimport BAModal from \"./BAModal\";\r\nimport BAFormElement from \"./BAFormElement\";\r\n\r\ntype actionType = {\r\n  icon: React.ReactNode;\r\n  onClick: (row?: any, index?: number) => void;\r\n  disabled?: boolean | ((row: any) => boolean);\r\n};\r\n\r\ntype propsType = {\r\n  datasourse: any[];\r\n  cols: {\r\n    key: string;\r\n    label: string;\r\n    displayField?: (data: any, index: number) => any;\r\n    className?: string;\r\n    HeaderField?: any;\r\n    width?: any;\r\n    element: formElement;\r\n  }[];\r\n  loading?: boolean;\r\n  onChange?: any;\r\n  closeModal?: any;\r\n  setDatasourse?: any;\r\n  onAddRow?: any;\r\n  onDeleteRow?: any;\r\n  action?: actionType[];\r\n  disableAction?: boolean;\r\n  updatedArr?: any[];\r\n  setUpdatedArr?: any;\r\n  pageSize?: string | number;\r\n  page?: string | number;\r\n  disableAdd?: boolean;\r\n  disableForm?: boolean;\r\n  formModalOnOpen?: boolean;\r\n  disabled?: (row: any) => void | boolean;\r\n  apiFunctions?: any;\r\n};\r\n\r\nexport default function BAFormGrid(props: propsType) {\r\n  const {\r\n    datasourse,\r\n    cols,\r\n    loading,\r\n    setDatasourse,\r\n    onAddRow,\r\n    onDeleteRow,\r\n    action,\r\n    disableAction,\r\n    updatedArr,\r\n    setUpdatedArr,\r\n    disableForm,\r\n    disableAdd,\r\n    apiFunctions,\r\n    formModalOnOpen,\r\n  } = props;\r\n  const [rowObj, setRowObj] = useState({});\r\n  const [openFormModal, setOpenFormModal] = useState(false)\r\n  const [formRowIndex, setFormRowIndex] = useState<any>()\r\n\r\n  const addRow = () => {\r\n    let obj = {};\r\n    if (onAddRow) {\r\n      obj = onAddRow() || {};\r\n    }\r\n    if (formModalOnOpen) {\r\n      setFormRowIndex(datasourse.length)\r\n      setOpenFormModal(true)\r\n      setRowObj({\r\n        ...obj\r\n      })\r\n    } else {\r\n      setDatasourse([...datasourse, obj]);\r\n    }\r\n  };\r\n\r\n  const deleteRow = (index: number) => {\r\n    datasourse.splice(index, 1);\r\n    if (onDeleteRow) {\r\n      onDeleteRow();\r\n    }\r\n    setDatasourse([...datasourse]);\r\n  };\r\n\r\n  return (\r\n    <BABox className={\"overflow-x-auto\"}>\r\n      <BAModal title={\"\"} open={openFormModal} close={setOpenFormModal} content={<BABox>\r\n        <BAFormElement\r\n          onSaveClick={() => {\r\n            datasourse[formRowIndex] = {\r\n              ...rowObj\r\n            }\r\n            setRowObj({})\r\n            setFormRowIndex(null)\r\n            setOpenFormModal(false)\r\n\r\n            setDatasourse([...datasourse])\r\n          }}\r\n          model={rowObj}\r\n          setModel={setRowObj}\r\n          formElement={cols.map((x: any) => ({\r\n            ...x.element,\r\n            label: x.element.label ? x.element.label : x.label\r\n          }))}\r\n        />\r\n      </BABox>} />\r\n      {datasourse && datasourse.length > 0 ? (\r\n        <>\r\n          <table\r\n            className={\r\n              loading\r\n                ? \"blur-background w-full divide-y rounded-lg overflow-hidden divide-gray-200 border\"\r\n                : \"w-full divide-y rounded-lg overflow-hidden divide-gray-200 border\"\r\n            }\r\n          >\r\n            <thead className=\"bg-gray-50\">\r\n              <tr>\r\n                {!disableAction && <th className=\"w-[50px]\"></th>}\r\n                {cols.map((col: any, index: number) => (\r\n                  <th\r\n                    key={index}\r\n                    className={`p-2 text-center text-xs font-medium text-black tracking-wider ${col.className ? col.className : \"\"\r\n                      }`}\r\n                  >\r\n                    {col.label}\r\n                  </th>\r\n                ))}\r\n              </tr>\r\n            </thead>\r\n            <tbody className=\"bg-white divide-y divide-gray-200 \">\r\n              {datasourse.map((row: any, rowIndex: number) => (\r\n                <React.Fragment key={rowIndex}>\r\n                  <tr\r\n                  // style={{height:'12px'}}\r\n                  >\r\n                    {!disableAction && (\r\n                      <td className=\"text-center flex justify-center\">\r\n                        <DeleteOutlined style={{ color: `${disableForm ? \"lightgray\" : \"\"}` }} className={`text-xl m-1 hover:text-red-600`} onClick={() => !disableForm && deleteRow(rowIndex)} />\r\n                        {action &&\r\n                          action?.map((item: actionType, key) => (\r\n                            <BAIconButton\r\n                              key={key}\r\n                              className=\"m-1\"\r\n                              icon={item.icon}\r\n                              disabled={\r\n                                typeof item.disabled === \"function\"\r\n                                  ? item.disabled(row)\r\n                                  : item.disabled\r\n                              }\r\n                              onClick={() => item.onClick(row, rowIndex)}\r\n                            />\r\n                          ))}\r\n                      </td>\r\n                    )}\r\n                    {cols.map((col: any, colIndex: number) => (\r\n                      <td\r\n                        key={colIndex}\r\n                        className={`whitespace-nowrap border text-sm text-gray-900 w-[${col.width ? col.width : 'full'}] ${col.className ? col.className : \"\"\r\n                          }`}\r\n                      >\r\n                        {col.displayField ? (\r\n                          col.displayField(row, rowIndex)\r\n                        ) : col.element ? (\r\n                          <BAComponentSwitcher\r\n                            apiFunctions={apiFunctions}\r\n                            disabledForm={disableForm}\r\n                            model={datasourse[rowIndex]}\r\n                            setModel={setRowObj}\r\n                            element={{\r\n                              ...col.element,\r\n                              disabled: typeof col.element.disabled === \"function\" ? col.element.disabled(row) : col.element.disabled,\r\n                              options: typeof col.element.options === \"function\" ? col.element.options(row, rowIndex) : col.element.options,\r\n                              fillObj: row[col.element.fillObjName]\r\n                            }}\r\n                            rowChangeEv={(\r\n                              ev: any,\r\n                              val: any,\r\n                              element: any,\r\n                              index: number\r\n                            ) => {\r\n\r\n                              datasourse[rowIndex] = {\r\n                                ...datasourse[rowIndex],\r\n                                [element.key]: val ? val[element.key] : \"\"\r\n                              };\r\n\r\n                              setDatasourse([...datasourse]);\r\n                              if (updatedArr) {\r\n                                const existingIndex = updatedArr.findIndex(\r\n                                  (item) =>\r\n                                    item.Seq_No === datasourse[rowIndex].Seq_No\r\n                                );\r\n                                if (existingIndex === -1)\r\n                                  updatedArr.push({ ...datasourse[rowIndex] });\r\n                                else\r\n                                  updatedArr[existingIndex] =\r\n                                    datasourse[rowIndex];\r\n                                setUpdatedArr([...updatedArr]);\r\n                              }\r\n                            }}\r\n                            rowIndex={rowIndex}\r\n                          />\r\n                        ) : (\r\n                          row[col.key]\r\n                        )}\r\n                      </td>\r\n                    ))}\r\n                  </tr>\r\n                  {row.expanded && (\r\n                    <tr className=\"border-x border-b\">\r\n                      <td className=\"text-center\">\r\n                        {/* <EnterOutlined className=\"-scale-x-100 text-lg\" /> */}\r\n                      </td>\r\n                      <td colSpan={cols.length}>{row.expanded}</td>\r\n                    </tr>\r\n                  )}\r\n                </React.Fragment>\r\n              ))}\r\n              {!disableAdd && !disableAction && <tr>\r\n                <td onClick={disableForm ? undefined : () => {\r\n                  if (formModalOnOpen) {\r\n                    setFormRowIndex(datasourse.length - 1)\r\n                    setOpenFormModal(true)\r\n                  }\r\n                  addRow()\r\n                }} className=\"text-center cursor-pointer p-2 hover:bg-gray-400\">\r\n                  <PlusOutlined style={{ color: `${disableForm ? \"lightgray\" : \"\"}` }} className=\"text-xl\" />\r\n                </td>\r\n              </tr>}\r\n            </tbody>\r\n          </table>\r\n        </>\r\n      ) : (\r\n        <BABox className=\"flex justify-center flex-col items-center p-2\">\r\n          <BAPera>No Data Found</BAPera>\r\n          <BABox>\r\n            <BAButton disabled={disableAdd || disableForm} onClick={addRow} label={\"Add Row\"} />\r\n          </BABox>\r\n        </BABox>\r\n      )}\r\n    </BABox>\r\n  );\r\n}\r\n","\r\n\r\nimport { DownOutlined } from '@ant-design/icons';\r\nimport { Dropdown } from \"antd\";\r\nimport type { MenuProps } from 'antd';\r\n\r\ntype propsType = {\r\n    options: {\r\n        label: string,\r\n        onClick: any,\r\n        icon?: React.ReactNode\r\n    }[],\r\n    children?: React.ReactNode,\r\n    disabled?: boolean,\r\n}\r\n\r\nexport default function BAMenu(props: propsType) {\r\n    const { options, children, disabled } = props;\r\n\r\n    const items: MenuProps['items'] = [\r\n        ...options.map((option, index) => ({\r\n            label: option.label,\r\n            key: index.toString(),\r\n            onClick: option.onClick,\r\n            icon: option.icon\r\n        }))\r\n    ];\r\n\r\n    return <>\r\n        <Dropdown\r\n            overlayClassName=\"max-h-full overflow-y-auto\"\r\n            overlayStyle={{\r\n                maxHeight: '400px',\r\n                overflowY: 'auto',\r\n                backgroundColor: '#fff', // Ensures the background stays consistent\r\n                borderRadius: '8px',\r\n                boxShadow: '0 6px 16px 0 rgba(0, 0, 0, 0.08)'\r\n            }}\r\n            disabled={disabled}\r\n            menu={{ items, style: { overflow: 'visible' } }}\r\n            trigger={['click']}\r\n        >\r\n            <a onClick={(e) => e.preventDefault()}>\r\n                {children ? children : <DownOutlined />}\r\n            </a>\r\n        </Dropdown>\r\n    </>\r\n}","\r\n\r\nimport { ArrowLeftOutlined } from \"@ant-design/icons\";\r\nimport BABox from \"./BABox\";\r\nimport BAIconButton from \"./BAIconButton\";\r\nimport BAPera from \"./BAPera\";\r\nimport { goBack } from \"./config/helpers\";\r\n\r\ntype propsType = {\r\n    title: string,\r\n    headerOptions?: any[],\r\n    disableBack?: boolean\r\n    extraTitle?: any\r\n}\r\nexport default function BAScreenHeader(props: propsType) {\r\n    const { title, headerOptions, disableBack, extraTitle } = props;\r\n\r\n    return <>\r\n        <BABox className=\"py-2 border-bottom border-b-2 border-[#1B4394] flex justify-between items-center\">\r\n            <BABox className=\"flex items-center md:pb-0\">\r\n                {!disableBack && <BAIconButton onClick={goBack} icon={<ArrowLeftOutlined />} />}\r\n                <BAPera className=\"md:text-3xl text-xl ms-2\">{title} {extraTitle}</BAPera>\r\n            </BABox>\r\n            <BABox className=\"flex justify-end\">\r\n                {headerOptions?.map((option: any, index: number) => {\r\n                    return option.isHide ? <></> : <BABox key={index} className=\"md:ml-2 ml-1\">{option.displayField()}</BABox>\r\n                })}\r\n            </BABox>\r\n        </BABox>\r\n    </>\r\n}","import axios from 'axios'\r\n\r\n\r\nconst createApiFunction = (baseURL: string, baseHeaders?: object) => {\r\n    const instance = axios.create({\r\n        baseURL: baseURL,\r\n    });\r\n\r\n    instance.interceptors.request.use(\r\n        (config: any) => {\r\n            config.headers = {\r\n                ...(config.headers || {}), // existing headers\r\n                ...(baseHeaders || {}),        // default headers passed in\r\n            };\r\n\r\n            return config;\r\n        },\r\n        (error) => {\r\n            // Handle request error\r\n            return Promise.reject(error);\r\n        }\r\n    );\r\n\r\n    return {\r\n        Get: (endPoint: string, id?: any, params?: any) => {\r\n            return new Promise((resolve, reject) => {\r\n                instance.get(`${endPoint}/${id ? id : ''}`, {\r\n                    params: { ...params }\r\n                })\r\n                    .then(res => {\r\n                        resolve(res.data)\r\n                    }).catch(err => {\r\n                        reject(err)\r\n                    })\r\n            })\r\n        },\r\n        Post: (endPoint: string, body: any, id?: any, params?: any, publicAPI?: boolean) => {\r\n            return new Promise((resolve, reject) => {\r\n                instance.post(`${endPoint}/${id ? id : ''}`, body, {\r\n                    params: params\r\n                })\r\n                    .then(res => {\r\n                        resolve(res.data)\r\n                    }).catch(err => {\r\n                        reject(err)\r\n                    })\r\n            })\r\n        },\r\n        Put: (endPoint: string, body: any, id: any) => {\r\n            return new Promise((resolve, reject) => {\r\n                instance.put(`${endPoint}/${id ? id : ''}`, body)\r\n                    .then(res => {\r\n                        resolve(res.data)\r\n                    }).catch(err => {\r\n                        reject(err)\r\n                    })\r\n            })\r\n        },\r\n        Delete: (endPoint: string, id: any) => {\r\n            return new Promise((resolve, reject) => {\r\n                instance.delete(`${endPoint}/${id ? id : ''}`)\r\n                    .then(res => {\r\n                        resolve(res.data)\r\n                    }).catch(err => {\r\n                        reject(err)\r\n                    })\r\n            })\r\n        }\r\n    }\r\n}\r\n\r\n\r\n\r\n\r\nexport default createApiFunction","type customFunction = {\r\n    functionName: string,\r\n    method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\",\r\n    apiName: string\r\n    body?: any,\r\n    id?: any,\r\n}\r\n\r\nlet GeneralCoreService = (apiInstance: {\r\n    Get: (endPoint: string, id?: any, params?: any) => void,\r\n    Post: (endPoint: string, body: any, id?: any, params?: any, publicAPI?: boolean) => void,\r\n    Put: (endPoint: string, body: any, id: any) => void,\r\n    Delete: (endPoint: string, id: any) => void\r\n}, controller: string, apiName?: string, customFunction?: customFunction[]) => {\r\n    const { Delete, Get, Put, Post } = apiInstance\r\n\r\n    let obj: any = {\r\n        Save: (body: any, id?: any) => {\r\n            if (id) {\r\n                return Put(`${controller}${apiName ? '/' + apiName : ''}`, body, id)\r\n            } else {\r\n                return Post(`${controller}${apiName ? '/' + apiName : ''}`, body)\r\n            }\r\n        },\r\n        GetOne: (id: any) => {\r\n            return Get(`${controller}${apiName ? '/' + apiName : ''}`, id)\r\n        },\r\n        GetAll: () => {\r\n            return Get(`${controller}${apiName ? '/' + apiName : ''}`)\r\n        },\r\n        DeleteOne: (id: any) => {\r\n            return Delete(`${controller}${apiName ? '/' + apiName : ''}`, id)\r\n        },\r\n    }\r\n\r\n    if (customFunction && customFunction.length > 0) {\r\n        customFunction.forEach((x: customFunction) => {\r\n            obj[x.functionName] = (body?: any, id?: any) => {\r\n                switch (x.method) {\r\n                    case \"GET\":\r\n                        return Get(`${controller}/${x.apiName ? x.apiName : ''}`, id)\r\n                    case \"POST\":\r\n                        return Post(`${controller}/${x.apiName ? x.apiName : \"\"}`, body, id)\r\n                    case \"PUT\":\r\n                        return Put(`${controller}/${x.apiName ? x.apiName : \"\"}`, body, id)\r\n                    case \"DELETE\":\r\n                        return Delete(`${controller}/${apiName ? x.apiName : \"\"}`, id)\r\n                }\r\n            }\r\n        });\r\n    }\r\n    return obj\r\n}\r\n\r\nexport default GeneralCoreService","\"use client\";\r\n\r\nimport { App, ConfigProvider } from \"antd\"\r\nexport let displayError: (messageTxt: string, severity: \"error\" | \"success\") => void;\r\nexport let showLoader: (messageTxt: boolean) => void;\r\nexport let appTheme: object;\r\n\r\ntype propsType = {\r\n    colorPrimary?: string,\r\n    children?: any\r\n}\r\n\r\nexport default function MasterContainer({ colorPrimary, children }: propsType) {\r\n\r\n    appTheme = {\r\n        components: {\r\n            Button: {\r\n                colorPrimary: colorPrimary || '#13999e',\r\n                borderRadius: 4,\r\n                fontSize: 16,\r\n                algorithm: true, // Enable algorithm\r\n            },\r\n            Input: {\r\n                colorPrimary: colorPrimary || '#13999e',\r\n                borderRadius: 0,\r\n                algorithm: true, // Enable algorithm\r\n            },\r\n            Switch: {\r\n                colorPrimary: colorPrimary || '#13999e',\r\n                algorithm: true, // Enable algorithm\r\n            },\r\n            Select: {\r\n                colorPrimary: colorPrimary || '#13999e',\r\n                borderRadius: 0,\r\n                algorithm: true, // Enable algorithm\r\n            },\r\n            DatePicker: {\r\n                colorPrimary: colorPrimary || '#13999e',\r\n                borderRadius: 0,\r\n                algorithm: true, // Enable algorithm\r\n            },\r\n            Tabs: {\r\n                colorPrimary: colorPrimary || '#13999e',\r\n                algorithm: true, // Enable algorithm\r\n            },\r\n            Checkbox: {\r\n                colorPrimary: colorPrimary || '#13999e',\r\n                borderRadius: 0,\r\n                algorithm: true, // Enable algorithm\r\n            },\r\n            Pagination: {\r\n                colorPrimary: colorPrimary || '#13999e',\r\n                borderRadius: 4,\r\n                algorithm: true, // Enable algorithm\r\n            },\r\n            token: {\r\n                colorPrimary: colorPrimary || '#13999e'\r\n            },\r\n        },\r\n    }\r\n\r\n\r\n    return <>\r\n        <ConfigProvider\r\n            theme={appTheme}\r\n        >\r\n            <App>\r\n                {children}\r\n            </App>\r\n        </ConfigProvider>\r\n    </>\r\n}\r\n","\"use client\";\r\n\r\n\r\nimport React, {\r\n  forwardRef,\r\n  useEffect,\r\n  useImperativeHandle,\r\n  useState,\r\n} from \"react\";\r\nimport BAIconButton from \"./BAIconButton\";\r\nimport {\r\n  DeleteOutlined,\r\n  EditOutlined,\r\n  PlusOutlined,\r\n  CloseOutlined,\r\n  CheckOutlined,\r\n  FileExcelOutlined,\r\n  PrinterOutlined,\r\n} from \"@ant-design/icons\";\r\nimport BABox from \"./BABox\";\r\nimport BAButton from \"./BAButton\";\r\nimport BAPagination from \"./BAPagination\";\r\nimport BAModal from \"./BAModal\";\r\nimport { formElement } from \"./BAComponentSwitcher\";\r\nimport { Grid, message, Popconfirm, theme } from \"antd\";\r\nimport BALoader from \"./BALoader\";\r\nimport BAinput from \"./BAInput\";\r\nimport BASelect from \"./BASelect\";\r\nimport BABackdropLoader from \"./BABackdropLoader\";\r\nimport BADate from \"./BADate\";\r\nimport * as XLSX from \"xlsx\";\r\nimport BAPera from \"./BAPera\";\r\nimport { formattedDate, formattedNumber } from \"./config/helpers\";\r\n\r\nimport BAScreenHeader from \"./BAScreenHeader\";\r\nconst { useBreakpoint } = Grid;\r\n\r\ntype propsType = {\r\n  cols: any[];\r\n  controller: string;\r\n  apiName?: string;\r\n  exportUrl?: string;\r\n  onAddEdit?: any;\r\n  onView?: any;\r\n  title: string;\r\n  sortColumn?: string;\r\n  sortDirection?: string;\r\n  formElement?: formElement[];\r\n  extraActions?: {\r\n    displayField: any;\r\n    isHide: boolean;\r\n  }[];\r\n  disableAdd?: boolean;\r\n  disableEdit?: boolean;\r\n  disablePost?: boolean;\r\n  disableView?: boolean;\r\n  disableDelete?: boolean;\r\n  disableExport?: boolean;\r\n  allowPrint?: boolean;\r\n  extraParams?: any;\r\n  exportParams?: any;\r\n  extraHeaders?: any;\r\n  getDataTrigger?: any;\r\n  modelGetter?: any;\r\n  rec_id?: any;\r\n  conditionalColumns?: { label: string; displayField: any }[];\r\n  getByRequest?: boolean;\r\n  modelAlias?: any;\r\n  customButton?: React.ReactNode[];\r\n  fieldsToDelete?: string[];\r\n  convertToNumber?: string[];\r\n  disableCompId?: boolean;\r\n  reqFields?: string[];\r\n  isUpdateReq?: boolean;\r\n  extraBody?: any;\r\n  searchParams?: any;\r\n  rowPrint?: any;\r\n  apiFunctions: any\r\n};\r\n\r\nexport default forwardRef(function BASetupGrid(props: propsType, ref: any) {\r\n  const {\r\n    cols,\r\n    controller,\r\n    extraParams = {},\r\n    apiName,\r\n    onAddEdit,\r\n    title,\r\n    disableAdd,\r\n    disableEdit,\r\n    disableDelete,\r\n    extraActions,\r\n    extraHeaders = [],\r\n    conditionalColumns,\r\n    modelGetter,\r\n    customButton,\r\n    extraBody,\r\n    searchParams,\r\n    disableExport,\r\n    allowPrint,\r\n    rowPrint,\r\n    apiFunctions\r\n  } = props;\r\n\r\n  const { Get, Delete } = apiFunctions\r\n\r\n  const { token }: any = theme.useToken()\r\n  const [listData, setListData] = useState<any>([]);\r\n  const [printLoader, setPrintLoader] = useState(false);\r\n  const [loader, setLoader] = useState(false);\r\n  const [excelLoader, setExcelLoader] = useState(false);\r\n  const [gridSearchObj, setGridSearchObj] = useState<any>({});\r\n  const [exportModal, setExportModal] = useState(false);\r\n  const [paginationConfig, setPaginationConfig] = useState({\r\n    pageSize: 10,\r\n    page: 1,\r\n    totalRecords: 0,\r\n  });\r\n\r\n  const screens = useBreakpoint();\r\n  const isMobile = !screens.md; // md = 768px breakpoint\r\n\r\n\r\n  const addEditClick = (row?: any) => {\r\n    if (onAddEdit) {\r\n      onAddEdit(row);\r\n    }\r\n  };\r\n\r\n  const getExcelData = async () => {\r\n    const updatedSearchObj = Object.fromEntries(\r\n      Object.entries(gridSearchObj).filter(([_, value]) => value !== undefined && value !== null)\r\n    );\r\n    let res: any = await Get(`${controller}`, null, {\r\n      pageNo: 1,\r\n      pageSize: 1000000000,\r\n      selector: cols.map((col) => col.key).filter(Boolean).join(\",\"),\r\n      filter: JSON.stringify({ ...updatedSearchObj, ...extraParams }),\r\n    })\r\n    if (res?.data?.rows) {\r\n      return res.data.rows;\r\n    }\r\n  }\r\n\r\n  const exportToExcel = async (currentPage?: boolean, summary?: boolean) => {\r\n\r\n    if (currentPage) {\r\n      const worksheetData = [];\r\n      const headers = cols.map((col: any) => col.key);\r\n      worksheetData.push(headers);\r\n\r\n      // Prepare data rows\r\n      listData.forEach((row: any) => {\r\n        const rowData = cols.map((col: any) => {\r\n          const value = row[col.key];\r\n          // Handle date formatting if necessary\r\n          if (col.type === \"date\" && value) {\r\n            return formattedDate(value); // Adjust date format as needed\r\n          }\r\n          return value !== undefined && value !== null ? value : \"\";\r\n        });\r\n        worksheetData.push(rowData);\r\n      });\r\n\r\n      // Create a worksheet from the data\r\n      const worksheet = XLSX.utils.aoa_to_sheet(worksheetData);\r\n\r\n      // Create a workbook and append the worksheet\r\n      const workbook = XLSX.utils.book_new();\r\n      XLSX.utils.book_append_sheet(workbook, worksheet, title);\r\n\r\n      // XLSX to Excel\r\n      XLSX.writeFile(workbook, `${title}.xlsx`);\r\n    } else {\r\n      setExcelLoader(true);\r\n      let list: any = await getExcelData();\r\n      if (!list) {\r\n        message.error(\"No data available for export.\");\r\n        return;\r\n      }\r\n      const worksheetData = [];\r\n      const headers = cols.map((col: any) => col.key);\r\n      worksheetData.push(headers);\r\n\r\n      // Prepare data rows\r\n      list.forEach((row: any) => {\r\n        const rowData = cols.map((col: any) => {\r\n          const value = row[col.key];\r\n          // Handle date formatting if necessary\r\n          if (col.type === \"date\" && value) {\r\n            return formattedDate(value); // Adjust date format as needed\r\n          }\r\n          return value !== undefined && value !== null ? value : \"\";\r\n        });\r\n        worksheetData.push(rowData);\r\n      });\r\n\r\n      // Create a worksheet from the data\r\n      const worksheet = XLSX.utils.aoa_to_sheet(worksheetData);\r\n\r\n      // Create a workbook and append the worksheet\r\n      const workbook = XLSX.utils.book_new();\r\n      XLSX.utils.book_append_sheet(workbook, worksheet, title);\r\n\r\n      // XLSX to Excel\r\n      XLSX.writeFile(workbook, `${title}.xlsx`);\r\n      setExcelLoader(false);\r\n    }\r\n\r\n    setExportModal(false);\r\n  }\r\n\r\n\r\n\r\n\r\n  const getData = (pgObj?: any, SearchObj?: any) => {\r\n    setLoader(true);\r\n    const updatedSearchObj = Object.fromEntries(\r\n      Object.entries(SearchObj ? SearchObj : gridSearchObj).filter(([_, value]) => value !== undefined && value !== null)\r\n    );\r\n    Get(`${controller}`, null, {\r\n      pageNo: pgObj ? pgObj.page : paginationConfig.page,\r\n      pageSize: pgObj ? pgObj.pageSize : paginationConfig.pageSize,\r\n      selector: cols.map((col) => col.key).filter(Boolean).join(\",\"),\r\n      filter: JSON.stringify({ ...updatedSearchObj, ...extraParams }),\r\n      ...searchParams ? { ...searchParams } : {},\r\n    })\r\n      .then((res: any) => {\r\n        if (res?.rows) {\r\n          setListData([...res.data?.rows]);\r\n          setPaginationConfig({ ...paginationConfig, totalRecords: res.data?.totalCounts });\r\n        } else {\r\n\r\n          message.error(res.message || \"An error occurred.\");\r\n        }\r\n        setLoader(false);\r\n      })\r\n      .catch(() => {\r\n        setLoader(false);\r\n        message.error(\"Failed to fetch data. Please try again.\");\r\n      });\r\n  };\r\n\r\n  useImperativeHandle(ref, () => ({\r\n    invokeChildFunction: getData,\r\n  }));\r\n\r\n  const deleteRecord = (id: any) => {\r\n    setPrintLoader(true);\r\n    Delete(`${controller}`, id)\r\n      .then(() => {\r\n        message.success(\"Record Deleted Successfully\");\r\n        getData();\r\n      })\r\n      .catch((err: any) => {\r\n        message.error(err?.error);\r\n      }).finally(() => {\r\n        setPrintLoader(false);\r\n      });\r\n  };\r\n\r\n  const printRecord = (id: any) => {\r\n    if (rowPrint) {\r\n      rowPrint(id)\r\n    }\r\n  }\r\n\r\n\r\n  useEffect(() => {\r\n    getData();\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    if (extraParams?.length) getData()\r\n  }, [extraParams])\r\n\r\n\r\n\r\n  return (\r\n    <>\r\n      <BABackdropLoader loading={printLoader} />\r\n      <BAModal title={\"Export Excel\"} open={exportModal} close={setExportModal} content={<BABox className=\"flex justify-center gap-2\">\r\n        <BAButton onClick={() => exportToExcel(true)} label=\"Current Page\" />\r\n        <BAButton onClick={() => exportToExcel(false)} label=\"Export All Data\" />\r\n        {apiName && <BAButton onClick={() => exportToExcel(false, true)} label=\"Export Detailed\" />}\r\n      </BABox>} />\r\n      <BABox className=\"p-2\">\r\n        <BAScreenHeader\r\n          title={title}\r\n          headerOptions={[\r\n            ...extraHeaders,\r\n            ...(customButton?.map((item: React.ReactNode) => ({\r\n              displayField: () => item,\r\n            })) || []),\r\n            {\r\n              displayField: () => isMobile ? <BAIconButton\r\n                type=\"default\"\r\n                loading={excelLoader}\r\n                icon={<FileExcelOutlined />}\r\n                onClick={() => {\r\n                  setExportModal(true);\r\n                }}\r\n              /> : <BAButton\r\n                loading={excelLoader}\r\n                icon={<FileExcelOutlined />}\r\n                label=\"Export as Excel\"\r\n                onClick={() => {\r\n                  setExportModal(true);\r\n                }}\r\n              />,\r\n              isHide: disableExport,\r\n            },\r\n            {\r\n              displayField: () => isMobile ? <BAIconButton\r\n                type=\"default\"\r\n                icon={<PlusOutlined />}\r\n                onClick={() => addEditClick()}\r\n              /> : <BAButton\r\n                className=\"bg-secondary\"\r\n                icon={<PlusOutlined />}\r\n                label=\"Add New\"\r\n                onClick={() => addEditClick()}\r\n              />,\r\n              isHide: disableAdd,\r\n            },\r\n          ]}\r\n        />\r\n      </BABox>\r\n      <BABox className=\"mt-2\">\r\n        <BABox className={\"h-[calc(100vh-13rem)] overflow-auto\"}>\r\n          {extraBody}\r\n          {loader ? (\r\n            <BALoader />\r\n          ) : (<>\r\n            <BABox className=\"hidden md:block\">\r\n              <table className=\"min-w-full divide-y rounded-lg overflow-hidden divide-gray-200\">\r\n                <thead style={{ backgroundColor: token.token.colorPrimary, color: 'white' }} className=\"bg-primary\">\r\n                  <tr className=\"relative\">\r\n                    {extraActions && extraActions.length > 0 && (\r\n                      <th className=\"sticky z-10 right-0\"></th>\r\n                    )}\r\n                    <th className=\"\"></th>\r\n                    {conditionalColumns && conditionalColumns.length > 0\r\n                      ? conditionalColumns.map((col: any, index: number) => (\r\n                        <th\r\n                          className={`px-6 py-3 text-center text-xs font-medium text-plain border tracking-wider ${col.className ? col.className : \"\"\r\n                            }`}\r\n                          key={index}\r\n                        >\r\n                          {col.label}\r\n                        </th>\r\n                      ))\r\n                      : null}\r\n                    {cols.map((col: any, index: number) => (\r\n                      <th\r\n                        key={index}\r\n                        className={`px-6 py-3 transform text-center text-xs font-medium text-plain tracking-wider relative z-0 ${col.className ? col.className : \"\"\r\n                          }`}\r\n                      >\r\n                        {col.label}\r\n                        {col.HeaderField ? col.HeaderField() : \"\"}\r\n                      </th>\r\n                    ))}\r\n                  </tr>\r\n                </thead>\r\n                <tbody className=\"bg-white divide-y divide-gray-200 h-full\">\r\n                  <tr>\r\n                    {extraActions && extraActions.length > 0 && (\r\n                      <td className=\"sticky z-10 right-0 \"></td>\r\n                    )}\r\n                    <td className=\"\">\r\n                      <BABox className=\"text-center\">\r\n                        {Object.entries(gridSearchObj).length > 0 && (\r\n                          <BAIconButton\r\n                            onClick={() => {\r\n                              setGridSearchObj({});\r\n                              getData(null, {});\r\n                            }}\r\n                            icon={<CloseOutlined />}\r\n                          />\r\n                        )}\r\n                      </BABox>\r\n                    </td>\r\n\r\n                    {cols.map((col: any, index: number) => (\r\n                      <td\r\n                        key={index}\r\n                        className={`text-left p-1 text-xs font-medium text-plain tracking-wider ${col.className ? col.className : \"\"\r\n                          }`}\r\n                      >\r\n                        {col.type === \"enum\" ?\r\n                          <BASelect\r\n                            onChange={(e: any) => {\r\n                              gridSearchObj[col.key] = e;\r\n                              setGridSearchObj({ ...gridSearchObj });\r\n                              let obj = { ...gridSearchObj }\r\n                              obj[col.key] = e\r\n                              getData(null, { ...obj });\r\n                            }}\r\n                            options={col.filterEnums}\r\n                            label=\"\"\r\n                            value={gridSearchObj[col.key]}\r\n                          /> : col.type === \"date\" ?\r\n                            <>\r\n                              {!col.hideFilter && <BADate onChange={(e: any) => {\r\n                                gridSearchObj[col.key] = new Date(e).toLocaleString();\r\n                                setGridSearchObj({ ...gridSearchObj });\r\n                                let obj = { ...gridSearchObj }\r\n                                obj[col.key] = formattedDate(new Date(e))\r\n                                getData(null, { ...obj });\r\n                              }} label={\"\"} />}\r\n                            </>\r\n                            : <BAinput\r\n                              onKeyDown={(event: any) => {\r\n                                if (event.key === \"Enter\") {\r\n                                  getData();\r\n                                }\r\n                              }}\r\n                              value={gridSearchObj[col.key]}\r\n                              onChange={(ev: any) => {\r\n                                gridSearchObj[col.key] = ev.target.value;\r\n                                setGridSearchObj({ ...gridSearchObj });\r\n                              }}\r\n                              label={\"\"}\r\n                            />}\r\n                      </td>\r\n                    ))}\r\n                  </tr>\r\n                  {listData.length > 0 ? (\r\n                    listData.map((row: any, rowIndex: number) => (\r\n                      <tr\r\n                        key={rowIndex}\r\n                        className={\"transition relative\"}\r\n                        // style={{height:'12px'}}\r\n                        style={{\r\n                          backgroundColor: rowIndex % 2 === 1 ? \"\" : \"#edf0f4\",\r\n                        }}\r\n                      >\r\n                        {extraActions && extraActions.length > 0 && (\r\n                          <td className=\"sticky z-10 right-0 px-2 border-b\">\r\n                            {extraActions &&\r\n                              extraActions.map(\r\n                                (exAction: any, exIndex: number) => (\r\n                                  <BABox key={exIndex}>\r\n                                    {exAction.isHide\r\n                                      ? null\r\n                                      : exAction.displayField(row, getData)}\r\n                                  </BABox>\r\n                                )\r\n                              )}\r\n                          </td>\r\n                        )}\r\n                        <td className=\"px-1 whitespace-nowrap border-b text-sm text-gray-900 sticky right-0 z-10\">\r\n                          <BABox className=\"flex items-center\">\r\n                            {!disableEdit && (\r\n                              <EditOutlined onClick={() => {\r\n                                addEditClick(row);\r\n                                if (modelGetter) modelGetter({ ...row })\r\n                              }} className=\"text-black hover:text-[#DB052C] m-1 text-lg hover:scale-125\" />\r\n                            )}\r\n                            {!disableDelete && (<Popconfirm\r\n                              title=\"Delete the task\"\r\n                              description=\"Are you sure to delete this task?\"\r\n                              onConfirm={() => deleteRecord(row.id)}\r\n                              okText=\"Yes\"\r\n                              cancelText=\"No\"\r\n                            >\r\n                              <DeleteOutlined onClick={() => {\r\n                              }} className=\"text-black hover:text-[#DB052C] m-1 text-lg hover:scale-125\" />\r\n                            </Popconfirm>\r\n                            )}\r\n                            {allowPrint && (\r\n                              <PrinterOutlined onClick={() => {\r\n                                printRecord(row.id);\r\n                              }} className=\"text-black hover:text-[#DB052C] m-1 text-lg hover:scale-125\" />\r\n                            )}\r\n                          </BABox>\r\n                        </td>\r\n                        {cols.map((col: any, colIndex: number) => (\r\n                          <td\r\n                            key={colIndex}\r\n                            style={{ lineHeight: \"0.8\" }}\r\n                            className={\r\n                              `p-3 border-b whitespace-nowrap text-xs text-gray-900 relative ${col.className ? col.className : \"\"}`}\r\n                          >\r\n                            {col.displayField ? (\r\n                              col.displayField(row)\r\n                            ) : col.type === \"status\" ? (\r\n                              row[col.key] ? <CheckOutlined className=\"text-lg text-[#DB052C]\" /> : <CloseOutlined className=\"text-lg text-[grey]\" />\r\n                            ) : col.type === \"number\" ? (\r\n                              <BABox className=\"text-end\">{formattedNumber(row[col.key])}</BABox>\r\n                            ) : col.type === \"date\" ? (\r\n                              <span className=\"text-center block\" >{formattedDate(row[col.key])}</span>\r\n                            ) : (\r\n                              row[col.key]\r\n                            )}\r\n                          </td>\r\n                        ))}\r\n                        {conditionalColumns && conditionalColumns.length > 0\r\n                          ? conditionalColumns.map((col: any, index: number) => (\r\n                            <td\r\n                              className=\"px-5 whitespace-nowrap text-sm text-gray-900\"\r\n                              key={index}\r\n                            >\r\n                              {col.displayField(row)}\r\n                            </td>\r\n                          ))\r\n                          : null}\r\n                      </tr>\r\n                    ))\r\n                  ) : (\r\n                    <tr>\r\n                      <td colSpan={cols.length + (conditionalColumns?.length || 0) + 1} className=\"text-center py-4\">\r\n                        <BABox className=\"flex justify-center w-full\">\r\n                          <BAPera>No Data Found</BAPera>\r\n                        </BABox>\r\n                      </td>\r\n                    </tr>\r\n                  )}\r\n                </tbody>\r\n              </table>\r\n            </BABox>\r\n            <BABox className=\"md:hidden block\">\r\n              <BABox className=\"flex flex-nowrap overflow-x-auto snap-x snap-mandatory h-full\">\r\n                {listData.length > 0 &&\r\n                  listData.map((row: any, rowIndex: number) => (\r\n                    <BABox\r\n                      key={rowIndex}\r\n                      className=\"snap-start shrink-0 w-[300px] h-[450px] p-2 box-border overflow-y-auto\"\r\n                    >\r\n                      <BABox className=\"border-light rounded-lg shadow h-full w-full box-border overflow-y-auto flex flex-col justify-between\">\r\n                        <BABox className=\"p-2\">\r\n                          {cols.map((col: any, colIndex: number) => (\r\n                            <BABox key={colIndex} className=\"mb-4\">\r\n                              <BAPera className=\"font-semibold text-gray-500\">{col.label}</BAPera>\r\n                              <BAPera className=\"text-xl\">\r\n                                {col.displayField ? (\r\n                                  col.displayField(row)\r\n                                ) : col.type === \"status\" ? (\r\n                                  row[col.key] ? (\r\n                                    <CheckOutlined className=\"text-lg text-[#DB052C]\" />\r\n                                  ) : (\r\n                                    <CloseOutlined className=\"text-lg text-[grey]\" />\r\n                                  )\r\n                                ) : col.type === \"number\" ? (\r\n                                  <BABox>\r\n                                    {formattedNumber(row[col.key])}\r\n                                  </BABox>\r\n                                ) : col.type === \"link\" ? (\r\n                                  <span\r\n                                    className=\"textPrimary block font-semibold cursor-pointer\"\r\n                                    onClick={() => printRecord(row.id)}\r\n                                  >\r\n                                    {row[col.key]}\r\n                                  </span>\r\n                                ) : col.type === \"date\" ? (\r\n                                  <span className=\"block\">\r\n                                    {formattedDate(row[col.key])}\r\n                                  </span>\r\n                                ) : (\r\n                                  row[col.key] || \"--\"\r\n                                )}\r\n                              </BAPera>\r\n                            </BABox>\r\n                          ))}\r\n                        </BABox>\r\n                        <BABox className=\"bg-gray-100 flex items-center justify-end p-2 rounded-b-lg mt-4\">\r\n                          {extraActions &&\r\n                            extraActions.map(\r\n                              (exAction: any, exIndex: number) => (\r\n                                <BABox key={exIndex}>\r\n                                  {exAction.isHide\r\n                                    ? null\r\n                                    : exAction.displayField(row, getData)}\r\n                                </BABox>\r\n                              )\r\n                            )}\r\n                          <BABox className=\"flex items-center\">\r\n                            {!disableEdit && (\r\n                              <EditOutlined onClick={() => {\r\n                                addEditClick(row);\r\n                                if (modelGetter) modelGetter({ ...row })\r\n                              }} className=\"text-black hover:text-[#DB052C] m-1 text-lg hover:scale-125\" />\r\n\r\n                            )}\r\n                            {!disableDelete && (<Popconfirm\r\n                              title=\"Delete the task\"\r\n                              description=\"Are you sure to delete this task?\"\r\n                              onConfirm={() => deleteRecord(row.id)}\r\n                              okText=\"Yes\"\r\n                              cancelText=\"No\"\r\n                            >\r\n                              <DeleteOutlined onClick={() => {\r\n                              }} className=\"text-black hover:text-[#DB052C] m-1 text-lg hover:scale-125\" />\r\n                            </Popconfirm>\r\n                            )}\r\n                          </BABox>\r\n                          {conditionalColumns && conditionalColumns.length > 0\r\n                            ? conditionalColumns.map((col: any, index: number) => (\r\n                              <td\r\n                                className=\"px-5 whitespace-nowrap text-sm text-gray-900\"\r\n                                key={index}\r\n                              >\r\n                                {col.displayField(row)}\r\n                              </td>\r\n                            ))\r\n                            : null}\r\n                        </BABox>\r\n                      </BABox>\r\n                    </BABox>\r\n                  ))}\r\n              </BABox>\r\n\r\n            </BABox>\r\n          </>\r\n          )}\r\n        </BABox>\r\n        <BAPagination\r\n          totalRecords={paginationConfig.totalRecords}\r\n          onPageChange={(page: any, pageSize: any) => {\r\n            getData({\r\n              page: page,\r\n              pageSize: pageSize,\r\n            });\r\n          }}\r\n        />\r\n      </BABox>\r\n    </>\r\n  );\r\n});","import BABox from \"./BABox\"\r\nimport BAScreenHeader from \"./BAScreenHeader\"\r\n\r\ntype propsType = {\r\n    title: string,\r\n    children: any,\r\n    extraTitle?: any,\r\n    headerOptions?: {\r\n        displayField: () => void,\r\n        isHide?: boolean\r\n    }[],\r\n    disableBack?: boolean,\r\n}\r\n\r\nexport default function BAScreenWrapper(props: propsType) {\r\n    const { title, extraTitle, headerOptions, children, disableBack } = props\r\n    return <>\r\n        <BABox className=\"p-2\">\r\n            <BAScreenHeader disableBack={disableBack} title={title} headerOptions={headerOptions} extraTitle={extraTitle} />\r\n            <BABox className=\"py-2\">{children}</BABox>\r\n        </BABox>\r\n    </>\r\n}"],"names":["_jsx","_Fragment","_jsxs","useBreakpoint"],"mappings":"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","x_google_ignoreList":[0]}