????
Current Path : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/ |
Current File : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/9137.1f46bad1.chunk.js.map |
{"version":3,"file":"static/js/9137.1f46bad1.chunk.js","mappings":"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","sources":["components/table/Localization.js","components/table/Table.js","components/table/QueryUtils.js","components/table/DataTable.js","views/danh-muc/danh-muc-vi-tri/DanhMucTinhThanhPho.js"],"sourcesContent":["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","import React from \"react\";\nimport { DataTable } from \"../../../components/table\";\nimport { TinhsEndpoint } from \"../../../service/category/location\";\n\nexport default function DanhMucTinhThanhPho() {\n return (\n <DataTable\n title=\"Danh mục Tỉnh/Thành 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ỉnh/Thành phố\",\n field: \"name\",\n type: \"string\",\n dataCheck: true,\n searchable: true,\n defaultSort: \"asc\"\n },\n {\n title: \"ISO\",\n field: \"iso\",\n type: \"string\",\n dataCheck: true,\n searchable: true\n },\n {\n title: \"Zip Code\",\n field: \"zip_code\",\n type: \"string\",\n dataCheck: true,\n searchable: true\n },\n {\n title: \"Quốc gia\",\n field: \"country.namevi\",\n type: \"string\",\n dataCheck: true,\n searchable: true\n }\n ]}\n queryRemote={generateParam => TinhsEndpoint.getAll(generateParam)}\n onAdd={{ onRowAdd: newData => TinhsEndpoint.add(newData) }}\n onEdit={{ onRowUpdate: newData => TinhsEndpoint.edit(newData) }}\n onDelete={{ onRowDelete: id => TinhsEndpoint.delete(id) }}\n />\n );\n}\n"],"names":["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","_jsx","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","field","generatePaginate","generateSelect","columns","selectType","select_value","arguments","length","reduce","accum","current","array","customsRemote","key_select","dataRef","filter","generateSelectURL","generateOrderBy","orderDirection","trim","filterField","fieldName","type","filterTypeField","filterURL","query","filters","querys","map","key_filter","searchable","DataTable","queryRemote","customQuery","tableRef","title","detailPanel","where","onRefresh","onAdd","onEdit","onDelete","onActions","removeAlert","odata","getDataValue","data","e","dataID","getDataID","checkFilterValue","newData","QueryUtils","field_split","forEach","generateURL","q","orderBy","str_filter","Array","of","f","encodeURIComponent","checkDataCheck","columnsValue","dataCheck","i","CHECK_WARNING","then","result","content","totalCount","Number","editable","onEditable","onClick","Promise","resolve","reject","defaultValues","def","onRowAdd","CHECK_SUCCESS","catch","err","CHECK_ERROR","hidden","onUpdateHidden","disabled","isEditable","onRowUpdate","oldData","onDeleteHidden","isDeletable","onRowDelete","_actions","icon","isRefresh","tooltip","isFreeAction","push","onQueryChange","action","isAdd","isEdit","isDelete","DanhMucTinhThanhPho","defaultSort","generateParam","TinhsEndpoint","getAll","add","edit","id","delete"],"sourceRoot":""}