@react-pakistan/util-functions 3.0.3 → 3.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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"),E=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,E.useRTL)(),u=(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:u,totalPages:Number(R)}))},I=({config:r,context:e,formContent:i,viewContent:l,filterContent:a,moreActionsContent:m,misc1Content:u,misc2Content:R})=>{const g=(0,E.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,p=c===w.MORE_ACTIONS_DRAWER,F=c===w.MISC_DRAWER_1,h=c===w.MISC_DRAWER_2,L=C||A||b||p||F||h,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||"",D=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=p?t.default.createElement(d.EnhancedDrawerHeader,{title:Y,description:z}):null,Z=F?t.default.createElement(d.EnhancedDrawerHeader,{title:$,description:j}):null,x=F?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:D,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:D,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:D,handleSubmit:e.handleSubmit??(()=>{}),updateLoading:!1}):null,ae=p?t.default.createElement(s.EnhancedDrawerFooter,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:n,disableSaveButton:!1,drawerType:s.DRAWER_FOOTER_COMPONENT_TYPE.MORE_ACTIONS_DRAWER,errors:D,handleSubmit:()=>{},updateLoading:!1}):null,ie=p?t.default.createElement(s.EnhancedDrawerFooter,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:n,disableSaveButton:!1,drawerType:s.DRAWER_FOOTER_COMPONENT_TYPE.MORE_ACTIONS_DRAWER,errors:D,handleSubmit:()=>{},updateLoading:!1}):null,se=p?t.default.createElement(s.EnhancedDrawerFooter,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:n,disableSaveButton:!1,drawerType:s.DRAWER_FOOTER_COMPONENT_TYPE.MORE_ACTIONS_DRAWER,errors:D,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:F?u:null,misc1DrawerFooter:ie,misc1DrawerHeader:Z,misc2Drawer:h?R:null,misc2DrawerFooter:se,misc2DrawerHeader:x,moreActionsDrawer:p?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:u})=>t.default.createElement("div",{className:"space-y-6"},t.default.createElement(W,{config:a,context:e,tableBodyCols:u,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 E}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 w}from"@appcorp/shadcn/components/enhanced-drawer-header";import{EnhancedDrawerFooter as m,DRAWER_FOOTER_COMPONENT_TYPE as p}from"@appcorp/shadcn/components/enhanced-drawer-footer";const D={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:u,tableBodyCols:a})=>{const l=M(),R=E(()=>r.tableColumns.map(i=>({label:i.label,width:i.width})),[r.tableColumns]),C=Z(e.state.count,e.state.pageLimit),g=E(()=>n||e.headerActions||[],[n,e.headerActions]),s=E(()=>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:u||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:R,totalPages:Number(C)}))},oe=({config:r,context:e,formContent:n,viewContent:u,filterContent:a,moreActionsContent:l,misc1Content:R,misc2Content:C})=>{const g=M(),s=e.closeDrawer||e.handleCloseDrawer,{disableSaveButton:i,drawer:o}=e.state,A=o===D.FORM_DRAWER,b=o===D.VIEW_DRAWER,F=o===D.FILTER_DRAWER,c=o===D.MORE_ACTIONS_DRAWER,T=o===D.MISC_DRAWER_1,h=o===D.MISC_DRAWER_2,f=A||b||F||c||T||h,_=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||"",d=e.state.errors??{},V=A?t.createElement(w,{title:_,description:y}):null,G=b?t.createElement(w,{title:P,description:N}):null,k=F?t.createElement(w,{title:O,description:S}):null,Y=c?t.createElement(w,{title:W,description:I}):null,z=T?t.createElement(w,{title:L,description:v}):null,$=T?t.createElement(w,{title:H,description:B}):null,j=A?t.createElement(m,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:s,disableSaveButton:i,drawerType:p.FORM_DRAWER,errors:d,handleSubmit:e.handleSubmit,updateLoading:e.updateLoading??!1}):null,K=b?t.createElement(m,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:s,disableSaveButton:!1,drawerType:p.VIEW_DRAWER,errors:d,handleSubmit:()=>{},updateLoading:!1}):null,Q=F?t.createElement(m,{applyFilters:e.applyFilters??(()=>{}),clearFilters:e.clearFilters??(()=>{}),closeDrawer:s,disableSaveButton:!1,drawerType:p.FILTER_DRAWER,errors:d,handleSubmit:e.handleSubmit??(()=>{}),updateLoading:!1}):null,q=c?t.createElement(m,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:s,disableSaveButton:!1,drawerType:p.MORE_ACTIONS_DRAWER,errors:d,handleSubmit:()=>{},updateLoading:!1}):null,J=c?t.createElement(m,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:s,disableSaveButton:!1,drawerType:p.MORE_ACTIONS_DRAWER,errors:d,handleSubmit:()=>{},updateLoading:!1}):null,U=c?t.createElement(m,{applyFilters:()=>{},clearFilters:()=>{},closeDrawer:s,disableSaveButton:!1,drawerType:p.MORE_ACTIONS_DRAWER,errors:d,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:T?R:null,misc1DrawerFooter:J,misc1DrawerHeader:z,misc2Drawer:h?C:null,misc2DrawerFooter:U,misc2DrawerHeader:$,moreActionsDrawer:c?l:null,moreActionsDrawerFooter:q,moreActionsDrawerHeader:Y,onOpenChange:X=>!X&&s(),open:f,viewDrawer:b?u:null,viewDrawerFooter:K,viewDrawerHeader:G,width:r.size??"small"})},Ee=()=>({context:e,headerActions:n,iconMap:u,overrideConfig:a,rowActions:l,tableBodyCols:R})=>t.createElement("div",{className:"space-y-6"},t.createElement(se,{config:a,context:e,tableBodyCols:R,headerActions:n,rowActions:l,iconMap:u}),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{D as DRAWER_TYPES,oe as GenericDrawer,se as GenericTable,Ee as createGenericModulePage};
@@ -1 +1 @@
1
- var g=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var J=Object.prototype.hasOwnProperty;var M=(e,r)=>{for(var i in r)g(e,i,{get:r[i],enumerable:!0})},Q=(e,r,i,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of x(r))!J.call(e,o)&&o!==i&&g(e,o,{get:()=>r[o],enumerable:!(c=U(r,o))||c.enumerable});return e};var B=e=>Q(g({},"__esModule",{value:!0}),e);var _={};M(_,{useModuleEntityV2:()=>H});module.exports=B(_);var d=require("react"),n=require("../constants/api-methods"),s=require("./use-fetch"),h=require("./use-debounce");const H=({byIdCallback:e,byIdDeps:r=[],byIdParams:i,deleteCallback:c,deleteDeps:o=[],deleteParams:p,listCallback:E,listDeps:k=[],listParams:u,listUrl:T,headers:l,searchQuery:C,unitByIdUrl:F,unitUrl:b,updateCallback:y,updateDeps:N=[],updateParams:P})=>{const w=(0,h.useDebounce)(C,800),a=(0,d.useRef)(null);(0,d.useEffect)(()=>()=>{a.current&&(globalThis.clearTimeout(a.current),a.current=null)},[]);const{error:I,fetchNow:f,loading:L}=(0,s.useFetch)(T,{method:n.API_METHODS.GET,params:u,headers:l,callback:E,credentials:!0},[w,u,...k]),m=(t=300)=>{a.current&&globalThis.clearTimeout(a.current),a.current=globalThis.setTimeout(()=>{try{f(void 0,{method:n.API_METHODS.GET,params:u,headers:l})}catch{}a.current=null},t)},{error:v,loading:A,fetchNow:V}=(0,s.useFetch)(b,{method:n.API_METHODS.PUT,body:JSON.stringify(P),headers:l,callback:t=>{if(y)try{y(t)}catch{}try{t&&t.ok&&m()}catch{}}},[...N]),{error:D,loading:R,fetchNow:j}=(0,s.useFetch)(F,{method:n.API_METHODS.GET,params:i,headers:l,callback:e},[...r]),{error:G,loading:O,fetchNow:S}=(0,s.useFetch)(b,{method:n.API_METHODS.DELETE,body:JSON.stringify(p),headers:l,callback:t=>{if(c)try{c(t)}catch{}try{t&&t.ok&&m()}catch{}}},[...o]);return{byIdError:D,byIdFetchNow:j,byIdLoading:R,deleteError:G,deleteFetchNow:S,deleteLoading:O,listError:I,listFetchNow:f,listLoading:L,updateError:v,updateFetchNow:V,updateLoading:A}};0&&(module.exports={useModuleEntityV2});
1
+ var g=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var x=(t,r)=>{for(var i in r)g(t,i,{get:r[i],enumerable:!0})},J=(t,r,i,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of S(r))!U.call(t,a)&&a!==i&&g(t,a,{get:()=>r[a],enumerable:!(c=O(r,a))||c.enumerable});return t};var M=t=>J(g({},"__esModule",{value:!0}),t);var H={};x(H,{useModuleEntityV2:()=>B});module.exports=M(H);var d=require("react"),n=require("../constants/api-methods"),s=require("./use-fetch");const B=({byIdCallback:t,byIdDeps:r=[],byIdParams:i,deleteCallback:c,deleteDeps:a=[],deleteParams:m,listCallback:p,listDeps:E=[],listParams:u,listUrl:k,headers:l,searchQuery:T,unitByIdUrl:C,unitUrl:b,updateCallback:y,updateDeps:F=[],updateParams:N})=>{const o=(0,d.useRef)(null);(0,d.useEffect)(()=>()=>{o.current&&(globalThis.clearTimeout(o.current),o.current=null)},[]);const{error:P,fetchNow:f,loading:w}=(0,s.useFetch)(k,{method:n.API_METHODS.GET,params:u,headers:l,callback:p,credentials:!0},[T,u,...E]),h=(e=300)=>{o.current&&globalThis.clearTimeout(o.current),o.current=globalThis.setTimeout(()=>{try{f(void 0,{method:n.API_METHODS.GET,params:u,headers:l})}catch{}o.current=null},e)},{error:I,loading:L,fetchNow:v}=(0,s.useFetch)(b,{method:n.API_METHODS.PUT,body:JSON.stringify(N),headers:l,callback:e=>{if(y)try{y(e)}catch{}try{e&&e.ok&&h()}catch{}}},[...F]),{error:A,loading:V,fetchNow:D}=(0,s.useFetch)(C,{method:n.API_METHODS.GET,params:i,headers:l,callback:t},[...r]),{error:R,loading:j,fetchNow:G}=(0,s.useFetch)(b,{method:n.API_METHODS.DELETE,body:JSON.stringify(m),headers:l,callback:e=>{if(c)try{c(e)}catch{}try{e&&e.ok&&h()}catch{}}},[...a]);return{byIdError:A,byIdFetchNow:D,byIdLoading:V,deleteError:R,deleteFetchNow:G,deleteLoading:j,listError:P,listFetchNow:f,listLoading:w,updateError:I,updateFetchNow:v,updateLoading:L}};0&&(module.exports={useModuleEntityV2});
@@ -1 +1 @@
1
- import{useRef as G,useEffect as O}from"react";import{API_METHODS as o}from"../constants/api-methods";import{useFetch as a}from"./use-fetch";import{useDebounce as S}from"./use-debounce";const B=({byIdCallback:u,byIdDeps:g=[],byIdParams:b,deleteCallback:n,deleteDeps:y=[],deleteParams:f,listCallback:m,listDeps:h=[],listParams:i,listUrl:p,headers:t,searchQuery:E,unitByIdUrl:k,unitUrl:c,updateCallback:l,updateDeps:T=[],updateParams:C})=>{const F=S(E,800),e=G(null);O(()=>()=>{e.current&&(globalThis.clearTimeout(e.current),e.current=null)},[]);const{error:N,fetchNow:s,loading:P}=a(p,{method:o.GET,params:i,headers:t,callback:m,credentials:!0},[F,i,...h]),d=(r=300)=>{e.current&&globalThis.clearTimeout(e.current),e.current=globalThis.setTimeout(()=>{try{s(void 0,{method:o.GET,params:i,headers:t})}catch{}e.current=null},r)},{error:w,loading:I,fetchNow:L}=a(c,{method:o.PUT,body:JSON.stringify(C),headers:t,callback:r=>{if(l)try{l(r)}catch{}try{r&&r.ok&&d()}catch{}}},[...T]),{error:v,loading:A,fetchNow:V}=a(k,{method:o.GET,params:b,headers:t,callback:u},[...g]),{error:D,loading:R,fetchNow:j}=a(c,{method:o.DELETE,body:JSON.stringify(f),headers:t,callback:r=>{if(n)try{n(r)}catch{}try{r&&r.ok&&d()}catch{}}},[...y]);return{byIdError:v,byIdFetchNow:V,byIdLoading:A,deleteError:D,deleteFetchNow:j,deleteLoading:R,listError:N,listFetchNow:s,listLoading:P,updateError:w,updateFetchNow:L,updateLoading:I}};export{B as useModuleEntityV2};
1
+ import{useRef as j,useEffect as G}from"react";import{API_METHODS as a}from"../constants/api-methods";import{useFetch as o}from"./use-fetch";const J=({byIdCallback:u,byIdDeps:g=[],byIdParams:b,deleteCallback:n,deleteDeps:y=[],deleteParams:f,listCallback:h,listDeps:m=[],listParams:i,listUrl:p,headers:e,searchQuery:E,unitByIdUrl:k,unitUrl:c,updateCallback:l,updateDeps:T=[],updateParams:C})=>{const t=j(null);G(()=>()=>{t.current&&(globalThis.clearTimeout(t.current),t.current=null)},[]);const{error:F,fetchNow:s,loading:N}=o(p,{method:a.GET,params:i,headers:e,callback:h,credentials:!0},[E,i,...m]),d=(r=300)=>{t.current&&globalThis.clearTimeout(t.current),t.current=globalThis.setTimeout(()=>{try{s(void 0,{method:a.GET,params:i,headers:e})}catch{}t.current=null},r)},{error:P,loading:w,fetchNow:I}=o(c,{method:a.PUT,body:JSON.stringify(C),headers:e,callback:r=>{if(l)try{l(r)}catch{}try{r&&r.ok&&d()}catch{}}},[...T]),{error:L,loading:v,fetchNow:A}=o(k,{method:a.GET,params:b,headers:e,callback:u},[...g]),{error:V,loading:D,fetchNow:R}=o(c,{method:a.DELETE,body:JSON.stringify(f),headers:e,callback:r=>{if(n)try{n(r)}catch{}try{r&&r.ok&&d()}catch{}}},[...y]);return{byIdError:L,byIdFetchNow:A,byIdLoading:v,deleteError:V,deleteFetchNow:R,deleteLoading:D,listError:F,listFetchNow:s,listLoading:N,updateError:P,updateFetchNow:I,updateLoading:w}};export{J as useModuleEntityV2};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-pakistan/util-functions",
3
- "version": "3.0.3",
3
+ "version": "3.0.5",
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",