@orbe-agro/client-core 5.3.274 → 5.3.276
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/@ecme/components/shared/DataTable.js +22 -8
- package/dist/@ecme/components/shared/DataTable.js.map +1 -1
- package/dist/@types/@ecme/components/shared/DataTable.d.ts +1 -0
- package/dist/@types/@ecme/components/shared/DataTable.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/DadosMestres/Sap/fornecedor.endpoint.config.d.ts +6 -0
- package/dist/@types/base/configs/endpoints.config/DadosMestres/Sap/fornecedor.endpoint.config.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/modules.submenu/DadosMestres/dadosMestres.navigation.d.ts.map +1 -1
- package/dist/@types/base/services/modules/DadosMestres/Sap/FornecedorService.d.ts +3 -0
- package/dist/@types/base/services/modules/DadosMestres/Sap/FornecedorService.d.ts.map +1 -0
- package/dist/base/configs/endpoints.config/DadosMestres/Sap/fornecedor.endpoint.config.js +9 -0
- package/dist/base/configs/endpoints.config/DadosMestres/Sap/fornecedor.endpoint.config.js.map +1 -0
- package/dist/base/configs/navigation.config/modules.submenu/DadosMestres/dadosMestres.navigation.js +10 -0
- package/dist/base/configs/navigation.config/modules.submenu/DadosMestres/dadosMestres.navigation.js.map +1 -1
- package/dist/base/services/modules/DadosMestres/Sap/FornecedorService.js +32 -0
- package/dist/base/services/modules/DadosMestres/Sap/FornecedorService.js.map +1 -0
- package/lib/@ecme/components/shared/DataTable.tsx +28 -9
- package/lib/base/configs/endpoints.config/DadosMestres/Sap/fornecedor.endpoint.config.ts +8 -0
- package/lib/base/configs/navigation.config/modules.submenu/DadosMestres/dadosMestres.navigation.ts +12 -0
- package/lib/base/services/modules/DadosMestres/Sap/FornecedorService.ts +33 -0
- package/package.json +1 -1
|
@@ -197,16 +197,30 @@ function DataTable(props) {
|
|
|
197
197
|
}
|
|
198
198
|
}, [table.getState().rowSelection, onSelectionChange, table]);
|
|
199
199
|
useEffect(() => {
|
|
200
|
-
if (props.
|
|
201
|
-
const
|
|
202
|
-
|
|
203
|
-
|
|
200
|
+
if (props.selectedRows && data.length > 0) {
|
|
201
|
+
const externalSelection = {};
|
|
202
|
+
data.forEach((row, index) => {
|
|
203
|
+
const isSelected = props.selectedRows?.some((selectedRow) => selectedRow === row);
|
|
204
|
+
if (isSelected) {
|
|
205
|
+
externalSelection[index] = true;
|
|
206
|
+
}
|
|
204
207
|
});
|
|
205
|
-
setRowSelection(
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
+
setRowSelection(externalSelection);
|
|
209
|
+
}
|
|
210
|
+
}, [props.selectedRows, data]);
|
|
211
|
+
useEffect(() => {
|
|
212
|
+
if (!props.selectedRows) {
|
|
213
|
+
if (props.isAllSelected === true && table) {
|
|
214
|
+
const all = {};
|
|
215
|
+
table.getRowModel().rows.forEach((row) => {
|
|
216
|
+
all[row.id] = true;
|
|
217
|
+
});
|
|
218
|
+
setRowSelection(all);
|
|
219
|
+
} else if (props.isAllSelected === false) {
|
|
220
|
+
setRowSelection({});
|
|
221
|
+
}
|
|
208
222
|
}
|
|
209
|
-
}, [props.isAllSelected]);
|
|
223
|
+
}, [props.isAllSelected, table, props.selectedRows]);
|
|
210
224
|
return /* @__PURE__ */ jsxs(Loading, { loading: Boolean(loading && data.length !== 0), type: "cover", children: [
|
|
211
225
|
/* @__PURE__ */ jsxs(Table, { ...rest, children: [
|
|
212
226
|
/* @__PURE__ */ jsx(THead, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(Tr, { children: headerGroup.headers.map((header) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.js","sources":["../../../../lib/@ecme/components/shared/DataTable.tsx"],"sourcesContent":["import FileNotFound from '@/assets/svg/FileNotFound'\nimport type { CheckboxProps } from '@/components/ui/Checkbox'\nimport Checkbox from '@/components/ui/Checkbox'\nimport Pagination from '@/components/ui/Pagination'\nimport Select from '@/components/ui/Select'\nimport type { SkeletonProps } from '@/components/ui/Skeleton'\nimport type { TableProps } from '@/components/ui/Table'\nimport Table from '@/components/ui/Table'\nimport {\n CellContext,\n ColumnDef,\n ColumnSort,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n Row,\n useReactTable,\n} from '@tanstack/react-table'\nimport classNames from 'classnames'\nimport type { ChangeEvent, ReactNode, Ref } from 'react'\nimport {\n Fragment,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState\n} from 'react'\nimport { useTranslation } from 'react-i18next'\nimport TableRowSkeleton from './loaders/TableRowSkeleton'\nimport Loading from './Loading'\n\nexport type OnSortParam = { order: 'asc' | 'desc' | ''; key: string | number }\n\nexport type DataTableProps<T> = {\n columns: ColumnDef<T>[]\n customNoDataIcon?: ReactNode\n data?: T[]\n loading?: boolean\n noData?: boolean\n instanceId?: string\n onCheckBoxChange?: (checked: boolean, row: T) => void\n onIndeterminateCheckBoxChange?: (checked: boolean, rows: Row<T>[]) => void\n onPaginationChange?: (page: number) => void\n onSelectChange?: (num: number) => void\n onSort?: (sort: OnSortParam) => void\n pageSizes?: number[]\n manualSorting?: boolean\n selectable?: boolean\n skeletonAvatarColumns?: number[]\n skeletonAvatarProps?: SkeletonProps\n pagingData?: {\n total: number\n pageIndex: number\n pageSize: number\n }\n checkboxChecked?: (row: T) => boolean\n indeterminateCheckboxChecked?: (row: Row<T>[]) => boolean\n ref?: Ref<DataTableResetHandle | HTMLTableElement>\n onSelectionChange?: (selected: T[]) => void\n renderSubComponent?: (row: Row<T>) => React.ReactNode\n getRowCanExpand?: (row: Row<T>) => boolean\n hidePagination?: boolean\n isAllSelected?: boolean\n} & TableProps\n\nexport type CheckBoxChangeEvent = ChangeEvent<HTMLInputElement>\n\nexport interface IndeterminateCheckboxProps\n extends Omit<CheckboxProps, 'onChange'> {\n onChange: (event: CheckBoxChangeEvent) => void\n indeterminate: boolean\n onCheckBoxChange?: (event: CheckBoxChangeEvent) => void\n onIndeterminateCheckBoxChange?: (event: CheckBoxChangeEvent) => void\n}\n\nconst { Tr, Th, Td, THead, TBody, Sorter } = Table\n\nconst IndeterminateCheckbox = (props: IndeterminateCheckboxProps) => {\n const {\n indeterminate,\n onChange,\n onCheckBoxChange,\n onIndeterminateCheckBoxChange,\n ...rest\n } = props\n\n const ref = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (typeof indeterminate === 'boolean' && ref.current) {\n ref.current.indeterminate = !rest.checked && indeterminate\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref, indeterminate])\n\n const handleChange = (e: CheckBoxChangeEvent) => {\n onChange(e)\n onCheckBoxChange?.(e)\n onIndeterminateCheckBoxChange?.(e)\n }\n\n return (\n <Checkbox\n ref={ref}\n className=\"mb-0\"\n onChange={(_, e) => handleChange(e)}\n {...rest}\n />\n )\n}\n\nexport type DataTableResetHandle = {\n resetSorting: () => void\n resetSelected: () => void\n}\n\nfunction DataTable<T>(props: DataTableProps<T>) {\n const {\n skeletonAvatarColumns,\n columns: columnsProp = [],\n data = [],\n customNoDataIcon,\n loading,\n noData,\n onCheckBoxChange,\n onIndeterminateCheckBoxChange,\n onPaginationChange,\n onSelectChange,\n onSort,\n pageSizes = [10, 25, 50, 100],\n selectable = false,\n skeletonAvatarProps,\n pagingData = {\n total: 0,\n pageIndex: 1,\n pageSize: 10,\n },\n checkboxChecked,\n indeterminateCheckboxChecked,\n instanceId = 'data-table',\n ref,\n renderSubComponent = () => null,\n getRowCanExpand = () => false,\n onSelectionChange,\n hidePagination = false,\n ...rest\n } = props\n\n const { pageSize, pageIndex, total } = pagingData\n\n const [sorting, setSorting] = useState<ColumnSort[] | null>(null)\n const [selection, setRowSelection] = useState({})\n\n const { t } = useTranslation()\n\n const pageSizeOption = useMemo(\n () =>\n pageSizes.map((number) => ({\n value: number,\n label: `${number} / ${t('common.table.pageAbbr')}`,\n })),\n [pageSizes],\n )\n\n useEffect(() => {\n if (Array.isArray(sorting)) {\n const sortOrder =\n sorting.length > 0 ? (sorting[0].desc ? 'desc' : 'asc') : ''\n const id = sorting.length > 0 ? sorting[0].id : ''\n onSort?.({ order: sortOrder, key: id })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sorting])\n\n const handleIndeterminateCheckBoxChange = (\n checked: boolean,\n rows: Row<T>[],\n ) => {\n if (!loading) {\n onIndeterminateCheckBoxChange?.(checked, rows)\n }\n }\n\n const handleCheckBoxChange = (checked: boolean, row: T) => {\n if (!loading) {\n onCheckBoxChange?.(checked, row)\n }\n }\n\n const finalColumns: ColumnDef<T>[] = useMemo(() => {\n const columns = columnsProp\n\n if (selectable) {\n return [\n {\n id: 'select',\n maxSize: 50,\n header: ({ table }) => (\n <IndeterminateCheckbox\n checked={\n indeterminateCheckboxChecked\n ? indeterminateCheckboxChecked(\n table.getRowModel().rows,\n )\n : table.getIsAllRowsSelected()\n }\n indeterminate={table.getIsSomeRowsSelected()}\n onChange={table.getToggleAllRowsSelectedHandler()}\n onIndeterminateCheckBoxChange={(e) => {\n handleIndeterminateCheckBoxChange(\n e.target.checked,\n table.getRowModel().rows,\n )\n }}\n />\n ),\n cell: ({ row }) => (\n <IndeterminateCheckbox\n checked={\n checkboxChecked\n ? checkboxChecked(row.original)\n : row.getIsSelected()\n }\n disabled={!row.getCanSelect()}\n indeterminate={row.getIsSomeSelected()}\n onChange={row.getToggleSelectedHandler()}\n onCheckBoxChange={(e) =>\n handleCheckBoxChange(\n e.target.checked,\n row.original,\n )\n }\n />\n ),\n },\n ...columns,\n ]\n }\n return columns\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [columnsProp, selectable, loading, checkboxChecked])\n\n const table = useReactTable({\n data,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n columns: finalColumns,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n manualPagination: true,\n manualSorting: props.manualSorting ?? false,\n onSortingChange: (sorter) => {\n setSorting(sorter as ColumnSort[])\n },\n onRowSelectionChange: setRowSelection,\n state: {\n sorting: sorting as ColumnSort[],\n rowSelection: selection,\n },\n getRowCanExpand,\n })\n\n const resetSorting = () => {\n table.resetSorting()\n }\n\n const resetSelected = () => {\n table.resetRowSelection(true)\n }\n\n useImperativeHandle(ref, () => ({\n resetSorting,\n resetSelected,\n }))\n\n const handlePaginationChange = (page: number) => {\n if (!loading) {\n resetSelected()\n onPaginationChange?.(page)\n }\n }\n\n const handleSelectChange = (value?: number) => {\n if (!loading) {\n onSelectChange?.(Number(value))\n }\n }\n\n const prevSelectedRef = useRef<T[]>([])\n\n useEffect(() => {\n if (!onSelectionChange) return\n\n const selectedRows = table\n .getSelectedRowModel()\n .rows.map((r) => r.original as T)\n\n const isEqual =\n selectedRows.length === prevSelectedRef.current.length &&\n selectedRows.every(\n (item, idx) => item === prevSelectedRef.current[idx],\n )\n\n if (!isEqual) {\n prevSelectedRef.current = selectedRows\n onSelectionChange(selectedRows)\n }\n }, [table.getState().rowSelection, onSelectionChange, table])\n\n useEffect(() => {\n if (props.isAllSelected && table) {\n const all = {}\n table.getRowModel().rows.forEach((row) => {\n all[row.id] = true\n })\n setRowSelection(all)\n } else {\n setRowSelection({})\n }\n }, [props.isAllSelected])\n\n return (\n <Loading loading={Boolean(loading && data.length !== 0)} type=\"cover\">\n <Table {...rest}>\n <THead>\n {table.getHeaderGroups().map((headerGroup) => (\n <Tr key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n // 1. LEITURA E VALIDAÇÕES DO ALINHAMENTO\n const headerAlign = (header.column.columnDef as any).meta?.headerAlign || 'between';\n\n let justifyClass = 'justify-between'; // Padrão: Nome Esquerda, Sorter Direita\n\n // Flag para o alinhamento complexo desejado\n const sorterEnd = headerAlign === 'name-center-sorter-end';\n\n // Define a classe de justificação principal para os alinhamentos simples\n if (headerAlign === 'center') {\n justifyClass = 'justify-center'; // Nome + Sorter juntos no centro\n } else if (headerAlign === 'start') {\n justifyClass = 'justify-start'; // Nome + Sorter juntos na esquerda\n } else if (headerAlign === 'end') {\n justifyClass = 'justify-end'; // Nome + Sorter juntos na direita\n }\n\n // Se for o layout complexo, usamos 'justify-center' como base\n if (sorterEnd) {\n // Usamos justify-center, e o ml-auto do Sorter o empurra para o canto.\n justifyClass = 'justify-center';\n }\n\n // Define classes para o SPAN do nome (Ocupa largura total e centraliza o texto)\n const nameClasses = classNames('truncate', {\n // Se for sorterEnd, o SPAN ocupa a largura total para centralizar o nome\n 'w-full text-center': sorterEnd,\n });\n\n // Define a classe para o wrapper do Sorter.\n let sorterClasses = '';\n if (sorterEnd) {\n // Para sorterEnd, ml-auto empurra o Sorter para a EXTREMA direita\n sorterClasses = 'ml-auto';\n }\n\n return (\n <Th\n key={header.id}\n colSpan={header.colSpan}\n >\n {header.isPlaceholder ? null : (\n <div\n className={classNames(\n 'flex items-center gap-1', // O 'gap-1' fornece o espaçamento entre Nome e Sorter\n justifyClass,\n header.column.getCanSort() &&\n 'cursor-pointer select-none',\n loading &&\n 'pointer-events-none',\n )}\n onClick={header.column.getToggleSortingHandler()}\n >\n {/* 2. RENDERIZAÇÃO DO NOME (Sempre primeiro, pois o Sorter deve ser à direita) */}\n <span className={nameClasses}>\n {flexRender(\n header.column.columnDef\n .header,\n header.getContext(),\n )}\n </span>\n\n {/* 3. RENDERIZAÇÃO DO SORTER: Sempre depois do nome. O ml-auto será aplicado APENAS em sorterEnd */}\n {header.column.getCanSort() && (\n // O Sorter deve estar em uma div se precisar de classes condicionais (ml-auto)\n <div className={sorterClasses}>\n <Sorter\n sort={header.column.getIsSorted()}\n />\n </div>\n )}\n </div>\n )}\n </Th>\n );\n })}\n </Tr>\n ))}\n </THead>\n {loading && data.length === 0 ? (\n <TableRowSkeleton\n columns={(finalColumns as Array<T>).length}\n rows={pagingData.pageSize}\n avatarInColumns={skeletonAvatarColumns}\n avatarProps={skeletonAvatarProps}\n />\n ) : (\n <TBody>\n {noData ? (\n <Tr>\n <Td\n className=\"hover:bg-transparent\"\n colSpan={finalColumns.length}\n >\n <div className=\"flex flex-col items-center gap-4\">\n {customNoDataIcon ? (\n customNoDataIcon\n ) : (\n <>\n <FileNotFound />\n <span className=\"font-semibold\">\n No data found!\n </span>\n </>\n )}\n </div>\n </Td>\n </Tr>\n ) : (\n table\n .getRowModel()\n .rows.slice(0, pageSize)\n .map((row) => {\n return (\n <Fragment key={row.id}>\n <Tr key={row.id}>\n {row\n .getVisibleCells()\n .map((cell) => {\n return (\n <Td\n key={cell.id}\n style={{\n width: cell.column.getSize(),\n }}\n >\n {flexRender(\n cell.column\n .columnDef\n .cell,\n cell.getContext(),\n )}\n </Td>\n )\n })}\n </Tr>\n {row.getIsExpanded() && (\n <Tr>\n <Td\n colSpan={\n row.getVisibleCells()\n .length\n }\n >\n {renderSubComponent(\n row,\n )}\n </Td>\n </Tr>\n )}\n </Fragment>\n )\n })\n )}\n </TBody>\n )}\n </Table>\n {!hidePagination && (\n <div className=\"mt-4 flex items-center justify-between\">\n <Pagination\n pageSize={pageSize}\n currentPage={pageIndex}\n total={total}\n onChange={handlePaginationChange}\n />\n <div style={{ minWidth: 130 }}>\n <Select\n instanceId={instanceId}\n size=\"sm\"\n menuPlacement=\"top\"\n isSearchable={false}\n value={pageSizeOption.filter(\n (option) => option.value === pageSize,\n )}\n options={pageSizeOption}\n onChange={(option) =>\n handleSelectChange(option?.value)\n }\n />\n </div>\n </div>\n )}\n </Loading>\n )\n}\n\nexport { DataTable }\nexport type { CellContext, ColumnDef, ColumnSort, Row }\nexport default DataTable\n"],"names":["table","Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataTable.js","sources":["../../../../lib/@ecme/components/shared/DataTable.tsx"],"sourcesContent":["import FileNotFound from '@/assets/svg/FileNotFound'\nimport type { CheckboxProps } from '@/components/ui/Checkbox'\nimport Checkbox from '@/components/ui/Checkbox'\nimport Pagination from '@/components/ui/Pagination'\nimport Select from '@/components/ui/Select'\nimport type { SkeletonProps } from '@/components/ui/Skeleton'\nimport type { TableProps } from '@/components/ui/Table'\nimport Table from '@/components/ui/Table'\nimport {\n CellContext,\n ColumnDef,\n ColumnSort,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n Row,\n useReactTable,\n} from '@tanstack/react-table'\nimport classNames from 'classnames'\nimport type { ChangeEvent, ReactNode, Ref } from 'react'\nimport {\n Fragment,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState\n} from 'react'\nimport { useTranslation } from 'react-i18next'\nimport TableRowSkeleton from './loaders/TableRowSkeleton'\nimport Loading from './Loading'\n\nexport type OnSortParam = { order: 'asc' | 'desc' | ''; key: string | number }\n\nexport type DataTableProps<T> = {\n columns: ColumnDef<T>[]\n customNoDataIcon?: ReactNode\n data?: T[]\n loading?: boolean\n noData?: boolean\n instanceId?: string\n onCheckBoxChange?: (checked: boolean, row: T) => void\n onIndeterminateCheckBoxChange?: (checked: boolean, rows: Row<T>[]) => void\n onPaginationChange?: (page: number) => void\n onSelectChange?: (num: number) => void\n onSort?: (sort: OnSortParam) => void\n pageSizes?: number[]\n manualSorting?: boolean\n selectable?: boolean\n skeletonAvatarColumns?: number[]\n skeletonAvatarProps?: SkeletonProps\n pagingData?: {\n total: number\n pageIndex: number\n pageSize: number\n }\n checkboxChecked?: (row: T) => boolean\n indeterminateCheckboxChecked?: (row: Row<T>[]) => boolean\n ref?: Ref<DataTableResetHandle | HTMLTableElement>\n onSelectionChange?: (selected: T[]) => void\n renderSubComponent?: (row: Row<T>) => React.ReactNode\n getRowCanExpand?: (row: Row<T>) => boolean\n hidePagination?: boolean\n isAllSelected?: boolean\n selectedRows?: T[]\n} & TableProps\n\nexport type CheckBoxChangeEvent = ChangeEvent<HTMLInputElement>\n\nexport interface IndeterminateCheckboxProps\n extends Omit<CheckboxProps, 'onChange'> {\n onChange: (event: CheckBoxChangeEvent) => void\n indeterminate: boolean\n onCheckBoxChange?: (event: CheckBoxChangeEvent) => void\n onIndeterminateCheckBoxChange?: (event: CheckBoxChangeEvent) => void\n}\n\nconst { Tr, Th, Td, THead, TBody, Sorter } = Table\n\nconst IndeterminateCheckbox = (props: IndeterminateCheckboxProps) => {\n const {\n indeterminate,\n onChange,\n onCheckBoxChange,\n onIndeterminateCheckBoxChange,\n ...rest\n } = props\n\n const ref = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (typeof indeterminate === 'boolean' && ref.current) {\n ref.current.indeterminate = !rest.checked && indeterminate\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref, indeterminate])\n\n const handleChange = (e: CheckBoxChangeEvent) => {\n onChange(e)\n onCheckBoxChange?.(e)\n onIndeterminateCheckBoxChange?.(e)\n }\n\n return (\n <Checkbox\n ref={ref}\n className=\"mb-0\"\n onChange={(_, e) => handleChange(e)}\n {...rest}\n />\n )\n}\n\nexport type DataTableResetHandle = {\n resetSorting: () => void\n resetSelected: () => void\n}\n\nfunction DataTable<T>(props: DataTableProps<T>) {\n const {\n skeletonAvatarColumns,\n columns: columnsProp = [],\n data = [],\n customNoDataIcon,\n loading,\n noData,\n onCheckBoxChange,\n onIndeterminateCheckBoxChange,\n onPaginationChange,\n onSelectChange,\n onSort,\n pageSizes = [10, 25, 50, 100],\n selectable = false,\n skeletonAvatarProps,\n pagingData = {\n total: 0,\n pageIndex: 1,\n pageSize: 10,\n },\n checkboxChecked,\n indeterminateCheckboxChecked,\n instanceId = 'data-table',\n ref,\n renderSubComponent = () => null,\n getRowCanExpand = () => false,\n onSelectionChange,\n hidePagination = false,\n ...rest\n } = props\n\n const { pageSize, pageIndex, total } = pagingData\n\n const [sorting, setSorting] = useState<ColumnSort[] | null>(null)\n const [selection, setRowSelection] = useState({})\n\n const { t } = useTranslation()\n\n const pageSizeOption = useMemo(\n () =>\n pageSizes.map((number) => ({\n value: number,\n label: `${number} / ${t('common.table.pageAbbr')}`,\n })),\n [pageSizes],\n )\n\n useEffect(() => {\n if (Array.isArray(sorting)) {\n const sortOrder =\n sorting.length > 0 ? (sorting[0].desc ? 'desc' : 'asc') : ''\n const id = sorting.length > 0 ? sorting[0].id : ''\n onSort?.({ order: sortOrder, key: id })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sorting])\n\n const handleIndeterminateCheckBoxChange = (\n checked: boolean,\n rows: Row<T>[],\n ) => {\n if (!loading) {\n onIndeterminateCheckBoxChange?.(checked, rows)\n }\n }\n\n const handleCheckBoxChange = (checked: boolean, row: T) => {\n if (!loading) {\n onCheckBoxChange?.(checked, row)\n }\n }\n\n const finalColumns: ColumnDef<T>[] = useMemo(() => {\n const columns = columnsProp\n\n if (selectable) {\n return [\n {\n id: 'select',\n maxSize: 50,\n header: ({ table }) => (\n <IndeterminateCheckbox\n checked={\n indeterminateCheckboxChecked\n ? indeterminateCheckboxChecked(\n table.getRowModel().rows,\n )\n : table.getIsAllRowsSelected()\n }\n indeterminate={table.getIsSomeRowsSelected()}\n onChange={table.getToggleAllRowsSelectedHandler()}\n onIndeterminateCheckBoxChange={(e) => {\n handleIndeterminateCheckBoxChange(\n e.target.checked,\n table.getRowModel().rows,\n )\n }}\n />\n ),\n cell: ({ row }) => (\n <IndeterminateCheckbox\n checked={\n checkboxChecked\n ? checkboxChecked(row.original)\n : row.getIsSelected()\n }\n disabled={!row.getCanSelect()}\n indeterminate={row.getIsSomeSelected()}\n onChange={row.getToggleSelectedHandler()}\n onCheckBoxChange={(e) =>\n handleCheckBoxChange(\n e.target.checked,\n row.original,\n )\n }\n />\n ),\n },\n ...columns,\n ]\n }\n return columns\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [columnsProp, selectable, loading, checkboxChecked])\n\n const table = useReactTable({\n data,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n columns: finalColumns,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n manualPagination: true,\n manualSorting: props.manualSorting ?? false,\n onSortingChange: (sorter) => {\n setSorting(sorter as ColumnSort[])\n },\n onRowSelectionChange: setRowSelection,\n state: {\n sorting: sorting as ColumnSort[],\n rowSelection: selection,\n },\n getRowCanExpand,\n })\n\n const resetSorting = () => {\n table.resetSorting()\n }\n\n const resetSelected = () => {\n table.resetRowSelection(true)\n }\n\n useImperativeHandle(ref, () => ({\n resetSorting,\n resetSelected,\n }))\n\n const handlePaginationChange = (page: number) => {\n if (!loading) {\n resetSelected()\n onPaginationChange?.(page)\n }\n }\n\n const handleSelectChange = (value?: number) => {\n if (!loading) {\n onSelectChange?.(Number(value))\n }\n }\n\n const prevSelectedRef = useRef<T[]>([])\n\n useEffect(() => {\n if (!onSelectionChange) return\n\n const selectedRows = table\n .getSelectedRowModel()\n .rows.map((r) => r.original as T)\n\n const isEqual =\n selectedRows.length === prevSelectedRef.current.length &&\n selectedRows.every(\n (item, idx) => item === prevSelectedRef.current[idx],\n )\n\n if (!isEqual) {\n prevSelectedRef.current = selectedRows\n onSelectionChange(selectedRows)\n }\n }, [table.getState().rowSelection, onSelectionChange, table])\n\n // Sync external selectedRows prop with internal selection state\n useEffect(() => {\n if (props.selectedRows && data.length > 0) {\n const externalSelection = {}\n data.forEach((row, index) => {\n const isSelected = props.selectedRows?.some(selectedRow => selectedRow === row)\n if (isSelected) {\n externalSelection[index] = true\n }\n })\n setRowSelection(externalSelection)\n }\n }, [props.selectedRows, data])\n\n // isAllSelected management - only when selectedRows is not provided\n useEffect(() => {\n if (!props.selectedRows) { // Only manage isAllSelected when selectedRows is not used\n if (props.isAllSelected === true && table) {\n const all = {}\n table.getRowModel().rows.forEach((row) => {\n all[row.id] = true\n })\n setRowSelection(all)\n } else if (props.isAllSelected === false) {\n setRowSelection({})\n }\n // When isAllSelected is undefined, preserve current selections\n }\n }, [props.isAllSelected, table, props.selectedRows])\n\n return (\n <Loading loading={Boolean(loading && data.length !== 0)} type=\"cover\">\n <Table {...rest}>\n <THead>\n {table.getHeaderGroups().map((headerGroup) => (\n <Tr key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n // 1. LEITURA E VALIDAÇÕES DO ALINHAMENTO\n const headerAlign = (header.column.columnDef as any).meta?.headerAlign || 'between';\n\n let justifyClass = 'justify-between'; // Padrão: Nome Esquerda, Sorter Direita\n\n // Flag para o alinhamento complexo desejado\n const sorterEnd = headerAlign === 'name-center-sorter-end';\n\n // Define a classe de justificação principal para os alinhamentos simples\n if (headerAlign === 'center') {\n justifyClass = 'justify-center'; // Nome + Sorter juntos no centro\n } else if (headerAlign === 'start') {\n justifyClass = 'justify-start'; // Nome + Sorter juntos na esquerda\n } else if (headerAlign === 'end') {\n justifyClass = 'justify-end'; // Nome + Sorter juntos na direita\n }\n\n // Se for o layout complexo, usamos 'justify-center' como base\n if (sorterEnd) {\n // Usamos justify-center, e o ml-auto do Sorter o empurra para o canto.\n justifyClass = 'justify-center';\n }\n\n // Define classes para o SPAN do nome (Ocupa largura total e centraliza o texto)\n const nameClasses = classNames('truncate', {\n // Se for sorterEnd, o SPAN ocupa a largura total para centralizar o nome\n 'w-full text-center': sorterEnd,\n });\n\n // Define a classe para o wrapper do Sorter.\n let sorterClasses = '';\n if (sorterEnd) {\n // Para sorterEnd, ml-auto empurra o Sorter para a EXTREMA direita\n sorterClasses = 'ml-auto';\n }\n\n return (\n <Th\n key={header.id}\n colSpan={header.colSpan}\n >\n {header.isPlaceholder ? null : (\n <div\n className={classNames(\n 'flex items-center gap-1', // O 'gap-1' fornece o espaçamento entre Nome e Sorter\n justifyClass,\n header.column.getCanSort() &&\n 'cursor-pointer select-none',\n loading &&\n 'pointer-events-none',\n )}\n onClick={header.column.getToggleSortingHandler()}\n >\n {/* 2. RENDERIZAÇÃO DO NOME (Sempre primeiro, pois o Sorter deve ser à direita) */}\n <span className={nameClasses}>\n {flexRender(\n header.column.columnDef\n .header,\n header.getContext(),\n )}\n </span>\n\n {/* 3. RENDERIZAÇÃO DO SORTER: Sempre depois do nome. O ml-auto será aplicado APENAS em sorterEnd */}\n {header.column.getCanSort() && (\n // O Sorter deve estar em uma div se precisar de classes condicionais (ml-auto)\n <div className={sorterClasses}>\n <Sorter\n sort={header.column.getIsSorted()}\n />\n </div>\n )}\n </div>\n )}\n </Th>\n );\n })}\n </Tr>\n ))}\n </THead>\n {loading && data.length === 0 ? (\n <TableRowSkeleton\n columns={(finalColumns as Array<T>).length}\n rows={pagingData.pageSize}\n avatarInColumns={skeletonAvatarColumns}\n avatarProps={skeletonAvatarProps}\n />\n ) : (\n <TBody>\n {noData ? (\n <Tr>\n <Td\n className=\"hover:bg-transparent\"\n colSpan={finalColumns.length}\n >\n <div className=\"flex flex-col items-center gap-4\">\n {customNoDataIcon ? (\n customNoDataIcon\n ) : (\n <>\n <FileNotFound />\n <span className=\"font-semibold\">\n No data found!\n </span>\n </>\n )}\n </div>\n </Td>\n </Tr>\n ) : (\n table\n .getRowModel()\n .rows.slice(0, pageSize)\n .map((row) => {\n return (\n <Fragment key={row.id}>\n <Tr key={row.id}>\n {row\n .getVisibleCells()\n .map((cell) => {\n return (\n <Td\n key={cell.id}\n style={{\n width: cell.column.getSize(),\n }}\n >\n {flexRender(\n cell.column\n .columnDef\n .cell,\n cell.getContext(),\n )}\n </Td>\n )\n })}\n </Tr>\n {row.getIsExpanded() && (\n <Tr>\n <Td\n colSpan={\n row.getVisibleCells()\n .length\n }\n >\n {renderSubComponent(\n row,\n )}\n </Td>\n </Tr>\n )}\n </Fragment>\n )\n })\n )}\n </TBody>\n )}\n </Table>\n {!hidePagination && (\n <div className=\"mt-4 flex items-center justify-between\">\n <Pagination\n pageSize={pageSize}\n currentPage={pageIndex}\n total={total}\n onChange={handlePaginationChange}\n />\n <div style={{ minWidth: 130 }}>\n <Select\n instanceId={instanceId}\n size=\"sm\"\n menuPlacement=\"top\"\n isSearchable={false}\n value={pageSizeOption.filter(\n (option) => option.value === pageSize,\n )}\n options={pageSizeOption}\n onChange={(option) =>\n handleSelectChange(option?.value)\n }\n />\n </div>\n </div>\n )}\n </Loading>\n )\n}\n\nexport { DataTable }\nexport type { CellContext, ColumnDef, ColumnSort, Row }\nexport default DataTable"],"names":["table","Fragment"],"mappings":"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"}
|
|
@@ -37,6 +37,7 @@ export type DataTableProps<T> = {
|
|
|
37
37
|
getRowCanExpand?: (row: Row<T>) => boolean;
|
|
38
38
|
hidePagination?: boolean;
|
|
39
39
|
isAllSelected?: boolean;
|
|
40
|
+
selectedRows?: T[];
|
|
40
41
|
} & TableProps;
|
|
41
42
|
export type CheckBoxChangeEvent = ChangeEvent<HTMLInputElement>;
|
|
42
43
|
export interface IndeterminateCheckboxProps extends Omit<CheckboxProps, 'onChange'> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../../lib/@ecme/components/shared/DataTable.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAI7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD,OAAO,EACH,WAAW,EACX,SAAS,EACT,UAAU,EAMV,GAAG,EAEN,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAaxD,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAE9E,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC5B,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;IACvB,gBAAgB,CAAC,EAAE,SAAS,CAAA;IAC5B,IAAI,CAAC,EAAE,CAAC,EAAE,CAAA;IACV,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;IACrD,6BAA6B,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAA;IAC1E,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;IACpC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAA;IAChC,mBAAmB,CAAC,EAAE,aAAa,CAAA;IACnC,UAAU,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAA;IACrC,4BAA4B,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAA;IACzD,GAAG,CAAC,EAAE,GAAG,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAA;IAClD,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;IAC3C,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IACrD,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAA;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../../lib/@ecme/components/shared/DataTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fornecedor.endpoint.config.d.ts","sourceRoot":"","sources":["../../../../../../../lib/base/configs/endpoints.config/DadosMestres/Sap/fornecedor.endpoint.config.ts"],"names":[],"mappings":"AAEE,QAAA,MAAM,wBAAwB;;;CAG7B,CAAA;AAED,eAAe,wBAAwB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dadosMestres.navigation.d.ts","sourceRoot":"","sources":["../../../../../../../lib/base/configs/navigation.config/modules.submenu/DadosMestres/dadosMestres.navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAOzD,QAAA,MAAM,4BAA4B,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"dadosMestres.navigation.d.ts","sourceRoot":"","sources":["../../../../../../../lib/base/configs/navigation.config/modules.submenu/DadosMestres/dadosMestres.navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAOzD,QAAA,MAAM,4BAA4B,EAAE,cAAc,EAwGjD,CAAA;AAED,eAAe,4BAA4B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FornecedorService.d.ts","sourceRoot":"","sources":["../../../../../../../lib/base/services/modules/DadosMestres/Sap/FornecedorService.ts"],"names":[],"mappings":"AAiBE,wBAAsB,kBAAkB,CAAC,IAAI,KAAA,oBAQ5C;AAED,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,MAAM,oBAKpD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const FORNECEDOR_API_PATH = "/dados-mestres/api/dm/business-partner";
|
|
2
|
+
const fornecedorEndpointConfig = {
|
|
3
|
+
findAll: "/dados-mestres/api/dm/business-partner/find-monitor-fornecedor",
|
|
4
|
+
findOne: `${FORNECEDOR_API_PATH}/`
|
|
5
|
+
};
|
|
6
|
+
export {
|
|
7
|
+
fornecedorEndpointConfig as default
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=fornecedor.endpoint.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fornecedor.endpoint.config.js","sources":["../../../../../../lib/base/configs/endpoints.config/DadosMestres/Sap/fornecedor.endpoint.config.ts"],"sourcesContent":[" const FORNECEDOR_API_PATH = '/dados-mestres/api/dm/business-partner'\n\n const fornecedorEndpointConfig = {\n findAll: '/dados-mestres/api/dm/business-partner/find-monitor-fornecedor',\n findOne: `${FORNECEDOR_API_PATH}/`,\n }\n \n export default fornecedorEndpointConfig"],"names":[],"mappings":"AAAE,MAAM,sBAAsB;AAE5B,MAAM,2BAA2B;AAAA,EAC7B,SAAS;AAAA,EACT,SAAS,GAAG,mBAAmB;AACnC;"}
|
package/dist/base/configs/navigation.config/modules.submenu/DadosMestres/dadosMestres.navigation.js
CHANGED
|
@@ -10,6 +10,16 @@ const dadosMestresNavigationConfig = [
|
|
|
10
10
|
type: NAV_ITEM_TYPE_COLLAPSE,
|
|
11
11
|
authority: [ADMIN],
|
|
12
12
|
subMenu: [
|
|
13
|
+
{
|
|
14
|
+
key: "dadosMestres.fornecedor",
|
|
15
|
+
path: "/dados-mestres/fornecedor",
|
|
16
|
+
title: "Fornecedor",
|
|
17
|
+
translateKey: "nav.modules.dadosMestres.fornecedor",
|
|
18
|
+
icon: "",
|
|
19
|
+
type: NAV_ITEM_TYPE_ITEM,
|
|
20
|
+
authority: [ADMIN],
|
|
21
|
+
subMenu: []
|
|
22
|
+
},
|
|
13
23
|
{
|
|
14
24
|
key: "dadosMestres.transporte.motorista",
|
|
15
25
|
path: "/dados-mestres/motorista",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dadosMestres.navigation.js","sources":["../../../../../../lib/base/configs/navigation.config/modules.submenu/DadosMestres/dadosMestres.navigation.ts"],"sourcesContent":["import type { NavigationTree } from '@/@types/navigation'\nimport {\n NAV_ITEM_TYPE_COLLAPSE,\n NAV_ITEM_TYPE_ITEM,\n} from '@/constants/navigation.constant'\nimport { ADMIN } from '@/constants/roles.constant'\n\nconst dadosMestresNavigationConfig: NavigationTree[] = [\n {\n key: 'dadosMestres',\n path: '',\n title: 'Dados Mestres',\n translateKey: 'nav.modules.dadosMestres.title',\n icon: '',\n type: NAV_ITEM_TYPE_COLLAPSE,\n authority: [ADMIN],\n subMenu: [\n {\n key: 'dadosMestres.transporte.motorista',\n path: '/dados-mestres/motorista',\n title: 'Motorista',\n translateKey: 'nav.modules.dadosMestres.motorista',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n {\n key: 'dadosMestres.produto',\n path: '/dados-mestres/produto',\n title: 'Produto',\n translateKey: 'nav.modules.dadosMestres.produto',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n {\n key: 'dadosMestres.sap.safra',\n path: '/dados-mestres/safra',\n title: 'Safra',\n translateKey: 'nav.modules.dadosMestres.safra',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n {\n key: 'dadosMestres.sap.centroDeposito',\n path: '/dados-mestres/centro-deposito',\n title: 'Centro/Deposito',\n translateKey: 'nav.modules.dadosMestres.centroDeposito',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n {\n key: 'dadosMestres.transporte.tipoVeiculo',\n path: '/dados-mestres/tipo-veiculo',\n title: 'Tipo de Veículo',\n translateKey: 'nav.modules.dadosMestres.tipoVeiculo',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n {\n key: 'dadosMestres.transporte.veiculo',\n path: '/dados-mestres/veiculo',\n title: 'Veículo',\n translateKey: 'nav.modules.dadosMestres.veiculo',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n {\n key: 'modules.dm.infoProdutor',\n path: '/dados-mestres/adm/info-produtor',\n title: 'Registro Info',\n translateKey: 'nav.modules.dadosMestres.infoProdutor',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n {\n key: 'modules.dm.area',\n path: '/dados-mestres/area',\n title: 'Área',\n translateKey: 'nav.modules.dadosMestres.area',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n ],\n },\n]\n\nexport default dadosMestresNavigationConfig\n"],"names":[],"mappings":";;AAOA,MAAM,+BAAiD;AAAA,EACnD;AAAA,IACI,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,cAAc;AAAA,IACd,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAW,CAAC,KAAK;AAAA,IACjB,SAAS;AAAA,
|
|
1
|
+
{"version":3,"file":"dadosMestres.navigation.js","sources":["../../../../../../lib/base/configs/navigation.config/modules.submenu/DadosMestres/dadosMestres.navigation.ts"],"sourcesContent":["import type { NavigationTree } from '@/@types/navigation'\nimport {\n NAV_ITEM_TYPE_COLLAPSE,\n NAV_ITEM_TYPE_ITEM,\n} from '@/constants/navigation.constant'\nimport { ADMIN } from '@/constants/roles.constant'\n\nconst dadosMestresNavigationConfig: NavigationTree[] = [\n {\n key: 'dadosMestres',\n path: '',\n title: 'Dados Mestres',\n translateKey: 'nav.modules.dadosMestres.title',\n icon: '',\n type: NAV_ITEM_TYPE_COLLAPSE,\n authority: [ADMIN],\n subMenu: [\n \n {\n key: 'dadosMestres.fornecedor',\n path: '/dados-mestres/fornecedor',\n title: 'Fornecedor',\n translateKey: 'nav.modules.dadosMestres.fornecedor',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n \n {\n key: 'dadosMestres.transporte.motorista',\n path: '/dados-mestres/motorista',\n title: 'Motorista',\n translateKey: 'nav.modules.dadosMestres.motorista',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n {\n key: 'dadosMestres.produto',\n path: '/dados-mestres/produto',\n title: 'Produto',\n translateKey: 'nav.modules.dadosMestres.produto',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n {\n key: 'dadosMestres.sap.safra',\n path: '/dados-mestres/safra',\n title: 'Safra',\n translateKey: 'nav.modules.dadosMestres.safra',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n {\n key: 'dadosMestres.sap.centroDeposito',\n path: '/dados-mestres/centro-deposito',\n title: 'Centro/Deposito',\n translateKey: 'nav.modules.dadosMestres.centroDeposito',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n {\n key: 'dadosMestres.transporte.tipoVeiculo',\n path: '/dados-mestres/tipo-veiculo',\n title: 'Tipo de Veículo',\n translateKey: 'nav.modules.dadosMestres.tipoVeiculo',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n {\n key: 'dadosMestres.transporte.veiculo',\n path: '/dados-mestres/veiculo',\n title: 'Veículo',\n translateKey: 'nav.modules.dadosMestres.veiculo',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n {\n key: 'modules.dm.infoProdutor',\n path: '/dados-mestres/adm/info-produtor',\n title: 'Registro Info',\n translateKey: 'nav.modules.dadosMestres.infoProdutor',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n {\n key: 'modules.dm.area',\n path: '/dados-mestres/area',\n title: 'Área',\n translateKey: 'nav.modules.dadosMestres.area',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: [ADMIN],\n subMenu: [],\n },\n ],\n },\n]\n\nexport default dadosMestresNavigationConfig\n"],"names":[],"mappings":";;AAOA,MAAM,+BAAiD;AAAA,EACnD;AAAA,IACI,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,cAAc;AAAA,IACd,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAW,CAAC,KAAK;AAAA,IACjB,SAAS;AAAA,MAEL;AAAA,QACI,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,cAAc;AAAA,QACd,MAAM;AAAA,QACN,MAAM;AAAA,QACN,WAAW,CAAC,KAAK;AAAA,QACjB,SAAS,CAAA;AAAA,MACb;AAAA,MAEA;AAAA,QACI,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,cAAc;AAAA,QACd,MAAM;AAAA,QACN,MAAM;AAAA,QACN,WAAW,CAAC,KAAK;AAAA,QACjB,SAAS,CAAA;AAAA,MACb;AAAA,MACA;AAAA,QACI,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,cAAc;AAAA,QACd,MAAM;AAAA,QACN,MAAM;AAAA,QACN,WAAW,CAAC,KAAK;AAAA,QACjB,SAAS,CAAA;AAAA,MACb;AAAA,MACA;AAAA,QACI,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,cAAc;AAAA,QACd,MAAM;AAAA,QACN,MAAM;AAAA,QACN,WAAW,CAAC,KAAK;AAAA,QACjB,SAAS,CAAA;AAAA,MACb;AAAA,MACA;AAAA,QACI,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,cAAc;AAAA,QACd,MAAM;AAAA,QACN,MAAM;AAAA,QACN,WAAW,CAAC,KAAK;AAAA,QACjB,SAAS,CAAA;AAAA,MACb;AAAA,MACA;AAAA,QACI,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,cAAc;AAAA,QACd,MAAM;AAAA,QACN,MAAM;AAAA,QACN,WAAW,CAAC,KAAK;AAAA,QACjB,SAAS,CAAA;AAAA,MACb;AAAA,MACA;AAAA,QACI,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,cAAc;AAAA,QACd,MAAM;AAAA,QACN,MAAM;AAAA,QACN,WAAW,CAAC,KAAK;AAAA,QACjB,SAAS,CAAA;AAAA,MACb;AAAA,MACA;AAAA,QACI,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,cAAc;AAAA,QACd,MAAM;AAAA,QACN,MAAM;AAAA,QACN,WAAW,CAAC,KAAK;AAAA,QACjB,SAAS,CAAA;AAAA,MACb;AAAA,MACA;AAAA,QACI,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,cAAc;AAAA,QACd,MAAM;AAAA,QACN,MAAM;AAAA,QACN,WAAW,CAAC,KAAK;AAAA,QACjB,SAAS,CAAA;AAAA,MAAC;AAAA,IACd;AAAA,EACJ;AAER;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import fornecedorEndpointConfig from "../../../../configs/endpoints.config/DadosMestres/Sap/fornecedor.endpoint.config.js";
|
|
2
|
+
import ApiService from "../../../../../@ecme/services/ApiService.js";
|
|
3
|
+
function mapFrontendParamsToBackend(frontendParams) {
|
|
4
|
+
const { pageable, ...filterParams } = frontendParams;
|
|
5
|
+
const sortConfig = pageable?.sort?.[0] || { sortField: "id", sortOrder: "desc" };
|
|
6
|
+
return {
|
|
7
|
+
pageSize: pageable?.pageSize || 10,
|
|
8
|
+
pageNumber: pageable?.pageNumber || 1,
|
|
9
|
+
sortField: sortConfig.sortField || "id",
|
|
10
|
+
sortOrder: sortConfig.sortOrder || "desc",
|
|
11
|
+
filter: filterParams || {}
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
async function apiGetFornecedores(body) {
|
|
15
|
+
const mappedBody = mapFrontendParamsToBackend(body);
|
|
16
|
+
return ApiService.fetchDataWithAxios({
|
|
17
|
+
url: fornecedorEndpointConfig.findAll,
|
|
18
|
+
method: "post",
|
|
19
|
+
data: mappedBody
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
async function apiGetFornecedorById(id) {
|
|
23
|
+
return ApiService.fetchDataWithAxios({
|
|
24
|
+
url: fornecedorEndpointConfig.findOne + id + "/detalhes",
|
|
25
|
+
method: "get"
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
apiGetFornecedorById,
|
|
30
|
+
apiGetFornecedores
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=FornecedorService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FornecedorService.js","sources":["../../../../../../lib/base/services/modules/DadosMestres/Sap/FornecedorService.ts"],"sourcesContent":["import fornecedorEndpointConfig from '@base/configs/endpoints.config/DadosMestres/Sap/fornecedor.endpoint.config'\nimport ApiService from '@/services/ApiService'\n \n function mapFrontendParamsToBackend(frontendParams) {\n const { pageable, ...filterParams } = frontendParams;\n\n const sortConfig = pageable?.sort?.[0] || { sortField: 'id', sortOrder: 'desc' };\n\n return {\n pageSize: pageable?.pageSize || 10,\n pageNumber: pageable?.pageNumber || 1,\n sortField: sortConfig.sortField || 'id',\n sortOrder: sortConfig.sortOrder || 'desc',\n filter: filterParams || {}\n };\n }\n\n export async function apiGetFornecedores(body) {\n const mappedBody = mapFrontendParamsToBackend(body);\n\n return ApiService.fetchDataWithAxios({\n url: fornecedorEndpointConfig.findAll,\n method: 'post',\n data: mappedBody,\n })\n }\n\n export async function apiGetFornecedorById(id: string) {\n return ApiService.fetchDataWithAxios({\n url: fornecedorEndpointConfig.findOne + id + '/detalhes',\n method: 'get',\n })\n }"],"names":[],"mappings":";;AAGE,SAAS,2BAA2B,gBAAgB;AAChD,QAAM,EAAE,UAAU,GAAG,aAAA,IAAiB;AAEhC,QAAA,aAAa,UAAU,OAAO,CAAC,KAAK,EAAE,WAAW,MAAM,WAAW,OAAO;AAExE,SAAA;AAAA,IACH,UAAU,UAAU,YAAY;AAAA,IAChC,YAAY,UAAU,cAAc;AAAA,IACpC,WAAW,WAAW,aAAa;AAAA,IACnC,WAAW,WAAW,aAAa;AAAA,IACnC,QAAQ,gBAAgB,CAAA;AAAA,EAC5B;AACJ;AAEA,eAAsB,mBAAmB,MAAM;AACrC,QAAA,aAAa,2BAA2B,IAAI;AAElD,SAAO,WAAW,mBAAmB;AAAA,IACjC,KAAK,yBAAyB;AAAA,IAC9B,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA,CACT;AACL;AAEA,eAAsB,qBAAqB,IAAY;AACnD,SAAO,WAAW,mBAAmB;AAAA,IACjC,KAAK,yBAAyB,UAAU,KAAK;AAAA,IAC7C,QAAQ;AAAA,EAAA,CACX;AACL;"}
|
|
@@ -64,6 +64,7 @@ export type DataTableProps<T> = {
|
|
|
64
64
|
getRowCanExpand?: (row: Row<T>) => boolean
|
|
65
65
|
hidePagination?: boolean
|
|
66
66
|
isAllSelected?: boolean
|
|
67
|
+
selectedRows?: T[]
|
|
67
68
|
} & TableProps
|
|
68
69
|
|
|
69
70
|
export type CheckBoxChangeEvent = ChangeEvent<HTMLInputElement>
|
|
@@ -311,17 +312,35 @@ function DataTable<T>(props: DataTableProps<T>) {
|
|
|
311
312
|
}
|
|
312
313
|
}, [table.getState().rowSelection, onSelectionChange, table])
|
|
313
314
|
|
|
315
|
+
// Sync external selectedRows prop with internal selection state
|
|
314
316
|
useEffect(() => {
|
|
315
|
-
if (props.
|
|
316
|
-
const
|
|
317
|
-
|
|
318
|
-
|
|
317
|
+
if (props.selectedRows && data.length > 0) {
|
|
318
|
+
const externalSelection = {}
|
|
319
|
+
data.forEach((row, index) => {
|
|
320
|
+
const isSelected = props.selectedRows?.some(selectedRow => selectedRow === row)
|
|
321
|
+
if (isSelected) {
|
|
322
|
+
externalSelection[index] = true
|
|
323
|
+
}
|
|
319
324
|
})
|
|
320
|
-
setRowSelection(
|
|
321
|
-
} else {
|
|
322
|
-
setRowSelection({})
|
|
325
|
+
setRowSelection(externalSelection)
|
|
323
326
|
}
|
|
324
|
-
}, [props.
|
|
327
|
+
}, [props.selectedRows, data])
|
|
328
|
+
|
|
329
|
+
// isAllSelected management - only when selectedRows is not provided
|
|
330
|
+
useEffect(() => {
|
|
331
|
+
if (!props.selectedRows) { // Only manage isAllSelected when selectedRows is not used
|
|
332
|
+
if (props.isAllSelected === true && table) {
|
|
333
|
+
const all = {}
|
|
334
|
+
table.getRowModel().rows.forEach((row) => {
|
|
335
|
+
all[row.id] = true
|
|
336
|
+
})
|
|
337
|
+
setRowSelection(all)
|
|
338
|
+
} else if (props.isAllSelected === false) {
|
|
339
|
+
setRowSelection({})
|
|
340
|
+
}
|
|
341
|
+
// When isAllSelected is undefined, preserve current selections
|
|
342
|
+
}
|
|
343
|
+
}, [props.isAllSelected, table, props.selectedRows])
|
|
325
344
|
|
|
326
345
|
return (
|
|
327
346
|
<Loading loading={Boolean(loading && data.length !== 0)} type="cover">
|
|
@@ -518,4 +537,4 @@ function DataTable<T>(props: DataTableProps<T>) {
|
|
|
518
537
|
|
|
519
538
|
export { DataTable }
|
|
520
539
|
export type { CellContext, ColumnDef, ColumnSort, Row }
|
|
521
|
-
export default DataTable
|
|
540
|
+
export default DataTable
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const FORNECEDOR_API_PATH = '/dados-mestres/api/dm/business-partner'
|
|
2
|
+
|
|
3
|
+
const fornecedorEndpointConfig = {
|
|
4
|
+
findAll: '/dados-mestres/api/dm/business-partner/find-monitor-fornecedor',
|
|
5
|
+
findOne: `${FORNECEDOR_API_PATH}/`,
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export default fornecedorEndpointConfig
|
package/lib/base/configs/navigation.config/modules.submenu/DadosMestres/dadosMestres.navigation.ts
CHANGED
|
@@ -15,6 +15,18 @@ const dadosMestresNavigationConfig: NavigationTree[] = [
|
|
|
15
15
|
type: NAV_ITEM_TYPE_COLLAPSE,
|
|
16
16
|
authority: [ADMIN],
|
|
17
17
|
subMenu: [
|
|
18
|
+
|
|
19
|
+
{
|
|
20
|
+
key: 'dadosMestres.fornecedor',
|
|
21
|
+
path: '/dados-mestres/fornecedor',
|
|
22
|
+
title: 'Fornecedor',
|
|
23
|
+
translateKey: 'nav.modules.dadosMestres.fornecedor',
|
|
24
|
+
icon: '',
|
|
25
|
+
type: NAV_ITEM_TYPE_ITEM,
|
|
26
|
+
authority: [ADMIN],
|
|
27
|
+
subMenu: [],
|
|
28
|
+
},
|
|
29
|
+
|
|
18
30
|
{
|
|
19
31
|
key: 'dadosMestres.transporte.motorista',
|
|
20
32
|
path: '/dados-mestres/motorista',
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import fornecedorEndpointConfig from '@base/configs/endpoints.config/DadosMestres/Sap/fornecedor.endpoint.config'
|
|
2
|
+
import ApiService from '@/services/ApiService'
|
|
3
|
+
|
|
4
|
+
function mapFrontendParamsToBackend(frontendParams) {
|
|
5
|
+
const { pageable, ...filterParams } = frontendParams;
|
|
6
|
+
|
|
7
|
+
const sortConfig = pageable?.sort?.[0] || { sortField: 'id', sortOrder: 'desc' };
|
|
8
|
+
|
|
9
|
+
return {
|
|
10
|
+
pageSize: pageable?.pageSize || 10,
|
|
11
|
+
pageNumber: pageable?.pageNumber || 1,
|
|
12
|
+
sortField: sortConfig.sortField || 'id',
|
|
13
|
+
sortOrder: sortConfig.sortOrder || 'desc',
|
|
14
|
+
filter: filterParams || {}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export async function apiGetFornecedores(body) {
|
|
19
|
+
const mappedBody = mapFrontendParamsToBackend(body);
|
|
20
|
+
|
|
21
|
+
return ApiService.fetchDataWithAxios({
|
|
22
|
+
url: fornecedorEndpointConfig.findAll,
|
|
23
|
+
method: 'post',
|
|
24
|
+
data: mappedBody,
|
|
25
|
+
})
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export async function apiGetFornecedorById(id: string) {
|
|
29
|
+
return ApiService.fetchDataWithAxios({
|
|
30
|
+
url: fornecedorEndpointConfig.findOne + id + '/detalhes',
|
|
31
|
+
method: 'get',
|
|
32
|
+
})
|
|
33
|
+
}
|
package/package.json
CHANGED