????
Current Path : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/ |
Current File : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/3958.1c9493fc.chunk.js.map |
{"version":3,"file":"static/js/3958.1c9493fc.chunk.js","mappings":"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","sources":["views/danh-muc/danh-muc-vi-tri/DanhMucDuongPho.js","components/table/Localization.js","components/table/Table.js","components/table/QueryUtils.js","components/table/DataTable.js"],"sourcesContent":["import React from \"react\";\nimport { DataTable } from \"../../../components/table\";\nimport { StreetEndpoint } from \"../../../service/category/location\";\n\nexport default function DanhMucDuongPho() {\n return (\n <DataTable\n title=\"Danh mục Đường/Phố\"\n columns={[\n {\n field: \"uuid\",\n dataID: true,\n type: \"uuid\",\n hidden: true\n },\n {\n title: \"Mã\",\n field: \"code\",\n type: \"string\",\n dataCheck: true,\n searchable: true\n },\n {\n title: \"Tiền tố\",\n field: \"prefix\",\n type: \"string\",\n dataCheck: true,\n searchable: true\n },\n {\n title: \"Tên\",\n field: \"name\",\n type: \"string\",\n dataCheck: true,\n searchable: true\n }\n ]}\n queryRemote={generateParam => StreetEndpoint.getAll(generateParam)}\n onAdd={{ onRowAdd: newData => StreetEndpoint.add(newData) }}\n onEdit={{ onRowUpdate: newData => StreetEndpoint.edit(newData) }}\n onDelete={{ onRowDelete: id => StreetEndpoint.delete(id) }}\n />\n );\n}\n","var LocalizationMTable = {\n body: {\n emptyDataSourceMessage: 'Không có dữ liệu để hiển thị',\n addTooltip: 'Thêm',\n editTooltip: 'Sửa',\n deleteTooltip: 'Xóa',\n editRow: {\n deleteText: 'Bạn có chắc chắn xóa dòng này không?',\n cancelTooltip: 'Hủy',\n saveTooltip: 'Lưu'\n }\n },\n toolbar: {\n exportTitle: 'Xuất file',\n searchTooltip: 'Tìm kiếm',\n showColumnsTitle: 'Hiện cột',\n addRemoveColumns: 'Thêm và hiển thị các cột',\n searchPlaceholder: 'Tìm kiếm'\n },\n pagination: {\n labelRowsPerPage: 'Số dòng cho 1 trang',\n labelRowsSelect: 'dòng',\n labelDisplayedRows: ' {from}-{to} của {count}',\n firstTooltip: 'Trang đầu tiên',\n previousTooltip: 'Trang trước',\n nextTooltip: 'Trang sau',\n lastTooltip: 'Trang cuối cùng'\n },\n header: {\n actions: 'Thao tác'\n }\n}\nexport default LocalizationMTable;","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport MTableLocalization from \"./Localization\";\n\nconst MaterialTable = React.lazy(() => import(\"./MTable/MaterialTable\"));\nconst MTableToolbar = React.lazy(() =>\n import(\"./MTable/components/MTableToolbar\")\n);\nconst MTableCell = React.lazy(() => import(\"./MTable/components/MTableCell\"));\n\nconst headerStyle = {\n color: \"#000\",\n padding: \"4px\",\n fontSize: \"12px\",\n fontWeight: \"bold\",\n textAlign: \"center\",\n backgroundColor: \"rgb(245, 247, 255)\",\n borderLeft: \"0.5px solid rgb(224, 224, 224)\"\n};\n\nconst rowStyle = {\n stripedRow: {\n even: \"#FFF\",\n odd: \"rgb(247, 248, 255)\"\n }\n};\n\nconst cellStyle = {\n fontSize: \"0.778rem\",\n borderLeft: \"0.5px solid rgba(224, 224, 224, 1)\"\n};\n\nexport default function Table(props) {\n const {\n addMoreRows,\n pageSize,\n search,\n CustumToolbar,\n CustumCell,\n SearchAdvanced,\n onRowClick,\n dataCount,\n rowStyle,\n rowsPerPage,\n page,\n ...attributes\n } = props;\n const onComponents = () => {\n let _components = {\n Toolbar: props => (\n <MTableToolbar {...props} SearchAdvanced={SearchAdvanced} />\n ),\n Cell: props => <MTableCell {...props} style={cellStyle} />\n };\n if (CustumToolbar) {\n _components[\"Toolbar\"] = CustumToolbar;\n }\n if (CustumCell) {\n _components[\"Cell\"] = CustumCell;\n }\n return _components;\n };\n return (\n <MaterialTable\n {...attributes}\n addMoreRows={addMoreRows}\n localization={MTableLocalization}\n options={{\n exportButton: false,\n search: search,\n actionsColumnIndex: -1,\n pageSize: pageSize,\n headerStyle: headerStyle,\n rowStyle: rowStyle\n }}\n onRowClick={\n onRowClick === undefined\n ? undefined\n : (evt, selectedRow) => onRowClick(evt, selectedRow)\n }\n components={onComponents()}\n />\n );\n}\n\nTable.propTypes = {\n pageSize: PropTypes.number.isRequired,\n search: PropTypes.bool.isRequired\n};\n\nTable.defaultProps = {\n rowStyle: (rowData, index, level) => ({\n backgroundColor:\n index % 2 === 0 ? rowStyle.stripedRow.even : rowStyle.stripedRow.odd\n }),\n pageSize: 10,\n search: true\n};\n","export const delimiter = \".\";\nexport const space = \"/\";\n// ====================================================================================\nexport const checkDelimiter = value => value && value.includes(delimiter);\nexport const convertDelimiter = value => value.split(delimiter).join(delimiter);\nexport const checkHasField = (hasField, column) =>\n hasField ? column.field : column;\n// ====================================================================================\n// Paginate\nexport const generatePaginate = (page, pageSize) =>\n `size=${pageSize}&page=${page}&count=true`;\n// Select\nexport const generateSelectURL = (columns, selectType, hasField = true) => {\n if (selectType) {\n if (selectType === \"withColumns\") {\n return `${columns.reduce((accum, current, index, array) => {\n if (current.customsRemote) {\n return \"\";\n }\n let field = checkHasField(hasField, current);\n let key_select = `${accum}`;\n if (checkDelimiter(field)) {\n key_select += `${\n current.dataRef === undefined ? \"\" : current.dataRef[0] + \",\"\n }${convertDelimiter(field)}`;\n } else {\n key_select += `${field}`;\n }\n return `${key_select}${index === array.length - 1 ? \"\" : \",\"}`;\n }, ``)}`;\n }\n } else {\n return `${columns\n .filter(column => checkDelimiter(column.field))\n .reduce(\n (accum, current) =>\n `${accum},${convertDelimiter(checkHasField(hasField, current))}`,\n `*`\n )}`;\n }\n return \"\";\n};\nexport const generateSelect = (columns, selectType, hasField = true) => {\n const select_value = generateSelectURL(columns, selectType, hasField);\n return select_value ? `&select=${select_value}` : \"\";\n};\n// ======================= OrderBy =======================\nexport const generateOrderBy = (field, orderDirection) => {\n return `&orderby=${checkDelimiter(field) ? convertDelimiter(field) : field} ${\n orderDirection === \"asc\" ? \"\" : orderDirection\n }`.trim();\n};\n\n// ======================= FILTER =======================\nexport const filterTypeField = (type, value) => {\n if (type === \"string\") {\n return `'${value}'`;\n }\n if (type === \"datetime\") {\n return `'${value}'`;\n }\n if (type === \"uuid\") {\n return `'${value}'`;\n }\n return `${value}`;\n};\n\nexport const filterField = (fieldName, type, value, isSearch = false) => {\n if (isSearch) {\n if (type === \"string\") {\n return `${fieldName} @like (string|${value})`;\n }\n return `${fieldName} @eq (${type}|${value})`;\n }\n return `${fieldName} eq ${filterTypeField(type, value)}`;\n};\n\nexport const filterURL = (query, columns) => {\n if (query.filters && query.filters.length > 0) {\n const querys = query.filters\n .filter(filter => filter.column.field && filter.column.type)\n .map(filter => {\n const key_filter = `${\n checkDelimiter(filter.column.field)\n ? filter.column.dataRef\n ? filter.column.dataRef[0]\n : convertDelimiter(filter.column.field)\n : filter.column.field\n }`;\n return filterField(key_filter, filter.column.type, filter.value);\n });\n return querys && querys.join(\" and \");\n }\n if (query.search && query.search.length >= 1) {\n const querys = columns\n .filter(column => column.searchable && column.field && column.type)\n .map(column => {\n const key_filter = `${\n checkDelimiter(column.field)\n ? convertDelimiter(column.field)\n : column.field\n }`;\n return filterField(key_filter, column.type, query.search, true);\n });\n return querys && querys.join(\" or \");\n }\n return \"\";\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport Table from \"./Table\";\nimport * as QueryUtils from \"./QueryUtils\";\nimport { CHECK_ERROR, CHECK_WARNING, CHECK_SUCCESS } from \"../alert/Alert\";\n\n// Dấu phân cách\nexport const delimiter = \".\";\n\n// const typesMaterial = 'string' | 'boolean' | 'numeric' | 'date' | 'datetime' | 'time' | 'currency';\nexport default function DataTable(props) {\n // Props\n const {\n queryRemote,\n customQuery,\n selectType,\n tableRef,\n title,\n columns,\n pageSize,\n detailPanel,\n search,\n rowStyle,\n onRowClick,\n where,\n onRefresh,\n onAdd,\n onEdit,\n onDelete,\n onActions,\n SearchAdvanced,\n CustumToolbar,\n CustumCell, removeAlert,\n odata\n } = props;\n\n // Lấy ID của bảng\n const getDataID = columns => columns.filter(e => e.dataID)[0];\n const getDataValue = (columns, data) => data[getDataID(columns).field];\n //\n const checkFilterValue = newData =>\n columns\n .filter(\n column => QueryUtils.checkDelimiter(column.field) && column.dataRef\n )\n .map(column => ({ column: column, field_split: column.field.split(\".\") }))\n .forEach(reduce => {\n delete newData[reduce.field_split[0]];\n });\n\n const refreshTable = () =>\n tableRef.current && tableRef.current.onQueryChange();\n\n const generateURL = query => {\n let q = `?${QueryUtils.generatePaginate(query.page, query.pageSize)}`;\n // Expand - Select\n q += `${QueryUtils.generateSelect(columns, selectType)}`;\n // OrderBy\n if (\n query.orderBy &&\n query.orderBy !== undefined &&\n query.orderDirection &&\n query.orderDirection !== \"\"\n ) {\n q += QueryUtils.generateOrderBy(\n query.orderBy.field,\n query.orderDirection\n );\n }\n // Filter\n let str_filter = Array.of(where, QueryUtils.filterURL(query, columns)).filter(f => f);\n q += str_filter.length > 0 ? `&search=${encodeURIComponent(str_filter.join(\" and \"))}` : \"\";\n // const str_filter = QueryUtils.filterURL(query, columns);\n // if (str_filter) {\n // q += where\n // ? `&search=(${str_filter}) and ${where}`\n // : `&search=${str_filter}`;\n // } else {\n // q += where ? \"&search=\" + where : \"\";\n // }\n return q;\n };\n\n // Kiểm tra các cột đã nhập dữ liệu hay chưa\n const checkDataCheck = newData => {\n let columnsValue = columns.filter(column => column.dataCheck);\n for (var i = 0; i < columnsValue.length; i++) {\n if (\n QueryUtils.checkDelimiter(columnsValue[i].field) &&\n columnsValue[i].dataRef\n ) {\n if (\n newData[columnsValue[i].dataRef[0]] === null ||\n newData[columnsValue[i].dataRef[0]] === undefined\n ) {\n CHECK_WARNING(\"Vui lòng nhập dữ liệu cột \" + columnsValue[i].title);\n return false;\n }\n } else {\n if (\n newData[columnsValue[i].field] === undefined ||\n newData[columnsValue[i].field] === null\n ) {\n CHECK_WARNING(\"Vui lòng nhập dữ liệu cột \" + columnsValue[i].title);\n return false;\n }\n }\n }\n return true;\n };\n\n // Thêm, Sửa, Xóa - Gọi lên server\n const onEditable = () => {\n let editable = {};\n if (onAdd && onAdd.onClick === undefined) {\n editable[\"onRowAdd\"] = newData =>\n new Promise((resolve, reject) => {\n checkFilterValue(newData);\n if (onAdd.defaultValues) {\n onAdd.defaultValues.forEach(\n def => (newData[def.field] = def.value)\n );\n }\n if (!checkDataCheck(newData)) {\n reject();\n } else {\n onAdd\n .onRowAdd(newData)\n .then(() => {\n CHECK_SUCCESS(\"Thêm dữ liệu thành công !\");\n resolve();\n })\n .catch(err => {\n CHECK_ERROR(\"Thêm dữ liệu không thành công !\");\n reject(err);\n });\n }\n });\n }\n if (onEdit && onEdit.onClick === undefined) {\n // Kiểm tra nút sửa có ẩn đi không\n if (onEdit.hidden) {\n if (typeof onEdit.hidden === \"function\") {\n editable.onUpdateHidden = rowData => onEdit.hidden(rowData);\n } else {\n editable.onUpdateHidden = onEdit.hidden;\n }\n }\n // Kiểm tra nút sửa không được bật lên\n if (onEdit.disabled) {\n editable.isEditable = rowData => onEdit.disabled(rowData);\n }\n // Kiểm tra nút sửa có gọi mặc định\n editable.onRowUpdate = (newData, oldData) =>\n new Promise((resolve, reject) => {\n checkFilterValue(newData);\n if (!checkDataCheck(newData)) {\n reject();\n } else {\n onEdit\n .onRowUpdate(newData, oldData, getDataValue(columns, oldData))\n .then(() => {\n if (!removeAlert) {\n CHECK_SUCCESS(\"Sửa dữ liệu thành công !\");\n }\n resolve();\n })\n .catch(err => {\n CHECK_ERROR(\"Sửa dữ liệu không thành công !\");\n reject(err);\n });\n }\n });\n }\n if (onDelete && onDelete.onClick === undefined) {\n // Kiểm tra nút xóa có ẩn đi không\n if (onDelete.hidden) {\n if (typeof onDelete.hidden === \"function\") {\n editable.onDeleteHidden = rowData => onDelete.hidden(rowData);\n } else {\n editable.onDeleteHidden = onDelete.hidden;\n }\n }\n // Kiểm tra nút xóa không được bật lên\n if (onDelete.disabled) {\n editable.isDeletable = rowData => onDelete.disabled(rowData);\n }\n // Kiểm tra nút xóa có gọi mặc định\n editable.onRowDelete = oldData =>\n new Promise((resolve, reject) =>\n onDelete\n .onRowDelete(getDataValue(columns, oldData))\n .then(() => {\n CHECK_SUCCESS(\"Xóa dữ liệu thành công !\");\n resolve();\n })\n .catch(err => {\n CHECK_ERROR(\"Xóa dữ liệu không thành công !\");\n reject(err);\n })\n );\n }\n return editable;\n };\n\n const actions = () => {\n let _actions = [];\n if (onRefresh) {\n onRefresh.icon = \"refresh\";\n onRefresh.isRefresh = true;\n onRefresh.tooltip = \"Tải lại dữ liệu\";\n onRefresh.isFreeAction = true;\n _actions.push(onRefresh);\n } else {\n _actions.push({\n icon: \"refresh\",\n isRefresh: true,\n tooltip: \"Tải lại dữ liệu\",\n isFreeAction: true,\n onClick: () => refreshTable()\n });\n }\n if (onActions) {\n onActions.map(action => _actions.push(action));\n }\n if (onAdd && onAdd.onClick) {\n onAdd.icon = \"add_box\";\n onAdd.tooltip = \"Thêm\";\n onAdd.isAdd = true;\n onAdd.isFreeAction = true;\n _actions.push(onAdd);\n }\n if (onEdit && onEdit.onClick) {\n onEdit.icon = \"edit\";\n onEdit.tooltip = \"Sửa\";\n onEdit.isEdit = true;\n _actions.push(onEdit);\n }\n if (onDelete && onDelete.onClick) {\n onDelete.icon = \"delete\";\n onDelete.tooltip = \"Xóa\";\n onDelete.isDelete = true;\n _actions.push(onDelete);\n }\n return _actions;\n };\n return (\n <Table\n search={search}\n pageSize={pageSize}\n title={title}\n columns={columns}\n tableRef={tableRef}\n SearchAdvanced={SearchAdvanced}\n CustumToolbar={CustumToolbar}\n CustumCell={CustumCell}\n data={query =>\n customQuery\n ? customQuery(query, generateURL(query))\n : queryRemote(generateURL(query)).then(result => {\n const data = odata ? result?.value : result?.content || [];\n return {\n data,\n page: query.page,\n totalCount: Number(result[\"totalElements\"]) || data.length\n }\n })\n }\n rowStyle={rowStyle}\n detailPanel={detailPanel}\n editable={onEditable()}\n actions={actions()}\n onRowClick={onRowClick}\n />\n );\n}\n\nDataTable.propTypes = {\n queryRemote: PropTypes.func.isRequired,\n title: PropTypes.string.isRequired,\n columns: PropTypes.array.isRequired,\n pageSize: PropTypes.number.isRequired,\n search: PropTypes.bool.isRequired,\n tableRef: PropTypes.object.isRequired\n};\n\nDataTable.defaultProps = {\n title: \"\",\n columns: [],\n pageSize: 10,\n search: true,\n selectType: \"withColumns\",\n tableRef: React.createRef()\n};\n"],"names":["DanhMucDuongPho","_jsx","DataTable","title","columns","field","dataID","type","hidden","dataCheck","searchable","queryRemote","generateParam","StreetEndpoint","getAll","onAdd","onRowAdd","newData","add","onEdit","onRowUpdate","edit","onDelete","onRowDelete","id","delete","body","emptyDataSourceMessage","addTooltip","editTooltip","deleteTooltip","editRow","deleteText","cancelTooltip","saveTooltip","toolbar","exportTitle","searchTooltip","showColumnsTitle","addRemoveColumns","searchPlaceholder","pagination","labelRowsPerPage","labelRowsSelect","labelDisplayedRows","firstTooltip","previousTooltip","nextTooltip","lastTooltip","header","actions","MaterialTable","React","MTableToolbar","MTableCell","headerStyle","color","padding","fontSize","fontWeight","textAlign","backgroundColor","borderLeft","rowStyle","even","odd","cellStyle","Table","props","addMoreRows","pageSize","search","CustumToolbar","CustumCell","SearchAdvanced","onRowClick","dataCount","rowsPerPage","page","attributes","localization","MTableLocalization","options","exportButton","actionsColumnIndex","undefined","evt","selectedRow","components","onComponents","_components","Toolbar","Cell","style","defaultProps","rowData","index","level","checkDelimiter","value","includes","convertDelimiter","split","join","checkHasField","hasField","column","generatePaginate","generateSelect","selectType","select_value","arguments","length","reduce","accum","current","array","customsRemote","key_select","dataRef","filter","generateSelectURL","generateOrderBy","orderDirection","trim","filterField","fieldName","filterTypeField","filterURL","query","filters","querys","map","key_filter","customQuery","tableRef","detailPanel","where","onRefresh","onActions","removeAlert","odata","getDataValue","data","e","getDataID","checkFilterValue","QueryUtils","field_split","forEach","generateURL","q","orderBy","str_filter","Array","of","f","encodeURIComponent","checkDataCheck","columnsValue","i","CHECK_WARNING","then","result","content","totalCount","Number","editable","onEditable","onClick","Promise","resolve","reject","defaultValues","def","CHECK_SUCCESS","catch","err","CHECK_ERROR","onUpdateHidden","disabled","isEditable","oldData","onDeleteHidden","isDeletable","_actions","icon","isRefresh","tooltip","isFreeAction","push","onQueryChange","action","isAdd","isEdit","isDelete"],"sourceRoot":""}