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.
@@ -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":";;;;;;;;;AAsBA,IAAIA,IAAY;AAAA,EACd,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,kBAAkB;AACpB;AAoDO,MAAMC,IAAoB,CAACC,MACzB,IAAI,QAAQ;AAAA,EACjB,gBAAgB;AAAA,EAChB,mBAAmBA,EAAM,YAAY,KAAKA,EAAM,WAAW;AAAA,CAC5D,GAGGC,KAA0C,CAACD,MAAU;AACzD,QAAME,IAAwB,CAACC,MACtBA,EAAM,IAAI,CAACC,OAAU;AAAA,IAC1B,GAAGA;AAAA,IACH,KAAKA,EAAK,OAAOA,EAAK;AAAA,EAAA,EACtB,GAGE,CAACC,GAAMC,CAAO,IAAIC,EAAS,CAAA,CAAE,GAC7BC,IAAUC,EAAO,IAAI,GACrB,CAACC,GAAcC,CAAe,IAAIJ,EAAS,CAAA,CAAE,GAC7C,CAACK,GAAYC,CAAa,IAAIN;AAAA,IAClCP,EAAM,aAAa,IAAI,CAACI,MAASA,EAAKJ,EAAM,OAAO,CAAC,KAAK,CAAA;AAAA,EAAC,GAEtD,CAACc,GAAaC,CAAc,IAAIR;AAAA,IACpCL,EAAsBF,EAAM,eAAe,CAAA,CAAE;AAAA,EAAA,GAEzC,CAACgB,GAAoBC,CAAqB,IAAIV,EAASF,KAAQ,CAAA,CAAE,GAEjEa,IAAYC,EAAY,YAAY;AACxC,QAAI,CAACnB,EAAM,aAAc;AAEzB,UAAMoB,IAAQpB,EAAM,aAAa,YAAY,kBAAkB;AAE/D,QAAIqB,IAAS,GAAGrB,EAAM,aAAa,cAAc,GAAGA,EAAM,aAAa,MAAM;AAM7E,QAJIA,EAAM,cAAc,aAAa,qBACnCA,EAAM,aAAa,YAAY,iBAAiB,WAAWA,EAAM,WAG/DA,EAAM,cAAc,uBACtBA,EAAM,aAAa,mBAAmB,iBAAiBA,EAAM,UAE3DF,EAAU,kBAAkB,KAC5BA,EAAU,kBAAkBA,EAAU,oBAEtCE,EAAM,aAAa,mBAAmB,cACnCF,EAAU,kBAAkB,KAC7BE,EAAM,UACN,SAAA,IAGAoB,KAASpB,EAAM,cAAc,qBAAoB;AACnD,YAAMsB,IAAQC,EAAY;AAAA,QACxBvB,EAAM,aAAa;AAAA,MAAA;AAErB,MAAAqB,IAAS,GAAGA,CAAM,IAAIC,CAAK;AAAA,IAC7B;AAEF,UAAME,IAA8B;AAAA,MAClC,QAAQxB,EAAM,aAAa;AAAA,MAC3B,SAASD,EAAkBC,CAAK;AAAA,MAChC,aAAa;AAAA,IAAA;AAGf,IAAKoB,MACHI,EAAe,OAAO,KAAK,UAAUxB,EAAM,cAAc,WAAW;AAGtE,QAAI;AACF,YAAMyB,IAAW,MAAM,MAAMJ,GAAQG,CAAc,GAC7CE,IAAU,MAAMD,EAAS,KAAA;AAC/B,UAAI3B,EAAU,oBAAoB;AAChC,QAAAQ,EAAQoB,EAAQ,OAAOA,EAAQ,OAAOA,CAAO,GAC7C5B,EAAU,kBAAkB;AAAA,eACnBA,EAAU,kBAAkBA,EAAU,iBAAiB;AAChE,cAAM6B,IAAWD,EAAQ,OAAOA,EAAQ,OAAOA;AAC/C,QAAApB,EAAQ,CAACsB,MAAa,CAAC,GAAGA,GAAU,GAAGD,CAAQ,CAAC;AAAA,MAClD;AACA,MAAAE,EAAcJ,GAAUC,CAAO;AAAA,IACjC,QAAgB;AAAA,IAEhB;AAAA,EAEF,GAAG;AAAA,IACD1B,EAAM,cAAc;AAAA,IACpBA,EAAM,cAAc;AAAA,IACpBA,EAAM,cAAc;AAAA,IACpBA,EAAM,cAAc;AAAA,IACpBA,EAAM,cAAc;AAAA,IACpBA,EAAM;AAAA,IACNA,EAAM;AAAA,EAAA,CACP;AAED,EAAA8B,EAAU,MAAM;AACd,IAAI9B,EAAM,iBACRM,EAAQ,CAAA,CAAE,GACVY,EAAA;AAAA,EAEJ,GAAG;AAAA,IACDlB,EAAM,cAAc;AAAA,IACpBA,EAAM,cAAc;AAAA,IACpBA,EAAM,cAAc;AAAA,IACpBA,EAAM,cAAc;AAAA,EAAA,CACrB;AAED,QAAM6B,IAAgB,CAACJ,GAAoBpB,MAAoB;AAC7D,QAAIA,GAAM,aAAaA,GAAM;AAC3B,MAAAP,EAAU,iBAAiBO,EAAK,WAChCP,EAAU,mBAAmBO,EAAK;AAAA,SAC7B;AACL,UAAI0B;AAEJ,MAAIN,MAAUM,IAAaN,EAAS,QAAQ,IAAI,eAAe,IAC3DM,KAAc,SAAMA,IAAa1B,GAAM,WACvC0B,KAAc,SAAMA,IAAa1B,GAAM,SAE3CP,EAAU,mBAAmB,SAASiC,GAAY,EAAE,KAAK,GACzDjC,EAAU,iBAAiB,KAAK;AAAA,QAC9BA,EAAU,mBAAmBE,EAAM;AAAA,MAAA;AAAA,IAEvC;AAAA,EACF,GAEMgC,IAAmB,CAAC7B,GAAO8B,MAAY;AAC3C,UAAMC,wBAAW,IAAA;AACjB,WAAO/B,EAAM,OAAO,CAACC,MAAS;AAC5B,YAAM+B,IAAM/B,EAAK6B,CAAO;AACxB,aAAO,CAACC,EAAK,IAAIC,CAAG,KAAKD,EAAK,IAAIC,CAAG;AAAA,IACvC,CAAC;AAAA,EACH;AAEA,EAAAL,EAAU,MAAM;AACd,UAAMM,IAAepC,EAAM,cACvB,CAAC,GAAGA,EAAM,aAAa,GAAGK,CAAI,IAC9BA,GAEEgC,IAAaL,EAAiBI,GAAcpC,EAAM,OAAO;AAE/D,IAAAiB;AAAA,MACEoB,EAAW,IAAI,CAACjC,OAAU,EAAE,GAAGA,GAAM,KAAKA,EAAKJ,EAAM,OAAO,IAAI;AAAA,IAAA;AAAA,EAEpE,GAAG,CAACK,GAAML,EAAM,WAAW,CAAC,GAE5B8B,EAAU,MAAM;AACd,KAAIhB,KAAed,EAAM,iBACvBiB,EAAsB,CAACW,MAAa;AAKlC,YAAMQ,IAAe,CAAC,GAJKtB,EAAY,IAAI,CAACV,OAAU;AAAA,QACpD,GAAGA;AAAA,QACH,KAAKA,EAAKJ,EAAM,OAAO;AAAA,MAAA,EACvB,GAC2C,GAAG4B,CAAQ;AAExD,aADmBI,EAAiBI,GAAcpC,EAAM,OAAO;AAAA,IAEjE,CAAC,GAEDa;AAAA,MACEC,GAAa,SAAS,IAClBA,GAAa,IAAI,CAACV,MAASA,EAAKJ,EAAM,OAAO,CAAC,IAC9CA,EAAM,aAAa,IAAI,CAACI,MAASA,EAAKJ,EAAM,OAAO,CAAC;AAAA,IAAA;AAAA,EAG9D,GAAG,CAACc,GAAad,EAAM,SAASA,EAAM,WAAW,CAAC;AAElD,QAAMsC,IAAenB;AAAA,IACnB,CAACP,GAAY2B,GAAWC,MAAY;AAClC,MAAA3B,EAAcD,CAAU;AACxB,YAAM6B,IAAgBzB,EAAmB;AAAA,QAAO,CAACZ,MAC/CQ,EAAW,SAASR,EAAKJ,EAAM,OAAO,CAAC;AAAA,MAAA;AAczC,UAXAe,EAAe,CAAC2B,MAAoB;AAClC,cAAMC,IAAe,CAAC,GAAGD,GAAiB,GAAGD,CAAa;AAC1D,eAAOT;AAAA,UACLO,MAAc,SACVI,EAAa;AAAA,YACX,CAACvC,MAAS,CAACoC,EAAQ,SAASpC,EAAKJ,EAAM,OAAO,CAAC;AAAA,UAAA,IAEjD2C;AAAA,UACJ3C,EAAM;AAAA,QAAA;AAAA,MAEV,CAAC,GACGA,EAAM,gBAAgB;AACxB,cAAM2C,IAAe,CAAC,GAAG7B,GAAa,GAAG2B,CAAa,GAChDG,IAAcZ;AAAA,UAClBO,MAAc,SACVI,EAAa;AAAA,YACX,CAACvC,MAAS,CAACoC,EAAQ,SAASpC,EAAKJ,EAAM,OAAO,CAAC;AAAA,UAAA,IAEjD2C;AAAA,UACJ3C,EAAM;AAAA,QAAA;AAER,QAAAA,EAAM,eAAe4C,CAAW;AAAA,MAClC;AAAA,IACF;AAAA,IACA,CAACvC,GAAMW,GAAoBF,CAAW;AAAA,EAAA,GAGlC+B,IAAqB1B;AAAA,IACzB,CAAC2B,GAAoBC,MAAuB;AAC1C,MAAApC,EAAgB,CAAC,GAAGmC,GAAoB,GAAGC,CAAkB,CAAC;AAAA,IAChE;AAAA,IACA,CAAA;AAAA,EAAC;AAGH,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAO,SACrB,UAAA;AAAA,IAAA,gBAAAC,EAAC,SAAA,EAAO,UAAAlD,EAAM,gBAAgB,gCAA+B;AAAA,IAC7D,gBAAAkD;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,YAAYnC;AAAA,QACZ,YAAAJ;AAAA,QACA,cAAAF;AAAA,QACA,gBAAgBmC;AAAA,QAChB,UAAUP;AAAA,QACV,eAAe;AAAA,QACf,QAAQ,CAACtC,EAAM,aAAaA,EAAM,WAAW;AAAA,QAC7C,QAAQA,EAAM;AAAA,QACd,WAAWA,EAAM;AAAA,QACjB,eAAeA,EAAM;AAAA,QACrB,YAAYA,EAAM;AAAA,QAEjB,UAAA,CAAC,EAAE,WAAAuC,GAAW,eAAAa,GAAe,iBAAAC,QAAsB;AAClD,gBAAMC,IAAqB,CAAC;AAAA,YAC1B,iBAAiBC;AAAA,YACjB,0BAAAC;AAAA,UAAA,MACI;AACJ,YAAAH,EAAgBE,GAAgB,EAAI,GAChCC,EAAyB,SAAS,KACpCH,EAAgBG,GAA0B,EAAK;AAAA,UAEnD,GAEMC,IACJlB,MAAc,UAAUa,EAAc,WAAW,GAC7CM,IACJnB,MAAc,WAAW3B,GAAY,WAAW,GAE5C+C,IACJpB,MAAc,UACVP;AAAA,YACE,CAAC,GAAGoB,GAAe,GAAGtC,CAAW;AAAA,YACjCd,EAAM;AAAA,UAAA,IAERoD,GAEAQ,IAAe,MACnB,gBAAAV;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO;AAAA,gBACL,SAAS;AAAA,gBACT,cAAc;AAAA,gBACd,YAAY;AAAA,cAAA;AAAA,cAGb,gBAAc,SACXlD,EAAM,eAAe,oBACrBA,EAAM,eAAe;AAAA,YAAA;AAAA,UAAA;AAI7B,iBACE,gBAAAgD;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,QAAQ,QAAQ,UAAU,OAAA;AAAA,cAElC,UAAA;AAAA,gBAAAhD,EAAM,qCAAoB4D,GAAA,CAAA,CAAa;AAAA,gBACvCH,KAAiBC,IAChB,gBAAAR;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,sBAACW;AAAAA,sBAAA;AAAA,wBACC,UAAU7D,EAAM;AAAA,wBAChB,SAASA,EAAM;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACjB;AAAA,gBAAA,IAGF,gBAAAgD;AAAA,kBAACc;AAAAA,kBAAA;AAAA,oBACC,YAAYH;AAAA,oBACZ,SAAS3D,EAAM;AAAA,oBACf,aAAW;AAAA,oBACX,QAAQ,EAAE,SAAS,GAAA;AAAA,oBACnB,WAAW;AAAA,sBACT,MAAM;AAAA,sBACN,eAAe;AAAA,sBACf,oBAAoB;AAAA,oBAAA;AAAA,oBAEtB,oBAAAsD;AAAA,oBACA,SAAStD,EAAM;AAAA,oBACf,cAAc,EAAE,SAAS,GAAA;AAAA,oBACzB,YAAYA,EAAM;AAAA,oBAClB,KAAKQ;AAAA,oBAEJ,UAAA;AAAA,sBAAAR,EAAM,eAAe,gBAAAkD,EAACa,GAAA,EAAU,SAAS,IAAM;AAAA,sBAC/C/D,EAAM,QAAQ,IAAI,CAACgE,MAClB,gBAAAd;AAAA,wBAACe;AAAAA,wBAAA;AAAA,0BACC,WAAWD,EAAO;AAAA,0BAClB,SAASA,EAAO;AAAA,0BAChB,UAAUA,EAAO;AAAA,0BACjB,oBAAoBA,EAAO;AAAA,0BAC3B,sBAAsBhE,EAAM;AAAA,wBAAA;AAAA,sBAAA,CAE/B;AAAA,sBACAA,EAAM,oBAAoB,CAACkE,EAAYlE,EAAM,SAAS,KACrD,gBAAAkD,EAACiB,GAAA,EACC,UAAA,gBAAAjB,EAACkB,GAAA,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,UAAArE,EAAM;AAAA,wBAAA;AAAA,sBAAA,GAEX,EAAA,CACF;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAEJ;AAAA,YAAA;AAAA,UAAA;AAAA,QAIR;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
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 O } from "react";
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 Q, Toolbar as rt, Item as st } from "devextreme-react/data-grid";
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 = (d) => new Headers({
15
- "Content-Type": "application/json",
16
- "Accept-Language": d.language || "EN"
17
- }), w = (d, h) => {
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
- }, ut = (d, h) => d.map((f) => ({
24
- ...f,
25
- key: f[h] || f.Id
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: d = [],
28
- language: h,
29
- pagingEnable: f = !0,
30
+ dataSource: l = [],
31
+ language: f,
32
+ pagingEnable: u = !0,
30
33
  pageSize: g = 10,
31
- isServerSide: l,
34
+ isServerSide: c,
32
35
  axiosRequest: t,
33
36
  columns: I,
34
37
  pageTitle: T,
35
38
  keyExpr: o,
36
- noDataText: $,
37
- defaultPageSize: B,
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: K,
47
- showSearch: _ = !1,
48
- render: z,
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([]), E = tt(null), A = D(async () => {
56
- if (!t || !l) return;
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 u = {
66
+ const h = {
64
67
  method: t.requestType,
65
- headers: ft({ language: h }),
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, u), c = await r.json(), i = c.Data || c;
73
+ const r = await fetch(n, h), i = await r.json(), d = i.Data || i;
71
74
  U(
72
- (a) => b.loadedPageCount === 1 ? i : [...a, ...i]
73
- ), b.totalPageCount = c.PageCount || Math.ceil((c.rowCount || i.length) / g), b.totalRecordCount = c.RowCount || parseInt(r.headers.get("x-total-count") || i.length, 10);
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, h, l]);
77
- O(() => {
78
- l && t && (U([]), A());
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
- l
86
- ]), O(() => {
87
- const n = [...l ? S : d, ...m], u = w(n, o).map((r) => ({
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(u);
92
- }, [S, d, m, o, l]);
93
- const k = D(
94
- (e, n, u) => {
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
- (i) => e.includes(i[o])
98
- ), c = w(
99
- n === "left" ? m.filter((i) => !u.includes(i[o])).concat(r) : [...m, ...r],
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(c), F?.(c);
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
- l && /* @__PURE__ */ s("style", { children: ".dx-pager { display: none; }" }),
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: k,
134
+ onChange: E,
132
135
  showSelectAll: !1,
133
136
  titles: [N, v],
134
- render: z,
137
+ render: _,
135
138
  className: V,
136
- rootClassName: K,
137
- showSearch: _,
138
- children: ({ direction: e, filteredItems: n, onItemSelectAll: u }) => {
139
- const r = e === "left" && n.length === 0, c = e === "right" && j.length === 0, i = e === "right" ? w([...n, ...m], o) : n;
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 || c ? /* @__PURE__ */ s(
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: i,
173
+ dataSource: d,
171
174
  keyExpr: o,
172
175
  showBorders: !0,
173
- paging: { enabled: f, pageSize: B },
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: H
184
+ currentDeselectedRowKeys: $
182
185
  }) => {
183
- u(a, !0), H.length > 0 && u(H, !1);
186
+ h(a, !0), $.length > 0 && h($, !1);
184
187
  },
185
188
  columns: I,
186
189
  columnFixing: { enabled: !0 },
187
- noDataText: $,
188
- ref: E,
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
- Q,
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
- Q,
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":";;;;;;;;;AA+EA,MAAMA,IAAY;AAAA,EAChB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,kBAAkB;AACpB,GAEMC,KAAoB,CAACC,MAClB,IAAI,QAAQ;AAAA,EACjB,gBAAgB;AAAA,EAChB,mBAAmBA,EAAM,YAAY;AAAA,CACtC,GAGGC,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,SAASf,GAAkB,EAAE,UAAAW,EAAuB,CAAC;AAAA,MACrD,aAAa;AAAA,MACb,MAAMoC,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,MACPxD,EAAU,oBAAoB,IAC1BuD,IACA,CAAC,GAAGC,GAAU,GAAGD,CAAS;AAAA,MAAA,GAGhCvD,EAAU,iBACRsD,EAAQ,aACR,KAAK,MAAMA,EAAQ,YAAYC,EAAU,UAAUzC,CAAQ,GAC7Dd,EAAU,mBACRsD,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;"}
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":"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"}
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ods-component-lib",
3
- "version": "1.23.4",
3
+ "version": "1.23.5",
4
4
  "description": "Odeon design system component lib",
5
5
  "author": "OdeonTechnology",
6
6
  "license": "MIT",