????

Your IP : 216.73.216.152


Current Path : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/
Upload File :
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":""}