@atomsolution/sdk-merchant 1.0.0 → 1.1.0

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.
@@ -0,0 +1,43 @@
1
+ import { ApiRolePayload, RoleFormData } from '../types/role';
2
+ export interface RoleListResponse {
3
+ data: TRole[];
4
+ errors: string | null;
5
+ error_code: string | null;
6
+ msg: string | null;
7
+ }
8
+ export interface TRole {
9
+ id: number;
10
+ name: string;
11
+ role?: {
12
+ name: string;
13
+ };
14
+ description?: string;
15
+ permissions?: any[];
16
+ module_number: string;
17
+ staff_number: string;
18
+ created_at: string;
19
+ updated_at: string;
20
+ created_by: boolean;
21
+ }
22
+ export interface TCreateRolePayload extends ApiRolePayload {
23
+ }
24
+ export interface TUpdateRolePayload extends ApiRolePayload {
25
+ id: number;
26
+ }
27
+ export declare const createRoleService: (axiosClientPortal: any) => {
28
+ getAll: (params: {
29
+ page: number;
30
+ page_size: number;
31
+ }) => Promise<RoleListResponse>;
32
+ getRoleById: (role_id: number) => Promise<TRole>;
33
+ create: (data: TCreateRolePayload) => Promise<TRole>;
34
+ update: (role_id: number, data: TUpdateRolePayload) => Promise<TRole>;
35
+ delete: (roleId: number) => Promise<{
36
+ success: boolean;
37
+ message?: string;
38
+ }>;
39
+ validateRoleData: (data: RoleFormData) => {
40
+ isValid: boolean;
41
+ errors: string[];
42
+ };
43
+ };
@@ -1,10 +1,8 @@
1
1
  type UnsavedChangesState = {
2
2
  isDirty: boolean;
3
- isNavigating: boolean;
4
- navigationPath: string;
5
3
  setIsDirty: (isDirty: boolean) => void;
6
- setIsNavigating: (isNavigating: boolean) => void;
7
- setNavigationPath: (navigationPath: string) => void;
4
+ confirmLeaving?: () => void;
5
+ onConfirmLeaving: (callback: (() => void) | undefined) => void;
8
6
  clear: () => void;
9
7
  };
10
8
  declare const useUnsavedChangesStore: import('zustand').UseBoundStore<UnsavedChangesState, import('zustand').StoreApi<UnsavedChangesState>>;
