@erpsquad/common 1.8.104 → 1.8.105
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.
- package/dist/_virtual/index/index.esm10.js +3 -3
- package/dist/_virtual/index/index.esm11.js +2 -4
- package/dist/_virtual/index/index.esm11.js.map +1 -1
- package/dist/_virtual/index/index.esm2.js +4 -2
- package/dist/_virtual/index/index.esm2.js.map +1 -1
- package/dist/_virtual/index/index.esm3.js +3 -3
- package/dist/_virtual/index/index.esm4.js +3 -3
- package/dist/_virtual/index/index.esm5.js +3 -3
- package/dist/_virtual/index/index.esm6.js +3 -3
- package/dist/_virtual/index/index.esm7.js +3 -3
- package/dist/_virtual/index/index.esm8.js +3 -3
- package/dist/_virtual/index/index.esm9.js +3 -3
- package/dist/_virtual/index/index10.js +1 -1
- package/dist/_virtual/index/index11.js +1 -1
- package/dist/_virtual/index/index2.js +1 -1
- package/dist/_virtual/index/index3.js +1 -1
- package/dist/_virtual/index/index4.js +1 -1
- package/dist/_virtual/index/index5.js +1 -1
- package/dist/_virtual/index/index6.js +1 -1
- package/dist/_virtual/index/index7.js +1 -1
- package/dist/_virtual/index/index8.js +1 -1
- package/dist/_virtual/index/index9.js +1 -1
- package/dist/components/form-control/form-parser/form-section/index.esm.js +5 -4
- package/dist/components/form-control/form-parser/form-section/index.esm.js.map +1 -1
- package/dist/components/form-control/form-parser/form-section/index.js +22 -22
- package/dist/components/form-control/form-parser/form-section/index.js.map +1 -1
- package/dist/components/listing/listing/index.esm.js +1 -0
- package/dist/components/listing/listing/index.esm.js.map +1 -1
- package/dist/components/listing/listing/index.js +1 -1
- package/dist/components/listing/listing/index.js.map +1 -1
- package/dist/hooks/apiHelper/index.esm.js.map +1 -1
- package/dist/hooks/apiHelper/index.js.map +1 -1
- package/dist/hooks/useApi/index.esm.js +1 -0
- package/dist/hooks/useApi/index.esm.js.map +1 -1
- package/dist/hooks/useApi/index.js.map +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.esm.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js.map +1 -1
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.esm.js +1 -1
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js +1 -1
- package/dist/node_modules/@mui/system/colorManipulator/index.esm.js +2 -2
- package/dist/node_modules/@mui/system/colorManipulator/index.js +1 -1
- package/dist/node_modules/@mui/system/colorManipulator/index.js.map +1 -1
- package/dist/node_modules/@mui/system/createStyled/index.esm.js +6 -6
- package/dist/node_modules/@mui/system/createStyled/index.js +1 -1
- package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.esm.js +1 -1
- package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.js +1 -1
- package/dist/style.css +67 -67
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../src/components/listing/listing.tsx"],"sourcesContent":["import React, { useState, useMemo, useEffect, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport AddIcon from '@mui/icons-material/Add';\n\nimport { MaterialTable, ActionBar, Fallback, Footer, Button, ConfirmPopUp } from '../../components';\nimport { viewTypes } from '../../constants';\n\nimport { IListingComponentProps, IListingState } from './types'\nimport logo from '../../assets/images';\n\nimport './listing.scss';\nimport { useDataFetcher, apiHelper } from '../../hooks';\nimport { useDispatch } from 'react-redux';\nimport { usePages } from '../../hooks';\nimport { useAppSelector } from '../../redux';\nimport { enqueueSnackbar } from 'notistack';\n\nconst ListingComponent: React.FC<IListingComponentProps> = ({\n title,\n tableColumns,\n columnOrder = ['mrt-row-select'],\n rowActionMenu,\n destructiveActionMenu,\n handleAddButton,\n searchText,\n handleSearch,\n disabledViews = ['Kanban', 'Calendar', 'Gantt'],\n fields,\n selectedIds = [],\n pageName,\n importModuleName,\n showAddButton = true,\n actionButtons,\n paginationResource,\n enablePages = false,\n GridComponent,\n onSelectRow,\n onColumnOrdering,\n onColumnVisibility,\n onSortingChange,\n fallbackIcon,\n className = '',\n onDeleteConfirm,\n deleteTitle,\n deleteDescription,\n fetchApi,\n resetState,\n setPaginationModel,\n deleteApi,\n storeName,\n isUseFields,\n customeFilter,\n customFields,\n isLoading: loadinState\n}) => {\n const { t } = useTranslation();\n\n //dispatch\n const dispatch = useDispatch()\n\n //Page Context\n const { activePage, updatePageInfo } = usePages();\n //Store \n const {\n paginationModel,\n rows,\n isLoading,\n } = useAppSelector((store) => store?.[storeName]);\n console.log(\"🚀 ~ ListingComponent ~ rows:\", rows)\n\n\n const { pageNo, limit: pLimit, totalCount } = paginationModel;\n const limit = activePage.page_size || pLimit;\n const skip = limit * (pageNo - 1);\n\n\n // Local state\n const [listingState, setListingState] = useState<IListingState>({\n selectedRows: selectedIds,\n itemToDelete: null,\n isDeleting: false\n });\n\n // Calculate pagination values\n const total = Math.ceil(totalCount / limit);\n\n // Memoized table data\n const tableRows = useMemo(() => rows, [rows]);\n\n // Handle row selection\n const handleRowSelection = (selectedRows: any[]) => {\n const selectedRowIds = selectedRows.map((row) => row.original.id);\n setListingState(prev => ({ ...prev, selectedRows: selectedRowIds }));\n onSelectRow?.(selectedRows);\n };\n\n // Handle pagination changes\n const handlePaginationChange = (model: any) => {\n if (activePage.page_size !== model?.limit) {\n updatePageInfo({ page_size: model.limit });\n }\n handlePaginationModel(model);\n };\n\n // Handle search\n const handleSearchChange = (search: string) => {\n updatePageInfo({ search });\n handlePaginationModel({ pageNo: 1 });\n handleSearch?.(search);\n };\n\n // Handle delete confirmation\n const handleDeleteClick = (item: any) => {\n setListingState(prev => ({ ...prev, itemToDelete: item }));\n };\n\n const handleDeleteConfirm = async () => {\n if (!listingState.itemToDelete) return;\n\n setListingState(prev => ({ ...prev, isDeleting: true }));\n\n try {\n onDeleteConfirm ? await onDeleteConfirm(listingState.itemToDelete) : await deleteRecord(listingState.itemToDelete);\n setListingState(prev => ({ ...prev, itemToDelete: null, isDeleting: false }));\n } catch (error) {\n setListingState(prev => ({ ...prev, isDeleting: false }));\n }\n };\n\n const handleDeleteCancel = () => {\n setListingState(prev => ({ ...prev, itemToDelete: null }));\n };\n\n // Enhance destructive actions to include delete confirmation\n const enhancedDestructiveActions = useMemo(() => {\n if (!destructiveActionMenu) return undefined;\n\n return destructiveActionMenu.map(action => ({\n ...action,\n handleAction: action.label.toLowerCase().includes('delete')\n ? handleDeleteClick\n : action.handleAction\n }));\n }, [destructiveActionMenu]);\n\n //Handle pagination model\n const handlePaginationModel = (model: IPaginationModel) => {\n if (activePage.page_size != model?.limit) {\n updatePageInfo({ page_size: model.limit });\n }\n dispatch(setPaginationModel(model));\n }\n\n //Delete\n const deleteRecord = async (requestToDelete: any) => {\n const response: any = await dispatch(deleteApi(String(requestToDelete.id)));\n apiHelper(response, () => {\n enqueueSnackbar(\n ` ${title}: ${requestToDelete?.id} ${t('common.msg.deleted')}`,\n )\n getData()\n })\n };\n\n\n\n\n //clean up\n const cleanUp = useCallback(() => {\n dispatch(resetState())\n }, [dispatch, resetState]);\n\n // Data fetching\n const getData = useDataFetcher(\n tableColumns?.length ? tableColumns : activePage,\n { skip, limit },\n fetchApi,\n customeFilter,\n [],\n true,\n customFields\n\n )\n\n useEffect(() => {\n getData()\n }, [getData])\n\n useEffect(() => {\n return cleanUp;\n }, [cleanUp]);\n\n\n return (\n <section className={`listing-component ${className}`}>\n <ActionBar\n title={title}\n data={activePage?.views || []}\n setData={(views) => updatePageInfo({ views })}\n active={activePage.active_view}\n setActive={(tab) => updatePageInfo({ active_view: tab })}\n handleAddButton={handleAddButton}\n searchText={searchText || activePage.search || ''}\n handleSearch={handleSearchChange}\n disabledViews={disabledViews}\n fields={fields}\n isUseFields={isUseFields}\n selectedIds={listingState.selectedRows}\n pageName={pageName}\n importModuleName={importModuleName}\n button={showAddButton}\n actionBtn={actionButtons}\n />\n\n\n <>\n {activePage?.active_view === viewTypes.TABLE && (\n <MaterialTable\n rows={tableRows || []}\n columns={tableColumns}\n paginationModel={paginationModel}\n totalPages={total}\n columnOrder={[...columnOrder, ...activePage.column_order]}\n states={{ isLoading: loadinState || isLoading }}\n onSortingChange={onSortingChange ? (sort) => {\n updatePageInfo({ sort });\n onSortingChange(sort);\n } : undefined}\n enableColumnDragging={false}\n enableEditing={false}\n rowActionMenu={rowActionMenu}\n destructiveActionMenu={enhancedDestructiveActions}\n isResetRow={false}\n onSelectRow={handleRowSelection}\n handleColumnOrdering={onColumnOrdering ? (colOrder) => {\n const newOrder = colOrder.slice(1);\n updatePageInfo({ column_order: newOrder });\n onColumnOrdering(newOrder);\n } : undefined}\n onColumnVisibility={onColumnVisibility ? (columns) => {\n updatePageInfo({ visible_columns: columns });\n onColumnVisibility(columns);\n } : undefined}\n />\n )}\n\n {activePage?.active_view === viewTypes.GRID && GridComponent && (\n <GridComponent\n data={tableRows}\n rowActionMenu={rowActionMenu}\n destructiveActionMenu={enhancedDestructiveActions}\n />\n )}\n\n {!activePage?.active_view && !isLoading && (\n <Fallback\n heading={title}\n icon={fallbackIcon || <img src={logo.shippmentFallback} alt=\"fallback\" />}\n >\n {showAddButton && handleAddButton && (\n <Button\n variant='contained'\n startIcon={<AddIcon />}\n onClick={handleAddButton}\n >\n {`${t('common.add')} ${t('common.new')}`}\n </Button>\n )}\n </Fallback>\n )}\n\n <Footer\n total={total}\n paginationModel={{\n ...paginationModel,\n limit: activePage.page_size\n }}\n handlePaginationModel={handlePaginationChange}\n resource={paginationResource}\n enablePages={enablePages}\n />\n\n <ConfirmPopUp\n open={Boolean(listingState.itemToDelete)}\n onClose={handleDeleteCancel}\n onConfirm={handleDeleteConfirm}\n loading={listingState.isDeleting}\n title={deleteTitle || `${t('common.delete')} ${title}`}\n description={\n deleteDescription\n ? deleteDescription(listingState.itemToDelete)\n : `${t('common.deleteMsg')} ${title}: ${listingState.itemToDelete?.id || listingState.itemToDelete?.name || ''} ?`\n }\n />\n </>\n </section>\n );\n};\n\nexport default ListingComponent;\n"],"names":["useDataFetcher","logo","AddIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../src/components/listing/listing.tsx"],"sourcesContent":["import React, { useState, useMemo, useEffect, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport AddIcon from '@mui/icons-material/Add';\n\nimport { MaterialTable, ActionBar, Fallback, Footer, Button, ConfirmPopUp } from '../../components';\nimport { viewTypes } from '../../constants';\n\nimport { IListingComponentProps, IListingState } from './types'\nimport logo from '../../assets/images';\n\nimport './listing.scss';\nimport { useDataFetcher, apiHelper } from '../../hooks';\nimport { useDispatch } from 'react-redux';\nimport { usePages } from '../../hooks';\nimport { useAppSelector } from '../../redux';\nimport { enqueueSnackbar } from 'notistack';\n\nconst ListingComponent: React.FC<IListingComponentProps> = ({\n title,\n tableColumns,\n columnOrder = ['mrt-row-select'],\n rowActionMenu,\n destructiveActionMenu,\n handleAddButton,\n searchText,\n handleSearch,\n disabledViews = ['Kanban', 'Calendar', 'Gantt'],\n fields,\n selectedIds = [],\n pageName,\n importModuleName,\n showAddButton = true,\n actionButtons,\n paginationResource,\n enablePages = false,\n GridComponent,\n onSelectRow,\n onColumnOrdering,\n onColumnVisibility,\n onSortingChange,\n fallbackIcon,\n className = '',\n onDeleteConfirm,\n deleteTitle,\n deleteDescription,\n fetchApi,\n resetState,\n setPaginationModel,\n deleteApi,\n storeName,\n isUseFields,\n customeFilter,\n customFields,\n isLoading: loadinState\n}) => {\n const { t } = useTranslation();\n\n //dispatch\n const dispatch = useDispatch()\n\n //Page Context\n const { activePage, updatePageInfo } = usePages();\n //Store \n const {\n paginationModel,\n rows,\n isLoading,\n } = useAppSelector((store) => store?.[storeName]);\n console.log(\"🚀 ~ ListingComponent ~ rows:\", rows)\n\n\n const { pageNo, limit: pLimit, totalCount } = paginationModel;\n const limit = activePage.page_size || pLimit;\n const skip = limit * (pageNo - 1);\n\n\n // Local state\n const [listingState, setListingState] = useState<IListingState>({\n selectedRows: selectedIds,\n itemToDelete: null,\n isDeleting: false\n });\n\n // Calculate pagination values\n const total = Math.ceil(totalCount / limit);\n\n // Memoized table data\n const tableRows = useMemo(() => rows, [rows]);\n\n // Handle row selection\n const handleRowSelection = (selectedRows: any[]) => {\n const selectedRowIds = selectedRows.map((row) => row.original.id);\n setListingState(prev => ({ ...prev, selectedRows: selectedRowIds }));\n onSelectRow?.(selectedRows);\n };\n\n // Handle pagination changes\n const handlePaginationChange = (model: any) => {\n if (activePage.page_size !== model?.limit) {\n updatePageInfo({ page_size: model.limit });\n }\n handlePaginationModel(model);\n };\n\n // Handle search\n const handleSearchChange = (search: string) => {\n updatePageInfo({ search });\n handlePaginationModel({ pageNo: 1 });\n handleSearch?.(search);\n };\n\n // Handle delete confirmation\n const handleDeleteClick = (item: any) => {\n setListingState(prev => ({ ...prev, itemToDelete: item }));\n };\n\n const handleDeleteConfirm = async () => {\n if (!listingState.itemToDelete) return;\n\n setListingState(prev => ({ ...prev, isDeleting: true }));\n\n try {\n onDeleteConfirm ? await onDeleteConfirm(listingState.itemToDelete) : await deleteRecord(listingState.itemToDelete);\n setListingState(prev => ({ ...prev, itemToDelete: null, isDeleting: false }));\n } catch (error) {\n setListingState(prev => ({ ...prev, isDeleting: false }));\n }\n };\n\n const handleDeleteCancel = () => {\n setListingState(prev => ({ ...prev, itemToDelete: null }));\n };\n\n // Enhance destructive actions to include delete confirmation\n const enhancedDestructiveActions = useMemo(() => {\n if (!destructiveActionMenu) return undefined;\n\n return destructiveActionMenu.map(action => ({\n ...action,\n handleAction: action.label.toLowerCase().includes('delete')\n ? handleDeleteClick\n : action.handleAction\n }));\n }, [destructiveActionMenu]);\n\n //Handle pagination model\n const handlePaginationModel = (model: IPaginationModel) => {\n if (activePage.page_size != model?.limit) {\n updatePageInfo({ page_size: model.limit });\n }\n dispatch(setPaginationModel(model));\n }\n\n //Delete\n const deleteRecord = async (requestToDelete: any) => {\n const response: any = await dispatch(deleteApi(String(requestToDelete.id)));\n apiHelper(response, () => {\n enqueueSnackbar(\n ` ${title}: ${requestToDelete?.id} ${t('common.msg.deleted')}`,\n )\n getData()\n })\n };\n\n\n\n\n //clean up\n const cleanUp = useCallback(() => {\n dispatch(resetState())\n }, [dispatch, resetState]);\n\n // Data fetching\n const getData = useDataFetcher(\n tableColumns?.length ? tableColumns : activePage,\n { skip, limit },\n fetchApi,\n customeFilter,\n [],\n true,\n customFields\n\n )\n\n useEffect(() => {\n getData()\n }, [getData])\n\n useEffect(() => {\n return cleanUp;\n }, [cleanUp]);\n\n\n return (\n <section className={`listing-component ${className}`}>\n <ActionBar\n title={title}\n data={activePage?.views || []}\n setData={(views) => updatePageInfo({ views })}\n active={activePage.active_view}\n setActive={(tab) => updatePageInfo({ active_view: tab })}\n handleAddButton={handleAddButton}\n searchText={searchText || activePage.search || ''}\n handleSearch={handleSearchChange}\n disabledViews={disabledViews}\n fields={fields}\n isUseFields={isUseFields}\n selectedIds={listingState.selectedRows}\n pageName={pageName}\n importModuleName={importModuleName}\n button={showAddButton}\n actionBtn={actionButtons}\n />\n ssdssds\n\n <>\n {activePage?.active_view === viewTypes.TABLE && (\n < MaterialTable\n rows={tableRows || []}\n columns={tableColumns}\n paginationModel={paginationModel}\n totalPages={total}\n columnOrder={[...columnOrder, ...activePage.column_order]}\n states={{ isLoading: loadinState || isLoading }}\n onSortingChange={onSortingChange ? (sort) => {\n updatePageInfo({ sort });\n onSortingChange(sort);\n } : undefined}\n enableColumnDragging={false}\n enableEditing={false}\n rowActionMenu={rowActionMenu}\n destructiveActionMenu={enhancedDestructiveActions}\n isResetRow={false}\n onSelectRow={handleRowSelection}\n handleColumnOrdering={onColumnOrdering ? (colOrder) => {\n const newOrder = colOrder.slice(1);\n updatePageInfo({ column_order: newOrder });\n onColumnOrdering(newOrder);\n } : undefined}\n onColumnVisibility={onColumnVisibility ? (columns) => {\n updatePageInfo({ visible_columns: columns });\n onColumnVisibility(columns);\n } : undefined}\n />\n )}\n\n {activePage?.active_view === viewTypes.GRID && GridComponent && (\n <GridComponent\n data={tableRows}\n rowActionMenu={rowActionMenu}\n destructiveActionMenu={enhancedDestructiveActions}\n />\n )}\n\n {!activePage?.active_view && !isLoading && (\n <Fallback\n heading={title}\n icon={fallbackIcon || <img src={logo.shippmentFallback} alt=\"fallback\" />}\n >\n {showAddButton && handleAddButton && (\n <Button\n variant='contained'\n startIcon={<AddIcon />}\n onClick={handleAddButton}\n >\n {`${t('common.add')} ${t('common.new')}`}\n </Button>\n )}\n </Fallback>\n )}\n\n <Footer\n total={total}\n paginationModel={{\n ...paginationModel,\n limit: activePage.page_size\n }}\n handlePaginationModel={handlePaginationChange}\n resource={paginationResource}\n enablePages={enablePages}\n />\n\n <ConfirmPopUp\n open={Boolean(listingState.itemToDelete)}\n onClose={handleDeleteCancel}\n onConfirm={handleDeleteConfirm}\n loading={listingState.isDeleting}\n title={deleteTitle || `${t('common.delete')} ${title}`}\n description={\n deleteDescription\n ? deleteDescription(listingState.itemToDelete)\n : `${t('common.deleteMsg')} ${title}: ${listingState.itemToDelete?.id || listingState.itemToDelete?.name || ''} ?`\n }\n />\n </>\n </section>\n );\n};\n\nexport default ListingComponent;\n"],"names":["useDataFetcher","logo","AddIcon"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("react"),t=require("react-i18next"),n=,/* empty css */o=;/* empty css */;/* empty css */var a=require("react-redux"),l=,/* empty css */s=,/* empty css */r=,/* empty css */d=,/* empty css */c=,/* empty css */u=,/* empty css */m=,/* empty css */g=,/* empty css */p=,/* empty css */v=,/* empty css */x=,/* empty css */h=;/* empty css */exports.default=({title:b,tableColumns:j,columnOrder:f=["mrt-row-select"],rowActionMenu:w,destructiveActionMenu:D,handleAddButton:q,searchText:M,handleSearch:A,disabledViews:C=["Kanban","Calendar","Gantt"],fields:_,selectedIds:T=[],pageName:k,importModuleName:S,showAddButton:$=!0,actionButtons:P,paginationResource:B,enablePages:F=!1,GridComponent:N,onSelectRow:R,onColumnOrdering:y,onColumnVisibility:z,onSortingChange:I,fallbackIcon:L,className:O="",onDeleteConfirm:E,deleteTitle:V,deleteDescription:G,fetchApi:U,resetState:H,setPaginationModel:K,deleteApi:J,storeName:Q,isUseFields:W,customeFilter:X,customFields:Y,isLoading:Z})=>{var ee,ie;const{t:te}=t.useTranslation(),ne=a.useDispatch(),{activePage:oe,updatePageInfo:ae}=s.usePages(),{paginationModel:le,rows:se,isLoading:re}=r.useAppSelector(e=>null==e?void 0:e[Q]),{pageNo:de,limit:ce,totalCount:ue}=le,me=oe.page_size||ce,ge=me*(de-1),[pe,ve]=i.useState({selectedRows:T,itemToDelete:null,isDeleting:!1}),xe=Math.ceil(ue/me),he=i.useMemo(()=>se,[se]),be=e=>{ve(i=>({...i,itemToDelete:e}))},je=i.useMemo(()=>{if(D)return D.map(e=>({...e,handleAction:e.label.toLowerCase().includes("delete")?be:e.handleAction}))},[D]),fe=e=>{oe.page_size!=(null==e?void 0:e.limit)&&ae({page_size:e.limit}),ne(K(e))},we=i.useCallback(()=>{ne(H())},[ne,H]),De=d.default((null==j?void 0:j.length)?j:oe,{skip:ge,limit:me},U,X,[],!0,Y);return i.useEffect(()=>{De()},[De]),i.useEffect(()=>we,[we]),/* @__PURE__ */e.jsxs("section",{className:`listing-component ${O}`,children:[
|
|
2
|
-
/* @__PURE__ */e.jsx(c.ActionBar,{title:b,data:(null==oe?void 0:oe.views)||[],setData:e=>ae({views:e}),active:oe.active_view,setActive:e=>ae({active_view:e}),handleAddButton:q,searchText:M||oe.search||"",handleSearch:e=>{ae({search:e}),fe({pageNo:1}),null==A||A(e)},disabledViews:C,fields:_,isUseFields:W,selectedIds:pe.selectedRows,pageName:k,importModuleName:S,button:$,actionBtn:P}),
|
|
2
|
+
/* @__PURE__ */e.jsx(c.ActionBar,{title:b,data:(null==oe?void 0:oe.views)||[],setData:e=>ae({views:e}),active:oe.active_view,setActive:e=>ae({active_view:e}),handleAddButton:q,searchText:M||oe.search||"",handleSearch:e=>{ae({search:e}),fe({pageNo:1}),null==A||A(e)},disabledViews:C,fields:_,isUseFields:W,selectedIds:pe.selectedRows,pageName:k,importModuleName:S,button:$,actionBtn:P}),"ssdssds",
|
|
3
3
|
/* @__PURE__ */e.jsxs(e.Fragment,{children:[(null==oe?void 0:oe.active_view)===u.default.TABLE&&/* @__PURE__ */e.jsx(m.MaterialTable,{rows:he||[],columns:j,paginationModel:le,totalPages:xe,columnOrder:[...f,...oe.column_order],states:{isLoading:Z||re},onSortingChange:I?e=>{ae({sort:e}),I(e)}:void 0,enableColumnDragging:!1,enableEditing:!1,rowActionMenu:w,destructiveActionMenu:je,isResetRow:!1,onSelectRow:e=>{const i=e.map(e=>e.original.id);ve(e=>({...e,selectedRows:i})),null==R||R(e)},handleColumnOrdering:y?e=>{const i=e.slice(1);ae({column_order:i}),y(i)}:void 0,onColumnVisibility:z?e=>{ae({visible_columns:e}),z(e)}:void 0}),(null==oe?void 0:oe.active_view)===u.default.GRID&&N&&/* @__PURE__ */e.jsx(N,{data:he,rowActionMenu:w,destructiveActionMenu:je}),!(null==oe?void 0:oe.active_view)&&!re&&/* @__PURE__ */e.jsx(g.Fallback,{heading:b,icon:L||/* @__PURE__ */e.jsx("img",{src:o.images.shippmentFallback,alt:"fallback"}),children:$&&q&&/* @__PURE__ */e.jsx(p.Button,{variant:"contained",startIcon:/* @__PURE__ */e.jsx(n.default,{}),onClick:q,children:`${te("common.add")} ${te("common.new")}`})}),
|
|
4
4
|
/* @__PURE__ */e.jsx(v.Footer,{total:xe,paginationModel:{...le,limit:oe.page_size},handlePaginationModel:e=>{oe.page_size!==(null==e?void 0:e.limit)&&ae({page_size:e.limit}),fe(e)},resource:B,enablePages:F}),
|
|
5
5
|
/* @__PURE__ */e.jsx(x.ConfirmPopUp,{open:Boolean(pe.itemToDelete),onClose:()=>{ve(e=>({...e,itemToDelete:null}))},onConfirm:async()=>{if(pe.itemToDelete){ve(e=>({...e,isDeleting:!0}));try{E?await E(pe.itemToDelete):await(async e=>{const i=await ne(J(String(e.id)));h.apiHelper(i,()=>{l.enqueueSnackbar(` ${b}: ${null==e?void 0:e.id} ${te("common.msg.deleted")}`),De()})})(pe.itemToDelete),ve(e=>({...e,itemToDelete:null,isDeleting:!1}))}catch(e){ve(e=>({...e,isDeleting:!1}))}}},loading:pe.isDeleting,title:V||`${te("common.delete")} ${b}`,description:G?G(pe.itemToDelete):`${te("common.deleteMsg")} ${b}: ${(null==(ee=pe.itemToDelete)?void 0:ee.id)||(null==(ie=pe.itemToDelete)?void 0:ie.name)||""} ?`})]})]})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/listing/listing.tsx"],"sourcesContent":["import React, { useState, useMemo, useEffect, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport AddIcon from '@mui/icons-material/Add';\n\nimport { MaterialTable, ActionBar, Fallback, Footer, Button, ConfirmPopUp } from '../../components';\nimport { viewTypes } from '../../constants';\n\nimport { IListingComponentProps, IListingState } from './types'\nimport logo from '../../assets/images';\n\nimport './listing.scss';\nimport { useDataFetcher, apiHelper } from '../../hooks';\nimport { useDispatch } from 'react-redux';\nimport { usePages } from '../../hooks';\nimport { useAppSelector } from '../../redux';\nimport { enqueueSnackbar } from 'notistack';\n\nconst ListingComponent: React.FC<IListingComponentProps> = ({\n title,\n tableColumns,\n columnOrder = ['mrt-row-select'],\n rowActionMenu,\n destructiveActionMenu,\n handleAddButton,\n searchText,\n handleSearch,\n disabledViews = ['Kanban', 'Calendar', 'Gantt'],\n fields,\n selectedIds = [],\n pageName,\n importModuleName,\n showAddButton = true,\n actionButtons,\n paginationResource,\n enablePages = false,\n GridComponent,\n onSelectRow,\n onColumnOrdering,\n onColumnVisibility,\n onSortingChange,\n fallbackIcon,\n className = '',\n onDeleteConfirm,\n deleteTitle,\n deleteDescription,\n fetchApi,\n resetState,\n setPaginationModel,\n deleteApi,\n storeName,\n isUseFields,\n customeFilter,\n customFields,\n isLoading: loadinState\n}) => {\n const { t } = useTranslation();\n\n //dispatch\n const dispatch = useDispatch()\n\n //Page Context\n const { activePage, updatePageInfo } = usePages();\n //Store \n const {\n paginationModel,\n rows,\n isLoading,\n } = useAppSelector((store) => store?.[storeName]);\n console.log(\"🚀 ~ ListingComponent ~ rows:\", rows)\n\n\n const { pageNo, limit: pLimit, totalCount } = paginationModel;\n const limit = activePage.page_size || pLimit;\n const skip = limit * (pageNo - 1);\n\n\n // Local state\n const [listingState, setListingState] = useState<IListingState>({\n selectedRows: selectedIds,\n itemToDelete: null,\n isDeleting: false\n });\n\n // Calculate pagination values\n const total = Math.ceil(totalCount / limit);\n\n // Memoized table data\n const tableRows = useMemo(() => rows, [rows]);\n\n // Handle row selection\n const handleRowSelection = (selectedRows: any[]) => {\n const selectedRowIds = selectedRows.map((row) => row.original.id);\n setListingState(prev => ({ ...prev, selectedRows: selectedRowIds }));\n onSelectRow?.(selectedRows);\n };\n\n // Handle pagination changes\n const handlePaginationChange = (model: any) => {\n if (activePage.page_size !== model?.limit) {\n updatePageInfo({ page_size: model.limit });\n }\n handlePaginationModel(model);\n };\n\n // Handle search\n const handleSearchChange = (search: string) => {\n updatePageInfo({ search });\n handlePaginationModel({ pageNo: 1 });\n handleSearch?.(search);\n };\n\n // Handle delete confirmation\n const handleDeleteClick = (item: any) => {\n setListingState(prev => ({ ...prev, itemToDelete: item }));\n };\n\n const handleDeleteConfirm = async () => {\n if (!listingState.itemToDelete) return;\n\n setListingState(prev => ({ ...prev, isDeleting: true }));\n\n try {\n onDeleteConfirm ? await onDeleteConfirm(listingState.itemToDelete) : await deleteRecord(listingState.itemToDelete);\n setListingState(prev => ({ ...prev, itemToDelete: null, isDeleting: false }));\n } catch (error) {\n setListingState(prev => ({ ...prev, isDeleting: false }));\n }\n };\n\n const handleDeleteCancel = () => {\n setListingState(prev => ({ ...prev, itemToDelete: null }));\n };\n\n // Enhance destructive actions to include delete confirmation\n const enhancedDestructiveActions = useMemo(() => {\n if (!destructiveActionMenu) return undefined;\n\n return destructiveActionMenu.map(action => ({\n ...action,\n handleAction: action.label.toLowerCase().includes('delete')\n ? handleDeleteClick\n : action.handleAction\n }));\n }, [destructiveActionMenu]);\n\n //Handle pagination model\n const handlePaginationModel = (model: IPaginationModel) => {\n if (activePage.page_size != model?.limit) {\n updatePageInfo({ page_size: model.limit });\n }\n dispatch(setPaginationModel(model));\n }\n\n //Delete\n const deleteRecord = async (requestToDelete: any) => {\n const response: any = await dispatch(deleteApi(String(requestToDelete.id)));\n apiHelper(response, () => {\n enqueueSnackbar(\n ` ${title}: ${requestToDelete?.id} ${t('common.msg.deleted')}`,\n )\n getData()\n })\n };\n\n\n\n\n //clean up\n const cleanUp = useCallback(() => {\n dispatch(resetState())\n }, [dispatch, resetState]);\n\n // Data fetching\n const getData = useDataFetcher(\n tableColumns?.length ? tableColumns : activePage,\n { skip, limit },\n fetchApi,\n customeFilter,\n [],\n true,\n customFields\n\n )\n\n useEffect(() => {\n getData()\n }, [getData])\n\n useEffect(() => {\n return cleanUp;\n }, [cleanUp]);\n\n\n return (\n <section className={`listing-component ${className}`}>\n <ActionBar\n title={title}\n data={activePage?.views || []}\n setData={(views) => updatePageInfo({ views })}\n active={activePage.active_view}\n setActive={(tab) => updatePageInfo({ active_view: tab })}\n handleAddButton={handleAddButton}\n searchText={searchText || activePage.search || ''}\n handleSearch={handleSearchChange}\n disabledViews={disabledViews}\n fields={fields}\n isUseFields={isUseFields}\n selectedIds={listingState.selectedRows}\n pageName={pageName}\n importModuleName={importModuleName}\n button={showAddButton}\n actionBtn={actionButtons}\n />\n\n\n <>\n {activePage?.active_view === viewTypes.TABLE && (\n <MaterialTable\n rows={tableRows || []}\n columns={tableColumns}\n paginationModel={paginationModel}\n totalPages={total}\n columnOrder={[...columnOrder, ...activePage.column_order]}\n states={{ isLoading: loadinState || isLoading }}\n onSortingChange={onSortingChange ? (sort) => {\n updatePageInfo({ sort });\n onSortingChange(sort);\n } : undefined}\n enableColumnDragging={false}\n enableEditing={false}\n rowActionMenu={rowActionMenu}\n destructiveActionMenu={enhancedDestructiveActions}\n isResetRow={false}\n onSelectRow={handleRowSelection}\n handleColumnOrdering={onColumnOrdering ? (colOrder) => {\n const newOrder = colOrder.slice(1);\n updatePageInfo({ column_order: newOrder });\n onColumnOrdering(newOrder);\n } : undefined}\n onColumnVisibility={onColumnVisibility ? (columns) => {\n updatePageInfo({ visible_columns: columns });\n onColumnVisibility(columns);\n } : undefined}\n />\n )}\n\n {activePage?.active_view === viewTypes.GRID && GridComponent && (\n <GridComponent\n data={tableRows}\n rowActionMenu={rowActionMenu}\n destructiveActionMenu={enhancedDestructiveActions}\n />\n )}\n\n {!activePage?.active_view && !isLoading && (\n <Fallback\n heading={title}\n icon={fallbackIcon || <img src={logo.shippmentFallback} alt=\"fallback\" />}\n >\n {showAddButton && handleAddButton && (\n <Button\n variant='contained'\n startIcon={<AddIcon />}\n onClick={handleAddButton}\n >\n {`${t('common.add')} ${t('common.new')}`}\n </Button>\n )}\n </Fallback>\n )}\n\n <Footer\n total={total}\n paginationModel={{\n ...paginationModel,\n limit: activePage.page_size\n }}\n handlePaginationModel={handlePaginationChange}\n resource={paginationResource}\n enablePages={enablePages}\n />\n\n <ConfirmPopUp\n open={Boolean(listingState.itemToDelete)}\n onClose={handleDeleteCancel}\n onConfirm={handleDeleteConfirm}\n loading={listingState.isDeleting}\n title={deleteTitle || `${t('common.delete')} ${title}`}\n description={\n deleteDescription\n ? deleteDescription(listingState.itemToDelete)\n : `${t('common.deleteMsg')} ${title}: ${listingState.itemToDelete?.id || listingState.itemToDelete?.name || ''} ?`\n }\n />\n </>\n </section>\n );\n};\n\nexport default ListingComponent;\n"],"names":["title","tableColumns","columnOrder","rowActionMenu","destructiveActionMenu","handleAddButton","searchText","handleSearch","disabledViews","fields","selectedIds","pageName","importModuleName","showAddButton","actionButtons","paginationResource","enablePages","GridComponent","onSelectRow","onColumnOrdering","onColumnVisibility","onSortingChange","fallbackIcon","className","onDeleteConfirm","deleteTitle","deleteDescription","fetchApi","resetState","setPaginationModel","deleteApi","storeName","isUseFields","customeFilter","customFields","isLoading","loadinState","t","useTranslation","dispatch","useDispatch","activePage","updatePageInfo","usePages","paginationModel","rows","useAppSelector","store","pageNo","limit","pLimit","totalCount","page_size","skip","listingState","setListingState","useState","selectedRows","itemToDelete","isDeleting","total","Math","ceil","tableRows","useMemo","handleDeleteClick","item","prev","enhancedDestructiveActions","map","action","handleAction","label","toLowerCase","includes","handlePaginationModel","model","cleanUp","useCallback","getData","useDataFetcher","length","useEffect","jsxs","children","jsx","ActionBar","data","views","setData","active","active_view","setActive","tab","search","button","actionBtn","Fragment","viewTypes","TABLE","MaterialTable","columns","totalPages","column_order","states","sort","enableColumnDragging","enableEditing","isResetRow","selectedRowIds","row","original","id","handleColumnOrdering","colOrder","newOrder","slice","visible_columns","GRID","Fallback","heading","icon","src","logo","shippmentFallback","alt","Button","variant","startIcon","AddIcon","onClick","Footer","resource","ConfirmPopUp","open","Boolean","onClose","onConfirm","async","requestToDelete","response","String","apiHelper","enqueueSnackbar","deleteRecord","error","loading","description","_a","_b","name"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/listing/listing.tsx"],"sourcesContent":["import React, { useState, useMemo, useEffect, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport AddIcon from '@mui/icons-material/Add';\n\nimport { MaterialTable, ActionBar, Fallback, Footer, Button, ConfirmPopUp } from '../../components';\nimport { viewTypes } from '../../constants';\n\nimport { IListingComponentProps, IListingState } from './types'\nimport logo from '../../assets/images';\n\nimport './listing.scss';\nimport { useDataFetcher, apiHelper } from '../../hooks';\nimport { useDispatch } from 'react-redux';\nimport { usePages } from '../../hooks';\nimport { useAppSelector } from '../../redux';\nimport { enqueueSnackbar } from 'notistack';\n\nconst ListingComponent: React.FC<IListingComponentProps> = ({\n title,\n tableColumns,\n columnOrder = ['mrt-row-select'],\n rowActionMenu,\n destructiveActionMenu,\n handleAddButton,\n searchText,\n handleSearch,\n disabledViews = ['Kanban', 'Calendar', 'Gantt'],\n fields,\n selectedIds = [],\n pageName,\n importModuleName,\n showAddButton = true,\n actionButtons,\n paginationResource,\n enablePages = false,\n GridComponent,\n onSelectRow,\n onColumnOrdering,\n onColumnVisibility,\n onSortingChange,\n fallbackIcon,\n className = '',\n onDeleteConfirm,\n deleteTitle,\n deleteDescription,\n fetchApi,\n resetState,\n setPaginationModel,\n deleteApi,\n storeName,\n isUseFields,\n customeFilter,\n customFields,\n isLoading: loadinState\n}) => {\n const { t } = useTranslation();\n\n //dispatch\n const dispatch = useDispatch()\n\n //Page Context\n const { activePage, updatePageInfo } = usePages();\n //Store \n const {\n paginationModel,\n rows,\n isLoading,\n } = useAppSelector((store) => store?.[storeName]);\n console.log(\"🚀 ~ ListingComponent ~ rows:\", rows)\n\n\n const { pageNo, limit: pLimit, totalCount } = paginationModel;\n const limit = activePage.page_size || pLimit;\n const skip = limit * (pageNo - 1);\n\n\n // Local state\n const [listingState, setListingState] = useState<IListingState>({\n selectedRows: selectedIds,\n itemToDelete: null,\n isDeleting: false\n });\n\n // Calculate pagination values\n const total = Math.ceil(totalCount / limit);\n\n // Memoized table data\n const tableRows = useMemo(() => rows, [rows]);\n\n // Handle row selection\n const handleRowSelection = (selectedRows: any[]) => {\n const selectedRowIds = selectedRows.map((row) => row.original.id);\n setListingState(prev => ({ ...prev, selectedRows: selectedRowIds }));\n onSelectRow?.(selectedRows);\n };\n\n // Handle pagination changes\n const handlePaginationChange = (model: any) => {\n if (activePage.page_size !== model?.limit) {\n updatePageInfo({ page_size: model.limit });\n }\n handlePaginationModel(model);\n };\n\n // Handle search\n const handleSearchChange = (search: string) => {\n updatePageInfo({ search });\n handlePaginationModel({ pageNo: 1 });\n handleSearch?.(search);\n };\n\n // Handle delete confirmation\n const handleDeleteClick = (item: any) => {\n setListingState(prev => ({ ...prev, itemToDelete: item }));\n };\n\n const handleDeleteConfirm = async () => {\n if (!listingState.itemToDelete) return;\n\n setListingState(prev => ({ ...prev, isDeleting: true }));\n\n try {\n onDeleteConfirm ? await onDeleteConfirm(listingState.itemToDelete) : await deleteRecord(listingState.itemToDelete);\n setListingState(prev => ({ ...prev, itemToDelete: null, isDeleting: false }));\n } catch (error) {\n setListingState(prev => ({ ...prev, isDeleting: false }));\n }\n };\n\n const handleDeleteCancel = () => {\n setListingState(prev => ({ ...prev, itemToDelete: null }));\n };\n\n // Enhance destructive actions to include delete confirmation\n const enhancedDestructiveActions = useMemo(() => {\n if (!destructiveActionMenu) return undefined;\n\n return destructiveActionMenu.map(action => ({\n ...action,\n handleAction: action.label.toLowerCase().includes('delete')\n ? handleDeleteClick\n : action.handleAction\n }));\n }, [destructiveActionMenu]);\n\n //Handle pagination model\n const handlePaginationModel = (model: IPaginationModel) => {\n if (activePage.page_size != model?.limit) {\n updatePageInfo({ page_size: model.limit });\n }\n dispatch(setPaginationModel(model));\n }\n\n //Delete\n const deleteRecord = async (requestToDelete: any) => {\n const response: any = await dispatch(deleteApi(String(requestToDelete.id)));\n apiHelper(response, () => {\n enqueueSnackbar(\n ` ${title}: ${requestToDelete?.id} ${t('common.msg.deleted')}`,\n )\n getData()\n })\n };\n\n\n\n\n //clean up\n const cleanUp = useCallback(() => {\n dispatch(resetState())\n }, [dispatch, resetState]);\n\n // Data fetching\n const getData = useDataFetcher(\n tableColumns?.length ? tableColumns : activePage,\n { skip, limit },\n fetchApi,\n customeFilter,\n [],\n true,\n customFields\n\n )\n\n useEffect(() => {\n getData()\n }, [getData])\n\n useEffect(() => {\n return cleanUp;\n }, [cleanUp]);\n\n\n return (\n <section className={`listing-component ${className}`}>\n <ActionBar\n title={title}\n data={activePage?.views || []}\n setData={(views) => updatePageInfo({ views })}\n active={activePage.active_view}\n setActive={(tab) => updatePageInfo({ active_view: tab })}\n handleAddButton={handleAddButton}\n searchText={searchText || activePage.search || ''}\n handleSearch={handleSearchChange}\n disabledViews={disabledViews}\n fields={fields}\n isUseFields={isUseFields}\n selectedIds={listingState.selectedRows}\n pageName={pageName}\n importModuleName={importModuleName}\n button={showAddButton}\n actionBtn={actionButtons}\n />\n ssdssds\n\n <>\n {activePage?.active_view === viewTypes.TABLE && (\n < MaterialTable\n rows={tableRows || []}\n columns={tableColumns}\n paginationModel={paginationModel}\n totalPages={total}\n columnOrder={[...columnOrder, ...activePage.column_order]}\n states={{ isLoading: loadinState || isLoading }}\n onSortingChange={onSortingChange ? (sort) => {\n updatePageInfo({ sort });\n onSortingChange(sort);\n } : undefined}\n enableColumnDragging={false}\n enableEditing={false}\n rowActionMenu={rowActionMenu}\n destructiveActionMenu={enhancedDestructiveActions}\n isResetRow={false}\n onSelectRow={handleRowSelection}\n handleColumnOrdering={onColumnOrdering ? (colOrder) => {\n const newOrder = colOrder.slice(1);\n updatePageInfo({ column_order: newOrder });\n onColumnOrdering(newOrder);\n } : undefined}\n onColumnVisibility={onColumnVisibility ? (columns) => {\n updatePageInfo({ visible_columns: columns });\n onColumnVisibility(columns);\n } : undefined}\n />\n )}\n\n {activePage?.active_view === viewTypes.GRID && GridComponent && (\n <GridComponent\n data={tableRows}\n rowActionMenu={rowActionMenu}\n destructiveActionMenu={enhancedDestructiveActions}\n />\n )}\n\n {!activePage?.active_view && !isLoading && (\n <Fallback\n heading={title}\n icon={fallbackIcon || <img src={logo.shippmentFallback} alt=\"fallback\" />}\n >\n {showAddButton && handleAddButton && (\n <Button\n variant='contained'\n startIcon={<AddIcon />}\n onClick={handleAddButton}\n >\n {`${t('common.add')} ${t('common.new')}`}\n </Button>\n )}\n </Fallback>\n )}\n\n <Footer\n total={total}\n paginationModel={{\n ...paginationModel,\n limit: activePage.page_size\n }}\n handlePaginationModel={handlePaginationChange}\n resource={paginationResource}\n enablePages={enablePages}\n />\n\n <ConfirmPopUp\n open={Boolean(listingState.itemToDelete)}\n onClose={handleDeleteCancel}\n onConfirm={handleDeleteConfirm}\n loading={listingState.isDeleting}\n title={deleteTitle || `${t('common.delete')} ${title}`}\n description={\n deleteDescription\n ? deleteDescription(listingState.itemToDelete)\n : `${t('common.deleteMsg')} ${title}: ${listingState.itemToDelete?.id || listingState.itemToDelete?.name || ''} ?`\n }\n />\n </>\n </section>\n );\n};\n\nexport default ListingComponent;\n"],"names":["title","tableColumns","columnOrder","rowActionMenu","destructiveActionMenu","handleAddButton","searchText","handleSearch","disabledViews","fields","selectedIds","pageName","importModuleName","showAddButton","actionButtons","paginationResource","enablePages","GridComponent","onSelectRow","onColumnOrdering","onColumnVisibility","onSortingChange","fallbackIcon","className","onDeleteConfirm","deleteTitle","deleteDescription","fetchApi","resetState","setPaginationModel","deleteApi","storeName","isUseFields","customeFilter","customFields","isLoading","loadinState","t","useTranslation","dispatch","useDispatch","activePage","updatePageInfo","usePages","paginationModel","rows","useAppSelector","store","pageNo","limit","pLimit","totalCount","page_size","skip","listingState","setListingState","useState","selectedRows","itemToDelete","isDeleting","total","Math","ceil","tableRows","useMemo","handleDeleteClick","item","prev","enhancedDestructiveActions","map","action","handleAction","label","toLowerCase","includes","handlePaginationModel","model","cleanUp","useCallback","getData","useDataFetcher","length","useEffect","jsxs","children","jsx","ActionBar","data","views","setData","active","active_view","setActive","tab","search","button","actionBtn","Fragment","viewTypes","TABLE","MaterialTable","columns","totalPages","column_order","states","sort","enableColumnDragging","enableEditing","isResetRow","selectedRowIds","row","original","id","handleColumnOrdering","colOrder","newOrder","slice","visible_columns","GRID","Fallback","heading","icon","src","logo","shippmentFallback","alt","Button","variant","startIcon","AddIcon","onClick","Footer","resource","ConfirmPopUp","open","Boolean","onClose","onConfirm","async","requestToDelete","response","String","apiHelper","enqueueSnackbar","deleteRecord","error","loading","description","_a","_b","name"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../src/hooks/apiHelper.ts"],"sourcesContent":["import { enqueueSnackbar } from \"notistack\";\n\ntype ApiResponse = {\n meta?: {\n requestStatus?: string;\n };\n error?: {\n message?: string;\n };\n payload?:any\n};\n\ntype Callback = () => void;\n\nexport function apiHelper(res: ApiResponse, callBack?: Callback): void {\n if (res?.meta?.requestStatus === \"rejected\") {\n const errorMessage = (() => {\n try {\n return res.error?.message ? JSON.parse(res.error.message) : null;\n } catch {\n return { message: \"Something went wrong\" };\n }\n })();\n\n const message = errorMessage?.message?.replace(\"Error:\", \"\").trim() || \"Something went wrong\";\n\n enqueueSnackbar(message, {\n variant: \"error\",\n });\n return
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../src/hooks/apiHelper.ts"],"sourcesContent":["import { enqueueSnackbar } from \"notistack\";\n\ntype ApiResponse = {\n meta?: {\n requestStatus?: string;\n };\n error?: {\n message?: string;\n };\n payload?: any\n};\n\ntype Callback = () => void;\n\nexport function apiHelper(res: ApiResponse, callBack?: Callback): void {\n if (res?.meta?.requestStatus === \"rejected\") {\n const errorMessage = (() => {\n try {\n return res.error?.message ? JSON.parse(res.error.message) : null;\n } catch {\n return { message: \"Something went wrong\" };\n }\n })();\n\n const message = errorMessage?.message?.replace(\"Error:\", \"\").trim() || \"Something went wrong\";\n\n enqueueSnackbar(message, {\n variant: \"error\",\n });\n return\n }\n\n if (callBack && typeof callBack === \"function\") {\n callBack();\n } else if (callBack) {\n console.warn(\"Provided callBack is not a function.\");\n }\n}\n"],"names":["_a"],"mappings":";AAcO,SAAS,UAAU,KAAkB,UAA2B;;AACrE,QAAI,gCAAK,SAAL,mBAAW,mBAAkB,YAAY;AAC3C,UAAM,gBAAgB,MAAM;;AAC1B,UAAI;AACF,iBAAOA,MAAA,IAAI,UAAJ,gBAAAA,IAAW,WAAU,KAAK,MAAM,IAAI,MAAM,OAAO,IAAI;AAAA,MAC9D,QAAQ;AACN,eAAO,EAAE,SAAS,uBAAA;AAAA,MACpB;AAAA,IACF,GAAA;AAEA,UAAM,YAAU,kDAAc,YAAd,mBAAuB,QAAQ,UAAU,IAAI,WAAU;AAEvE,oBAAgB,SAAS;AAAA,MACvB,SAAS;AAAA,IAAA,CACV;AACD;AAAA,EACF;AAEA,MAAI,YAAY,OAAO,aAAa,YAAY;AAC9C,aAAA;AAAA,EACF,WAAW,UAAU;AACnB,YAAQ,KAAK,sCAAsC;AAAA,EACrD;AACF;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/hooks/apiHelper.ts"],"sourcesContent":["import { enqueueSnackbar } from \"notistack\";\n\ntype ApiResponse = {\n meta?: {\n requestStatus?: string;\n };\n error?: {\n message?: string;\n };\n payload?:any\n};\n\ntype Callback = () => void;\n\nexport function apiHelper(res: ApiResponse, callBack?: Callback): void {\n if (res?.meta?.requestStatus === \"rejected\") {\n const errorMessage = (() => {\n try {\n return res.error?.message ? JSON.parse(res.error.message) : null;\n } catch {\n return { message: \"Something went wrong\" };\n }\n })();\n\n const message = errorMessage?.message?.replace(\"Error:\", \"\").trim() || \"Something went wrong\";\n\n enqueueSnackbar(message, {\n variant: \"error\",\n });\n return
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/hooks/apiHelper.ts"],"sourcesContent":["import { enqueueSnackbar } from \"notistack\";\n\ntype ApiResponse = {\n meta?: {\n requestStatus?: string;\n };\n error?: {\n message?: string;\n };\n payload?: any\n};\n\ntype Callback = () => void;\n\nexport function apiHelper(res: ApiResponse, callBack?: Callback): void {\n if (res?.meta?.requestStatus === \"rejected\") {\n const errorMessage = (() => {\n try {\n return res.error?.message ? JSON.parse(res.error.message) : null;\n } catch {\n return { message: \"Something went wrong\" };\n }\n })();\n\n const message = errorMessage?.message?.replace(\"Error:\", \"\").trim() || \"Something went wrong\";\n\n enqueueSnackbar(message, {\n variant: \"error\",\n });\n return\n }\n\n if (callBack && typeof callBack === \"function\") {\n callBack();\n } else if (callBack) {\n console.warn(\"Provided callBack is not a function.\");\n }\n}\n"],"names":["res","callBack","_a","meta","requestStatus","errorMessage","error","message","JSON","parse","_b","replace","trim","enqueueSnackbar","variant"],"mappings":"2JAcO,SAAmBA,EAAkBC,WAC1C,GAAiC,cAA7B,OAAAC,EAAA,MAAAF,OAAA,EAAAA,EAAKG,WAAL,EAAAD,EAAWE,eAA8B,CAC3C,MAAMC,cACJ,IACE,OAAO,OAAAH,EAAAF,EAAIM,YAAJ,EAAAJ,EAAWK,SAAUC,KAAKC,MAAMT,EAAIM,MAAMC,SAAW,IAC9D,CAAA,MACE,MAAO,CAAEA,QAAS,uBACpB,CACF,KAEMA,GAAU,OAAAG,EAAA,MAAAL,OAAA,EAAAA,EAAcE,kBAASI,QAAQ,SAAU,IAAIC,SAAU,uBAKvE,YAHAC,EAAAA,gBAAgBN,EAAS,CACvBO,QAAS,SAGb,CAEIb,GAAgC,mBAAbA,GACrBA,GAIJ"}
|
|
@@ -8,6 +8,7 @@ function apiHelper({
|
|
|
8
8
|
succsessMessage = null
|
|
9
9
|
}) {
|
|
10
10
|
var _a, _b;
|
|
11
|
+
console.log("🚀 ~ apiHelper ~ succsessMessage:", succsessMessage);
|
|
11
12
|
if (((_a = res == null ? void 0 : res.meta) == null ? void 0 : _a.requestStatus) === "rejected") {
|
|
12
13
|
const errorMessage = (() => {
|
|
13
14
|
var _a2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../src/hooks/useApi.tsx"],"sourcesContent":["import { enqueueSnackbar } from 'notistack';\nimport { useCallback, useState } from 'react';\ninterface UseApiProps {\n apiFunc: any;\n onSuccess?: any;\n onError?: any;\n enableLoading?: any;\n successMessage?: string;\n errorMessage?: string | null;\n loadingState?: any;\n showError?: boolean;\n}\n\ntype ApiResponse = {\n meta?: {\n requestStatus?: string;\n };\n error?: {\n message?: string;\n };\n payload?: any\n};\n\ntype Callback = () => void;\n\nfunction apiHelper({\n res,\n callBack,\n showError = true,\n errorCallback,\n succsessMessage = null,\n}: {\n res: ApiResponse;\n callBack?: Callback;\n showError?: boolean;\n errorCallback?: (error: any) => void;\n succsessMessage?: string | null;\n}): void {\n if (res?.meta?.requestStatus === \"rejected\") {\n const errorMessage = (() => {\n try {\n return res.error?.message ? JSON.parse(res.error.message) : null;\n } catch {\n return { message: \"Something went wrong\" };\n }\n })();\n\n const message =\n errorMessage?.message?.replace(\"Error:\", \"\").trim() ||\n \"Something went wrong\";\n if (showError) {\n enqueueSnackbar(message, { variant: \"error\" });\n }\n\n if (errorCallback && typeof errorCallback === \"function\") {\n errorCallback(message);\n }\n return;\n }\n if (succsessMessage) {\n enqueueSnackbar(succsessMessage);\n }\n if (callBack && typeof callBack === \"function\") {\n callBack();\n }\n}\n\nexport default function useApi() {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n\n const callApi = useCallback(async ({\n apiFunc,\n onSuccess,\n onError,\n successMessage,\n errorMessage,\n loadingState,\n enableLoading = true,\n showError = true,\n }: UseApiProps) => {\n if (enableLoading) setLoading(true);\n loadingState?.(true);\n const response = await apiFunc();\n if (enableLoading) setLoading(false);\n loadingState?.(false);\n apiHelper(\n {\n res: response,\n callBack: () => {\n onSuccess?.(response);\n },\n errorCallback: (err) => {\n onError?.(response);\n setError(errorMessage || err);\n },\n succsessMessage: successMessage,\n showError,\n }\n )\n\n return { response, error }\n\n }, [])\n\n return { callApi, loading, error };\n}\n"],"names":["_a"],"mappings":";;AAyBA,SAAS,UAAU;AAAA,EACf;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,kBAAkB;AACtB,GAMS;;AACL,QAAI,gCAAK,SAAL,mBAAW,mBAAkB,YAAY;AACzC,UAAM,gBAAgB,MAAM;;AACxB,UAAI;AACA,iBAAOA,MAAA,IAAI,UAAJ,gBAAAA,IAAW,WAAU,KAAK,MAAM,IAAI,MAAM,OAAO,IAAI;AAAA,MAChE,QAAQ;AACJ,eAAO,EAAE,SAAS,uBAAA;AAAA,MACtB;AAAA,IACJ,GAAA;AAEA,UAAM,YACF,kDAAc,YAAd,mBAAuB,QAAQ,UAAU,IAAI,WAC7C;AACJ,QAAI,WAAW;AACX,sBAAgB,SAAS,EAAE,SAAS,QAAA,CAAS;AAAA,IACjD;AAEA,QAAI,iBAAiB,OAAO,kBAAkB,YAAY;AACtD,oBAAc,OAAO;AAAA,IACzB;AACA;AAAA,EACJ;AACA,MAAI,iBAAiB;AACjB,oBAAgB,eAAe;AAAA,EACnC;AACA,MAAI,YAAY,OAAO,aAAa,YAAY;AAC5C,aAAA;AAAA,EACJ;AACJ;AAEA,SAAwB,SAAS;AAC7B,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,IAAI;AAEvC,QAAM,UAAU,YAAY,OAAO;AAAA,IAC/B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,YAAY;AAAA,EAAA,MACG;AACf,QAAI,0BAA0B,IAAI;AAClC,iDAAe;AACf,UAAM,WAAW,MAAM,QAAA;AACvB,QAAI,0BAA0B,KAAK;AACnC,iDAAe;AACf;AAAA,MACI;AAAA,QACI,KAAK;AAAA,QACL,UAAU,MAAM;AACZ,iDAAY;AAAA,QAChB;AAAA,QACA,eAAe,CAAC,QAAQ;AACpB,6CAAU;AACV,mBAAS,gBAAgB,GAAG;AAAA,QAChC;AAAA,QACA,iBAAiB;AAAA,QACjB;AAAA,MAAA;AAAA,IACJ;AAGJ,WAAO,EAAE,UAAU,MAAA;AAAA,EAEvB,GAAG,CAAA,CAAE;AAEL,SAAO,EAAE,SAAS,SAAS,MAAA;AAC/B;"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../src/hooks/useApi.tsx"],"sourcesContent":["import { enqueueSnackbar } from 'notistack';\nimport { useCallback, useState } from 'react';\ninterface UseApiProps {\n apiFunc: any;\n onSuccess?: any;\n onError?: any;\n enableLoading?: any;\n successMessage?: string;\n errorMessage?: string | null;\n loadingState?: any;\n showError?: boolean;\n}\n\ntype ApiResponse = {\n meta?: {\n requestStatus?: string;\n };\n error?: {\n message?: string;\n };\n payload?: any\n};\n\ntype Callback = () => void;\n\nfunction apiHelper({\n res,\n callBack,\n showError = true,\n errorCallback,\n succsessMessage = null,\n}: {\n res: ApiResponse;\n callBack?: Callback;\n showError?: boolean;\n errorCallback?: (error: any) => void;\n succsessMessage?: string | null;\n}): void {\n console.log(\"🚀 ~ apiHelper ~ succsessMessage:\", succsessMessage)\n if (res?.meta?.requestStatus === \"rejected\") {\n const errorMessage = (() => {\n try {\n return res.error?.message ? JSON.parse(res.error.message) : null;\n } catch {\n return { message: \"Something went wrong\" };\n }\n })();\n\n const message =\n errorMessage?.message?.replace(\"Error:\", \"\").trim() ||\n \"Something went wrong\";\n if (showError) {\n enqueueSnackbar(message, { variant: \"error\" });\n }\n\n if (errorCallback && typeof errorCallback === \"function\") {\n errorCallback(message);\n }\n return;\n }\n if (succsessMessage) {\n enqueueSnackbar(succsessMessage);\n }\n if (callBack && typeof callBack === \"function\") {\n callBack();\n }\n}\n\nexport default function useApi() {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n\n const callApi = useCallback(async ({\n apiFunc,\n onSuccess,\n onError,\n successMessage,\n errorMessage,\n loadingState,\n enableLoading = true,\n showError = true,\n }: UseApiProps) => {\n if (enableLoading) setLoading(true);\n loadingState?.(true);\n const response = await apiFunc();\n if (enableLoading) setLoading(false);\n loadingState?.(false);\n apiHelper(\n {\n res: response,\n callBack: () => {\n onSuccess?.(response);\n },\n errorCallback: (err) => {\n onError?.(response);\n setError(errorMessage || err);\n },\n succsessMessage: successMessage,\n showError,\n }\n )\n\n return { response, error }\n\n }, [])\n\n return { callApi, loading, error };\n}\n"],"names":["_a"],"mappings":";;AAyBA,SAAS,UAAU;AAAA,EACf;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,kBAAkB;AACtB,GAMS;;AACL,UAAQ,IAAI,qCAAqC,eAAe;AAChE,QAAI,gCAAK,SAAL,mBAAW,mBAAkB,YAAY;AACzC,UAAM,gBAAgB,MAAM;;AACxB,UAAI;AACA,iBAAOA,MAAA,IAAI,UAAJ,gBAAAA,IAAW,WAAU,KAAK,MAAM,IAAI,MAAM,OAAO,IAAI;AAAA,MAChE,QAAQ;AACJ,eAAO,EAAE,SAAS,uBAAA;AAAA,MACtB;AAAA,IACJ,GAAA;AAEA,UAAM,YACF,kDAAc,YAAd,mBAAuB,QAAQ,UAAU,IAAI,WAC7C;AACJ,QAAI,WAAW;AACX,sBAAgB,SAAS,EAAE,SAAS,QAAA,CAAS;AAAA,IACjD;AAEA,QAAI,iBAAiB,OAAO,kBAAkB,YAAY;AACtD,oBAAc,OAAO;AAAA,IACzB;AACA;AAAA,EACJ;AACA,MAAI,iBAAiB;AACjB,oBAAgB,eAAe;AAAA,EACnC;AACA,MAAI,YAAY,OAAO,aAAa,YAAY;AAC5C,aAAA;AAAA,EACJ;AACJ;AAEA,SAAwB,SAAS;AAC7B,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,IAAI;AAEvC,QAAM,UAAU,YAAY,OAAO;AAAA,IAC/B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,YAAY;AAAA,EAAA,MACG;AACf,QAAI,0BAA0B,IAAI;AAClC,iDAAe;AACf,UAAM,WAAW,MAAM,QAAA;AACvB,QAAI,0BAA0B,KAAK;AACnC,iDAAe;AACf;AAAA,MACI;AAAA,QACI,KAAK;AAAA,QACL,UAAU,MAAM;AACZ,iDAAY;AAAA,QAChB;AAAA,QACA,eAAe,CAAC,QAAQ;AACpB,6CAAU;AACV,mBAAS,gBAAgB,GAAG;AAAA,QAChC;AAAA,QACA,iBAAiB;AAAA,QACjB;AAAA,MAAA;AAAA,IACJ;AAGJ,WAAO,EAAE,UAAU,MAAA;AAAA,EAEvB,GAAG,CAAA,CAAE;AAEL,SAAO,EAAE,SAAS,SAAS,MAAA;AAC/B;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/hooks/useApi.tsx"],"sourcesContent":["import { enqueueSnackbar } from 'notistack';\nimport { useCallback, useState } from 'react';\ninterface UseApiProps {\n apiFunc: any;\n onSuccess?: any;\n onError?: any;\n enableLoading?: any;\n successMessage?: string;\n errorMessage?: string | null;\n loadingState?: any;\n showError?: boolean;\n}\n\ntype ApiResponse = {\n meta?: {\n requestStatus?: string;\n };\n error?: {\n message?: string;\n };\n payload?: any\n};\n\ntype Callback = () => void;\n\nfunction apiHelper({\n res,\n callBack,\n showError = true,\n errorCallback,\n succsessMessage = null,\n}: {\n res: ApiResponse;\n callBack?: Callback;\n showError?: boolean;\n errorCallback?: (error: any) => void;\n succsessMessage?: string | null;\n}): void {\n if (res?.meta?.requestStatus === \"rejected\") {\n const errorMessage = (() => {\n try {\n return res.error?.message ? JSON.parse(res.error.message) : null;\n } catch {\n return { message: \"Something went wrong\" };\n }\n })();\n\n const message =\n errorMessage?.message?.replace(\"Error:\", \"\").trim() ||\n \"Something went wrong\";\n if (showError) {\n enqueueSnackbar(message, { variant: \"error\" });\n }\n\n if (errorCallback && typeof errorCallback === \"function\") {\n errorCallback(message);\n }\n return;\n }\n if (succsessMessage) {\n enqueueSnackbar(succsessMessage);\n }\n if (callBack && typeof callBack === \"function\") {\n callBack();\n }\n}\n\nexport default function useApi() {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n\n const callApi = useCallback(async ({\n apiFunc,\n onSuccess,\n onError,\n successMessage,\n errorMessage,\n loadingState,\n enableLoading = true,\n showError = true,\n }: UseApiProps) => {\n if (enableLoading) setLoading(true);\n loadingState?.(true);\n const response = await apiFunc();\n if (enableLoading) setLoading(false);\n loadingState?.(false);\n apiHelper(\n {\n res: response,\n callBack: () => {\n onSuccess?.(response);\n },\n errorCallback: (err) => {\n onError?.(response);\n setError(errorMessage || err);\n },\n succsessMessage: successMessage,\n showError,\n }\n )\n\n return { response, error }\n\n }, [])\n\n return { callApi, loading, error };\n}\n"],"names":["loading","setLoading","useState","error","setError","callApi","useCallback","async","apiFunc","onSuccess","onError","successMessage","errorMessage","loadingState","enableLoading","showError","response","res","callBack","errorCallback","succsessMessage","_a","meta","requestStatus","message","JSON","parse","_b","replace","trim","enqueueSnackbar","variant","apiHelper","err"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/hooks/useApi.tsx"],"sourcesContent":["import { enqueueSnackbar } from 'notistack';\nimport { useCallback, useState } from 'react';\ninterface UseApiProps {\n apiFunc: any;\n onSuccess?: any;\n onError?: any;\n enableLoading?: any;\n successMessage?: string;\n errorMessage?: string | null;\n loadingState?: any;\n showError?: boolean;\n}\n\ntype ApiResponse = {\n meta?: {\n requestStatus?: string;\n };\n error?: {\n message?: string;\n };\n payload?: any\n};\n\ntype Callback = () => void;\n\nfunction apiHelper({\n res,\n callBack,\n showError = true,\n errorCallback,\n succsessMessage = null,\n}: {\n res: ApiResponse;\n callBack?: Callback;\n showError?: boolean;\n errorCallback?: (error: any) => void;\n succsessMessage?: string | null;\n}): void {\n console.log(\"🚀 ~ apiHelper ~ succsessMessage:\", succsessMessage)\n if (res?.meta?.requestStatus === \"rejected\") {\n const errorMessage = (() => {\n try {\n return res.error?.message ? JSON.parse(res.error.message) : null;\n } catch {\n return { message: \"Something went wrong\" };\n }\n })();\n\n const message =\n errorMessage?.message?.replace(\"Error:\", \"\").trim() ||\n \"Something went wrong\";\n if (showError) {\n enqueueSnackbar(message, { variant: \"error\" });\n }\n\n if (errorCallback && typeof errorCallback === \"function\") {\n errorCallback(message);\n }\n return;\n }\n if (succsessMessage) {\n enqueueSnackbar(succsessMessage);\n }\n if (callBack && typeof callBack === \"function\") {\n callBack();\n }\n}\n\nexport default function useApi() {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n\n const callApi = useCallback(async ({\n apiFunc,\n onSuccess,\n onError,\n successMessage,\n errorMessage,\n loadingState,\n enableLoading = true,\n showError = true,\n }: UseApiProps) => {\n if (enableLoading) setLoading(true);\n loadingState?.(true);\n const response = await apiFunc();\n if (enableLoading) setLoading(false);\n loadingState?.(false);\n apiHelper(\n {\n res: response,\n callBack: () => {\n onSuccess?.(response);\n },\n errorCallback: (err) => {\n onError?.(response);\n setError(errorMessage || err);\n },\n succsessMessage: successMessage,\n showError,\n }\n )\n\n return { response, error }\n\n }, [])\n\n return { callApi, loading, error };\n}\n"],"names":["loading","setLoading","useState","error","setError","callApi","useCallback","async","apiFunc","onSuccess","onError","successMessage","errorMessage","loadingState","enableLoading","showError","response","res","callBack","errorCallback","succsessMessage","_a","meta","requestStatus","message","JSON","parse","_b","replace","trim","enqueueSnackbar","variant","apiHelper","err"],"mappings":"4KAoEA,WACI,MAAOA,EAASC,GAAcC,EAAAA,UAAS,IAChCC,EAAOC,GAAYF,EAAAA,SAAS,MAoCnC,MAAO,CAAEG,QAlCOC,EAAAA,YAAYC,OACxBC,UACAC,YACAC,UACAC,iBACAC,eACAC,eACAC,iBAAgB,EAChBC,aAAY,MAERD,MAA0B,GAC9B,MAAAD,GAAAA,GAAe,GACf,MAAMG,QAAiBR,IAkBvB,OAjBIM,MAA0B,GAC9B,MAAAD,GAAAA,GAAe,GA7DvB,UAAmBI,IACfA,EAAAC,SACAA,EAAAH,UACAA,GAAY,EAAAI,cACZA,EAAAC,gBACAA,EAAkB,eASlB,GAAiC,cAA7B,OAAAC,EAAA,MAAAJ,OAAA,EAAAA,EAAKK,WAAL,EAAAD,EAAWE,eAA8B,CACzC,MAAMX,cACF,IACI,OAAO,OAAAS,EAAAJ,EAAId,YAAJ,EAAAkB,EAAWG,SAAUC,KAAKC,MAAMT,EAAId,MAAMqB,SAAW,IAChE,CAAA,MACI,MAAO,CAAEA,QAAS,uBACtB,CACJ,KAEMA,GACF,OAAAG,EAAA,MAAAf,OAAA,EAAAA,EAAcY,kBAASI,QAAQ,SAAU,IAAIC,SAC7C,uBAQJ,OAPId,GACAe,EAAAA,gBAAgBN,EAAS,CAAEO,QAAS,eAGpCZ,GAA0C,mBAAlBA,GACxBA,EAAcK,GAGtB,CACIJ,GACAU,EAAAA,gBAAgBV,GAEhBF,GAAgC,mBAAbA,GACnBA,GAER,CAqBQc,CACI,CACIf,IAAKD,EACLE,SAAU,KACN,MAAAT,GAAAA,EAAYO,IAEhBG,cAAgBc,IACZ,MAAAvB,GAAAA,EAAUM,GACVZ,EAASQ,GAAgBqB,IAE7Bb,gBAAiBT,EACjBI,cAID,CAAEC,WAAUb,UAEpB,IAEeH,UAASG,QAC/B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getDefaultExportFromCjs } from "../../../../../_virtual/_commonjsHelpers/index.esm.js";
|
|
2
|
-
import { __module as dist } from "../../../../../_virtual/index/index.
|
|
2
|
+
import { __module as dist } from "../../../../../_virtual/index/index.esm11.js";
|
|
3
3
|
import React__default from "react";
|
|
4
4
|
import ReactDOM__default from "react-dom";
|
|
5
5
|
import require$$0 from "react-is";
|