ods-component-lib 1.23.4 → 1.23.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/devextreme/OdsBasicDataGrid/OdsBasicDataGrid.Functions.js.map +1 -1
- package/dist/components/devextreme/OdsBatchEditDataGrid/OdsBatchEditDataGrid.Functions.js.map +1 -1
- package/dist/components/devextreme/OdsMergeCellDataGrid/OdsMergeCellDataGrid.Functions.js.map +1 -1
- package/dist/components/devextreme/OdsRemoteDataGrid.js +39 -39
- package/dist/components/devextreme/OdsRemoteDataGrid.js.map +1 -1
- package/dist/components/devextreme/OdsTransfer.js +40 -37
- package/dist/components/devextreme/OdsTransfer.js.map +1 -1
- package/dist/components/devextreme/OdsTransferV2.js +63 -60
- package/dist/components/devextreme/OdsTransferV2.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OdsTransfer.js","sources":["../../../src/components/devextreme/OdsTransfer.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useRef } from \"react\";\r\nimport { Transfer } from \"antd\";\r\nimport styles from \"./Transfer.module.scss\";\r\nimport DataGrid, {\r\n Item as DxItem,\r\n Column as DxColumn,\r\n FilterRow,\r\n Toolbar,\r\n} from \"devextreme-react/data-grid\";\r\nimport queryString from \"query-string\";\r\nimport NoContentComponent from \"./NoContentComponent\";\r\nimport OdsTitle from \"../antd/typography/OdsTitle\";\r\nimport { isTextEmpty } from \"../../utils/commonFunctions\";\r\n\r\nexport interface Column {\r\n title: string;\r\n dataIndex: string;\r\n key?: string;\r\n caption?: string;\r\n tooltip?: { enable: boolean };\r\n}\r\n\r\nlet constants = {\r\n totalPageCount: 1,\r\n loadedPageCount: 1,\r\n totalRecordCount: 0,\r\n};\r\n\r\ninterface IAxiosProps {\r\n requestData?: any;\r\n apiUrl: string;\r\n environmentUrl: string;\r\n requestQueryString?: any;\r\n requestType: string;\r\n}\r\n\r\ninterface ISummaryRowOptions {\r\n summaryLoadedDataLabel?: string;\r\n summaryTotalDataLabel?: string;\r\n summaryFilteredDataLabel?: string;\r\n summaryTotalCount?: number;\r\n summaryTotalPageCountLabel?: string;\r\n summarySumLabel?: string;\r\n summaryAvgLabel?: string;\r\n summaryMinLabel?: string;\r\n summaryMaxLabel?: string;\r\n summaryCountLabel?: string;\r\n}\r\n\r\ninterface OdsTransferProps<RecordType = any> {\r\n dataSource?: RecordType[];\r\n language: string;\r\n pagingEnable?: boolean;\r\n pageSize?: number;\r\n isServerSide: boolean;\r\n axiosRequest?: IAxiosProps;\r\n customSummary?: ISummaryRowOptions;\r\n dataGridPageName?: string;\r\n columns: any[];\r\n pageTitle?: string;\r\n keyExpr: string;\r\n noDataText: string;\r\n defaultPageSize: number;\r\n targetItems?: any[];\r\n noContentMainText: string;\r\n noContentSubText: string;\r\n onTargetChange?: (selectedItems: RecordType[]) => void;\r\n sourceTitle?: string;\r\n targetTitle?: string;\r\n displayPageTitle?: boolean;\r\n className?: string;\r\n rootClassName?: string;\r\n showSearch?: boolean;\r\n render?: any;\r\n useCustomHeader?: boolean;\r\n showFilters?: boolean;\r\n}\r\n\r\nexport const getRequestHeaders = (props) => {\r\n return new Headers({\r\n \"Content-Type\": \"application/json\",\r\n \"Accept-Language\": props.language != \"\" ? props.language : \"EN\",\r\n });\r\n};\r\n\r\nconst OdsTransfer: React.FC<OdsTransferProps> = (props) => {\r\n const initializeTargetItems = (items) => {\r\n return items.map((item) => ({\r\n ...item,\r\n key: item.key || item.Id,\r\n }));\r\n };\r\n\r\n const [data, setData] = useState([]);\r\n const gridRef = useRef(null);\r\n const [selectedKeys, setSelectedKeys] = useState([]);\r\n const [targetKeys, setTargetKeys] = useState<string[]>(\r\n props.targetItems?.map((item) => item[props.keyExpr]) || []\r\n );\r\n const [targetItems, setTargetItems] = useState(\r\n initializeTargetItems(props.targetItems || [])\r\n );\r\n const [transferDataSource, setTransferDataSource] = useState(data || []);\r\n\r\n const fetchData = useCallback(async () => {\r\n if (!props.axiosRequest) return;\r\n\r\n const isGet = props.axiosRequest.requestType.toUpperCase() === \"GET\";\r\n\r\n let apiUrl = `${props.axiosRequest.environmentUrl}${props.axiosRequest.apiUrl}`;\r\n\r\n if (props.axiosRequest?.requestData?.PaginatedRequest) {\r\n props.axiosRequest.requestData.PaginatedRequest.PageSize = props.pageSize;\r\n }\r\n\r\n if (props.axiosRequest?.requestQueryString) {\r\n props.axiosRequest.requestQueryString.maxResultCount = props.pageSize;\r\n if (\r\n constants.loadedPageCount > 1 &&\r\n constants.totalPageCount >= constants.loadedPageCount\r\n ) {\r\n props.axiosRequest.requestQueryString.skipCount = (\r\n (constants.loadedPageCount - 1) *\r\n props.pageSize\r\n ).toString();\r\n }\r\n\r\n if (isGet && props.axiosRequest?.requestQueryString) {\r\n const query = queryString.stringify(\r\n props.axiosRequest.requestQueryString\r\n );\r\n apiUrl = `${apiUrl}?${query}`;\r\n }\r\n }\r\n const requestOptions: RequestInit = {\r\n method: props.axiosRequest.requestType,\r\n headers: getRequestHeaders(props),\r\n credentials: \"include\" as RequestCredentials,\r\n };\r\n\r\n if (!isGet) {\r\n requestOptions.body = JSON.stringify(props.axiosRequest?.requestData);\r\n }\r\n\r\n try {\r\n const response = await fetch(apiUrl, requestOptions);\r\n const newData = await response.json();\r\n if (constants.loadedPageCount === 1) {\r\n setData(newData.Data ? newData.Data : newData);\r\n constants.loadedPageCount = 1;\r\n } else if (constants.totalPageCount >= constants.loadedPageCount) {\r\n const newArray = newData.Data ? newData.Data : newData;\r\n setData((prevData) => [...prevData, ...newArray]);\r\n }\r\n getTotalCount(response, newData);\r\n } catch (error) {\r\n console.error(\"Error fetching data:\", error);\r\n } finally {\r\n }\r\n }, [\r\n props.axiosRequest?.requestData,\r\n props.axiosRequest?.apiUrl,\r\n props.axiosRequest?.environmentUrl,\r\n props.axiosRequest?.requestQueryString,\r\n props.axiosRequest?.requestType,\r\n props.pageSize,\r\n props.isServerSide,\r\n ]);\r\n\r\n useEffect(() => {\r\n if (props.axiosRequest) {\r\n setData([]);\r\n fetchData();\r\n }\r\n }, [\r\n props.axiosRequest?.requestData,\r\n props.axiosRequest?.requestQueryString,\r\n props.axiosRequest?.apiUrl,\r\n props.axiosRequest?.environmentUrl,\r\n ]);\r\n\r\n const getTotalCount = (response: Response, data: any): void => {\r\n if (data?.PageCount || data?.RowCount) {\r\n constants.totalPageCount = data.PageCount;\r\n constants.totalRecordCount = data.RowCount;\r\n } else {\r\n let totalCount;\r\n\r\n if (response) totalCount = response.headers.get(\"x-total-count\");\r\n if (totalCount == null) totalCount = data?.rowCount;\r\n if (totalCount == null) totalCount = data?.length;\r\n\r\n constants.totalRecordCount = parseInt(totalCount, 10) || 0;\r\n constants.totalPageCount = Math.ceil(\r\n constants.totalRecordCount / props.pageSize\r\n );\r\n }\r\n };\r\n\r\n const removeDuplicates = (items, keyExpr) => {\r\n const seen = new Set();\r\n return items.filter((item) => {\r\n const key = item[keyExpr];\r\n return !seen.has(key) && seen.add(key);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const combinedData = props.targetItems\r\n ? [...props.targetItems, ...data]\r\n : data;\r\n\r\n const uniqueData = removeDuplicates(combinedData, props.keyExpr);\r\n\r\n setTransferDataSource(\r\n uniqueData.map((item) => ({ ...item, key: item[props.keyExpr] }))\r\n );\r\n }, [data, props.targetItems]);\r\n\r\n useEffect(() => {\r\n if (targetItems || props.targetItems) {\r\n setTransferDataSource((prevData) => {\r\n const updatedTargetItems = targetItems.map((item) => ({\r\n ...item,\r\n key: item[props.keyExpr],\r\n }));\r\n const combinedData = [...updatedTargetItems, ...prevData];\r\n const uniqueData = removeDuplicates(combinedData, props.keyExpr);\r\n return uniqueData;\r\n });\r\n\r\n setTargetKeys(\r\n targetItems?.length > 0\r\n ? targetItems?.map((item) => item[props.keyExpr])\r\n : props.targetItems?.map((item) => item[props.keyExpr])\r\n );\r\n }\r\n }, [targetItems, props.keyExpr, props.targetItems]);\r\n\r\n const handleChange = useCallback(\r\n (targetKeys, direction, moveKey) => {\r\n setTargetKeys(targetKeys);\r\n const selectedItems = transferDataSource.filter((item) =>\r\n targetKeys.includes(item[props.keyExpr])\r\n );\r\n\r\n setTargetItems((prevTargetItems) => {\r\n const updatedItems = [...prevTargetItems, ...selectedItems];\r\n return removeDuplicates(\r\n direction === \"left\"\r\n ? updatedItems.filter(\r\n (item) => !moveKey.includes(item[props.keyExpr])\r\n )\r\n : updatedItems,\r\n props.keyExpr\r\n );\r\n });\r\n if (props.onTargetChange) {\r\n const updatedItems = [...targetItems, ...selectedItems];\r\n const uniqueItems = removeDuplicates(\r\n direction === \"left\"\r\n ? updatedItems.filter(\r\n (item) => !moveKey.includes(item[props.keyExpr])\r\n )\r\n : updatedItems,\r\n props.keyExpr\r\n );\r\n props.onTargetChange(uniqueItems);\r\n }\r\n },\r\n [data, transferDataSource, targetItems]\r\n );\r\n\r\n const handleSelectChange = useCallback(\r\n (sourceSelectedKeys, targetSelectedKeys) => {\r\n setSelectedKeys([...sourceSelectedKeys, ...targetSelectedKeys]);\r\n },\r\n []\r\n );\r\n\r\n return (\r\n <div className={styles.wrapper}>\r\n <style>{props.isServerSide && `.dx-pager { display: none; }`}</style>\r\n <Transfer\r\n dataSource={transferDataSource}\r\n targetKeys={targetKeys}\r\n selectedKeys={selectedKeys}\r\n onSelectChange={handleSelectChange}\r\n onChange={handleChange}\r\n showSelectAll={false}\r\n titles={[props.sourceTitle, props.targetTitle]}\r\n render={props.render}\r\n className={props.className}\r\n rootClassName={props.rootClassName}\r\n showSearch={props.showSearch}\r\n >\r\n {({ direction, filteredItems, onItemSelectAll }) => {\r\n const onSelectionChanged = ({\r\n selectedRowKeys: changedRowKeys,\r\n currentDeselectedRowKeys,\r\n }) => {\r\n onItemSelectAll(changedRowKeys, true);\r\n if (currentDeselectedRowKeys.length > 0) {\r\n onItemSelectAll(currentDeselectedRowKeys, false);\r\n }\r\n };\r\n\r\n const leftSideEmpty =\r\n direction === \"left\" && filteredItems.length === 0;\r\n const rightSideEmpty =\r\n direction === \"right\" && targetKeys?.length === 0;\r\n\r\n const combinedDataSource =\r\n direction === \"right\"\r\n ? removeDuplicates(\r\n [...filteredItems, ...targetItems],\r\n props.keyExpr\r\n )\r\n : filteredItems;\r\n\r\n const CustomHeader = () => (\r\n <div\r\n className=\"transfer-custom-header\"\r\n style={{\r\n padding: \"8px 16px\",\r\n borderBottom: \"1px solid #f0f0f0\",\r\n fontWeight: \"bold\",\r\n }}\r\n >\r\n {direction === \"left\"\r\n ? props.sourceTitle || \"Available Items\"\r\n : props.targetTitle || \"Selected Items\"}\r\n </div>\r\n );\r\n\r\n return (\r\n <div\r\n className=\"customize-wrapper-content\"\r\n style={{ height: \"100%\", overflow: \"auto\" }}\r\n >\r\n {props.useCustomHeader && <CustomHeader />}\r\n {leftSideEmpty || rightSideEmpty ? (\r\n <div\r\n className=\"empty-list-items-container-wrapper\"\r\n style={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n height: \"100%\",\r\n minHeight: \"300px\",\r\n }}\r\n >\r\n <NoContentComponent\r\n mainText={props.noContentMainText}\r\n subText={props.noContentSubText}\r\n />\r\n </div>\r\n ) : (\r\n <DataGrid\r\n dataSource={combinedDataSource}\r\n keyExpr={props.keyExpr}\r\n showBorders\r\n paging={{ enabled: true }}\r\n selection={{\r\n mode: \"multiple\",\r\n selectAllMode: \"page\",\r\n showCheckBoxesMode: \"always\",\r\n }}\r\n onSelectionChanged={onSelectionChanged}\r\n columns={props.columns}\r\n columnFixing={{ enabled: true }}\r\n noDataText={props.noDataText}\r\n ref={gridRef}\r\n >\r\n {props.showFilters ?? <FilterRow visible={true} />}\r\n {props.columns.map((column) => (\r\n <DxColumn\r\n dataField={column.dataField}\r\n caption={column.caption}\r\n dataType={column.dataType}\r\n calculateSortValue={column.calculateSortValue}\r\n allowHeaderFiltering={props.showFilters}\r\n />\r\n ))}\r\n {props.displayPageTitle && !isTextEmpty(props.pageTitle) && (\r\n <Toolbar>\r\n <DxItem location=\"before\" cssClass=\"toolbarTitleItem\">\r\n <OdsTitle\r\n level={5}\r\n style={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n alignSelf: \"stretch\",\r\n margin: 0,\r\n }}\r\n >\r\n {props.pageTitle}\r\n </OdsTitle>\r\n </DxItem>\r\n </Toolbar>\r\n )}\r\n </DataGrid>\r\n )}\r\n </div>\r\n );\r\n }}\r\n </Transfer>\r\n </div>\r\n );\r\n};\r\n\r\nexport default OdsTransfer;\r\n"],"names":["constants","getRequestHeaders","props","OdsTransfer","initializeTargetItems","items","item","data","setData","useState","gridRef","useRef","selectedKeys","setSelectedKeys","targetKeys","setTargetKeys","targetItems","setTargetItems","transferDataSource","setTransferDataSource","fetchData","useCallback","isGet","apiUrl","query","queryString","requestOptions","response","newData","newArray","prevData","getTotalCount","useEffect","totalCount","removeDuplicates","keyExpr","seen","key","combinedData","uniqueData","handleChange","direction","moveKey","selectedItems","prevTargetItems","updatedItems","uniqueItems","handleSelectChange","sourceSelectedKeys","targetSelectedKeys","jsxs","styles","jsx","Transfer","filteredItems","onItemSelectAll","onSelectionChanged","changedRowKeys","currentDeselectedRowKeys","leftSideEmpty","rightSideEmpty","combinedDataSource","CustomHeader","NoContentComponent","DataGrid","FilterRow","column","DxColumn","isTextEmpty","Toolbar","DxItem","OdsTitle"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OdsTransfer.js","sources":["../../../src/components/devextreme/OdsTransfer.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useRef } from \"react\";\r\nimport { Transfer } from \"antd\";\r\nimport styles from \"./Transfer.module.scss\";\r\nimport DataGrid, {\r\n Item as DxItem,\r\n Column as DxColumn,\r\n FilterRow,\r\n Toolbar,\r\n} from \"devextreme-react/data-grid\";\r\nimport queryString from \"query-string\";\r\nimport NoContentComponent from \"./NoContentComponent\";\r\nimport OdsTitle from \"../antd/typography/OdsTitle\";\r\nimport { isTextEmpty } from \"../../utils/commonFunctions\";\r\n\r\nexport interface Column {\r\n title: string;\r\n dataIndex: string;\r\n key?: string;\r\n caption?: string;\r\n tooltip?: { enable: boolean };\r\n}\r\n\r\nlet constants = {\r\n totalPageCount: 1,\r\n loadedPageCount: 1,\r\n totalRecordCount: 0,\r\n};\r\n\r\ninterface IAxiosProps {\r\n token?: string;\r\n requestData?: any;\r\n apiUrl: string;\r\n environmentUrl: string;\r\n requestQueryString?: any;\r\n requestType: string;\r\n}\r\n\r\ninterface ISummaryRowOptions {\r\n summaryLoadedDataLabel?: string;\r\n summaryTotalDataLabel?: string;\r\n summaryFilteredDataLabel?: string;\r\n summaryTotalCount?: number;\r\n summaryTotalPageCountLabel?: string;\r\n summarySumLabel?: string;\r\n summaryAvgLabel?: string;\r\n summaryMinLabel?: string;\r\n summaryMaxLabel?: string;\r\n summaryCountLabel?: string;\r\n}\r\n\r\ninterface OdsTransferProps<RecordType = any> {\r\n dataSource?: RecordType[];\r\n language: string;\r\n pagingEnable?: boolean;\r\n pageSize?: number;\r\n isServerSide: boolean;\r\n axiosRequest?: IAxiosProps;\r\n customSummary?: ISummaryRowOptions;\r\n dataGridPageName?: string;\r\n columns: any[];\r\n pageTitle?: string;\r\n keyExpr: string;\r\n noDataText: string;\r\n defaultPageSize: number;\r\n targetItems?: any[];\r\n noContentMainText: string;\r\n noContentSubText: string;\r\n onTargetChange?: (selectedItems: RecordType[]) => void;\r\n sourceTitle?: string;\r\n targetTitle?: string;\r\n displayPageTitle?: boolean;\r\n className?: string;\r\n rootClassName?: string;\r\n showSearch?: boolean;\r\n render?: any;\r\n useCustomHeader?: boolean;\r\n showFilters?: boolean;\r\n}\r\n\r\nexport const getRequestHeaders = (props) => {\r\n const headers = new Headers({\r\n \"Content-Type\": \"application/json\",\r\n \"Accept-Language\": props.language != \"\" ? props.language : \"EN\",\r\n });\r\n if (props.axiosRequest?.token) {\r\n headers.set(\"Authorization\", \"Bearer \" + props.axiosRequest.token);\r\n }\r\n return headers;\r\n};\r\n\r\nconst OdsTransfer: React.FC<OdsTransferProps> = (props) => {\r\n const initializeTargetItems = (items) => {\r\n return items.map((item) => ({\r\n ...item,\r\n key: item.key || item.Id,\r\n }));\r\n };\r\n\r\n const [data, setData] = useState([]);\r\n const gridRef = useRef(null);\r\n const [selectedKeys, setSelectedKeys] = useState([]);\r\n const [targetKeys, setTargetKeys] = useState<string[]>(\r\n props.targetItems?.map((item) => item[props.keyExpr]) || []\r\n );\r\n const [targetItems, setTargetItems] = useState(\r\n initializeTargetItems(props.targetItems || [])\r\n );\r\n const [transferDataSource, setTransferDataSource] = useState(data || []);\r\n\r\n const fetchData = useCallback(async () => {\r\n if (!props.axiosRequest) return;\r\n\r\n const isGet = props.axiosRequest.requestType.toUpperCase() === \"GET\";\r\n\r\n let apiUrl = `${props.axiosRequest.environmentUrl}${props.axiosRequest.apiUrl}`;\r\n\r\n if (props.axiosRequest?.requestData?.PaginatedRequest) {\r\n props.axiosRequest.requestData.PaginatedRequest.PageSize = props.pageSize;\r\n }\r\n\r\n if (props.axiosRequest?.requestQueryString) {\r\n props.axiosRequest.requestQueryString.maxResultCount = props.pageSize;\r\n if (\r\n constants.loadedPageCount > 1 &&\r\n constants.totalPageCount >= constants.loadedPageCount\r\n ) {\r\n props.axiosRequest.requestQueryString.skipCount = (\r\n (constants.loadedPageCount - 1) *\r\n props.pageSize\r\n ).toString();\r\n }\r\n\r\n if (isGet && props.axiosRequest?.requestQueryString) {\r\n const query = queryString.stringify(\r\n props.axiosRequest.requestQueryString\r\n );\r\n apiUrl = `${apiUrl}?${query}`;\r\n }\r\n }\r\n const requestOptions: RequestInit = {\r\n method: props.axiosRequest.requestType,\r\n headers: getRequestHeaders(props),\r\n credentials: (props.axiosRequest.token ? \"same-origin\" : \"include\") as RequestCredentials,\r\n };\r\n\r\n if (!isGet) {\r\n requestOptions.body = JSON.stringify(props.axiosRequest?.requestData);\r\n }\r\n\r\n try {\r\n const response = await fetch(apiUrl, requestOptions);\r\n const newData = await response.json();\r\n if (constants.loadedPageCount === 1) {\r\n setData(newData.Data ? newData.Data : newData);\r\n constants.loadedPageCount = 1;\r\n } else if (constants.totalPageCount >= constants.loadedPageCount) {\r\n const newArray = newData.Data ? newData.Data : newData;\r\n setData((prevData) => [...prevData, ...newArray]);\r\n }\r\n getTotalCount(response, newData);\r\n } catch (error) {\r\n console.error(\"Error fetching data:\", error);\r\n } finally {\r\n }\r\n }, [\r\n props.axiosRequest?.requestData,\r\n props.axiosRequest?.apiUrl,\r\n props.axiosRequest?.environmentUrl,\r\n props.axiosRequest?.requestQueryString,\r\n props.axiosRequest?.requestType,\r\n props.pageSize,\r\n props.isServerSide,\r\n ]);\r\n\r\n useEffect(() => {\r\n if (props.axiosRequest) {\r\n setData([]);\r\n fetchData();\r\n }\r\n }, [\r\n props.axiosRequest?.requestData,\r\n props.axiosRequest?.requestQueryString,\r\n props.axiosRequest?.apiUrl,\r\n props.axiosRequest?.environmentUrl,\r\n ]);\r\n\r\n const getTotalCount = (response: Response, data: any): void => {\r\n if (data?.PageCount || data?.RowCount) {\r\n constants.totalPageCount = data.PageCount;\r\n constants.totalRecordCount = data.RowCount;\r\n } else {\r\n let totalCount;\r\n\r\n if (response) totalCount = response.headers.get(\"x-total-count\");\r\n if (totalCount == null) totalCount = data?.rowCount;\r\n if (totalCount == null) totalCount = data?.length;\r\n\r\n constants.totalRecordCount = parseInt(totalCount, 10) || 0;\r\n constants.totalPageCount = Math.ceil(\r\n constants.totalRecordCount / props.pageSize\r\n );\r\n }\r\n };\r\n\r\n const removeDuplicates = (items, keyExpr) => {\r\n const seen = new Set();\r\n return items.filter((item) => {\r\n const key = item[keyExpr];\r\n return !seen.has(key) && seen.add(key);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const combinedData = props.targetItems\r\n ? [...props.targetItems, ...data]\r\n : data;\r\n\r\n const uniqueData = removeDuplicates(combinedData, props.keyExpr);\r\n\r\n setTransferDataSource(\r\n uniqueData.map((item) => ({ ...item, key: item[props.keyExpr] }))\r\n );\r\n }, [data, props.targetItems]);\r\n\r\n useEffect(() => {\r\n if (targetItems || props.targetItems) {\r\n setTransferDataSource((prevData) => {\r\n const updatedTargetItems = targetItems.map((item) => ({\r\n ...item,\r\n key: item[props.keyExpr],\r\n }));\r\n const combinedData = [...updatedTargetItems, ...prevData];\r\n const uniqueData = removeDuplicates(combinedData, props.keyExpr);\r\n return uniqueData;\r\n });\r\n\r\n setTargetKeys(\r\n targetItems?.length > 0\r\n ? targetItems?.map((item) => item[props.keyExpr])\r\n : props.targetItems?.map((item) => item[props.keyExpr])\r\n );\r\n }\r\n }, [targetItems, props.keyExpr, props.targetItems]);\r\n\r\n const handleChange = useCallback(\r\n (targetKeys, direction, moveKey) => {\r\n setTargetKeys(targetKeys);\r\n const selectedItems = transferDataSource.filter((item) =>\r\n targetKeys.includes(item[props.keyExpr])\r\n );\r\n\r\n setTargetItems((prevTargetItems) => {\r\n const updatedItems = [...prevTargetItems, ...selectedItems];\r\n return removeDuplicates(\r\n direction === \"left\"\r\n ? updatedItems.filter(\r\n (item) => !moveKey.includes(item[props.keyExpr])\r\n )\r\n : updatedItems,\r\n props.keyExpr\r\n );\r\n });\r\n if (props.onTargetChange) {\r\n const updatedItems = [...targetItems, ...selectedItems];\r\n const uniqueItems = removeDuplicates(\r\n direction === \"left\"\r\n ? updatedItems.filter(\r\n (item) => !moveKey.includes(item[props.keyExpr])\r\n )\r\n : updatedItems,\r\n props.keyExpr\r\n );\r\n props.onTargetChange(uniqueItems);\r\n }\r\n },\r\n [data, transferDataSource, targetItems]\r\n );\r\n\r\n const handleSelectChange = useCallback(\r\n (sourceSelectedKeys, targetSelectedKeys) => {\r\n setSelectedKeys([...sourceSelectedKeys, ...targetSelectedKeys]);\r\n },\r\n []\r\n );\r\n\r\n return (\r\n <div className={styles.wrapper}>\r\n <style>{props.isServerSide && `.dx-pager { display: none; }`}</style>\r\n <Transfer\r\n dataSource={transferDataSource}\r\n targetKeys={targetKeys}\r\n selectedKeys={selectedKeys}\r\n onSelectChange={handleSelectChange}\r\n onChange={handleChange}\r\n showSelectAll={false}\r\n titles={[props.sourceTitle, props.targetTitle]}\r\n render={props.render}\r\n className={props.className}\r\n rootClassName={props.rootClassName}\r\n showSearch={props.showSearch}\r\n >\r\n {({ direction, filteredItems, onItemSelectAll }) => {\r\n const onSelectionChanged = ({\r\n selectedRowKeys: changedRowKeys,\r\n currentDeselectedRowKeys,\r\n }) => {\r\n onItemSelectAll(changedRowKeys, true);\r\n if (currentDeselectedRowKeys.length > 0) {\r\n onItemSelectAll(currentDeselectedRowKeys, false);\r\n }\r\n };\r\n\r\n const leftSideEmpty =\r\n direction === \"left\" && filteredItems.length === 0;\r\n const rightSideEmpty =\r\n direction === \"right\" && targetKeys?.length === 0;\r\n\r\n const combinedDataSource =\r\n direction === \"right\"\r\n ? removeDuplicates(\r\n [...filteredItems, ...targetItems],\r\n props.keyExpr\r\n )\r\n : filteredItems;\r\n\r\n const CustomHeader = () => (\r\n <div\r\n className=\"transfer-custom-header\"\r\n style={{\r\n padding: \"8px 16px\",\r\n borderBottom: \"1px solid #f0f0f0\",\r\n fontWeight: \"bold\",\r\n }}\r\n >\r\n {direction === \"left\"\r\n ? props.sourceTitle || \"Available Items\"\r\n : props.targetTitle || \"Selected Items\"}\r\n </div>\r\n );\r\n\r\n return (\r\n <div\r\n className=\"customize-wrapper-content\"\r\n style={{ height: \"100%\", overflow: \"auto\" }}\r\n >\r\n {props.useCustomHeader && <CustomHeader />}\r\n {leftSideEmpty || rightSideEmpty ? (\r\n <div\r\n className=\"empty-list-items-container-wrapper\"\r\n style={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n height: \"100%\",\r\n minHeight: \"300px\",\r\n }}\r\n >\r\n <NoContentComponent\r\n mainText={props.noContentMainText}\r\n subText={props.noContentSubText}\r\n />\r\n </div>\r\n ) : (\r\n <DataGrid\r\n dataSource={combinedDataSource}\r\n keyExpr={props.keyExpr}\r\n showBorders\r\n paging={{ enabled: true }}\r\n selection={{\r\n mode: \"multiple\",\r\n selectAllMode: \"page\",\r\n showCheckBoxesMode: \"always\",\r\n }}\r\n onSelectionChanged={onSelectionChanged}\r\n columns={props.columns}\r\n columnFixing={{ enabled: true }}\r\n noDataText={props.noDataText}\r\n ref={gridRef}\r\n >\r\n {props.showFilters ?? <FilterRow visible={true} />}\r\n {props.columns.map((column) => (\r\n <DxColumn\r\n dataField={column.dataField}\r\n caption={column.caption}\r\n dataType={column.dataType}\r\n calculateSortValue={column.calculateSortValue}\r\n allowHeaderFiltering={props.showFilters}\r\n />\r\n ))}\r\n {props.displayPageTitle && !isTextEmpty(props.pageTitle) && (\r\n <Toolbar>\r\n <DxItem location=\"before\" cssClass=\"toolbarTitleItem\">\r\n <OdsTitle\r\n level={5}\r\n style={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n alignSelf: \"stretch\",\r\n margin: 0,\r\n }}\r\n >\r\n {props.pageTitle}\r\n </OdsTitle>\r\n </DxItem>\r\n </Toolbar>\r\n )}\r\n </DataGrid>\r\n )}\r\n </div>\r\n );\r\n }}\r\n </Transfer>\r\n </div>\r\n );\r\n};\r\n\r\nexport default OdsTransfer;\r\n"],"names":["constants","getRequestHeaders","props","headers","OdsTransfer","initializeTargetItems","items","item","data","setData","useState","gridRef","useRef","selectedKeys","setSelectedKeys","targetKeys","setTargetKeys","targetItems","setTargetItems","transferDataSource","setTransferDataSource","fetchData","useCallback","isGet","apiUrl","query","queryString","requestOptions","response","newData","newArray","prevData","getTotalCount","useEffect","totalCount","removeDuplicates","keyExpr","seen","key","combinedData","uniqueData","handleChange","direction","moveKey","selectedItems","prevTargetItems","updatedItems","uniqueItems","handleSelectChange","sourceSelectedKeys","targetSelectedKeys","jsxs","styles","jsx","Transfer","filteredItems","onItemSelectAll","onSelectionChanged","changedRowKeys","currentDeselectedRowKeys","leftSideEmpty","rightSideEmpty","combinedDataSource","CustomHeader","NoContentComponent","DataGrid","FilterRow","column","DxColumn","isTextEmpty","Toolbar","DxItem","OdsTitle"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as C, jsx as s } from "react/jsx-runtime";
|
|
2
|
-
import { useState as p, useRef as tt, useCallback as D, useEffect as
|
|
2
|
+
import { useState as p, useRef as tt, useCallback as D, useEffect as B } from "react";
|
|
3
3
|
import { Transfer as et } from "antd";
|
|
4
|
-
import at, { FilterRow as nt, Column as
|
|
4
|
+
import at, { FilterRow as nt, Column as H, Toolbar as rt, Item as st } from "devextreme-react/data-grid";
|
|
5
5
|
import * as ot from "../../node_modules/query-string/base.js";
|
|
6
6
|
import lt from "./NoContentComponent.js";
|
|
7
7
|
import ct from "../antd/typography/OdsTitle.js";
|
|
@@ -11,30 +11,33 @@ const b = {
|
|
|
11
11
|
totalPageCount: 1,
|
|
12
12
|
loadedPageCount: 1,
|
|
13
13
|
totalRecordCount: 0
|
|
14
|
-
}, ft = (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const f = /* @__PURE__ */ new Set();
|
|
19
|
-
return d.filter((g) => {
|
|
20
|
-
const l = g[h];
|
|
21
|
-
return !f.has(l) && f.add(l);
|
|
14
|
+
}, ft = (l) => {
|
|
15
|
+
const f = new Headers({
|
|
16
|
+
"Content-Type": "application/json",
|
|
17
|
+
"Accept-Language": l.language || "EN"
|
|
22
18
|
});
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
return l.axiosRequest?.token && f.set("Authorization", `Bearer ${l.axiosRequest.token}`), f;
|
|
20
|
+
}, w = (l, f) => {
|
|
21
|
+
const u = /* @__PURE__ */ new Set();
|
|
22
|
+
return l.filter((g) => {
|
|
23
|
+
const c = g[f];
|
|
24
|
+
return !u.has(c) && u.add(c);
|
|
25
|
+
});
|
|
26
|
+
}, ut = (l, f) => l.map((u) => ({
|
|
27
|
+
...u,
|
|
28
|
+
key: u[f] || u.Id
|
|
26
29
|
})), wt = ({
|
|
27
|
-
dataSource:
|
|
28
|
-
language:
|
|
29
|
-
pagingEnable:
|
|
30
|
+
dataSource: l = [],
|
|
31
|
+
language: f,
|
|
32
|
+
pagingEnable: u = !0,
|
|
30
33
|
pageSize: g = 10,
|
|
31
|
-
isServerSide:
|
|
34
|
+
isServerSide: c,
|
|
32
35
|
axiosRequest: t,
|
|
33
36
|
columns: I,
|
|
34
37
|
pageTitle: T,
|
|
35
38
|
keyExpr: o,
|
|
36
|
-
noDataText:
|
|
37
|
-
defaultPageSize:
|
|
39
|
+
noDataText: O,
|
|
40
|
+
defaultPageSize: Q,
|
|
38
41
|
targetItems: P = [],
|
|
39
42
|
noContentMainText: G,
|
|
40
43
|
noContentSubText: L,
|
|
@@ -43,63 +46,63 @@ const b = {
|
|
|
43
46
|
targetTitle: v = "Selected Items",
|
|
44
47
|
displayPageTitle: M = !1,
|
|
45
48
|
className: V,
|
|
46
|
-
rootClassName:
|
|
47
|
-
showSearch:
|
|
48
|
-
render:
|
|
49
|
+
rootClassName: z,
|
|
50
|
+
showSearch: K = !1,
|
|
51
|
+
render: _,
|
|
49
52
|
useCustomHeader: J = !1
|
|
50
53
|
}) => {
|
|
51
54
|
const [S, U] = p([]), [j, W] = p(
|
|
52
55
|
P.map((e) => e[o])
|
|
53
56
|
), [m, q] = p(
|
|
54
57
|
ut(P, o)
|
|
55
|
-
), [y, X] = p([]), [Y, Z] = p([]),
|
|
56
|
-
if (!t || !
|
|
58
|
+
), [y, X] = p([]), [Y, Z] = p([]), k = tt(null), A = D(async () => {
|
|
59
|
+
if (!t || !c) return;
|
|
57
60
|
const e = t.requestType.toUpperCase() === "GET";
|
|
58
61
|
let n = `${t.environmentUrl}${t.apiUrl}`;
|
|
59
62
|
if (t.requestData?.PaginatedRequest && (t.requestData.PaginatedRequest.PageSize = g), t.requestQueryString && (t.requestQueryString.maxResultCount = g, e)) {
|
|
60
63
|
const r = ot.stringify(t.requestQueryString);
|
|
61
64
|
n = `${n}?${r}`;
|
|
62
65
|
}
|
|
63
|
-
const
|
|
66
|
+
const h = {
|
|
64
67
|
method: t.requestType,
|
|
65
|
-
headers: ft({ language:
|
|
66
|
-
credentials: "include",
|
|
68
|
+
headers: ft({ language: f, axiosRequest: t }),
|
|
69
|
+
credentials: t.token ? "same-origin" : "include",
|
|
67
70
|
body: e ? void 0 : JSON.stringify(t.requestData)
|
|
68
71
|
};
|
|
69
72
|
try {
|
|
70
|
-
const r = await fetch(n,
|
|
73
|
+
const r = await fetch(n, h), i = await r.json(), d = i.Data || i;
|
|
71
74
|
U(
|
|
72
|
-
(a) => b.loadedPageCount === 1 ?
|
|
73
|
-
), b.totalPageCount =
|
|
75
|
+
(a) => b.loadedPageCount === 1 ? d : [...a, ...d]
|
|
76
|
+
), b.totalPageCount = i.PageCount || Math.ceil((i.rowCount || d.length) / g), b.totalRecordCount = i.RowCount || parseInt(r.headers.get("x-total-count") || d.length, 10);
|
|
74
77
|
} catch {
|
|
75
78
|
}
|
|
76
|
-
}, [t, g,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
+
}, [t, g, f, c]);
|
|
80
|
+
B(() => {
|
|
81
|
+
c && t && (U([]), A());
|
|
79
82
|
}, [
|
|
80
83
|
t?.requestData,
|
|
81
84
|
t?.requestQueryString,
|
|
82
85
|
t?.apiUrl,
|
|
83
86
|
t?.environmentUrl,
|
|
84
87
|
A,
|
|
85
|
-
|
|
86
|
-
]),
|
|
87
|
-
const n = [...
|
|
88
|
+
c
|
|
89
|
+
]), B(() => {
|
|
90
|
+
const n = [...c ? S : l, ...m], h = w(n, o).map((r) => ({
|
|
88
91
|
...r,
|
|
89
92
|
key: r[o]
|
|
90
93
|
}));
|
|
91
|
-
X(
|
|
92
|
-
}, [S,
|
|
93
|
-
const
|
|
94
|
-
(e, n,
|
|
94
|
+
X(h);
|
|
95
|
+
}, [S, l, m, o, c]);
|
|
96
|
+
const E = D(
|
|
97
|
+
(e, n, h) => {
|
|
95
98
|
W(e);
|
|
96
99
|
const r = y.filter(
|
|
97
|
-
(
|
|
98
|
-
),
|
|
99
|
-
n === "left" ? m.filter((
|
|
100
|
+
(d) => e.includes(d[o])
|
|
101
|
+
), i = w(
|
|
102
|
+
n === "left" ? m.filter((d) => !h.includes(d[o])).concat(r) : [...m, ...r],
|
|
100
103
|
o
|
|
101
104
|
);
|
|
102
|
-
q(
|
|
105
|
+
q(i), F?.(i);
|
|
103
106
|
},
|
|
104
107
|
[y, m, o, F]
|
|
105
108
|
), x = D(
|
|
@@ -120,7 +123,7 @@ const b = {
|
|
|
120
123
|
}
|
|
121
124
|
);
|
|
122
125
|
return /* @__PURE__ */ C("div", { className: it.wrapper, children: [
|
|
123
|
-
|
|
126
|
+
c && /* @__PURE__ */ s("style", { children: ".dx-pager { display: none; }" }),
|
|
124
127
|
/* @__PURE__ */ s(
|
|
125
128
|
et,
|
|
126
129
|
{
|
|
@@ -128,15 +131,15 @@ const b = {
|
|
|
128
131
|
targetKeys: j,
|
|
129
132
|
selectedKeys: Y,
|
|
130
133
|
onSelectChange: x,
|
|
131
|
-
onChange:
|
|
134
|
+
onChange: E,
|
|
132
135
|
showSelectAll: !1,
|
|
133
136
|
titles: [N, v],
|
|
134
|
-
render:
|
|
137
|
+
render: _,
|
|
135
138
|
className: V,
|
|
136
|
-
rootClassName:
|
|
137
|
-
showSearch:
|
|
138
|
-
children: ({ direction: e, filteredItems: n, onItemSelectAll:
|
|
139
|
-
const r = e === "left" && n.length === 0,
|
|
139
|
+
rootClassName: z,
|
|
140
|
+
showSearch: K,
|
|
141
|
+
children: ({ direction: e, filteredItems: n, onItemSelectAll: h }) => {
|
|
142
|
+
const r = e === "left" && n.length === 0, i = e === "right" && j.length === 0, d = e === "right" ? w([...n, ...m], o) : n;
|
|
140
143
|
return /* @__PURE__ */ C(
|
|
141
144
|
"div",
|
|
142
145
|
{
|
|
@@ -144,7 +147,7 @@ const b = {
|
|
|
144
147
|
style: { height: "100%", overflow: "auto" },
|
|
145
148
|
children: [
|
|
146
149
|
J && /* @__PURE__ */ s(R, { direction: e }),
|
|
147
|
-
r ||
|
|
150
|
+
r || i ? /* @__PURE__ */ s(
|
|
148
151
|
"div",
|
|
149
152
|
{
|
|
150
153
|
className: "empty-list-items-container-wrapper",
|
|
@@ -167,10 +170,10 @@ const b = {
|
|
|
167
170
|
) : /* @__PURE__ */ C(
|
|
168
171
|
at,
|
|
169
172
|
{
|
|
170
|
-
dataSource:
|
|
173
|
+
dataSource: d,
|
|
171
174
|
keyExpr: o,
|
|
172
175
|
showBorders: !0,
|
|
173
|
-
paging: { enabled:
|
|
176
|
+
paging: { enabled: u, pageSize: Q },
|
|
174
177
|
selection: {
|
|
175
178
|
mode: "multiple",
|
|
176
179
|
selectAllMode: "page",
|
|
@@ -178,19 +181,19 @@ const b = {
|
|
|
178
181
|
},
|
|
179
182
|
onSelectionChanged: ({
|
|
180
183
|
selectedRowKeys: a,
|
|
181
|
-
currentDeselectedRowKeys:
|
|
184
|
+
currentDeselectedRowKeys: $
|
|
182
185
|
}) => {
|
|
183
|
-
|
|
186
|
+
h(a, !0), $.length > 0 && h($, !1);
|
|
184
187
|
},
|
|
185
188
|
columns: I,
|
|
186
189
|
columnFixing: { enabled: !0 },
|
|
187
|
-
noDataText:
|
|
188
|
-
ref:
|
|
190
|
+
noDataText: O,
|
|
191
|
+
ref: k,
|
|
189
192
|
children: [
|
|
190
193
|
/* @__PURE__ */ s(nt, { visible: !0 }),
|
|
191
194
|
I.map(
|
|
192
195
|
(a) => typeof a == "string" ? /* @__PURE__ */ s(
|
|
193
|
-
|
|
196
|
+
H,
|
|
194
197
|
{
|
|
195
198
|
dataField: a,
|
|
196
199
|
caption: a,
|
|
@@ -198,7 +201,7 @@ const b = {
|
|
|
198
201
|
},
|
|
199
202
|
a
|
|
200
203
|
) : /* @__PURE__ */ s(
|
|
201
|
-
|
|
204
|
+
H,
|
|
202
205
|
{
|
|
203
206
|
dataField: a.dataField || a.dataIndex,
|
|
204
207
|
caption: a.caption || a.title,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OdsTransferV2.js","sources":["../../../src/components/devextreme/OdsTransferV2.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useRef, FC } from \"react\";\r\nimport { Transfer, TransferProps } from \"antd\";\r\nimport DataGrid, {\r\n Column as DxColumn,\r\n FilterRow,\r\n Toolbar,\r\n Item as DxItem,\r\n} from \"devextreme-react/data-grid\";\r\nimport queryString from \"query-string\";\r\nimport NoContentComponent from \"./NoContentComponent\";\r\nimport OdsTitle from \"../antd/typography/OdsTitle\";\r\nimport styles from \"./Transfer.module.scss\";\r\nimport { isTextEmpty } from \"../../utils/commonFunctions\";\r\n\r\ninterface Column {\r\n title?: string;\r\n dataIndex?: string;\r\n key?: string;\r\n caption?: string;\r\n tooltip?: { enable: boolean };\r\n dataField?: string;\r\n dataType?: \"string\" | \"number\" | \"boolean\" | \"object\" | \"date\" | \"datetime\";\r\n calculateSortValue?: string;\r\n}\r\n\r\ninterface AxiosProps {\r\n requestData?: any;\r\n apiUrl: string;\r\n environmentUrl: string;\r\n requestQueryString?: any;\r\n requestType: string;\r\n}\r\n\r\ninterface SummaryRowOptions {\r\n summaryLoadedDataLabel?: string;\r\n summaryTotalDataLabel?: string;\r\n summaryFilteredDataLabel?: string;\r\n summaryTotalCount?: number;\r\n summaryTotalPageCountLabel?: string;\r\n summarySumLabel?: string;\r\n summaryAvgLabel?: string;\r\n summaryMinLabel?: string;\r\n summaryMaxLabel?: string;\r\n summaryCountLabel?: string;\r\n}\r\n\r\ninterface OdsTransferProps<T = any> {\r\n dataSource?: T[];\r\n language: string;\r\n pagingEnable?: boolean;\r\n pageSize?: number;\r\n isServerSide: boolean;\r\n axiosRequest?: AxiosProps;\r\n customSummary?: SummaryRowOptions;\r\n dataGridPageName?: string;\r\n columns: (string | Column)[];\r\n pageTitle?: string;\r\n keyExpr: string;\r\n noDataText: string;\r\n defaultPageSize: number;\r\n targetItems?: T[];\r\n noContentMainText: string;\r\n noContentSubText: string;\r\n onTargetChange?: (selectedItems: T[]) => void;\r\n sourceTitle?: string;\r\n targetTitle?: string;\r\n displayPageTitle?: boolean;\r\n className?: string;\r\n rootClassName?: string;\r\n showSearch?: boolean;\r\n render?: TransferProps<T>[\"render\"];\r\n useCustomHeader?: boolean;\r\n}\r\n\r\ninterface RequestHeadersProps {\r\n language: string;\r\n axiosRequest?: AxiosProps;\r\n}\r\n\r\nconst constants = {\r\n totalPageCount: 1,\r\n loadedPageCount: 1,\r\n totalRecordCount: 0,\r\n};\r\n\r\nconst getRequestHeaders = (props: RequestHeadersProps): Headers => {\r\n return new Headers({\r\n \"Content-Type\": \"application/json\",\r\n \"Accept-Language\": props.language || \"EN\",\r\n });\r\n};\r\n\r\nconst removeDuplicates = <T,>(items: T[], keyExpr: string): T[] => {\r\n const seen = new Set();\r\n return items.filter((item) => {\r\n const key = item[keyExpr];\r\n return !seen.has(key) && seen.add(key);\r\n });\r\n};\r\n\r\nconst initializeTargetItems = <T,>(items: T[], keyExpr: string): T[] => {\r\n return items.map((item) => ({\r\n ...item,\r\n key: item[keyExpr] || item[\"Id\"],\r\n }));\r\n};\r\n\r\nconst OdsTransferV2: FC<OdsTransferProps> = ({\r\n dataSource = [],\r\n language,\r\n pagingEnable = true,\r\n pageSize = 10,\r\n isServerSide,\r\n axiosRequest,\r\n columns,\r\n pageTitle,\r\n keyExpr,\r\n noDataText,\r\n defaultPageSize,\r\n targetItems: initialTargetItems = [],\r\n noContentMainText,\r\n noContentSubText,\r\n onTargetChange,\r\n sourceTitle = \"Available Items\",\r\n targetTitle = \"Selected Items\",\r\n displayPageTitle = false,\r\n className,\r\n rootClassName,\r\n showSearch = false,\r\n render,\r\n useCustomHeader = false,\r\n}) => {\r\n const [data, setData] = useState<any[]>([]);\r\n const [targetKeys, setTargetKeys] = useState<string[]>(\r\n initialTargetItems.map((item) => item[keyExpr])\r\n );\r\n const [targetItems, setTargetItems] = useState<any[]>(\r\n initializeTargetItems(initialTargetItems, keyExpr)\r\n );\r\n const [transferDataSource, setTransferDataSource] = useState<any[]>([]);\r\n const [selectedKeys, setSelectedKeys] = useState<string[]>([]);\r\n const gridRef = useRef<any>(null);\r\n\r\n const fetchData = useCallback(async () => {\r\n if (!axiosRequest || !isServerSide) return;\r\n\r\n const isGet = axiosRequest.requestType.toUpperCase() === \"GET\";\r\n let apiUrl = `${axiosRequest.environmentUrl}${axiosRequest.apiUrl}`;\r\n\r\n if (axiosRequest.requestData?.PaginatedRequest) {\r\n axiosRequest.requestData.PaginatedRequest.PageSize = pageSize;\r\n }\r\n\r\n if (axiosRequest.requestQueryString) {\r\n axiosRequest.requestQueryString.maxResultCount = pageSize;\r\n if (\r\n constants.loadedPageCount > 1 &&\r\n constants.totalPageCount >= constants.loadedPageCount\r\n ) {\r\n axiosRequest.requestQueryString.skipCount = (\r\n (constants.loadedPageCount - 1) *\r\n pageSize\r\n ).toString();\r\n }\r\n if (isGet) {\r\n const query = queryString.stringify(axiosRequest.requestQueryString);\r\n apiUrl = `${apiUrl}?${query}`;\r\n }\r\n }\r\n\r\n const requestOptions: RequestInit = {\r\n method: axiosRequest.requestType,\r\n headers: getRequestHeaders({ language, axiosRequest }),\r\n credentials: \"include\",\r\n body: isGet ? undefined : JSON.stringify(axiosRequest.requestData),\r\n };\r\n\r\n try {\r\n const response = await fetch(apiUrl, requestOptions);\r\n const newData = await response.json();\r\n const dataArray = newData.Data || newData;\r\n\r\n setData((prevData) =>\r\n constants.loadedPageCount === 1\r\n ? dataArray\r\n : [...prevData, ...dataArray]\r\n );\r\n\r\n constants.totalPageCount =\r\n newData.PageCount ||\r\n Math.ceil((newData.rowCount || dataArray.length) / pageSize);\r\n constants.totalRecordCount =\r\n newData.RowCount ||\r\n parseInt(response.headers.get(\"x-total-count\") || dataArray.length, 10);\r\n } catch (error) {\r\n console.error(\"Error fetching data:\", error);\r\n }\r\n }, [axiosRequest, pageSize, language, isServerSide]);\r\n\r\n useEffect(() => {\r\n if (isServerSide && axiosRequest) {\r\n setData([]);\r\n fetchData();\r\n }\r\n }, [\r\n axiosRequest?.requestData,\r\n axiosRequest?.requestQueryString,\r\n axiosRequest?.apiUrl,\r\n axiosRequest?.environmentUrl,\r\n fetchData,\r\n isServerSide,\r\n ]);\r\n\r\n useEffect(() => {\r\n let sourceData = isServerSide ? data : dataSource;\r\n const combinedData = [...sourceData, ...targetItems];\r\n const uniqueData = removeDuplicates(combinedData, keyExpr).map((item) => ({\r\n ...item,\r\n key: item[keyExpr],\r\n }));\r\n setTransferDataSource(uniqueData);\r\n }, [data, dataSource, targetItems, keyExpr, isServerSide]);\r\n\r\n const handleChange = useCallback(\r\n (newTargetKeys: string[], direction: string, moveKeys: string[]) => {\r\n setTargetKeys(newTargetKeys);\r\n const selectedItems = transferDataSource.filter((item) =>\r\n newTargetKeys.includes(item[keyExpr])\r\n );\r\n\r\n const updatedItems = removeDuplicates(\r\n direction === \"left\"\r\n ? targetItems\r\n .filter((item) => !moveKeys.includes(item[keyExpr]))\r\n .concat(selectedItems)\r\n : [...targetItems, ...selectedItems],\r\n keyExpr\r\n );\r\n\r\n setTargetItems(updatedItems);\r\n onTargetChange?.(updatedItems);\r\n },\r\n [transferDataSource, targetItems, keyExpr, onTargetChange]\r\n );\r\n\r\n const handleSelectChange = useCallback(\r\n (sourceSelectedKeys: string[], targetSelectedKeys: string[]) => {\r\n setSelectedKeys([...sourceSelectedKeys, ...targetSelectedKeys]);\r\n },\r\n []\r\n );\r\n\r\n const CustomHeader = ({ direction }: { direction: string }) => (\r\n <div\r\n className=\"transfer-custom-header\"\r\n style={{\r\n padding: \"8px 16px\",\r\n borderBottom: \"1px solid #f0f0f0\",\r\n fontWeight: \"bold\",\r\n }}\r\n >\r\n {direction === \"left\" ? sourceTitle : targetTitle}\r\n </div>\r\n );\r\n\r\n return (\r\n <div className={styles.wrapper}>\r\n {isServerSide && <style>{`.dx-pager { display: none; }`}</style>}\r\n <Transfer\r\n dataSource={transferDataSource}\r\n targetKeys={targetKeys}\r\n selectedKeys={selectedKeys}\r\n onSelectChange={handleSelectChange}\r\n onChange={handleChange}\r\n showSelectAll={false}\r\n titles={[sourceTitle, targetTitle]}\r\n render={render}\r\n className={className}\r\n rootClassName={rootClassName}\r\n showSearch={showSearch}\r\n >\r\n {({ direction, filteredItems, onItemSelectAll }) => {\r\n const isLeftEmpty =\r\n direction === \"left\" && filteredItems.length === 0;\r\n const isRightEmpty = direction === \"right\" && targetKeys.length === 0;\r\n const combinedDataSource =\r\n direction === \"right\"\r\n ? removeDuplicates([...filteredItems, ...targetItems], keyExpr)\r\n : filteredItems;\r\n\r\n return (\r\n <div\r\n className=\"customize-wrapper-content\"\r\n style={{ height: \"100%\", overflow: \"auto\" }}\r\n >\r\n {useCustomHeader && <CustomHeader direction={direction} />}\r\n {isLeftEmpty || isRightEmpty ? (\r\n <div\r\n className=\"empty-list-items-container-wrapper\"\r\n style={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n height: \"100%\",\r\n minHeight: \"300px\",\r\n }}\r\n >\r\n <NoContentComponent\r\n mainText={noContentMainText}\r\n subText={noContentSubText}\r\n />\r\n </div>\r\n ) : (\r\n <DataGrid\r\n dataSource={combinedDataSource}\r\n keyExpr={keyExpr}\r\n showBorders\r\n paging={{ enabled: pagingEnable, pageSize: defaultPageSize }}\r\n selection={{\r\n mode: \"multiple\",\r\n selectAllMode: \"page\",\r\n showCheckBoxesMode: \"always\",\r\n }}\r\n onSelectionChanged={({\r\n selectedRowKeys,\r\n currentDeselectedRowKeys,\r\n }) => {\r\n onItemSelectAll(selectedRowKeys, true);\r\n if (currentDeselectedRowKeys.length > 0) {\r\n onItemSelectAll(currentDeselectedRowKeys, false);\r\n }\r\n }}\r\n columns={columns}\r\n columnFixing={{ enabled: true }}\r\n noDataText={noDataText}\r\n ref={gridRef}\r\n >\r\n <FilterRow visible={true} />\r\n {columns.map((column) =>\r\n typeof column === \"string\" ? (\r\n <DxColumn\r\n key={column}\r\n dataField={column}\r\n caption={column}\r\n headerFilter={{}}\r\n />\r\n ) : (\r\n <DxColumn\r\n key={column.dataIndex}\r\n dataField={column.dataField || column.dataIndex}\r\n caption={column.caption || column.title}\r\n dataType={\r\n column.dataType as\r\n | \"string\"\r\n | \"number\"\r\n | \"boolean\"\r\n | \"object\"\r\n | \"date\"\r\n | \"datetime\"\r\n | undefined\r\n }\r\n calculateSortValue={column.calculateSortValue}\r\n headerFilter={{}}\r\n />\r\n )\r\n )}\r\n {displayPageTitle && !isTextEmpty(pageTitle) && (\r\n <Toolbar>\r\n <DxItem location=\"before\" cssClass=\"toolbarTitleItem\">\r\n <OdsTitle\r\n level={5}\r\n style={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n alignSelf: \"stretch\",\r\n margin: 0,\r\n }}\r\n >\r\n {pageTitle}\r\n </OdsTitle>\r\n </DxItem>\r\n </Toolbar>\r\n )}\r\n </DataGrid>\r\n )}\r\n </div>\r\n );\r\n }}\r\n </Transfer>\r\n </div>\r\n );\r\n};\r\n\r\nexport default OdsTransferV2;\r\n"],"names":["constants","getRequestHeaders","props","removeDuplicates","items","keyExpr","seen","item","key","initializeTargetItems","OdsTransferV2","dataSource","language","pagingEnable","pageSize","isServerSide","axiosRequest","columns","pageTitle","noDataText","defaultPageSize","initialTargetItems","noContentMainText","noContentSubText","onTargetChange","sourceTitle","targetTitle","displayPageTitle","className","rootClassName","showSearch","render","useCustomHeader","data","setData","useState","targetKeys","setTargetKeys","targetItems","setTargetItems","transferDataSource","setTransferDataSource","selectedKeys","setSelectedKeys","gridRef","useRef","fetchData","useCallback","isGet","apiUrl","query","queryString","requestOptions","response","newData","dataArray","prevData","useEffect","combinedData","uniqueData","handleChange","newTargetKeys","direction","moveKeys","selectedItems","updatedItems","handleSelectChange","sourceSelectedKeys","targetSelectedKeys","CustomHeader","jsx","jsxs","styles","Transfer","filteredItems","onItemSelectAll","isLeftEmpty","isRightEmpty","combinedDataSource","NoContentComponent","DataGrid","selectedRowKeys","currentDeselectedRowKeys","FilterRow","column","DxColumn","isTextEmpty","Toolbar","DxItem","OdsTitle"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OdsTransferV2.js","sources":["../../../src/components/devextreme/OdsTransferV2.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useRef, FC } from \"react\";\r\nimport { Transfer, TransferProps } from \"antd\";\r\nimport DataGrid, {\r\n Column as DxColumn,\r\n FilterRow,\r\n Toolbar,\r\n Item as DxItem,\r\n} from \"devextreme-react/data-grid\";\r\nimport queryString from \"query-string\";\r\nimport NoContentComponent from \"./NoContentComponent\";\r\nimport OdsTitle from \"../antd/typography/OdsTitle\";\r\nimport styles from \"./Transfer.module.scss\";\r\nimport { isTextEmpty } from \"../../utils/commonFunctions\";\r\n\r\ninterface Column {\r\n title?: string;\r\n dataIndex?: string;\r\n key?: string;\r\n caption?: string;\r\n tooltip?: { enable: boolean };\r\n dataField?: string;\r\n dataType?: \"string\" | \"number\" | \"boolean\" | \"object\" | \"date\" | \"datetime\";\r\n calculateSortValue?: string;\r\n}\r\n\r\ninterface AxiosProps {\r\n token?: string;\r\n requestData?: any;\r\n apiUrl: string;\r\n environmentUrl: string;\r\n requestQueryString?: any;\r\n requestType: string;\r\n}\r\n\r\ninterface SummaryRowOptions {\r\n summaryLoadedDataLabel?: string;\r\n summaryTotalDataLabel?: string;\r\n summaryFilteredDataLabel?: string;\r\n summaryTotalCount?: number;\r\n summaryTotalPageCountLabel?: string;\r\n summarySumLabel?: string;\r\n summaryAvgLabel?: string;\r\n summaryMinLabel?: string;\r\n summaryMaxLabel?: string;\r\n summaryCountLabel?: string;\r\n}\r\n\r\ninterface OdsTransferProps<T = any> {\r\n dataSource?: T[];\r\n language: string;\r\n pagingEnable?: boolean;\r\n pageSize?: number;\r\n isServerSide: boolean;\r\n axiosRequest?: AxiosProps;\r\n customSummary?: SummaryRowOptions;\r\n dataGridPageName?: string;\r\n columns: (string | Column)[];\r\n pageTitle?: string;\r\n keyExpr: string;\r\n noDataText: string;\r\n defaultPageSize: number;\r\n targetItems?: T[];\r\n noContentMainText: string;\r\n noContentSubText: string;\r\n onTargetChange?: (selectedItems: T[]) => void;\r\n sourceTitle?: string;\r\n targetTitle?: string;\r\n displayPageTitle?: boolean;\r\n className?: string;\r\n rootClassName?: string;\r\n showSearch?: boolean;\r\n render?: TransferProps<T>[\"render\"];\r\n useCustomHeader?: boolean;\r\n}\r\n\r\ninterface RequestHeadersProps {\r\n language: string;\r\n axiosRequest?: AxiosProps;\r\n}\r\n\r\nconst constants = {\r\n totalPageCount: 1,\r\n loadedPageCount: 1,\r\n totalRecordCount: 0,\r\n};\r\n\r\nconst getRequestHeaders = (props: RequestHeadersProps): Headers => {\r\n const headers = new Headers({\r\n \"Content-Type\": \"application/json\",\r\n \"Accept-Language\": props.language || \"EN\",\r\n });\r\n if (props.axiosRequest?.token) {\r\n headers.set(\"Authorization\", `Bearer ${props.axiosRequest.token}`);\r\n }\r\n return headers;\r\n};\r\n\r\nconst removeDuplicates = <T,>(items: T[], keyExpr: string): T[] => {\r\n const seen = new Set();\r\n return items.filter((item) => {\r\n const key = item[keyExpr];\r\n return !seen.has(key) && seen.add(key);\r\n });\r\n};\r\n\r\nconst initializeTargetItems = <T,>(items: T[], keyExpr: string): T[] => {\r\n return items.map((item) => ({\r\n ...item,\r\n key: item[keyExpr] || item[\"Id\"],\r\n }));\r\n};\r\n\r\nconst OdsTransferV2: FC<OdsTransferProps> = ({\r\n dataSource = [],\r\n language,\r\n pagingEnable = true,\r\n pageSize = 10,\r\n isServerSide,\r\n axiosRequest,\r\n columns,\r\n pageTitle,\r\n keyExpr,\r\n noDataText,\r\n defaultPageSize,\r\n targetItems: initialTargetItems = [],\r\n noContentMainText,\r\n noContentSubText,\r\n onTargetChange,\r\n sourceTitle = \"Available Items\",\r\n targetTitle = \"Selected Items\",\r\n displayPageTitle = false,\r\n className,\r\n rootClassName,\r\n showSearch = false,\r\n render,\r\n useCustomHeader = false,\r\n}) => {\r\n const [data, setData] = useState<any[]>([]);\r\n const [targetKeys, setTargetKeys] = useState<string[]>(\r\n initialTargetItems.map((item) => item[keyExpr])\r\n );\r\n const [targetItems, setTargetItems] = useState<any[]>(\r\n initializeTargetItems(initialTargetItems, keyExpr)\r\n );\r\n const [transferDataSource, setTransferDataSource] = useState<any[]>([]);\r\n const [selectedKeys, setSelectedKeys] = useState<string[]>([]);\r\n const gridRef = useRef<any>(null);\r\n\r\n const fetchData = useCallback(async () => {\r\n if (!axiosRequest || !isServerSide) return;\r\n\r\n const isGet = axiosRequest.requestType.toUpperCase() === \"GET\";\r\n let apiUrl = `${axiosRequest.environmentUrl}${axiosRequest.apiUrl}`;\r\n\r\n if (axiosRequest.requestData?.PaginatedRequest) {\r\n axiosRequest.requestData.PaginatedRequest.PageSize = pageSize;\r\n }\r\n\r\n if (axiosRequest.requestQueryString) {\r\n axiosRequest.requestQueryString.maxResultCount = pageSize;\r\n if (\r\n constants.loadedPageCount > 1 &&\r\n constants.totalPageCount >= constants.loadedPageCount\r\n ) {\r\n axiosRequest.requestQueryString.skipCount = (\r\n (constants.loadedPageCount - 1) *\r\n pageSize\r\n ).toString();\r\n }\r\n if (isGet) {\r\n const query = queryString.stringify(axiosRequest.requestQueryString);\r\n apiUrl = `${apiUrl}?${query}`;\r\n }\r\n }\r\n\r\n const requestOptions: RequestInit = {\r\n method: axiosRequest.requestType,\r\n headers: getRequestHeaders({ language, axiosRequest }),\r\n credentials: axiosRequest.token ? \"same-origin\" : \"include\",\r\n body: isGet ? undefined : JSON.stringify(axiosRequest.requestData),\r\n };\r\n\r\n try {\r\n const response = await fetch(apiUrl, requestOptions);\r\n const newData = await response.json();\r\n const dataArray = newData.Data || newData;\r\n\r\n setData((prevData) =>\r\n constants.loadedPageCount === 1\r\n ? dataArray\r\n : [...prevData, ...dataArray]\r\n );\r\n\r\n constants.totalPageCount =\r\n newData.PageCount ||\r\n Math.ceil((newData.rowCount || dataArray.length) / pageSize);\r\n constants.totalRecordCount =\r\n newData.RowCount ||\r\n parseInt(response.headers.get(\"x-total-count\") || dataArray.length, 10);\r\n } catch (error) {\r\n console.error(\"Error fetching data:\", error);\r\n }\r\n }, [axiosRequest, pageSize, language, isServerSide]);\r\n\r\n useEffect(() => {\r\n if (isServerSide && axiosRequest) {\r\n setData([]);\r\n fetchData();\r\n }\r\n }, [\r\n axiosRequest?.requestData,\r\n axiosRequest?.requestQueryString,\r\n axiosRequest?.apiUrl,\r\n axiosRequest?.environmentUrl,\r\n fetchData,\r\n isServerSide,\r\n ]);\r\n\r\n useEffect(() => {\r\n let sourceData = isServerSide ? data : dataSource;\r\n const combinedData = [...sourceData, ...targetItems];\r\n const uniqueData = removeDuplicates(combinedData, keyExpr).map((item) => ({\r\n ...item,\r\n key: item[keyExpr],\r\n }));\r\n setTransferDataSource(uniqueData);\r\n }, [data, dataSource, targetItems, keyExpr, isServerSide]);\r\n\r\n const handleChange = useCallback(\r\n (newTargetKeys: string[], direction: string, moveKeys: string[]) => {\r\n setTargetKeys(newTargetKeys);\r\n const selectedItems = transferDataSource.filter((item) =>\r\n newTargetKeys.includes(item[keyExpr])\r\n );\r\n\r\n const updatedItems = removeDuplicates(\r\n direction === \"left\"\r\n ? targetItems\r\n .filter((item) => !moveKeys.includes(item[keyExpr]))\r\n .concat(selectedItems)\r\n : [...targetItems, ...selectedItems],\r\n keyExpr\r\n );\r\n\r\n setTargetItems(updatedItems);\r\n onTargetChange?.(updatedItems);\r\n },\r\n [transferDataSource, targetItems, keyExpr, onTargetChange]\r\n );\r\n\r\n const handleSelectChange = useCallback(\r\n (sourceSelectedKeys: string[], targetSelectedKeys: string[]) => {\r\n setSelectedKeys([...sourceSelectedKeys, ...targetSelectedKeys]);\r\n },\r\n []\r\n );\r\n\r\n const CustomHeader = ({ direction }: { direction: string }) => (\r\n <div\r\n className=\"transfer-custom-header\"\r\n style={{\r\n padding: \"8px 16px\",\r\n borderBottom: \"1px solid #f0f0f0\",\r\n fontWeight: \"bold\",\r\n }}\r\n >\r\n {direction === \"left\" ? sourceTitle : targetTitle}\r\n </div>\r\n );\r\n\r\n return (\r\n <div className={styles.wrapper}>\r\n {isServerSide && <style>{`.dx-pager { display: none; }`}</style>}\r\n <Transfer\r\n dataSource={transferDataSource}\r\n targetKeys={targetKeys}\r\n selectedKeys={selectedKeys}\r\n onSelectChange={handleSelectChange}\r\n onChange={handleChange}\r\n showSelectAll={false}\r\n titles={[sourceTitle, targetTitle]}\r\n render={render}\r\n className={className}\r\n rootClassName={rootClassName}\r\n showSearch={showSearch}\r\n >\r\n {({ direction, filteredItems, onItemSelectAll }) => {\r\n const isLeftEmpty =\r\n direction === \"left\" && filteredItems.length === 0;\r\n const isRightEmpty = direction === \"right\" && targetKeys.length === 0;\r\n const combinedDataSource =\r\n direction === \"right\"\r\n ? removeDuplicates([...filteredItems, ...targetItems], keyExpr)\r\n : filteredItems;\r\n\r\n return (\r\n <div\r\n className=\"customize-wrapper-content\"\r\n style={{ height: \"100%\", overflow: \"auto\" }}\r\n >\r\n {useCustomHeader && <CustomHeader direction={direction} />}\r\n {isLeftEmpty || isRightEmpty ? (\r\n <div\r\n className=\"empty-list-items-container-wrapper\"\r\n style={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n height: \"100%\",\r\n minHeight: \"300px\",\r\n }}\r\n >\r\n <NoContentComponent\r\n mainText={noContentMainText}\r\n subText={noContentSubText}\r\n />\r\n </div>\r\n ) : (\r\n <DataGrid\r\n dataSource={combinedDataSource}\r\n keyExpr={keyExpr}\r\n showBorders\r\n paging={{ enabled: pagingEnable, pageSize: defaultPageSize }}\r\n selection={{\r\n mode: \"multiple\",\r\n selectAllMode: \"page\",\r\n showCheckBoxesMode: \"always\",\r\n }}\r\n onSelectionChanged={({\r\n selectedRowKeys,\r\n currentDeselectedRowKeys,\r\n }) => {\r\n onItemSelectAll(selectedRowKeys, true);\r\n if (currentDeselectedRowKeys.length > 0) {\r\n onItemSelectAll(currentDeselectedRowKeys, false);\r\n }\r\n }}\r\n columns={columns}\r\n columnFixing={{ enabled: true }}\r\n noDataText={noDataText}\r\n ref={gridRef}\r\n >\r\n <FilterRow visible={true} />\r\n {columns.map((column) =>\r\n typeof column === \"string\" ? (\r\n <DxColumn\r\n key={column}\r\n dataField={column}\r\n caption={column}\r\n headerFilter={{}}\r\n />\r\n ) : (\r\n <DxColumn\r\n key={column.dataIndex}\r\n dataField={column.dataField || column.dataIndex}\r\n caption={column.caption || column.title}\r\n dataType={\r\n column.dataType as\r\n | \"string\"\r\n | \"number\"\r\n | \"boolean\"\r\n | \"object\"\r\n | \"date\"\r\n | \"datetime\"\r\n | undefined\r\n }\r\n calculateSortValue={column.calculateSortValue}\r\n headerFilter={{}}\r\n />\r\n )\r\n )}\r\n {displayPageTitle && !isTextEmpty(pageTitle) && (\r\n <Toolbar>\r\n <DxItem location=\"before\" cssClass=\"toolbarTitleItem\">\r\n <OdsTitle\r\n level={5}\r\n style={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n alignSelf: \"stretch\",\r\n margin: 0,\r\n }}\r\n >\r\n {pageTitle}\r\n </OdsTitle>\r\n </DxItem>\r\n </Toolbar>\r\n )}\r\n </DataGrid>\r\n )}\r\n </div>\r\n );\r\n }}\r\n </Transfer>\r\n </div>\r\n );\r\n};\r\n\r\nexport default OdsTransferV2;\r\n"],"names":["constants","getRequestHeaders","props","headers","removeDuplicates","items","keyExpr","seen","item","key","initializeTargetItems","OdsTransferV2","dataSource","language","pagingEnable","pageSize","isServerSide","axiosRequest","columns","pageTitle","noDataText","defaultPageSize","initialTargetItems","noContentMainText","noContentSubText","onTargetChange","sourceTitle","targetTitle","displayPageTitle","className","rootClassName","showSearch","render","useCustomHeader","data","setData","useState","targetKeys","setTargetKeys","targetItems","setTargetItems","transferDataSource","setTransferDataSource","selectedKeys","setSelectedKeys","gridRef","useRef","fetchData","useCallback","isGet","apiUrl","query","queryString","requestOptions","response","newData","dataArray","prevData","useEffect","combinedData","uniqueData","handleChange","newTargetKeys","direction","moveKeys","selectedItems","updatedItems","handleSelectChange","sourceSelectedKeys","targetSelectedKeys","CustomHeader","jsx","jsxs","styles","Transfer","filteredItems","onItemSelectAll","isLeftEmpty","isRightEmpty","combinedDataSource","NoContentComponent","DataGrid","selectedRowKeys","currentDeselectedRowKeys","FilterRow","column","DxColumn","isTextEmpty","Toolbar","DxItem","OdsTitle"],"mappings":";;;;;;;;;AAgFA,MAAMA,IAAY;AAAA,EAChB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,kBAAkB;AACpB,GAEMC,KAAoB,CAACC,MAAwC;AACjE,QAAMC,IAAU,IAAI,QAAQ;AAAA,IAC1B,gBAAgB;AAAA,IAChB,mBAAmBD,EAAM,YAAY;AAAA,EAAA,CACtC;AACD,SAAIA,EAAM,cAAc,SACtBC,EAAQ,IAAI,iBAAiB,UAAUD,EAAM,aAAa,KAAK,EAAE,GAE5DC;AACT,GAEMC,IAAmB,CAAKC,GAAYC,MAAyB;AACjE,QAAMC,wBAAW,IAAA;AACjB,SAAOF,EAAM,OAAO,CAACG,MAAS;AAC5B,UAAMC,IAAMD,EAAKF,CAAO;AACxB,WAAO,CAACC,EAAK,IAAIE,CAAG,KAAKF,EAAK,IAAIE,CAAG;AAAA,EACvC,CAAC;AACH,GAEMC,KAAwB,CAAKL,GAAYC,MACtCD,EAAM,IAAI,CAACG,OAAU;AAAA,EAC1B,GAAGA;AAAA,EACH,KAAKA,EAAKF,CAAO,KAAKE,EAAK;AAAI,EAC/B,GAGEG,KAAsC,CAAC;AAAA,EAC3C,YAAAC,IAAa,CAAA;AAAA,EACb,UAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,UAAAC,IAAW;AAAA,EACX,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAb;AAAA,EACA,YAAAc;AAAA,EACA,iBAAAC;AAAA,EACA,aAAaC,IAAqB,CAAA;AAAA,EAClC,mBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,aAAAC,IAAc;AAAA,EACd,kBAAAC,IAAmB;AAAA,EACnB,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,QAAAC;AAAA,EACA,iBAAAC,IAAkB;AACpB,MAAM;AACJ,QAAM,CAACC,GAAMC,CAAO,IAAIC,EAAgB,CAAA,CAAE,GACpC,CAACC,GAAYC,CAAa,IAAIF;AAAA,IAClCd,EAAmB,IAAI,CAACd,MAASA,EAAKF,CAAO,CAAC;AAAA,EAAA,GAE1C,CAACiC,GAAaC,CAAc,IAAIJ;AAAA,IACpC1B,GAAsBY,GAAoBhB,CAAO;AAAA,EAAA,GAE7C,CAACmC,GAAoBC,CAAqB,IAAIN,EAAgB,CAAA,CAAE,GAChE,CAACO,GAAcC,CAAe,IAAIR,EAAmB,CAAA,CAAE,GACvDS,IAAUC,GAAY,IAAI,GAE1BC,IAAYC,EAAY,YAAY;AACxC,QAAI,CAAC/B,KAAgB,CAACD,EAAc;AAEpC,UAAMiC,IAAQhC,EAAa,YAAY,YAAA,MAAkB;AACzD,QAAIiC,IAAS,GAAGjC,EAAa,cAAc,GAAGA,EAAa,MAAM;AAMjE,QAJIA,EAAa,aAAa,qBAC5BA,EAAa,YAAY,iBAAiB,WAAWF,IAGnDE,EAAa,uBACfA,EAAa,mBAAmB,iBAAiBF,GAU7CkC,IAAO;AACT,YAAME,IAAQC,GAAY,UAAUnC,EAAa,kBAAkB;AACnE,MAAAiC,IAAS,GAAGA,CAAM,IAAIC,CAAK;AAAA,IAC7B;AAGF,UAAME,IAA8B;AAAA,MAClC,QAAQpC,EAAa;AAAA,MACrB,SAAShB,GAAkB,EAAE,UAAAY,GAAU,cAAAI,GAAc;AAAA,MACrD,aAAaA,EAAa,QAAQ,gBAAgB;AAAA,MAClD,MAAMgC,IAAQ,SAAY,KAAK,UAAUhC,EAAa,WAAW;AAAA,IAAA;AAGnE,QAAI;AACF,YAAMqC,IAAW,MAAM,MAAMJ,GAAQG,CAAc,GAC7CE,IAAU,MAAMD,EAAS,KAAA,GACzBE,IAAYD,EAAQ,QAAQA;AAElC,MAAApB;AAAA,QAAQ,CAACsB,MACPzD,EAAU,oBAAoB,IAC1BwD,IACA,CAAC,GAAGC,GAAU,GAAGD,CAAS;AAAA,MAAA,GAGhCxD,EAAU,iBACRuD,EAAQ,aACR,KAAK,MAAMA,EAAQ,YAAYC,EAAU,UAAUzC,CAAQ,GAC7Df,EAAU,mBACRuD,EAAQ,YACR,SAASD,EAAS,QAAQ,IAAI,eAAe,KAAKE,EAAU,QAAQ,EAAE;AAAA,IAC1E,QAAgB;AAAA,IAEhB;AAAA,EACF,GAAG,CAACvC,GAAcF,GAAUF,GAAUG,CAAY,CAAC;AAEnD,EAAA0C,EAAU,MAAM;AACd,IAAI1C,KAAgBC,MAClBkB,EAAQ,CAAA,CAAE,GACVY,EAAA;AAAA,EAEJ,GAAG;AAAA,IACD9B,GAAc;AAAA,IACdA,GAAc;AAAA,IACdA,GAAc;AAAA,IACdA,GAAc;AAAA,IACd8B;AAAA,IACA/B;AAAA,EAAA,CACD,GAED0C,EAAU,MAAM;AAEd,UAAMC,IAAe,CAAC,GADL3C,IAAekB,IAAOtB,GACF,GAAG2B,CAAW,GAC7CqB,IAAaxD,EAAiBuD,GAAcrD,CAAO,EAAE,IAAI,CAACE,OAAU;AAAA,MACxE,GAAGA;AAAA,MACH,KAAKA,EAAKF,CAAO;AAAA,IAAA,EACjB;AACF,IAAAoC,EAAsBkB,CAAU;AAAA,EAClC,GAAG,CAAC1B,GAAMtB,GAAY2B,GAAajC,GAASU,CAAY,CAAC;AAEzD,QAAM6C,IAAeb;AAAA,IACnB,CAACc,GAAyBC,GAAmBC,MAAuB;AAClE,MAAA1B,EAAcwB,CAAa;AAC3B,YAAMG,IAAgBxB,EAAmB;AAAA,QAAO,CAACjC,MAC/CsD,EAAc,SAAStD,EAAKF,CAAO,CAAC;AAAA,MAAA,GAGhC4D,IAAe9D;AAAA,QACnB2D,MAAc,SACVxB,EACG,OAAO,CAAC/B,MAAS,CAACwD,EAAS,SAASxD,EAAKF,CAAO,CAAC,CAAC,EAClD,OAAO2D,CAAa,IACvB,CAAC,GAAG1B,GAAa,GAAG0B,CAAa;AAAA,QACrC3D;AAAA,MAAA;AAGF,MAAAkC,EAAe0B,CAAY,GAC3BzC,IAAiByC,CAAY;AAAA,IAC/B;AAAA,IACA,CAACzB,GAAoBF,GAAajC,GAASmB,CAAc;AAAA,EAAA,GAGrD0C,IAAqBnB;AAAA,IACzB,CAACoB,GAA8BC,MAAiC;AAC9D,MAAAzB,EAAgB,CAAC,GAAGwB,GAAoB,GAAGC,CAAkB,CAAC;AAAA,IAChE;AAAA,IACA,CAAA;AAAA,EAAC,GAGGC,IAAe,CAAC,EAAE,WAAAP,EAAA,MACtB,gBAAAQ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAO;AAAA,QACL,SAAS;AAAA,QACT,cAAc;AAAA,QACd,YAAY;AAAA,MAAA;AAAA,MAGb,UAAAR,MAAc,SAASrC,IAAcC;AAAA,IAAA;AAAA,EAAA;AAI1C,SACE,gBAAA6C,EAAC,OAAA,EAAI,WAAWC,GAAO,SACpB,UAAA;AAAA,IAAAzD,KAAgB,gBAAAuD,EAAC,WAAO,UAAA,gCAA+B;AAAA,IACxD,gBAAAA;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,YAAYjC;AAAA,QACZ,YAAAJ;AAAA,QACA,cAAAM;AAAA,QACA,gBAAgBwB;AAAA,QAChB,UAAUN;AAAA,QACV,eAAe;AAAA,QACf,QAAQ,CAACnC,GAAaC,CAAW;AAAA,QACjC,QAAAK;AAAA,QACA,WAAAH;AAAA,QACA,eAAAC;AAAA,QACA,YAAAC;AAAA,QAEC,UAAA,CAAC,EAAE,WAAAgC,GAAW,eAAAY,GAAe,iBAAAC,QAAsB;AAClD,gBAAMC,IACJd,MAAc,UAAUY,EAAc,WAAW,GAC7CG,IAAef,MAAc,WAAW1B,EAAW,WAAW,GAC9D0C,IACJhB,MAAc,UACV3D,EAAiB,CAAC,GAAGuE,GAAe,GAAGpC,CAAW,GAAGjC,CAAO,IAC5DqE;AAEN,iBACE,gBAAAH;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,QAAQ,QAAQ,UAAU,OAAA;AAAA,cAElC,UAAA;AAAA,gBAAAvC,KAAmB,gBAAAsC,EAACD,KAAa,WAAAP,EAAA,CAAsB;AAAA,gBACvDc,KAAeC,IACd,gBAAAP;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO;AAAA,sBACL,SAAS;AAAA,sBACT,eAAe;AAAA,sBACf,gBAAgB;AAAA,sBAChB,YAAY;AAAA,sBACZ,QAAQ;AAAA,sBACR,WAAW;AAAA,oBAAA;AAAA,oBAGb,UAAA,gBAAAA;AAAA,sBAACS;AAAAA,sBAAA;AAAA,wBACC,UAAUzD;AAAA,wBACV,SAASC;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACX;AAAA,gBAAA,IAGF,gBAAAgD;AAAA,kBAACS;AAAAA,kBAAA;AAAA,oBACC,YAAYF;AAAA,oBACZ,SAAAzE;AAAA,oBACA,aAAW;AAAA,oBACX,QAAQ,EAAE,SAASQ,GAAc,UAAUO,EAAA;AAAA,oBAC3C,WAAW;AAAA,sBACT,MAAM;AAAA,sBACN,eAAe;AAAA,sBACf,oBAAoB;AAAA,oBAAA;AAAA,oBAEtB,oBAAoB,CAAC;AAAA,sBACnB,iBAAA6D;AAAA,sBACA,0BAAAC;AAAA,oBAAA,MACI;AACJ,sBAAAP,EAAgBM,GAAiB,EAAI,GACjCC,EAAyB,SAAS,KACpCP,EAAgBO,GAA0B,EAAK;AAAA,oBAEnD;AAAA,oBACA,SAAAjE;AAAA,oBACA,cAAc,EAAE,SAAS,GAAA;AAAA,oBACzB,YAAAE;AAAA,oBACA,KAAKyB;AAAA,oBAEL,UAAA;AAAA,sBAAA,gBAAA0B,EAACa,IAAA,EAAU,SAAS,GAAA,CAAM;AAAA,sBACzBlE,EAAQ;AAAA,wBAAI,CAACmE,MACZ,OAAOA,KAAW,WAChB,gBAAAd;AAAA,0BAACe;AAAAA,0BAAA;AAAA,4BAEC,WAAWD;AAAA,4BACX,SAASA;AAAA,4BACT,cAAc,CAAA;AAAA,0BAAC;AAAA,0BAHVA;AAAA,wBAAA,IAMP,gBAAAd;AAAA,0BAACe;AAAAA,0BAAA;AAAA,4BAEC,WAAWD,EAAO,aAAaA,EAAO;AAAA,4BACtC,SAASA,EAAO,WAAWA,EAAO;AAAA,4BAClC,UACEA,EAAO;AAAA,4BAST,oBAAoBA,EAAO;AAAA,4BAC3B,cAAc,CAAA;AAAA,0BAAC;AAAA,0BAdVA,EAAO;AAAA,wBAAA;AAAA,sBAed;AAAA,sBAGHzD,KAAoB,CAAC2D,GAAYpE,CAAS,KACzC,gBAAAoD,EAACiB,IAAA,EACC,UAAA,gBAAAjB,EAACkB,IAAA,EAAO,UAAS,UAAS,UAAS,oBACjC,UAAA,gBAAAlB;AAAA,wBAACmB;AAAA,wBAAA;AAAA,0BACC,OAAO;AAAA,0BACP,OAAO;AAAA,4BACL,SAAS;AAAA,4BACT,YAAY;AAAA,4BACZ,WAAW;AAAA,4BACX,QAAQ;AAAA,0BAAA;AAAA,0BAGT,UAAAvE;AAAA,wBAAA;AAAA,sBAAA,GAEL,EAAA,CACF;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAEJ;AAAA,YAAA;AAAA,UAAA;AAAA,QAIR;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -69,6 +69,7 @@ import { TreeSelectProps } from 'antd/es/tree-select';
|
|
|
69
69
|
import { UploadProps } from 'antd';
|
|
70
70
|
|
|
71
71
|
declare interface AxiosProps {
|
|
72
|
+
token?: string;
|
|
72
73
|
requestData?: any;
|
|
73
74
|
apiUrl: string;
|
|
74
75
|
environmentUrl: string;
|
|
@@ -241,6 +242,7 @@ declare type IActionButtonsTooltipType = "raw" | "styled";
|
|
|
241
242
|
declare type IActionButtonsTooltipType_2 = "raw" | "styled";
|
|
242
243
|
|
|
243
244
|
declare interface IAxiosProps {
|
|
245
|
+
token?: string;
|
|
244
246
|
requestData?: any;
|
|
245
247
|
apiUrl: string;
|
|
246
248
|
environmentUrl: string;
|
|
@@ -249,6 +251,7 @@ declare interface IAxiosProps {
|
|
|
249
251
|
}
|
|
250
252
|
|
|
251
253
|
declare interface IAxiosProps_2 {
|
|
254
|
+
token?: string;
|
|
252
255
|
requestData?: any;
|
|
253
256
|
apiUrl: string;
|
|
254
257
|
environmentUrl: string;
|
|
@@ -257,6 +260,7 @@ declare interface IAxiosProps_2 {
|
|
|
257
260
|
}
|
|
258
261
|
|
|
259
262
|
declare interface IAxiosProps_3 {
|
|
263
|
+
token?: string;
|
|
260
264
|
requestData?: any;
|
|
261
265
|
apiUrl: string;
|
|
262
266
|
environmentUrl: string;
|
|
@@ -265,6 +269,7 @@ declare interface IAxiosProps_3 {
|
|
|
265
269
|
}
|
|
266
270
|
|
|
267
271
|
declare interface IAxiosProps_4 {
|
|
272
|
+
token?: string;
|
|
268
273
|
requestData?: any;
|
|
269
274
|
apiUrl: string;
|
|
270
275
|
environmentUrl: string;
|
|
@@ -273,6 +278,7 @@ declare interface IAxiosProps_4 {
|
|
|
273
278
|
}
|
|
274
279
|
|
|
275
280
|
declare interface IAxiosProps_5 {
|
|
281
|
+
token?: string;
|
|
276
282
|
requestData?: any;
|
|
277
283
|
apiUrl: string;
|
|
278
284
|
environmentUrl: string;
|