package/dist/style.css CHANGED
@@ -511,9 +511,15 @@ video {
511
511
  .relative {
512
512
  position: relative;
513
513
  }
514
+ .sticky {
515
+ position: sticky;
516
+ }
514
517
  .inset-0 {
515
518
  inset: 0px;
516
519
  }
520
+ .bottom-4 {
521
+ bottom: 1rem;
522
+ }
517
523
  .left-0 {
518
524
  left: 0px;
519
525
  }
@@ -891,6 +897,12 @@ video {
891
897
  .max-w-4xl {
892
898
  max-width: 56rem;
893
899
  }
900
+ .max-w-5xl {
901
+ max-width: 64rem;
902
+ }
903
+ .max-w-7xl {
904
+ max-width: 80rem;
905
+ }
894
906
  .max-w-\[400px\] {
895
907
  max-width: 400px;
896
908
  }
@@ -1310,6 +1322,10 @@ video {
1310
1322
  --tw-bg-opacity: 1;
1311
1323
  background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
1312
1324
  }
1325
+ .bg-blue-600 {
1326
+ --tw-bg-opacity: 1;
1327
+ background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
1328
+ }
1313
1329
  .bg-gray-100 {
1314
1330
  --tw-bg-opacity: 1;
1315
1331
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
@@ -1509,6 +1525,9 @@ video {
1509
1525
  .pl-5 {
1510
1526
  padding-left: 1.25rem;
1511
1527
  }
1528
+ .pl-6 {
1529
+ padding-left: 1.5rem;
1530
+ }
1512
1531
  .pr-10 {
1513
1532
  padding-right: 2.5rem;
1514
1533
  }
@@ -1518,9 +1537,15 @@ video {
1518
1537
  .pr-2 {
1519
1538
  padding-right: 0.5rem;
1520
1539
  }
1540
+ .pt-2 {
1541
+ padding-top: 0.5rem;
1542
+ }
1521
1543
  .pt-3 {
1522
1544
  padding-top: 0.75rem;
1523
1545
  }
1546
+ .pt-4 {
1547
+ padding-top: 1rem;
1548
+ }
1524
1549
  .pt-8 {
1525
1550
  padding-top: 2rem;
1526
1551
  }
@@ -2095,11 +2120,21 @@ input[type="checkbox"]:disabled {
2095
2120
  background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
2096
2121
  }
2097
2122
 
2123
+ .hover\:bg-blue-700:hover {
2124
+ --tw-bg-opacity: 1;
2125
+ background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
2126
+ }
2127
+
2098
2128
  .hover\:bg-gray-100:hover {
2099
2129
  --tw-bg-opacity: 1;
2100
2130
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
2101
2131
  }
2102
2132
 
2133
+ .hover\:bg-gray-200:hover {
2134
+ --tw-bg-opacity: 1;
2135
+ background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
2136
+ }
2137
+
2103
2138
  .hover\:bg-gray-300:hover {
2104
2139
  --tw-bg-opacity: 1;
2105
2140
  background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
@@ -2155,6 +2190,11 @@ input[type="checkbox"]:disabled {
2155
2190
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
2156
2191
  }
2157
2192
 
2193
+ .hover\:text-gray-800:hover {
2194
+ --tw-text-opacity: 1;
2195
+ color: rgb(31 41 55 / var(--tw-text-opacity, 1));
2196
+ }
2197
+
2158
2198
  .hover\:text-red-500:hover {
2159
2199
  --tw-text-opacity: 1;
2160
2200
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
@@ -2248,6 +2288,15 @@ input[type="checkbox"]:disabled {
2248
2288
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
2249
2289
  }
2250
2290
 
2291
+ .focus\:ring-gray-300:focus {
2292
+ --tw-ring-opacity: 1;
2293
+ --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1));
2294
+ }
2295
+
2296
+ .focus\:ring-offset-2:focus {
2297
+ --tw-ring-offset-width: 2px;
2298
+ }
2299
+
2251
2300
  .active\:translate-y-0:active {
2252
2301
  --tw-translate-y: 0px;
2253
2302
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@@ -2317,10 +2366,18 @@ input[type="checkbox"]:disabled {
2317
2366
  display: none;
2318
2367
  }
2319
2368
 
2369
+ .md\:w-1\/2 {
2370
+ width: 50%;
2371
+ }
2372
+
2320
2373
  .md\:grid-cols-2 {
2321
2374
  grid-template-columns: repeat(2, minmax(0, 1fr));
2322
2375
  }
2323
2376
 
2377
+ .md\:grid-cols-3 {
2378
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2379
+ }
2380
+
2324
2381
  .md\:gap-4 {
2325
2382
  gap: 1rem;
2326
2383
  }
@@ -0,0 +1,7 @@
1
+ export type Permission = {
2
+ code: string;
3
+ active: boolean;
4
+ is_primary: boolean;
5
+ max: number;
6
+ sub_permissions?: any;
7
+ };
@@ -0,0 +1,37 @@
1
+ export interface Permission {
2
+ id: string;
3
+ label: string;
4
+ is_primary: boolean;
5
+ active: boolean;
6
+ max: number | null;
7
+ }
8
+ export interface PermissionSubGroup {
9
+ id: string;
10
+ label: string;
11
+ permissions: Permission[];
12
+ }
13
+ export interface PermissionGroup {
14
+ id: string;
15
+ label: string;
16
+ isNested?: boolean;
17
+ permissions?: Permission[];
18
+ subGroups?: PermissionSubGroup[];
19
+ }
20
+ export interface ApiSubPermission {
21
+ code: string;
22
+ active: boolean;
23
+ is_primary: boolean;
24
+ max?: number | null;
25
+ }
26
+ export interface ApiPermission {
27
+ code: string;
28
+ sub_permissions: ApiSubPermission[];
29
+ }
30
+ export interface ApiRolePayload {
31
+ name: string;
32
+ permissions: ApiPermission[];
33
+ }
34
+ export interface RoleFormData {
35
+ role_name: string;
36
+ permissions: string[];
37
+ }
@@ -0,0 +1,4 @@
1
+ import { Permission } from '../types/permission';
2
+ export declare const findPermission: (permissions: Permission[], permissionCode: string) => Permission | null;
3
+ export declare const hasPermission: (permissions: Permission[], permissionCode: string) => boolean;
4
+ export declare const getAllSubPermissions: (permissions: Permission[]) => any[];
@@ -0,0 +1,2 @@
1
+ import { PermissionGroup } from '../types/role';
2
+ export declare const getDefaultActivePermissions: (groups: PermissionGroup[]) => string[];
@@ -0,0 +1,4 @@
1
+ export declare function useRouterNavigate(): (path: string | {
2
+ pathname: string;
3
+ search?: string;
4
+ }) => void;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.0.0",
6
+ "version": "1.1.0",
7
7
  "type": "module",
8
8
  "main": "dist/index.cjs",
9
9
  "module": "dist/index.esm.js",
@@ -31,7 +31,7 @@
31
31
  "peerDependencies": {
32
32
  "react": ">=16.14.0",
33
33
  "react-dom": ">=16.14.0",
34
- "react-router-dom": "^5.2.0",
34
+ "react-router-dom": ">=5.2.0 <7.0.0",
35
35
  "react-toastify": "^8.0.0"
36
36
  },
37
37
  "dependencies": {