@atomsolution/sdk-merchant 1.0.1 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -103,7 +103,6 @@ import React__default, { useReducer, useRef, useEffect, useLayoutEffect, useDebu
103
103
  import * as ReactDOM from "react-dom";
104
104
  import ReactDOM__default, { createPortal } from "react-dom";
105
105
  import { toast, ToastContainer } from "react-toastify";
106
- import { useHistory } from "react-router-dom";
107
106
  function setAccessToken(token) {
108
107
  }
109
108
  function createStore(createState) {
@@ -13800,8 +13799,8 @@ function NewAccountCreate({
13800
13799
  }) {
13801
13800
  const { translate: translate2 } = useTranslation("digistore-id");
13802
13801
  const [email2, setEmail] = useState(username);
13803
- const [password, setPassword] = useState(userPassword);
13804
- const [confirmPassword, setConfirmPassword] = useState(userPassword);
13802
+ const [password, setPassword] = useState(userPassword || "");
13803
+ const [confirmPassword, setConfirmPassword] = useState(userPassword || "");
13805
13804
  const [isSubmitting, setIsSubmitting] = useState(false);
13806
13805
  const [passwordError, setPasswordError] = useState("");
13807
13806
  const [confirmPasswordError, setConfirmPasswordError] = useState("");
@@ -13874,14 +13873,22 @@ function NewAccountCreate({
13874
13873
  label: translate2("form_pwd_label"),
13875
13874
  value: password,
13876
13875
  onChange: (e) => {
13877
- setPassword(e.target.value);
13878
- if (!e.target.value) {
13876
+ const newPassword = e.target.value;
13877
+ setPassword(newPassword);
13878
+ if (!newPassword) {
13879
13879
  setPasswordError(translate2("form_pwd_err_required"));
13880
- } else if (!validate(e.target.value).isValid) {
13880
+ } else if (!validate(newPassword).isValid) {
13881
13881
  setPasswordError(translate2("form_pwd_err_invalid"));
13882
13882
  } else {
13883
13883
  setPasswordError("");
13884
13884
  }
13885
+ if (confirmPassword && confirmPassword !== newPassword) {
13886
+ setConfirmPasswordError(
13887
+ translate2("form_confirm_pwd_err_no_match")
13888
+ );
13889
+ } else {
13890
+ setConfirmPasswordError("");
13891
+ }
13885
13892
  },
13886
13893
  placeholder: translate2("form_pwd_placeholder"),
13887
13894
  required: true,
@@ -13895,12 +13902,13 @@ function NewAccountCreate({
13895
13902
  label: translate2("form_confirm_pwd_label"),
13896
13903
  value: confirmPassword,
13897
13904
  onChange: (e) => {
13898
- setConfirmPassword(e.target.value);
13899
- if (!e.target.value) {
13905
+ const newConfirm = e.target.value;
13906
+ setConfirmPassword(newConfirm);
13907
+ if (!newConfirm) {
13900
13908
  setConfirmPasswordError(
13901
13909
  translate2("form_confirm_pwd_err_required")
13902
13910
  );
13903
- } else if (e.target.value !== password) {
13911
+ } else if (newConfirm !== password) {
13904
13912
  setConfirmPasswordError(
13905
13913
  translate2("form_confirm_pwd_err_no_match")
13906
13914
  );
@@ -43249,6 +43257,34 @@ function getDateTimeMetrics(date2 = /* @__PURE__ */ new Date()) {
43249
43257
  seconds
43250
43258
  };
43251
43259
  }
43260
+ function useRouterNavigate() {
43261
+ return useMemo(() => {
43262
+ try {
43263
+ const { useNavigate } = require("react-router-dom");
43264
+ if (typeof useNavigate === "function") {
43265
+ const navigate = useNavigate();
43266
+ return (path) => {
43267
+ var _a;
43268
+ if (typeof path === "string") navigate(path);
43269
+ else navigate(`${path.pathname}${(_a = path.search) != null ? _a : ""}`);
43270
+ };
43271
+ }
43272
+ } catch (_) {
43273
+ }
43274
+ try {
43275
+ const { useHistory } = require("react-router-dom");
43276
+ const history = useHistory();
43277
+ return (path) => {
43278
+ var _a;
43279
+ return typeof path === "string" ? history.push(path) : history.push(path.pathname + ((_a = path.search) != null ? _a : ""));
43280
+ };
43281
+ } catch (err) {
43282
+ console.error("[SDK Router] Cannot detect router version:", err);
43283
+ return () => {
43284
+ };
43285
+ }
43286
+ }, []);
43287
+ }
43252
43288
  var exceljs_min = { exports: {} };
43253
43289
  /*! ExcelJS 19-10-2023 */
43254
43290
  (function(module, exports) {
@@ -66489,10 +66525,10 @@ const CreateProductSuccessModal = ({
66489
66525
  return (((_a = state.userInfo) == null ? void 0 : _a.name) || "user").replace(/\s+/g, "-");
66490
66526
  });
66491
66527
  const { reset: reset2 } = useUploadStore();
66492
- const history = useHistory();
66528
+ const navigate = useRouterNavigate();
66493
66529
  const onClose = () => {
66494
66530
  reset2();
66495
- history.push({
66531
+ navigate({
66496
66532
  pathname: "/sale-product",
66497
66533
  search: "?page=1&page_size=10"
66498
66534
  });
@@ -74109,6 +74145,135 @@ const getDefaultActivePermissions = (groups) => {
74109
74145
  });
74110
74146
  return activeIds;
74111
74147
  };
74148
+ const DASHBOARD_PERMISSIONS = {
74149
+ OVERVIEW: "TONGQUAN_READ"
74150
+ };
74151
+ const REPORT_PERMISSIONS = {
74152
+ // Báo cáo giao dịch thẻ
74153
+ CARD_TRANSACTIONS_READ: "BAOCAO_GIAODICH_THE_READ",
74154
+ CARD_TRANSACTIONS_CREATE: "BAOCAO_GIAODICH_THE_CREATE",
74155
+ CARD_TRANSACTIONS_UPDATE: "BAOCAO_GIAODICH_THE_UPDATE",
74156
+ CARD_TRANSACTIONS_DELETE: "BAOCAO_GIAODICH_THE_DELETE",
74157
+ // Báo cáo giao dịch QR
74158
+ QR_TRANSACTIONS_READ: "BAOCAO_GIAODICH_QR_READ",
74159
+ QR_TRANSACTIONS_CREATE: "BAOCAO_GIAODICH_QR_CREATE",
74160
+ QR_TRANSACTIONS_UPDATE: "BAOCAO_GIAODICH_QR_UPDATE",
74161
+ QR_TRANSACTIONS_DELETE: "BAOCAO_GIAODICH_QR_DELETE",
74162
+ // Báo cáo giao dịch tiền mặt
74163
+ CASH_TRANSACTIONS_READ: "BAOCAO_GIAODICH_TIENMAT_READ",
74164
+ // Báo cáo giao dịch E-wallet
74165
+ EWALLET_TRANSACTIONS_READ: "BAOCAO_GIAODICH_EWALLET_READ",
74166
+ // Báo cáo giao dịch trả góp
74167
+ INSTALLMENT_TRANSACTIONS_READ: "BAOCAO_GIAODICH_TRAGOP_READ",
74168
+ // Báo cáo giao dịch E-commerce
74169
+ ECOM_TRANSACTIONS_READ: "BAOCAO_GIAODICH_ECOM_READ",
74170
+ // Báo cáo giao dịch tiết kiệm
74171
+ SAVING_TRANSACTIONS_READ: "BAOCAO_GIAODICH_TIETKIEM_READ",
74172
+ // Báo cáo giao dịch vay vốn
74173
+ LOAN_TRANSACTIONS_READ: "BAOCAO_GIAODICH_VAYVON_READ",
74174
+ // Xuất báo cáo
74175
+ EXPORT_QR_REPORT: "XUAT_BAOCAO_GIAODICH_QR_CREATE",
74176
+ EXPORT_CARD_REPORT: "XUAT_BAOCAO_GIAODICH_THE_CREATE"
74177
+ };
74178
+ const PAYMENT_PERMISSIONS = {
74179
+ // Tài khoản thanh toán
74180
+ PAYMENT_ACCOUNT_READ: "QUANLY_TAIKHOAN_THANHTOAN_READ",
74181
+ PAYMENT_ACCOUNT_CREATE: "QUANLY_TAIKHOAN_THANHTOAN_CREATE",
74182
+ PAYMENT_ACCOUNT_UPDATE: "QUANLY_TAIKHOAN_THANHTOAN_UPDATE",
74183
+ PAYMENT_ACCOUNT_DELETE: "QUANLY_TAIKHOAN_THANHTOAN_DELETE",
74184
+ // Shop QR
74185
+ SHOP_QR_READ: "QUANLY_SHOPQR_READ",
74186
+ SHOP_QR_CREATE: "QUANLY_SHOPQR_CREATE",
74187
+ SHOP_QR_UPDATE: "QUANLY_SHOPQR_UPDATE",
74188
+ SHOP_QR_DELETE: "QUANLY_SHOPQR_DELETE",
74189
+ // Pay by Link
74190
+ PAY_BY_LINK_READ: "PAY_BY_LINK_READ",
74191
+ PAY_BY_LINK_CREATE: "PAY_BY_LINK_CREATE",
74192
+ PAY_BY_LINK_UPDATE: "PAY_BY_LINK_UPDATE",
74193
+ PAY_BY_LINK_DELETE: "PAY_BY_LINK_DELETE",
74194
+ //Quản lí QR thanh toán
74195
+ QUANLY_QR_THANHTOAN_READ: "QUANLY_QR_THANHTOAN_READ",
74196
+ QUANLY_QR_THANHTOAN_CREATE: "QUANLY_QR_THANHTOAN_CREATE",
74197
+ QUANLY_QR_THANHTOAN_UPDATE: "QUANLY_QR_THANHTOAN_UPDATE",
74198
+ QUANLY_QR_THANHTOAN_DELETE: "QUANLY_QR_THANHTOAN_DELETE"
74199
+ };
74200
+ const EDC_PERMISSIONS = {
74201
+ POS_MACHINE_READ: "QUANLY_MAY_THANHTOAN_THE_READ",
74202
+ POS_MACHINE_CREATE: "QUANLY_MAY_THANHTOAN_THE_CREATE",
74203
+ POS_MACHINE_UPDATE: "QUANLY_MAY_THANHTOAN_THE_UPDATE",
74204
+ POS_MACHINE_DELETE: "QUANLY_MAY_THANHTOAN_THE_DELETE"
74205
+ };
74206
+ const SALES_PERMISSIONS = {
74207
+ // Khách hàng
74208
+ CUSTOMER_READ: "QUANLY_KHACHHANG_READ",
74209
+ CUSTOMER_CREATE: "QUANLY_KHACHHANG_CREATE",
74210
+ CUSTOMER_UPDATE: "QUANLY_KHACHHANG_UPDATE",
74211
+ CUSTOMER_DELETE: "QUANLY_KHACHHANG_DELETE",
74212
+ // Sản phẩm
74213
+ PRODUCT_READ: "QUANLY_SP_READ",
74214
+ PRODUCT_CREATE: "QUANLY_SP_CREATE",
74215
+ PRODUCT_UPDATE: "QUANLY_SP_UPDATE",
74216
+ PRODUCT_DELETE: "QUANLY_SP_DELETE",
74217
+ // Đơn hàng
74218
+ QUANLY_DONHANG_READ: "QUANLY_DONHANG_READ",
74219
+ QUANLY_DONHANG_CREATE: "QUANLY_DONHANG_CREATE",
74220
+ QUANLY_DONHANG_UPDATE: "QUANLY_DONHANG_UPDATE",
74221
+ QUANLY_DONHANG_DELETE: "QUANLY_DONHANG_DELETE",
74222
+ // Bàn (cho F&B)
74223
+ TABLE_READ: "QUANLY_BAN_READ",
74224
+ TABLE_CREATE: "QUANLY_BAN_CREATE",
74225
+ TABLE_UPDATE: "QUANLY_BAN_UPDATE",
74226
+ TABLE_DELETE: "QUANLY_BAN_DELETE",
74227
+ // Cài đặt bán hàng
74228
+ SALES_SETTINGS_READ: "CAIDAT_BANHANG_READ",
74229
+ SALES_SETTINGS_UPDATE: "CAIDAT_BANHANG_UPDATE",
74230
+ // Đăng ký bán hàng
74231
+ SALES_REGISTER_READ: "DANGKY_BANHANG_READ"
74232
+ };
74233
+ const SETTINGS_PERMISSIONS = {
74234
+ THIETLAP_BANHANG_READ: "THIETLAP_BANHANG_READ",
74235
+ THIETLAP_BANHANG_UPDATE: "THIETLAP_BANHANG_UPDATE",
74236
+ THIETLAP_BANHANG_CREATE: "THIETLAP_BANHANG_CREATE"
74237
+ };
74238
+ const EINVOICE_PERMISSIONS = {
74239
+ // Hóa đơn điện tử
74240
+ EINVOICE_READ: "HOA_DON_DIEN_TU_READ",
74241
+ EINVOICE_CREATE: "HOA_DON_DIEN_TU_CREATE",
74242
+ EINVOICE_UPDATE: "HOA_DON_DIEN_TU_UPDATE",
74243
+ EINVOICE_DELETE: "HOA_DON_DIEN_TU_DELETE",
74244
+ EINVOICE_ONBOARD: "HOA_DON_DIEN_TU_ONBOARD",
74245
+ EINVOICE_CONFIGURE: "HOA_DON_DIEN_TU_CONFIG"
74246
+ };
74247
+ const BUSINESS_PERMISSIONS = {
74248
+ // Hồ sơ
74249
+ THONGTIN_READ: "THONGTIN_READ",
74250
+ // Cửa hàng
74251
+ STORE_READ: "QUANLY_CUAHANG_READ",
74252
+ STORE_CREATE: "QUANLY_CUAHANG_CREATE",
74253
+ STORE_UPDATE: "QUANLY_CUAHANG_UPDATE",
74254
+ STORE_DELETE: "QUANLY_CUAHANG_DELETE",
74255
+ // Nhân viên
74256
+ STAFF_READ: "QUANLY_NHANVIEN_READ",
74257
+ STAFF_CREATE: "QUANLY_NHANVIEN_CREATE",
74258
+ STAFF_UPDATE: "QUANLY_NHANVIEN_UPDATE",
74259
+ STAFF_DELETE: "QUANLY_NHANVIEN_DELETE",
74260
+ STAFF_ACCOUNT: "QUANLY_NHANVIEN_ACCOUNT",
74261
+ // Phân quyền nhân viên (Vai trò)
74262
+ ROLE_READ: "QUANLY_VAITRO_READ",
74263
+ ROLE_CREATE: "QUANLY_VAITRO_CREATE",
74264
+ ROLE_UPDATE: "QUANLY_VAITRO_UPDATE",
74265
+ ROLE_DELETE: "QUANLY_VAITRO_DELETE"
74266
+ };
74267
+ const FEEDBACK_PERMISSIONS = {
74268
+ FEEDBACK_READ: "PHAN_HOI_READ",
74269
+ FEEDBACK_CREATE: "PHAN_HOI_CREATE",
74270
+ FEEDBACK_UPDATE: "PHAN_HOI_UPDATE",
74271
+ FEEDBACK_DELETE: "PHAN_HOI_DELETE"
74272
+ };
74273
+ const TRACKING_PERMISSIONS = {
74274
+ TRACKING_READ: "THEO_DOI_READ"
74275
+ };
74276
+ __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, DASHBOARD_PERMISSIONS), REPORT_PERMISSIONS), PAYMENT_PERMISSIONS), EDC_PERMISSIONS), SALES_PERMISSIONS), EINVOICE_PERMISSIONS), BUSINESS_PERMISSIONS), FEEDBACK_PERMISSIONS), TRACKING_PERMISSIONS);
74112
74277
  const ROLE_FORM = {
74113
74278
  ROLE_NAME: "role_name",
74114
74279
  PERMISSIONS: "permissions"
@@ -74119,7 +74284,7 @@ const PERMISSION_GROUPS = [
74119
74284
  label: "Tổng quan",
74120
74285
  permissions: [
74121
74286
  {
74122
- id: "TONGQUAN.READ",
74287
+ id: DASHBOARD_PERMISSIONS.OVERVIEW,
74123
74288
  label: "Xem thông tin",
74124
74289
  is_primary: true,
74125
74290
  active: false,
@@ -74137,14 +74302,14 @@ const PERMISSION_GROUPS = [
74137
74302
  label: "Giao dịch thẻ",
74138
74303
  permissions: [
74139
74304
  {
74140
- id: "BAOCAO_GIAODICH_THE.READ",
74305
+ id: REPORT_PERMISSIONS.CARD_TRANSACTIONS_READ,
74141
74306
  label: "Xem thông tin",
74142
74307
  is_primary: true,
74143
74308
  active: false,
74144
74309
  max: 10
74145
74310
  },
74146
74311
  {
74147
- id: "BAOCAO_GIAODICH_THE.CREATE",
74312
+ id: REPORT_PERMISSIONS.CARD_TRANSACTIONS_READ,
74148
74313
  label: "Xuất báo cáo",
74149
74314
  is_primary: false,
74150
74315
  active: false,
@@ -74157,14 +74322,14 @@ const PERMISSION_GROUPS = [
74157
74322
  label: "Giao dịch QR",
74158
74323
  permissions: [
74159
74324
  {
74160
- id: "BAOCAO_GIAODICH_QR.READ",
74325
+ id: REPORT_PERMISSIONS.QR_TRANSACTIONS_READ,
74161
74326
  label: "Xem thông tin",
74162
74327
  is_primary: true,
74163
74328
  active: false,
74164
74329
  max: 10
74165
74330
  },
74166
74331
  {
74167
- id: "XUAT_BAOCAO_GIAODICH_QR.CREATE",
74332
+ id: REPORT_PERMISSIONS.QR_TRANSACTIONS_CREATE,
74168
74333
  label: "Xuất báo cáo",
74169
74334
  is_primary: false,
74170
74335
  active: false,
@@ -74184,7 +74349,7 @@ const PERMISSION_GROUPS = [
74184
74349
  label: "Tài khoản thanh toán",
74185
74350
  permissions: [
74186
74351
  {
74187
- id: "QUANLY_TAIKHOAN_THANHTOAN.READ",
74352
+ id: PAYMENT_PERMISSIONS.PAYMENT_ACCOUNT_READ,
74188
74353
  label: "Xem thông tin",
74189
74354
  is_primary: true,
74190
74355
  active: false,
@@ -74197,21 +74362,21 @@ const PERMISSION_GROUPS = [
74197
74362
  label: "Quản lý ShopQR",
74198
74363
  permissions: [
74199
74364
  {
74200
- id: "QUANLY_SHOPQR.READ",
74365
+ id: PAYMENT_PERMISSIONS.SHOP_QR_READ,
74201
74366
  label: "Xem thông tin",
74202
74367
  is_primary: true,
74203
74368
  active: false,
74204
74369
  max: 10
74205
74370
  },
74206
74371
  {
74207
- id: "QUANLY_SHOPQR.CREATE",
74372
+ id: PAYMENT_PERMISSIONS.SHOP_QR_CREATE,
74208
74373
  label: "Tạo mới",
74209
74374
  is_primary: false,
74210
74375
  active: false,
74211
74376
  max: null
74212
74377
  },
74213
74378
  {
74214
- id: "QUANLY_SHOPQR.DELETE",
74379
+ id: PAYMENT_PERMISSIONS.SHOP_QR_DELETE,
74215
74380
  label: "Xóa",
74216
74381
  is_primary: false,
74217
74382
  active: false,
@@ -74224,14 +74389,14 @@ const PERMISSION_GROUPS = [
74224
74389
  label: "Quản lý QR thanh toán",
74225
74390
  permissions: [
74226
74391
  {
74227
- id: "QUANLY_QR_THANHTOAN.READ",
74392
+ id: PAYMENT_PERMISSIONS.QUANLY_QR_THANHTOAN_READ,
74228
74393
  label: "Xem thông tin",
74229
74394
  is_primary: true,
74230
74395
  active: false,
74231
74396
  max: 10
74232
74397
  },
74233
74398
  {
74234
- id: "QUANLY_QR_THANHTOAN.CREATE",
74399
+ id: PAYMENT_PERMISSIONS.QUANLY_QR_THANHTOAN_CREATE,
74235
74400
  label: "Tạo mới",
74236
74401
  is_primary: false,
74237
74402
  active: false,
@@ -74246,7 +74411,7 @@ const PERMISSION_GROUPS = [
74246
74411
  label: "Pay By Link",
74247
74412
  permissions: [
74248
74413
  {
74249
- id: "PAY_BY_LINK.CREATE",
74414
+ id: PAYMENT_PERMISSIONS.PAY_BY_LINK_CREATE,
74250
74415
  label: "Tạo Payment Link",
74251
74416
  is_primary: false,
74252
74417
  active: false,
@@ -74259,14 +74424,14 @@ const PERMISSION_GROUPS = [
74259
74424
  label: "Quản lý máy thanh toán thẻ",
74260
74425
  permissions: [
74261
74426
  {
74262
- id: "QUANLY_MAY_THANHTOAN_THE.READ",
74427
+ id: EDC_PERMISSIONS.POS_MACHINE_READ,
74263
74428
  label: "Xem thông tin",
74264
74429
  is_primary: true,
74265
74430
  active: false,
74266
74431
  max: 10
74267
74432
  },
74268
74433
  {
74269
- id: "QUANLY_MAY_THANHTOAN_THE.UPDATE",
74434
+ id: EDC_PERMISSIONS.POS_MACHINE_UPDATE,
74270
74435
  label: "Tích hợp ShopQR",
74271
74436
  is_primary: false,
74272
74437
  active: false,
@@ -74284,21 +74449,21 @@ const PERMISSION_GROUPS = [
74284
74449
  label: "Danh sách khách hàng",
74285
74450
  permissions: [
74286
74451
  {
74287
- id: "QUANLY_KHACHHANG.READ",
74452
+ id: SALES_PERMISSIONS.CUSTOMER_READ,
74288
74453
  label: "Xem thông tin",
74289
74454
  is_primary: true,
74290
74455
  active: false,
74291
74456
  max: 10
74292
74457
  },
74293
74458
  {
74294
- id: "QUANLY_KHACHHANG.CREATE",
74459
+ id: SALES_PERMISSIONS.CUSTOMER_CREATE,
74295
74460
  label: "Tạo mới",
74296
74461
  is_primary: false,
74297
74462
  active: false,
74298
74463
  max: null
74299
74464
  },
74300
74465
  {
74301
- id: "QUANLY_KHACHHANG.UPDATE",
74466
+ id: SALES_PERMISSIONS.CUSTOMER_UPDATE,
74302
74467
  label: "Chỉnh sửa",
74303
74468
  is_primary: false,
74304
74469
  active: false,
@@ -74311,21 +74476,21 @@ const PERMISSION_GROUPS = [
74311
74476
  label: "Danh sách sản phẩm",
74312
74477
  permissions: [
74313
74478
  {
74314
- id: "E_MENU.READ",
74479
+ id: "E_MENU_READ",
74315
74480
  label: "Xem thông tin",
74316
74481
  is_primary: true,
74317
74482
  active: false,
74318
74483
  max: 10
74319
74484
  },
74320
74485
  {
74321
- id: "E_MENU.CREATE",
74486
+ id: "E_MENU_CREATE",
74322
74487
  label: "Tạo mới",
74323
74488
  is_primary: false,
74324
74489
  active: false,
74325
74490
  max: null
74326
74491
  },
74327
74492
  {
74328
- id: "E_MENU.UPDATE",
74493
+ id: "E_MENU_UPDATE",
74329
74494
  label: "Chỉnh sửa",
74330
74495
  is_primary: false,
74331
74496
  active: false,
@@ -74334,18 +74499,18 @@ const PERMISSION_GROUPS = [
74334
74499
  ]
74335
74500
  },
74336
74501
  {
74337
- id: "quan_ly_ban_hang.don_hang",
74502
+ id: "QUANLY_DONHANG",
74338
74503
  label: "Danh sách đơn hàng",
74339
74504
  permissions: [
74340
74505
  {
74341
- id: "quan_ly_ban_hang.don_hang.READ",
74506
+ id: SALES_PERMISSIONS.QUANLY_DONHANG_READ,
74342
74507
  label: "Xem thông tin",
74343
74508
  is_primary: true,
74344
74509
  active: false,
74345
74510
  max: 10
74346
74511
  },
74347
74512
  {
74348
- id: "quan_ly_ban_hang.don_hang.CREATE",
74513
+ id: SALES_PERMISSIONS.QUANLY_DONHANG_CREATE,
74349
74514
  label: "Tạo đơn",
74350
74515
  is_primary: false,
74351
74516
  active: false,
@@ -74355,32 +74520,32 @@ const PERMISSION_GROUPS = [
74355
74520
  },
74356
74521
  {
74357
74522
  id: "QUANLY_BANHANG",
74358
- label: "Danh sách bán",
74523
+ label: "Danh sách bàn",
74359
74524
  permissions: [
74360
74525
  {
74361
- id: "QUANLY_BANHANG.READ",
74526
+ id: SALES_PERMISSIONS.TABLE_READ,
74362
74527
  label: "Xem thông tin",
74363
74528
  is_primary: true,
74364
74529
  active: false,
74365
74530
  max: 10
74366
74531
  },
74367
74532
  {
74368
- id: "QUANLY_BANHANG.CREATE",
74369
- label: "Tạo bán",
74533
+ id: SALES_PERMISSIONS.TABLE_CREATE,
74534
+ label: "Tạo bàn",
74370
74535
  is_primary: false,
74371
74536
  active: false,
74372
74537
  max: null
74373
74538
  },
74374
74539
  {
74375
- id: "QUANLY_BANHANG.UPDATE",
74376
- label: "Chỉnh sửa bán",
74540
+ id: SALES_PERMISSIONS.TABLE_UPDATE,
74541
+ label: "Chỉnh sửa bàn",
74377
74542
  is_primary: false,
74378
74543
  active: false,
74379
74544
  max: null
74380
74545
  },
74381
74546
  {
74382
- id: "QUANLY_BANHANG.DELETE",
74383
- label: "Xóa bán",
74547
+ id: SALES_PERMISSIONS.TABLE_DELETE,
74548
+ label: "Xóa bàn",
74384
74549
  is_primary: false,
74385
74550
  active: false,
74386
74551
  max: null
@@ -74388,25 +74553,25 @@ const PERMISSION_GROUPS = [
74388
74553
  ]
74389
74554
  },
74390
74555
  {
74391
- id: "quan_ly_ban_hang.thiet_lap",
74556
+ id: "THIETLAP_BANHANG",
74392
74557
  label: "Thiết lập",
74393
74558
  permissions: [
74394
74559
  {
74395
- id: "quan_ly_ban_hang.thiet_lap.xem",
74560
+ id: SETTINGS_PERMISSIONS.THIETLAP_BANHANG_READ,
74396
74561
  label: "Xem thông tin",
74397
74562
  is_primary: true,
74398
74563
  active: false,
74399
74564
  max: 10
74400
74565
  },
74401
74566
  {
74402
- id: "quan_ly_ban_hang.thiet_lap.sua",
74567
+ id: SETTINGS_PERMISSIONS.THIETLAP_BANHANG_UPDATE,
74403
74568
  label: "Chỉnh sửa",
74404
74569
  is_primary: false,
74405
74570
  active: false,
74406
74571
  max: null
74407
74572
  },
74408
74573
  {
74409
- id: "quan_ly_ban_hang.thiet_lap.them_may_in",
74574
+ id: SETTINGS_PERMISSIONS.THIETLAP_BANHANG_CREATE,
74410
74575
  label: "Thêm máy in",
74411
74576
  is_primary: false,
74412
74577
  active: false,
@@ -74422,11 +74587,11 @@ const PERMISSION_GROUPS = [
74422
74587
  isNested: true,
74423
74588
  subGroups: [
74424
74589
  {
74425
- id: "thong_tin_ho_so.ho_so",
74590
+ id: "THONGTIN",
74426
74591
  label: "Hồ sơ",
74427
74592
  permissions: [
74428
74593
  {
74429
- id: "thong_tin_ho_so.ho_so.xem",
74594
+ id: BUSINESS_PERMISSIONS.THONGTIN_READ,
74430
74595
  label: "Xem thông tin",
74431
74596
  is_primary: true,
74432
74597
  active: false,
@@ -74435,11 +74600,11 @@ const PERMISSION_GROUPS = [
74435
74600
  ]
74436
74601
  },
74437
74602
  {
74438
- id: "thong_tin_ho_so.cua_hang",
74603
+ id: "QUANLY_CUAHANG",
74439
74604
  label: "Quản lý cửa hàng",
74440
74605
  permissions: [
74441
74606
  {
74442
- id: "thong_tin_ho_so.cua_hang.xem",
74607
+ id: BUSINESS_PERMISSIONS.STORE_READ,
74443
74608
  label: "Xem thông tin",
74444
74609
  is_primary: true,
74445
74610
  active: false,
@@ -74452,35 +74617,35 @@ const PERMISSION_GROUPS = [
74452
74617
  label: "Quản lý nhân viên",
74453
74618
  permissions: [
74454
74619
  {
74455
- id: "QUANLY_NHANVIEN.READ",
74620
+ id: BUSINESS_PERMISSIONS.STAFF_READ,
74456
74621
  label: "Xem thông tin",
74457
74622
  is_primary: true,
74458
74623
  active: false,
74459
74624
  max: 10
74460
74625
  },
74461
74626
  {
74462
- id: "QUANLY_NHANVIEN.CREATE",
74627
+ id: BUSINESS_PERMISSIONS.STAFF_CREATE,
74463
74628
  label: "Tạo mới",
74464
74629
  is_primary: false,
74465
74630
  active: false,
74466
74631
  max: null
74467
74632
  },
74468
74633
  {
74469
- id: "QUANLY_NHANVIEN.UPDATE",
74634
+ id: BUSINESS_PERMISSIONS.STAFF_UPDATE,
74470
74635
  label: "Chỉnh sửa",
74471
74636
  is_primary: false,
74472
74637
  active: false,
74473
74638
  max: null
74474
74639
  },
74475
74640
  {
74476
- id: "QUANLY_NHANVIEN.DELETE",
74641
+ id: BUSINESS_PERMISSIONS.STAFF_DELETE,
74477
74642
  label: "Xóa",
74478
74643
  is_primary: false,
74479
74644
  active: false,
74480
74645
  max: null
74481
74646
  },
74482
74647
  {
74483
- id: "thong_tin_ho_so.nhan_vien.cap_tai_khoan",
74648
+ id: BUSINESS_PERMISSIONS.STAFF_ACCOUNT,
74484
74649
  label: "Cấp tài khoản/ Thu hồi",
74485
74650
  is_primary: false,
74486
74651
  active: false,
@@ -74500,21 +74665,21 @@ const PERMISSION_GROUPS = [
74500
74665
  label: "Danh sách hóa đơn điện tử",
74501
74666
  permissions: [
74502
74667
  {
74503
- id: "HOA_DON_DIEN_TU.READ",
74668
+ id: EINVOICE_PERMISSIONS.EINVOICE_READ,
74504
74669
  label: "Xem thông tin",
74505
74670
  is_primary: true,
74506
74671
  active: false,
74507
74672
  max: 10
74508
74673
  },
74509
74674
  {
74510
- id: "HOA_DON_DIEN_TU.CREATE",
74675
+ id: EINVOICE_PERMISSIONS.EINVOICE_CREATE,
74511
74676
  label: "Xuất hóa đơn",
74512
74677
  is_primary: false,
74513
74678
  active: false,
74514
74679
  max: null
74515
74680
  },
74516
74681
  {
74517
- id: "HOA_DON_DIEN_TU.UPDATE",
74682
+ id: EINVOICE_PERMISSIONS.EINVOICE_UPDATE,
74518
74683
  label: "Ký hóa đơn",
74519
74684
  is_primary: false,
74520
74685
  active: false,
@@ -74525,17 +74690,103 @@ const PERMISSION_GROUPS = [
74525
74690
  ]
74526
74691
  }
74527
74692
  ];
74693
+ const findPermission = (permissions, permissionCode) => {
74694
+ if (!permissionCode) return null;
74695
+ return permissions.find((item) => item.code === permissionCode) || null;
74696
+ };
74697
+ const hasPermission = (permissions, permissionCode) => {
74698
+ if (!permissionCode) return false;
74699
+ const permission = findPermission(permissions, permissionCode);
74700
+ return !!(permission == null ? void 0 : permission.active);
74701
+ };
74702
+ const getAllSubPermissions = (permissions) => {
74703
+ if (!Array.isArray(permissions)) {
74704
+ return [];
74705
+ }
74706
+ return permissions.flatMap((group) => group.sub_permissions || []);
74707
+ };
74708
+ const formatParams = (params) => {
74709
+ const searchParams = new URLSearchParams();
74710
+ Object.entries(params).forEach(([key, value]) => {
74711
+ if (value !== void 0 && value !== null) {
74712
+ searchParams.append(key, String(value));
74713
+ }
74714
+ });
74715
+ return searchParams.toString();
74716
+ };
74717
+ const createRoleService = (axiosClientPortal) => {
74718
+ return {
74719
+ getAll: (params) => __async(void 0, null, function* () {
74720
+ var _a, _b, _c, _d;
74721
+ const response = yield axiosClientPortal.get(
74722
+ `/roles/?${formatParams(params)}`
74723
+ );
74724
+ const raw = response.data;
74725
+ return {
74726
+ data: (_a = raw == null ? void 0 : raw.data) != null ? _a : [],
74727
+ errors: (_b = raw == null ? void 0 : raw.errors) != null ? _b : null,
74728
+ error_code: (_c = raw == null ? void 0 : raw.error_code) != null ? _c : null,
74729
+ msg: (_d = raw == null ? void 0 : raw.msg) != null ? _d : null
74730
+ };
74731
+ }),
74732
+ getRoleById: (role_id) => __async(void 0, null, function* () {
74733
+ const response = yield axiosClientPortal.get(`/roles/${role_id}`);
74734
+ return response.data;
74735
+ }),
74736
+ create: (data) => __async(void 0, null, function* () {
74737
+ const response = yield axiosClientPortal.post(`/metadata/roles/`, data);
74738
+ return response.data;
74739
+ }),
74740
+ update: (role_id, data) => __async(void 0, null, function* () {
74741
+ const response = yield axiosClientPortal.put(`/metadata/roles/${role_id}`, data);
74742
+ return response.data;
74743
+ }),
74744
+ delete: (roleId) => __async(void 0, null, function* () {
74745
+ const response = yield axiosClientPortal.delete(
74746
+ `/metadata/roles?id=${roleId}`
74747
+ );
74748
+ return response.data;
74749
+ }),
74750
+ validateRoleData: (data) => {
74751
+ const errors = [];
74752
+ if (!data.role_name || data.role_name.trim().length === 0) {
74753
+ errors.push("Tên role không được để trống");
74754
+ }
74755
+ if (!data.permissions || data.permissions.length === 0) {
74756
+ errors.push("Phải chọn ít nhất một permission");
74757
+ }
74758
+ return {
74759
+ isValid: errors.length === 0,
74760
+ errors
74761
+ };
74762
+ }
74763
+ };
74764
+ };
74528
74765
  export {
74766
+ BUSINESS_PERMISSIONS,
74767
+ DASHBOARD_PERMISSIONS,
74768
+ EDC_PERMISSIONS,
74769
+ EINVOICE_PERMISSIONS,
74770
+ FEEDBACK_PERMISSIONS,
74529
74771
  MerchantBatchCreateForm,
74530
74772
  MerchantEdit,
74531
74773
  MerchantRegistrationForm,
74532
74774
  MerchantTable,
74533
74775
  MerchantView,
74534
74776
  NewAccountCreate,
74777
+ PAYMENT_PERMISSIONS,
74535
74778
  PERMISSION_GROUPS,
74536
74779
  PermissionCheckboxGroup,
74780
+ REPORT_PERMISSIONS,
74537
74781
  ROLE_FORM,
74782
+ SALES_PERMISSIONS,
74783
+ SETTINGS_PERMISSIONS,
74784
+ TRACKING_PERMISSIONS,
74785
+ createRoleService,
74786
+ findPermission,
74787
+ getAllSubPermissions,
74538
74788
  getDefaultActivePermissions,
74789
+ hasPermission,
74539
74790
  setAccessToken,
74540
74791
  useExternalConfigStore as useExternalConfig,
74541
74792
  usePortalApiConfig,