@react-pakistan/util-functions 3.0.4 → 3.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,22 +13,30 @@ declare const DRAWER_TYPES: {
13
13
  FILTER_DRAWER: string;
14
14
  VIEW_DRAWER: string;
15
15
  MORE_ACTIONS_DRAWER: string;
16
+ MISC_DRAWER_1: string;
17
+ MISC_DRAWER_2: string;
16
18
  };
17
19
  interface ComponentConfig {
18
20
  cancelLabel?: string;
19
21
  drawerDescription?: string;
20
- drawerFormTitle: string;
21
- drawerFormDescription: string;
22
- drawerViewTitle: string;
23
- drawerViewDescription: string;
24
- drawerFilterTitle: string;
25
22
  drawerFilterDescription: string;
26
- drawerMoreActionsTitle: string;
23
+ drawerFilterTitle: string;
24
+ drawerFormDescription: string;
25
+ drawerFormTitle: string;
26
+ drawerMisc1Description?: string;
27
+ drawerMisc1Title?: string;
28
+ drawerMisc2Description?: string;
29
+ drawerMisc2Title?: string;
27
30
  drawerMoreActionsDescription: string;
31
+ drawerMoreActionsTitle: string;
32
+ drawerViewDescription: string;
33
+ drawerViewTitle: string;
28
34
  filterContent: React.ReactNode;
29
35
  filterDrawerValue?: string;
30
36
  formContent: React.ReactNode;
31
37
  formDrawerValue?: string;
38
+ misc1Content?: React.ReactNode;
39
+ misc2Content?: React.ReactNode;
32
40
  moduleName: string;
33
41
  moreActionsContent: React.ReactNode;
34
42
  numberOfFilters?: number;
@@ -63,6 +71,8 @@ interface GenericDrawerProps {
63
71
  viewContent?: React.ReactNode;
64
72
  filterContent?: React.ReactNode;
65
73
  moreActionsContent?: React.ReactNode;
74
+ misc1Content?: React.ReactNode;
75
+ misc2Content?: React.ReactNode;
66
76
  }
67
77
  declare const GenericDrawer: FC<GenericDrawerProps>;
68
78
  interface GenericModulePageProps {
@@ -13,22 +13,30 @@ declare const DRAWER_TYPES: {
13
13
  FILTER_DRAWER: string;
14
14
  VIEW_DRAWER: string;
15
15
  MORE_ACTIONS_DRAWER: string;
16
+ MISC_DRAWER_1: string;
17
+ MISC_DRAWER_2: string;
16
18
  };
17
19
  interface ComponentConfig {
18
20
  cancelLabel?: string;
19
21
  drawerDescription?: string;
20
- drawerFormTitle: string;
21
- drawerFormDescription: string;
22
- drawerViewTitle: string;
23
- drawerViewDescription: string;
24
- drawerFilterTitle: string;
25
22
  drawerFilterDescription: string;
26
- drawerMoreActionsTitle: string;
23
+ drawerFilterTitle: string;
24
+ drawerFormDescription: string;
25
+ drawerFormTitle: string;
26
+ drawerMisc1Description?: string;
27
+ drawerMisc1Title?: string;
28
+ drawerMisc2Description?: string;
29
+ drawerMisc2Title?: string;
27
30
  drawerMoreActionsDescription: string;
31
+ drawerMoreActionsTitle: string;
32
+ drawerViewDescription: string;
33
+ drawerViewTitle: string;
28
34
  filterContent: React.ReactNode;
29
35
  filterDrawerValue?: string;
30
36
  formContent: React.ReactNode;
31
37
  formDrawerValue?: string;
38
+ misc1Content?: React.ReactNode;
39
+ misc2Content?: React.ReactNode;
32
40
  moduleName: string;
33
41
  moreActionsContent: React.ReactNode;
34
42
  numberOfFilters?: number;
@@ -63,6 +71,8 @@ interface GenericDrawerProps {
63
71
  viewContent?: React.ReactNode;
64
72
  filterContent?: React.ReactNode;
65
73
  moreActionsContent?: React.ReactNode;
74
+ misc1Content?: React.ReactNode;
75
+ misc2Content?: React.ReactNode;
66
76
  }
67
77
  declare const GenericDrawer: FC<GenericDrawerProps>;
68
78
  interface GenericModulePageProps {
@@ -1 +1 @@
1
- "use client";var J=Object.create;var A=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Z=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var ee=(r,e)=>{for(var o in e)A(r,o,{get:e[o],enumerable:!0})},g=(r,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of X(e))!x.call(r,a)&&a!==o&&A(r,a,{get:()=>e[a],enumerable:!(s=U(e,a))||s.enumerable});return r};var re=(r,e,o)=>(o=r!=null?J(Z(r)):{},g(e||!r||!r.__esModule?A(o,"default",{value:r,enumerable:!0}):o,r)),te=r=>g(A({},"__esModule",{value:!0}),r);var oe={};ee(oe,{DRAWER_TYPES:()=>u,GenericDrawer:()=>M,GenericTable:()=>N,createGenericModulePage:()=>ae});module.exports=te(oe);var t=re(require("react")),T=require("../general/calculate-pages"),h=require("../general/get-available-page-limit"),f=require("../general/is-next-button-disabled"),E=require("../general/is-previous-button-disabled"),F=require("../hooks/use-rtl"),y=require("@appcorp/shadcn/components/enhanced-table"),P=require("@appcorp/shadcn/components/ui/sonner"),O=require("@appcorp/shadcn/components/drawer-generic"),p=require("@appcorp/shadcn/components/enhanced-drawer-header"),n=require("@appcorp/shadcn/components/enhanced-drawer-footer");const u={FORM_DRAWER:"FORM_DRAWER",FILTER_DRAWER:"FILTER_DRAWER",VIEW_DRAWER:"VIEW_DRAWER",MORE_ACTIONS_DRAWER:"MORE_ACTIONS_DRAWER"},N=({config:r,context:e,headerActions:o,rowActions:s,tableBodyCols:a})=>{const d=(0,F.useRTL)(),m=(0,t.useMemo)(()=>r.tableColumns.map(i=>({label:i.label,width:i.width})),[r.tableColumns]),l=(0,T.calculatePages)(e.state.count,e.state.pageLimit),C=(0,t.useMemo)(()=>o||e.headerActions||[],[o,e.headerActions]),c=(0,t.useMemo)(()=>Object.keys(e.state).filter(i=>i.startsWith("filter")?e.state[i]!==void 0&&e.state[i]!==""&&e.state[i]!==null&&e.state[i]!==!1:!1).length,[e.state]);return t.default.createElement("div",{className:`space-y-4 ${d?"rtl":"ltr"}`,dir:d?"rtl":"ltr"},t.default.createElement(y.EnhancedTable,{currentPage:Number(e.state.currentPage),handleNextOnClick:e.handlePageChange,handleOnSelect:e.handlePageLimitChange,handlePreviousOnClick:()=>e.handlePageChange(e.state.currentPage-1),handleSearchInput:(i,w)=>e.handleSearch?.(w),headerActions:C,isNextDisabled:(0,f.isNextButtonDisabled)(e.state.currentPage,l),isPreviousDisabled:(0,E.isPreviousButtonDisabled)(e.state.currentPage),listOptions:(0,h.getAvailablePageLimits)(e.state.count),loading:e.listLoading,nodeSelectKey:"pageLimit",numberOfFilters:c,onClearFilters:r.onClearFilters,pageLimit:e.state.pageLimit,rowActions:s||e.rowActions||[],searchDisabled:!1,searchEnabled:!0,searchId:`${r.moduleName.toLowerCase()}-search`,searchPlaceholder:r.searchPlaceholder,searchValue:e.state.searchQuery,tableBodyCols:a,tableBodyRows:e.state.items,tableDescription:r.tableDescription,tableHeading:r.tableTitle,tableHeadItems:m,totalPages:Number(l)}))},M=({config:r,context:e,formContent:o,viewContent:s,filterContent:a,moreActionsContent:d})=>{const m=(0,F.useRTL)(),l=e.closeDrawer||e.handleCloseDrawer,{disableSaveButton:C,drawer:c}=e.state,i=c===u.FORM_DRAWER,w=c===u.VIEW_DRAWER,D=c===u.FILTER_DRAWER,R=c===u.MORE_ACTIONS_DRAWER,_=i||w||D||R,W=r.drawerFormTitle,v=r.drawerFormDescription,L=r.drawerViewTitle,S=r.drawerViewDescription,H=r.drawerFilterTitle,I=r.drawerFilterDescription,B=r.drawerMoreActionsTitle,V=r.drawerMoreActionsDescription,b=e.state.errors??{},G=i?t.default.createElement(p.EnhancedDrawerHeader,{title:W,description:v}):null,k=w?t.default.createElement(p.EnhancedDrawerHeader,{title:L,description:S}):null,Y=D?t.default.createElement(p.EnhancedDrawerHeader,{title:H,description:I}):null,z=R?t.default.createElement(p.EnhancedDrawerHeader,{title:B,description:V}):null,$=i?t.default.createElement(n.EnhancedDrawerFooter,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:l,disableSaveButton:C,drawerType:n.DRAWER_FOOTER_COMPONENT_TYPE.FORM_DRAWER,errors:b,handleSubmit:e.handleSubmit,updateLoading:e.updateLoading??!1}):null,j=w?t.default.createElement(n.EnhancedDrawerFooter,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:l,disableSaveButton:!1,drawerType:n.DRAWER_FOOTER_COMPONENT_TYPE.VIEW_DRAWER,errors:b,handleSubmit:()=>{},updateLoading:!1}):null,K=D?t.default.createElement(n.EnhancedDrawerFooter,{applyFilters:e.applyFilters??(()=>{}),clearFilters:e.clearFilters??(()=>{}),closeDrawer:l,disableSaveButton:!1,drawerType:n.DRAWER_FOOTER_COMPONENT_TYPE.FILTER_DRAWER,errors:b,handleSubmit:e.handleSubmit??(()=>{}),updateLoading:!1}):null,Q=R?t.default.createElement(n.EnhancedDrawerFooter,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:l,disableSaveButton:!1,drawerType:n.DRAWER_FOOTER_COMPONENT_TYPE.MORE_ACTIONS_DRAWER,errors:b,handleSubmit:()=>{},updateLoading:!1}):null;return t.default.createElement(O.DrawerGeneric,{direction:m?"left":"right",filterDrawer:D?a:null,filterDrawerFooter:K,filterDrawerHeader:Y,formDrawer:i?o:null,formDrawerFooter:$,formDrawerHeader:G,moreActionsDrawer:R?d:null,moreActionsDrawerFooter:Q,moreActionsDrawerHeader:z,onOpenChange:q=>!q&&l(),open:_,viewDrawer:w?s:null,viewDrawerFooter:j,viewDrawerHeader:k,width:r.size??"small"})},ae=()=>({context:e,headerActions:o,iconMap:s,overrideConfig:a,rowActions:d,tableBodyCols:m})=>t.default.createElement("div",{className:"space-y-6"},t.default.createElement(N,{config:a,context:e,tableBodyCols:m,headerActions:o,rowActions:d,iconMap:s}),t.default.createElement(M,{config:a,context:e,filterContent:a.filterContent,formContent:a.formContent,moreActionsContent:a.moreActionsContent,viewContent:a.viewContent}),t.default.createElement(P.Toaster,null));0&&(module.exports={DRAWER_TYPES,GenericDrawer,GenericTable,createGenericModulePage});
1
+ "use client";var ne=Object.create;var T=Object.defineProperty;var le=Object.getOwnPropertyDescriptor;var ce=Object.getOwnPropertyNames;var de=Object.getPrototypeOf,we=Object.prototype.hasOwnProperty;var me=(r,e)=>{for(var i in e)T(r,i,{get:e[i],enumerable:!0})},M=(r,e,i,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of ce(e))!we.call(r,a)&&a!==i&&T(r,a,{get:()=>e[a],enumerable:!(l=le(e,a))||l.enumerable});return r};var pe=(r,e,i)=>(i=r!=null?ne(de(r)):{},M(e||!r||!r.__esModule?T(i,"default",{value:r,enumerable:!0}):i,r)),De=r=>M(T({},"__esModule",{value:!0}),r);var Re={};me(Re,{DRAWER_TYPES:()=>w,GenericDrawer:()=>I,GenericTable:()=>W,createGenericModulePage:()=>ue});module.exports=De(Re);var t=pe(require("react")),f=require("../general/calculate-pages"),_=require("../general/get-available-page-limit"),y=require("../general/is-next-button-disabled"),P=require("../general/is-previous-button-disabled"),h=require("../hooks/use-rtl"),N=require("@appcorp/shadcn/components/enhanced-table"),O=require("@appcorp/shadcn/components/ui/sonner"),S=require("@appcorp/shadcn/components/drawer-generic"),d=require("@appcorp/shadcn/components/enhanced-drawer-header"),s=require("@appcorp/shadcn/components/enhanced-drawer-footer");const w={FORM_DRAWER:"FORM_DRAWER",FILTER_DRAWER:"FILTER_DRAWER",VIEW_DRAWER:"VIEW_DRAWER",MORE_ACTIONS_DRAWER:"MORE_ACTIONS_DRAWER",MISC_DRAWER_1:"MISC_DRAWER_1",MISC_DRAWER_2:"MISC_DRAWER_2"},W=({config:r,context:e,headerActions:i,rowActions:l,tableBodyCols:a})=>{const m=(0,h.useRTL)(),D=(0,t.useMemo)(()=>r.tableColumns.map(o=>({label:o.label,width:o.width})),[r.tableColumns]),R=(0,f.calculatePages)(e.state.count,e.state.pageLimit),g=(0,t.useMemo)(()=>i||e.headerActions||[],[i,e.headerActions]),n=(0,t.useMemo)(()=>Object.keys(e.state).filter(o=>o.startsWith("filter")?e.state[o]!==void 0&&e.state[o]!==""&&e.state[o]!==null&&e.state[o]!==!1:!1).length,[e.state]);return t.default.createElement("div",{className:`space-y-4 ${m?"rtl":"ltr"}`,dir:m?"rtl":"ltr"},t.default.createElement(N.EnhancedTable,{currentPage:Number(e.state.currentPage),handleNextOnClick:e.handlePageChange,handleOnSelect:e.handlePageLimitChange,handlePreviousOnClick:()=>e.handlePageChange(e.state.currentPage-1),handleSearchInput:(o,c)=>e.handleSearch?.(c),headerActions:g,isNextDisabled:(0,y.isNextButtonDisabled)(e.state.currentPage,R),isPreviousDisabled:(0,P.isPreviousButtonDisabled)(e.state.currentPage),listOptions:(0,_.getAvailablePageLimits)(e.state.count),loading:e.listLoading,nodeSelectKey:"pageLimit",numberOfFilters:n,onClearFilters:r.onClearFilters,pageLimit:e.state.pageLimit,rowActions:l||e.rowActions||[],searchDisabled:!1,searchEnabled:!0,searchId:`${r.moduleName.toLowerCase()}-search`,searchPlaceholder:r.searchPlaceholder,searchValue:e.state.searchQuery,tableBodyCols:a,tableBodyRows:e.state.items,tableDescription:r.tableDescription,tableHeading:r.tableTitle,tableHeadItems:D,totalPages:Number(R)}))},I=({config:r,context:e,formContent:i,viewContent:l,filterContent:a,moreActionsContent:m,misc1Content:D,misc2Content:R})=>{const g=(0,h.useRTL)(),n=e.closeDrawer||e.handleCloseDrawer,{disableSaveButton:o,drawer:c}=e.state,C=c===w.FORM_DRAWER,A=c===w.VIEW_DRAWER,b=c===w.FILTER_DRAWER,F=c===w.MORE_ACTIONS_DRAWER,u=c===w.MISC_DRAWER_1,E=c===w.MISC_DRAWER_2,L=C||A||b||F||u||E,v=r.drawerFormTitle,H=r.drawerFormDescription,B=r.drawerViewTitle,V=r.drawerViewDescription,G=r.drawerFilterTitle,k=r.drawerFilterDescription,Y=r.drawerMoreActionsTitle,z=r.drawerMoreActionsDescription,$=r.drawerMisc1Title||"",j=r.drawerMisc1Description||"",K=r.drawerMisc2Title||"",Q=r.drawerMisc2Description||"",p=e.state.errors??{},q=C?t.default.createElement(d.EnhancedDrawerHeader,{title:v,description:H}):null,J=A?t.default.createElement(d.EnhancedDrawerHeader,{title:B,description:V}):null,U=b?t.default.createElement(d.EnhancedDrawerHeader,{title:G,description:k}):null,X=F?t.default.createElement(d.EnhancedDrawerHeader,{title:Y,description:z}):null,Z=u?t.default.createElement(d.EnhancedDrawerHeader,{title:$,description:j}):null,x=u?t.default.createElement(d.EnhancedDrawerHeader,{title:K,description:Q}):null,ee=C?t.default.createElement(s.EnhancedDrawerFooter,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:n,disableSaveButton:o,drawerType:s.DRAWER_FOOTER_COMPONENT_TYPE.FORM_DRAWER,errors:p,handleSubmit:e.handleSubmit,updateLoading:e.updateLoading??!1}):null,re=A?t.default.createElement(s.EnhancedDrawerFooter,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:n,disableSaveButton:!1,drawerType:s.DRAWER_FOOTER_COMPONENT_TYPE.VIEW_DRAWER,errors:p,handleSubmit:()=>{},updateLoading:!1}):null,te=b?t.default.createElement(s.EnhancedDrawerFooter,{applyFilters:e.applyFilters??(()=>{}),clearFilters:e.clearFilters??(()=>{}),closeDrawer:n,disableSaveButton:!1,drawerType:s.DRAWER_FOOTER_COMPONENT_TYPE.FILTER_DRAWER,errors:p,handleSubmit:e.handleSubmit??(()=>{}),updateLoading:!1}):null,ae=F?t.default.createElement(s.EnhancedDrawerFooter,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:n,disableSaveButton:!1,drawerType:s.DRAWER_FOOTER_COMPONENT_TYPE.MORE_ACTIONS_DRAWER,errors:p,handleSubmit:()=>{},updateLoading:!1}):null,ie=u?t.default.createElement(s.EnhancedDrawerFooter,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:n,disableSaveButton:!1,drawerType:s.DRAWER_FOOTER_COMPONENT_TYPE.MORE_ACTIONS_DRAWER,errors:p,handleSubmit:()=>{},updateLoading:!1}):null,se=E?t.default.createElement(s.EnhancedDrawerFooter,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:n,disableSaveButton:!1,drawerType:s.DRAWER_FOOTER_COMPONENT_TYPE.MORE_ACTIONS_DRAWER,errors:p,handleSubmit:()=>{},updateLoading:!1}):null;return t.default.createElement(S.DrawerGeneric,{direction:g?"left":"right",filterDrawer:b?a:null,filterDrawerFooter:te,filterDrawerHeader:U,formDrawer:C?i:null,formDrawerFooter:ee,formDrawerHeader:q,misc1Drawer:u?D:null,misc1DrawerFooter:ie,misc1DrawerHeader:Z,misc2Drawer:E?R:null,misc2DrawerFooter:se,misc2DrawerHeader:x,moreActionsDrawer:F?m:null,moreActionsDrawerFooter:ae,moreActionsDrawerHeader:X,onOpenChange:oe=>!oe&&n(),open:L,viewDrawer:A?l:null,viewDrawerFooter:re,viewDrawerHeader:J,width:r.size??"small"})},ue=()=>({context:e,headerActions:i,iconMap:l,overrideConfig:a,rowActions:m,tableBodyCols:D})=>t.default.createElement("div",{className:"space-y-6"},t.default.createElement(W,{config:a,context:e,tableBodyCols:D,headerActions:i,rowActions:m,iconMap:l}),t.default.createElement(I,{config:a,context:e,filterContent:a.filterContent,formContent:a.formContent,moreActionsContent:a.moreActionsContent,viewContent:a.viewContent,misc1Content:a.misc1Content,misc2Content:a.misc2Content}),t.default.createElement(O.Toaster,null));0&&(module.exports={DRAWER_TYPES,GenericDrawer,GenericTable,createGenericModulePage});
@@ -1 +1 @@
1
- "use client";import t,{useMemo as F}from"react";import{calculatePages as G}from"../general/calculate-pages";import{getAvailablePageLimits as k}from"../general/get-available-page-limit";import{isNextButtonDisabled as Y}from"../general/is-next-button-disabled";import{isPreviousButtonDisabled as z}from"../general/is-previous-button-disabled";import{useRTL as g}from"../hooks/use-rtl";import{EnhancedTable as $}from"@appcorp/shadcn/components/enhanced-table";import{Toaster as j}from"@appcorp/shadcn/components/ui/sonner";import{DrawerGeneric as K}from"@appcorp/shadcn/components/drawer-generic";import{EnhancedDrawerHeader as D}from"@appcorp/shadcn/components/enhanced-drawer-header";import{EnhancedDrawerFooter as R,DRAWER_FOOTER_COMPONENT_TYPE as b}from"@appcorp/shadcn/components/enhanced-drawer-footer";const A={FORM_DRAWER:"FORM_DRAWER",FILTER_DRAWER:"FILTER_DRAWER",VIEW_DRAWER:"VIEW_DRAWER",MORE_ACTIONS_DRAWER:"MORE_ACTIONS_DRAWER"},Q=({config:r,context:e,headerActions:n,rowActions:c,tableBodyCols:o})=>{const s=g(),w=F(()=>r.tableColumns.map(a=>({label:a.label,width:a.width})),[r.tableColumns]),i=G(e.state.count,e.state.pageLimit),C=F(()=>n||e.headerActions||[],[n,e.headerActions]),l=F(()=>Object.keys(e.state).filter(a=>a.startsWith("filter")?e.state[a]!==void 0&&e.state[a]!==""&&e.state[a]!==null&&e.state[a]!==!1:!1).length,[e.state]);return t.createElement("div",{className:`space-y-4 ${s?"rtl":"ltr"}`,dir:s?"rtl":"ltr"},t.createElement($,{currentPage:Number(e.state.currentPage),handleNextOnClick:e.handlePageChange,handleOnSelect:e.handlePageLimitChange,handlePreviousOnClick:()=>e.handlePageChange(e.state.currentPage-1),handleSearchInput:(a,d)=>e.handleSearch?.(d),headerActions:C,isNextDisabled:Y(e.state.currentPage,i),isPreviousDisabled:z(e.state.currentPage),listOptions:k(e.state.count),loading:e.listLoading,nodeSelectKey:"pageLimit",numberOfFilters:l,onClearFilters:r.onClearFilters,pageLimit:e.state.pageLimit,rowActions:c||e.rowActions||[],searchDisabled:!1,searchEnabled:!0,searchId:`${r.moduleName.toLowerCase()}-search`,searchPlaceholder:r.searchPlaceholder,searchValue:e.state.searchQuery,tableBodyCols:o,tableBodyRows:e.state.items,tableDescription:r.tableDescription,tableHeading:r.tableTitle,tableHeadItems:w,totalPages:Number(i)}))},q=({config:r,context:e,formContent:n,viewContent:c,filterContent:o,moreActionsContent:s})=>{const w=g(),i=e.closeDrawer||e.handleCloseDrawer,{disableSaveButton:C,drawer:l}=e.state,a=l===A.FORM_DRAWER,d=l===A.VIEW_DRAWER,m=l===A.FILTER_DRAWER,p=l===A.MORE_ACTIONS_DRAWER,T=a||d||m||p,h=r.drawerFormTitle,f=r.drawerFormDescription,E=r.drawerViewTitle,y=r.drawerViewDescription,P=r.drawerFilterTitle,O=r.drawerFilterDescription,N=r.drawerMoreActionsTitle,M=r.drawerMoreActionsDescription,u=e.state.errors??{},_=a?t.createElement(D,{title:h,description:f}):null,W=d?t.createElement(D,{title:E,description:y}):null,v=m?t.createElement(D,{title:P,description:O}):null,L=p?t.createElement(D,{title:N,description:M}):null,S=a?t.createElement(R,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:i,disableSaveButton:C,drawerType:b.FORM_DRAWER,errors:u,handleSubmit:e.handleSubmit,updateLoading:e.updateLoading??!1}):null,H=d?t.createElement(R,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:i,disableSaveButton:!1,drawerType:b.VIEW_DRAWER,errors:u,handleSubmit:()=>{},updateLoading:!1}):null,I=m?t.createElement(R,{applyFilters:e.applyFilters??(()=>{}),clearFilters:e.clearFilters??(()=>{}),closeDrawer:i,disableSaveButton:!1,drawerType:b.FILTER_DRAWER,errors:u,handleSubmit:e.handleSubmit??(()=>{}),updateLoading:!1}):null,B=p?t.createElement(R,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:i,disableSaveButton:!1,drawerType:b.MORE_ACTIONS_DRAWER,errors:u,handleSubmit:()=>{},updateLoading:!1}):null;return t.createElement(K,{direction:w?"left":"right",filterDrawer:m?o:null,filterDrawerFooter:I,filterDrawerHeader:v,formDrawer:a?n:null,formDrawerFooter:S,formDrawerHeader:_,moreActionsDrawer:p?s:null,moreActionsDrawerFooter:B,moreActionsDrawerHeader:L,onOpenChange:V=>!V&&i(),open:T,viewDrawer:d?c:null,viewDrawerFooter:H,viewDrawerHeader:W,width:r.size??"small"})},we=()=>({context:e,headerActions:n,iconMap:c,overrideConfig:o,rowActions:s,tableBodyCols:w})=>t.createElement("div",{className:"space-y-6"},t.createElement(Q,{config:o,context:e,tableBodyCols:w,headerActions:n,rowActions:s,iconMap:c}),t.createElement(q,{config:o,context:e,filterContent:o.filterContent,formContent:o.formContent,moreActionsContent:o.moreActionsContent,viewContent:o.viewContent}),t.createElement(j,null));export{A as DRAWER_TYPES,q as GenericDrawer,Q as GenericTable,we as createGenericModulePage};
1
+ "use client";import t,{useMemo as h}from"react";import{calculatePages as Z}from"../general/calculate-pages";import{getAvailablePageLimits as x}from"../general/get-available-page-limit";import{isNextButtonDisabled as ee}from"../general/is-next-button-disabled";import{isPreviousButtonDisabled as re}from"../general/is-previous-button-disabled";import{useRTL as M}from"../hooks/use-rtl";import{EnhancedTable as te}from"@appcorp/shadcn/components/enhanced-table";import{Toaster as ae}from"@appcorp/shadcn/components/ui/sonner";import{DrawerGeneric as ie}from"@appcorp/shadcn/components/drawer-generic";import{EnhancedDrawerHeader as d}from"@appcorp/shadcn/components/enhanced-drawer-header";import{EnhancedDrawerFooter as w,DRAWER_FOOTER_COMPONENT_TYPE as m}from"@appcorp/shadcn/components/enhanced-drawer-footer";const p={FORM_DRAWER:"FORM_DRAWER",FILTER_DRAWER:"FILTER_DRAWER",VIEW_DRAWER:"VIEW_DRAWER",MORE_ACTIONS_DRAWER:"MORE_ACTIONS_DRAWER",MISC_DRAWER_1:"MISC_DRAWER_1",MISC_DRAWER_2:"MISC_DRAWER_2"},se=({config:r,context:e,headerActions:n,rowActions:D,tableBodyCols:a})=>{const l=M(),u=h(()=>r.tableColumns.map(i=>({label:i.label,width:i.width})),[r.tableColumns]),C=Z(e.state.count,e.state.pageLimit),g=h(()=>n||e.headerActions||[],[n,e.headerActions]),s=h(()=>Object.keys(e.state).filter(i=>i.startsWith("filter")?e.state[i]!==void 0&&e.state[i]!==""&&e.state[i]!==null&&e.state[i]!==!1:!1).length,[e.state]);return t.createElement("div",{className:`space-y-4 ${l?"rtl":"ltr"}`,dir:l?"rtl":"ltr"},t.createElement(te,{currentPage:Number(e.state.currentPage),handleNextOnClick:e.handlePageChange,handleOnSelect:e.handlePageLimitChange,handlePreviousOnClick:()=>e.handlePageChange(e.state.currentPage-1),handleSearchInput:(i,o)=>e.handleSearch?.(o),headerActions:g,isNextDisabled:ee(e.state.currentPage,C),isPreviousDisabled:re(e.state.currentPage),listOptions:x(e.state.count),loading:e.listLoading,nodeSelectKey:"pageLimit",numberOfFilters:s,onClearFilters:r.onClearFilters,pageLimit:e.state.pageLimit,rowActions:D||e.rowActions||[],searchDisabled:!1,searchEnabled:!0,searchId:`${r.moduleName.toLowerCase()}-search`,searchPlaceholder:r.searchPlaceholder,searchValue:e.state.searchQuery,tableBodyCols:a,tableBodyRows:e.state.items,tableDescription:r.tableDescription,tableHeading:r.tableTitle,tableHeadItems:u,totalPages:Number(C)}))},oe=({config:r,context:e,formContent:n,viewContent:D,filterContent:a,moreActionsContent:l,misc1Content:u,misc2Content:C})=>{const g=M(),s=e.closeDrawer||e.handleCloseDrawer,{disableSaveButton:i,drawer:o}=e.state,A=o===p.FORM_DRAWER,b=o===p.VIEW_DRAWER,F=o===p.FILTER_DRAWER,T=o===p.MORE_ACTIONS_DRAWER,R=o===p.MISC_DRAWER_1,E=o===p.MISC_DRAWER_2,f=A||b||F||T||R||E,_=r.drawerFormTitle,y=r.drawerFormDescription,P=r.drawerViewTitle,N=r.drawerViewDescription,O=r.drawerFilterTitle,S=r.drawerFilterDescription,W=r.drawerMoreActionsTitle,I=r.drawerMoreActionsDescription,L=r.drawerMisc1Title||"",v=r.drawerMisc1Description||"",H=r.drawerMisc2Title||"",B=r.drawerMisc2Description||"",c=e.state.errors??{},V=A?t.createElement(d,{title:_,description:y}):null,G=b?t.createElement(d,{title:P,description:N}):null,k=F?t.createElement(d,{title:O,description:S}):null,Y=T?t.createElement(d,{title:W,description:I}):null,z=R?t.createElement(d,{title:L,description:v}):null,$=R?t.createElement(d,{title:H,description:B}):null,j=A?t.createElement(w,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:s,disableSaveButton:i,drawerType:m.FORM_DRAWER,errors:c,handleSubmit:e.handleSubmit,updateLoading:e.updateLoading??!1}):null,K=b?t.createElement(w,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:s,disableSaveButton:!1,drawerType:m.VIEW_DRAWER,errors:c,handleSubmit:()=>{},updateLoading:!1}):null,Q=F?t.createElement(w,{applyFilters:e.applyFilters??(()=>{}),clearFilters:e.clearFilters??(()=>{}),closeDrawer:s,disableSaveButton:!1,drawerType:m.FILTER_DRAWER,errors:c,handleSubmit:e.handleSubmit??(()=>{}),updateLoading:!1}):null,q=T?t.createElement(w,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:s,disableSaveButton:!1,drawerType:m.MORE_ACTIONS_DRAWER,errors:c,handleSubmit:()=>{},updateLoading:!1}):null,J=R?t.createElement(w,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:s,disableSaveButton:!1,drawerType:m.MORE_ACTIONS_DRAWER,errors:c,handleSubmit:()=>{},updateLoading:!1}):null,U=E?t.createElement(w,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:s,disableSaveButton:!1,drawerType:m.MORE_ACTIONS_DRAWER,errors:c,handleSubmit:()=>{},updateLoading:!1}):null;return t.createElement(ie,{direction:g?"left":"right",filterDrawer:F?a:null,filterDrawerFooter:Q,filterDrawerHeader:k,formDrawer:A?n:null,formDrawerFooter:j,formDrawerHeader:V,misc1Drawer:R?u:null,misc1DrawerFooter:J,misc1DrawerHeader:z,misc2Drawer:E?C:null,misc2DrawerFooter:U,misc2DrawerHeader:$,moreActionsDrawer:T?l:null,moreActionsDrawerFooter:q,moreActionsDrawerHeader:Y,onOpenChange:X=>!X&&s(),open:f,viewDrawer:b?D:null,viewDrawerFooter:K,viewDrawerHeader:G,width:r.size??"small"})},Ee=()=>({context:e,headerActions:n,iconMap:D,overrideConfig:a,rowActions:l,tableBodyCols:u})=>t.createElement("div",{className:"space-y-6"},t.createElement(se,{config:a,context:e,tableBodyCols:u,headerActions:n,rowActions:l,iconMap:D}),t.createElement(oe,{config:a,context:e,filterContent:a.filterContent,formContent:a.formContent,moreActionsContent:a.moreActionsContent,viewContent:a.viewContent,misc1Content:a.misc1Content,misc2Content:a.misc2Content}),t.createElement(ae,null));export{p as DRAWER_TYPES,oe as GenericDrawer,se as GenericTable,Ee as createGenericModulePage};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-pakistan/util-functions",
3
- "version": "3.0.4",
3
+ "version": "3.0.6",
4
4
  "description": "A library of all util functions",
5
5
  "scripts": {
6
6
  "add:tags": "scripts/add-tags.sh",
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "homepage": "https://github.com/react-pakistan/util-functions#readme",
48
48
  "devDependencies": {
49
- "@appcorp/shadcn": "^2.0.6",
49
+ "@appcorp/shadcn": "^2.0.9",
50
50
  "@eslint/js": "^9.17.0",
51
51
  "@testing-library/react": "^14.0.0",
52
52
  "@testing-library/react-hooks": "^8.0.1",