@quan-erp/base-frontend 1.0.6 → 1.0.9

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.
Files changed (81) hide show
  1. package/dist-export/api/ai-assistant/ai-assistant.api.d.ts +1 -1
  2. package/dist-export/api/ai-assistant/ai-assistant.api.d.ts.map +1 -1
  3. package/dist-export/api/ai-model/ai-model.api.d.ts +1 -1
  4. package/dist-export/api/ai-model/ai-model.api.d.ts.map +1 -1
  5. package/dist-export/api/area-region/area-region.api.d.ts +8 -0
  6. package/dist-export/api/area-region/area-region.api.d.ts.map +1 -0
  7. package/dist-export/api/area-region/area-region.api.js +33 -0
  8. package/dist-export/api/area-region/area-region.constants.d.ts +9 -0
  9. package/dist-export/api/area-region/area-region.constants.d.ts.map +1 -0
  10. package/dist-export/api/area-region/area-region.constants.js +4 -0
  11. package/dist-export/api/area-region/area-region.export.d.ts +14 -0
  12. package/dist-export/api/area-region/area-region.export.d.ts.map +1 -0
  13. package/dist-export/api/area-region/area-region.export.js +16 -0
  14. package/dist-export/api/area-region/area-region.mutations.d.ts +10 -0
  15. package/dist-export/api/area-region/area-region.mutations.d.ts.map +1 -0
  16. package/dist-export/api/area-region/area-region.mutations.js +34 -0
  17. package/dist-export/api/area-region/area-region.queries.d.ts +5 -0
  18. package/dist-export/api/area-region/area-region.queries.d.ts.map +1 -0
  19. package/dist-export/api/area-region/area-region.queries.js +14 -0
  20. package/dist-export/api/area-region/area-region.types.d.ts +17 -0
  21. package/dist-export/api/area-region/area-region.types.d.ts.map +1 -0
  22. package/dist-export/api/area-region/area-region.types.js +1 -0
  23. package/dist-export/api/business-unit/business-unit.api.d.ts +8 -0
  24. package/dist-export/api/business-unit/business-unit.api.d.ts.map +1 -0
  25. package/dist-export/api/business-unit/business-unit.api.js +33 -0
  26. package/dist-export/api/business-unit/business-unit.constants.d.ts +9 -0
  27. package/dist-export/api/business-unit/business-unit.constants.d.ts.map +1 -0
  28. package/dist-export/api/business-unit/business-unit.constants.js +4 -0
  29. package/dist-export/api/business-unit/business-unit.export.d.ts +14 -0
  30. package/dist-export/api/business-unit/business-unit.export.d.ts.map +1 -0
  31. package/dist-export/api/business-unit/business-unit.export.js +16 -0
  32. package/dist-export/api/business-unit/business-unit.mutations.d.ts +10 -0
  33. package/dist-export/api/business-unit/business-unit.mutations.d.ts.map +1 -0
  34. package/dist-export/api/business-unit/business-unit.mutations.js +34 -0
  35. package/dist-export/api/business-unit/business-unit.queries.d.ts +5 -0
  36. package/dist-export/api/business-unit/business-unit.queries.d.ts.map +1 -0
  37. package/dist-export/api/business-unit/business-unit.queries.js +14 -0
  38. package/dist-export/api/business-unit/business-unit.types.d.ts +17 -0
  39. package/dist-export/api/business-unit/business-unit.types.d.ts.map +1 -0
  40. package/dist-export/api/business-unit/business-unit.types.js +1 -0
  41. package/dist-export/api/notification/notification.api.d.ts +1 -1
  42. package/dist-export/api/notification/notification.api.d.ts.map +1 -1
  43. package/dist-export/api/partner/partner.type.d.ts +8 -0
  44. package/dist-export/api/partner/partner.type.d.ts.map +1 -1
  45. package/dist-export/api/role-permission/role-permission.api.d.ts +1 -1
  46. package/dist-export/api/role-permission/role-permission.api.d.ts.map +1 -1
  47. package/dist-export/api/setting/setting.api.d.ts +1 -1
  48. package/dist-export/api/setting/setting.api.d.ts.map +1 -1
  49. package/dist-export/api/setting/setting.api.js +1 -1
  50. package/dist-export/api/tag/tag.api.d.ts +2 -2
  51. package/dist-export/api/tag/tag.api.d.ts.map +1 -1
  52. package/dist-export/api/user/user.api.d.ts +2 -2
  53. package/dist-export/api/user/user.api.d.ts.map +1 -1
  54. package/dist-export/export.d.ts +14 -0
  55. package/dist-export/export.d.ts.map +1 -1
  56. package/dist-export/export.js +16 -0
  57. package/dist-export/page/partner/area-region.export.d.ts +5 -0
  58. package/dist-export/page/partner/area-region.export.d.ts.map +1 -0
  59. package/dist-export/page/partner/area-region.export.js +6 -0
  60. package/dist-export/page/partner/business-unit.export.d.ts +5 -0
  61. package/dist-export/page/partner/business-unit.export.d.ts.map +1 -0
  62. package/dist-export/page/partner/business-unit.export.js +6 -0
  63. package/dist-export/page/partner/component/area-region-form.d.ts +8 -0
  64. package/dist-export/page/partner/component/area-region-form.d.ts.map +1 -0
  65. package/dist-export/page/partner/component/area-region-form.js +101 -0
  66. package/dist-export/page/partner/component/area-region.dropdown.d.ts +16 -0
  67. package/dist-export/page/partner/component/area-region.dropdown.d.ts.map +1 -0
  68. package/dist-export/page/partner/component/area-region.dropdown.js +62 -0
  69. package/dist-export/page/partner/component/business-unit-form.d.ts +8 -0
  70. package/dist-export/page/partner/component/business-unit-form.d.ts.map +1 -0
  71. package/dist-export/page/partner/component/business-unit-form.js +101 -0
  72. package/dist-export/page/partner/component/business-unit.dropdown.d.ts +16 -0
  73. package/dist-export/page/partner/component/business-unit.dropdown.d.ts.map +1 -0
  74. package/dist-export/page/partner/component/business-unit.dropdown.js +62 -0
  75. package/dist-export/page/partner/locales/en-US.json +82 -0
  76. package/dist-export/page/partner/locales/my-MM.json +82 -0
  77. package/dist-export/page/partner/locales/zh-CN.json +82 -0
  78. package/dist-export/page/partner/partner.locale.d.ts +3 -0
  79. package/dist-export/page/partner/partner.locale.d.ts.map +1 -0
  80. package/dist-export/page/partner/partner.locale.js +5 -0
  81. package/package.json +7 -7
@@ -8,7 +8,7 @@ export declare function getNewAccessToken(): Promise<{
8
8
  }>;
9
9
  export declare const getUsersApi: import("@quan-erp/shared-types").WithApiMetadataFetchFn<(skip: number, limit: number, search?: string) => Promise<UserDto[]>>;
10
10
  export declare const updateUserByIdApi: import("@quan-erp/shared-types").WithApiMetadataFetchFn<(id: string, user: UpdateUserDto) => Promise<ResponseDto<any>>>;
11
- export declare function useUserQuery(query?: RequestIndexPaginationDto, option?: Omit<UseQueryOptions<UserDto[]>, 'queryFn' | 'queryKey'>): import("@tanstack/react-query").UseQueryResult<NoInfer<UserDto[]>, Error>;
11
+ export declare function useUserQuery(query?: RequestIndexPaginationDto, option?: Omit<UseQueryOptions<UserDto[]>, 'queryFn' | 'queryKey'>): import("@tanstack/react-query").UseQueryResult<UserDto[], Error>;
12
12
  export declare function useUpdateUserQuery(): import("@tanstack/react-query").UseMutationResult<ResponseDto<any>, Error, {
13
13
  id: string;
14
14
  user: UpdateUserDto;
@@ -20,7 +20,7 @@ export declare function useChangePasswordQuery(): import("@tanstack/react-query"
20
20
  export declare const resetPasswordApi: import("@quan-erp/shared-types").WithApiMetadataFetchFn<(data: ResetPasswordDto) => Promise<any>>;
21
21
  export declare function useResetPasswordQuery(): import("@tanstack/react-query").UseMutationResult<any, Error, ResetPasswordDto, unknown>;
22
22
  export declare const getLoggedInDevicesApi: import("@quan-erp/shared-types").WithApiMetadataFetchFn<(skip: number, limit: number) => Promise<LoggedInDevicesDto[]>>;
23
- export declare function useLoggedInDeviceQuery(query?: RequestIndexPaginationDto, option?: Omit<UseQueryOptions<LoggedInDevicesDto[]>, 'queryFn' | 'queryKey'>): import("@tanstack/react-query").UseQueryResult<NoInfer<LoggedInDevicesDto[]>, Error>;
23
+ export declare function useLoggedInDeviceQuery(query?: RequestIndexPaginationDto, option?: Omit<UseQueryOptions<LoggedInDevicesDto[]>, 'queryFn' | 'queryKey'>): import("@tanstack/react-query").UseQueryResult<LoggedInDevicesDto[], Error>;
24
24
  export declare const logoutDeviceApi: import("@quan-erp/shared-types").WithApiMetadataFetchFn<(id: number) => Promise<LoggedInDevicesDto[]>>;
25
25
  export declare function useLogoutDeviceQuery(): import("@tanstack/react-query").UseMutationResult<LoggedInDevicesDto[], Error, number, unknown>;
26
26
  export declare const deactivateAccountApi: import("@quan-erp/shared-types").WithApiMetadataFetchFn<(data: DeactivateAccountDto) => Promise<any>>;
@@ -1 +1 @@
1
- {"version":3,"file":"user.api.d.ts","sourceRoot":"","sources":["../../../src/api/user/user.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEpF,OAAO,EAAc,KAAK,yBAAyB,EAAE,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE9G,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACxJ,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AASxC,wBAAsB,iBAAiB,IAAI,OAAO,CAAC;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAA;CACvB,CAAC,CAGD;AAID,eAAO,MAAM,WAAW,iEAEE,MAAM,SAAS,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAUnF,CAAC;AAMH,eAAO,MAAM,iBAAiB,+DAEN,MAAM,QAAQ,aAAa,KAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAI7E,CAAC;AASH,wBAAgB,YAAY,CACxB,KAAK,GAAE,yBAA8B,EACrC,MAAM,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,6EAUpE;AAUD,wBAAgB,kBAAkB;QAEO,MAAM;UAAQ,aAAa;YAKnE;AAQD,eAAO,MAAM,aAAa,iEAEA,aAAa,+BAKrC,CAAC;AAIH,wBAAgB,kBAAkB,2HAWjC;AAWD,eAAO,MAAM,iBAAiB,iEAEJ,iBAAiB,kBAIzC,CAAC;AACH,wBAAgB,sBAAsB,8FAIrC;AAQD,eAAO,MAAM,gBAAgB,iEAEH,gBAAgB,kBAIxC,CAAC;AACH,wBAAgB,qBAAqB,6FAIpC;AAUD,eAAO,MAAM,qBAAqB,iEAER,MAAM,SAAS,MAAM,KAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAI7E,CAAC;AAEH,wBAAgB,sBAAsB,CAClC,KAAK,GAAE,yBAA8B,EACrC,MAAM,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,wFAS/E;AAMD,eAAO,MAAM,eAAe,+DAEJ,MAAM,KAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAI5D,CAAC;AACH,wBAAgB,oBAAoB,oGAOnC;AAID,eAAO,MAAM,oBAAoB,iEAEP,oBAAoB,kBAI5C,CAAC;AAEH,wBAAgB,yBAAyB,iGAOxC"}
1
+ {"version":3,"file":"user.api.d.ts","sourceRoot":"","sources":["../../../src/api/user/user.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEpF,OAAO,EAAc,KAAK,yBAAyB,EAAE,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE9G,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACxJ,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AASxC,wBAAsB,iBAAiB,IAAI,OAAO,CAAC;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAA;CACvB,CAAC,CAGD;AAID,eAAO,MAAM,WAAW,iEAEE,MAAM,SAAS,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAUnF,CAAC;AAMH,eAAO,MAAM,iBAAiB,+DAEN,MAAM,QAAQ,aAAa,KAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAI7E,CAAC;AASH,wBAAgB,YAAY,CACxB,KAAK,GAAE,yBAA8B,EACrC,MAAM,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,oEAUpE;AAUD,wBAAgB,kBAAkB;QAEO,MAAM;UAAQ,aAAa;YAKnE;AAQD,eAAO,MAAM,aAAa,iEAEA,aAAa,+BAKrC,CAAC;AAIH,wBAAgB,kBAAkB,2HAWjC;AAWD,eAAO,MAAM,iBAAiB,iEAEJ,iBAAiB,kBAIzC,CAAC;AACH,wBAAgB,sBAAsB,8FAIrC;AAQD,eAAO,MAAM,gBAAgB,iEAEH,gBAAgB,kBAIxC,CAAC;AACH,wBAAgB,qBAAqB,6FAIpC;AAUD,eAAO,MAAM,qBAAqB,iEAER,MAAM,SAAS,MAAM,KAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAI7E,CAAC;AAEH,wBAAgB,sBAAsB,CAClC,KAAK,GAAE,yBAA8B,EACrC,MAAM,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,+EAS/E;AAMD,eAAO,MAAM,eAAe,+DAEJ,MAAM,KAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAI5D,CAAC;AACH,wBAAgB,oBAAoB,oGAOnC;AAID,eAAO,MAAM,oBAAoB,iEAEP,oBAAoB,kBAI5C,CAAC;AAEH,wBAAgB,yBAAyB,iGAOxC"}
@@ -28,6 +28,16 @@ export declare enum APINames {
28
28
  useUpdatePartnerQuery = "useUpdatePartnerQuery",
29
29
  partnerDetailTabs = "partnerDetailTabs",
30
30
  PartnerDropdown = "PartnerDropdown",
31
+ useAreaRegionQuery = "useAreaRegionQuery",
32
+ useCreateAreaRegionMutation = "useCreateAreaRegionMutation",
33
+ useUpdateAreaRegionMutation = "useUpdateAreaRegionMutation",
34
+ useDeleteAreaRegionMutation = "useDeleteAreaRegionMutation",
35
+ AreaRegionDropdown = "AreaRegionDropdown",
36
+ useBusinessUnitQuery = "useBusinessUnitQuery",
37
+ useCreateBusinessUnitMutation = "useCreateBusinessUnitMutation",
38
+ useUpdateBusinessUnitMutation = "useUpdateBusinessUnitMutation",
39
+ useDeleteBusinessUnitMutation = "useDeleteBusinessUnitMutation",
40
+ BusinessUnitDropdown = "BusinessUnitDropdown",
31
41
  useCountriesQuery = "useCountriesQuery",
32
42
  useStatesQuery = "useStatesQuery",
33
43
  useDivisionsQuery = "useDivisionsQuery",
@@ -96,6 +106,8 @@ export * from './api/currency-exchange/currency-exchange.export';
96
106
  export * from './api/branch/branch.export';
97
107
  export * from './api/location/location.export';
98
108
  export * from './api/partner/partner.export';
109
+ export * from './api/area-region/area-region.export';
110
+ export * from './api/business-unit/business-unit.export';
99
111
  export * from './api/partner-shipping-address/partner-shipping-adderss.export';
100
112
  export * from './api/currency/currency.export';
101
113
  export * from './api/file/file.export';
@@ -113,6 +125,8 @@ export * from './components/home-shortcut-item/home-shortcut-item.export';
113
125
  export * from './components/tag/tag.dropdown.export';
114
126
  export * from './components/location/location.export';
115
127
  export * from './page/partner/partner.export';
128
+ export * from './page/partner/area-region.export';
129
+ export * from './page/partner/business-unit.export';
116
130
  export * from './page/uoc/uoc.export';
117
131
  export * from './page/user/user.export';
118
132
  export * from './page/branch/branch.export';
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.tsx"],"names":[],"mappings":"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"}
@@ -32,6 +32,18 @@ export var APINames;
32
32
  APINames["useUpdatePartnerQuery"] = "useUpdatePartnerQuery";
33
33
  APINames["partnerDetailTabs"] = "partnerDetailTabs";
34
34
  APINames["PartnerDropdown"] = "PartnerDropdown";
35
+ // area region
36
+ APINames["useAreaRegionQuery"] = "useAreaRegionQuery";
37
+ APINames["useCreateAreaRegionMutation"] = "useCreateAreaRegionMutation";
38
+ APINames["useUpdateAreaRegionMutation"] = "useUpdateAreaRegionMutation";
39
+ APINames["useDeleteAreaRegionMutation"] = "useDeleteAreaRegionMutation";
40
+ APINames["AreaRegionDropdown"] = "AreaRegionDropdown";
41
+ // business unit
42
+ APINames["useBusinessUnitQuery"] = "useBusinessUnitQuery";
43
+ APINames["useCreateBusinessUnitMutation"] = "useCreateBusinessUnitMutation";
44
+ APINames["useUpdateBusinessUnitMutation"] = "useUpdateBusinessUnitMutation";
45
+ APINames["useDeleteBusinessUnitMutation"] = "useDeleteBusinessUnitMutation";
46
+ APINames["BusinessUnitDropdown"] = "BusinessUnitDropdown";
35
47
  // location
36
48
  APINames["useCountriesQuery"] = "useCountriesQuery";
37
49
  APINames["useStatesQuery"] = "useStatesQuery";
@@ -105,6 +117,8 @@ export * from './api/currency-exchange/currency-exchange.export';
105
117
  export * from './api/branch/branch.export';
106
118
  export * from './api/location/location.export';
107
119
  export * from './api/partner/partner.export';
120
+ export * from './api/area-region/area-region.export';
121
+ export * from './api/business-unit/business-unit.export';
108
122
  export * from './api/partner-shipping-address/partner-shipping-adderss.export';
109
123
  export * from './api/currency/currency.export';
110
124
  export * from './api/file/file.export';
@@ -123,6 +137,8 @@ export * from './components/home-shortcut-item/home-shortcut-item.export';
123
137
  export * from './components/tag/tag.dropdown.export';
124
138
  export * from './components/location/location.export';
125
139
  export * from './page/partner/partner.export';
140
+ export * from './page/partner/area-region.export';
141
+ export * from './page/partner/business-unit.export';
126
142
  export * from './page/uoc/uoc.export';
127
143
  export * from './page/user/user.export';
128
144
  export * from './page/branch/branch.export';
@@ -0,0 +1,5 @@
1
+ import type { ReactNode } from "react";
2
+ import type { AreaRegionDropdownProps } from "./component/area-region.dropdown";
3
+ export type { AreaRegionDropdownProps } from "./component/area-region.dropdown";
4
+ export declare function AreaRegionDropdown(props: AreaRegionDropdownProps): ReactNode;
5
+ //# sourceMappingURL=area-region.export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"area-region.export.d.ts","sourceRoot":"","sources":["../../../src/page/partner/area-region.export.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEhF,YAAY,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAIhF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,aAEhE"}
@@ -0,0 +1,6 @@
1
+ import { PluginAPI } from "@quan-erp/shared-frontend-core";
2
+ import { APINames } from "../../export";
3
+ import { BUILTIN_PLUGIN } from "../../utils/common";
4
+ export function AreaRegionDropdown(props) {
5
+ return PluginAPI.use(BUILTIN_PLUGIN.name, APINames.AreaRegionDropdown)(props);
6
+ }
@@ -0,0 +1,5 @@
1
+ import type { ReactNode } from "react";
2
+ import type { BusinessUnitDropdownProps } from "./component/business-unit.dropdown";
3
+ export type { BusinessUnitDropdownProps } from "./component/business-unit.dropdown";
4
+ export declare function BusinessUnitDropdown(props: BusinessUnitDropdownProps): ReactNode;
5
+ //# sourceMappingURL=business-unit.export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-unit.export.d.ts","sourceRoot":"","sources":["../../../src/page/partner/business-unit.export.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAEpF,YAAY,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAIpF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,aAEpE"}
@@ -0,0 +1,6 @@
1
+ import { PluginAPI } from "@quan-erp/shared-frontend-core";
2
+ import { APINames } from "../../export";
3
+ import { BUILTIN_PLUGIN } from "../../utils/common";
4
+ export function BusinessUnitDropdown(props) {
5
+ return PluginAPI.use(BUILTIN_PLUGIN.name, APINames.BusinessUnitDropdown)(props);
6
+ }
@@ -0,0 +1,8 @@
1
+ import type { AreaRegionDto } from "../../../api/area-region/area-region.types";
2
+ export type AreaRegionFormRefType = {
3
+ open: () => void;
4
+ close: () => void;
5
+ setInitialData: (data: AreaRegionDto | null) => void;
6
+ };
7
+ export declare const AreaRegionForm: import("react").ForwardRefExoticComponent<import("react").RefAttributes<AreaRegionFormRefType>>;
8
+ //# sourceMappingURL=area-region-form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"area-region-form.d.ts","sourceRoot":"","sources":["../../../../src/page/partner/component/area-region-form.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAchF,MAAM,MAAM,qBAAqB,GAAG;IAChC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,cAAc,EAAE,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;CACxD,CAAC;AAEF,eAAO,MAAM,cAAc,iGAsMzB,CAAC"}
@@ -0,0 +1,101 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Button, ConfirmDialog, DialogFooter, Form, FormControl, FormField, FormItem, FormLabel, FormMessage, Input, ResponsiveContent, ResponsiveHeader, ResponsiveTitle, Switch, UncontrolledResponsiveDialog, useLazyLocaleTranslation, } from "@quan-erp/shared-ui";
3
+ import { zodResolver } from "@hookform/resolvers/zod";
4
+ import { forwardRef, useImperativeHandle, useRef, useState } from "react";
5
+ import { useForm } from "react-hook-form";
6
+ import z from "zod";
7
+ import { useCreateAreaRegionMutation, useDeleteAreaRegionMutation, useUpdateAreaRegionMutation, } from "../../../api/area-region/area-region.mutations";
8
+ import { PartnerLocaleLazy } from "../partner.locale";
9
+ import { BUILTIN_PLUGIN } from "../../../utils/common";
10
+ import { useBaseLocale } from "../../../locale/locale.export";
11
+ const areaRegionSchema = z.object({
12
+ id: z.number().nullable().optional(),
13
+ name: z.string().min(1, "Name is required"),
14
+ code: z.string().optional(),
15
+ isActive: z.boolean(),
16
+ });
17
+ export const AreaRegionForm = forwardRef((_, ref) => {
18
+ const dialogRef = useRef(null);
19
+ const partnerLocales = useLazyLocaleTranslation(PartnerLocaleLazy);
20
+ const baseLocale = useBaseLocale();
21
+ const [confirmDeleteOpen, setConfirmDeleteOpen] = useState(false);
22
+ const { mutateAsync: createAreaRegion, isPending: isCreating } = useCreateAreaRegionMutation();
23
+ const { mutateAsync: updateAreaRegion, isPending: isUpdating } = useUpdateAreaRegionMutation();
24
+ const { mutateAsync: deleteAreaRegion, isPending: isDeleting } = useDeleteAreaRegionMutation();
25
+ const isPending = isCreating || isUpdating || isDeleting;
26
+ const form = useForm({
27
+ resolver: zodResolver(areaRegionSchema),
28
+ defaultValues: {
29
+ id: null,
30
+ name: "",
31
+ code: "",
32
+ isActive: true,
33
+ },
34
+ });
35
+ const editId = form.watch("id");
36
+ const isEdit = editId != null;
37
+ useImperativeHandle(ref, () => ({
38
+ open: () => dialogRef.current?.open(),
39
+ close: () => dialogRef.current?.close(),
40
+ setInitialData: (data) => {
41
+ if (data) {
42
+ form.reset({
43
+ id: data.id,
44
+ name: data.name,
45
+ code: data.code ?? "",
46
+ isActive: data.isActive ?? true,
47
+ });
48
+ }
49
+ else {
50
+ form.reset({
51
+ id: null,
52
+ name: "",
53
+ code: "",
54
+ isActive: true,
55
+ });
56
+ }
57
+ },
58
+ }));
59
+ const onSubmit = form.handleSubmit(async (values) => {
60
+ const name = values.name.trim();
61
+ const code = values.code?.trim() || undefined;
62
+ if (isEdit) {
63
+ await updateAreaRegion({
64
+ id: editId,
65
+ data: {
66
+ name,
67
+ code: code ?? null,
68
+ isActive: values.isActive,
69
+ },
70
+ });
71
+ }
72
+ else {
73
+ await createAreaRegion({
74
+ name,
75
+ ...(code ? { code } : {}),
76
+ isActive: values.isActive,
77
+ });
78
+ }
79
+ dialogRef.current?.close();
80
+ });
81
+ const onDelete = async () => {
82
+ if (editId == null)
83
+ return;
84
+ await deleteAreaRegion(editId);
85
+ dialogRef.current?.close();
86
+ };
87
+ return (_jsxs(_Fragment, { children: [_jsx(UncontrolledResponsiveDialog, { ref: dialogRef, trackBrowserBack: false, children: _jsxs(ResponsiveContent, { pluginName: BUILTIN_PLUGIN.name, className: "builtin:w-full builtin:max-w-none builtin:md:max-w-[425px] builtin:gap-4", children: [_jsx(ResponsiveHeader, { children: _jsx(ResponsiveTitle, { children: _jsx("div", { children: isEdit
88
+ ? partnerLocales.get("edit-area-region", "Edit area region")
89
+ : partnerLocales.get("create-area-region", "Create area region") }) }) }), _jsx(Form, { ...form, children: _jsxs("form", { onSubmit: (e) => {
90
+ e.stopPropagation();
91
+ return onSubmit(e);
92
+ }, className: "builtin:flex builtin:flex-col builtin:gap-3", children: [_jsx(FormField, { control: form.control, name: "name", disabled: isPending, render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: partnerLocales.get("area-region-name", "Name") }), _jsx(FormControl, { children: _jsx(Input, { ...field, placeholder: partnerLocales.get("area-region-name", "Name") }) }), _jsx(FormMessage, {})] })) }), _jsx(FormField, { control: form.control, name: "code", disabled: isPending, render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: partnerLocales.get("area-region-code", "Code (optional)") }), _jsx(FormControl, { children: _jsx(Input, { ...field, placeholder: partnerLocales.get("area-region-code", "Code (optional)") }) }), _jsx(FormMessage, {})] })) }), _jsx(FormField, { control: form.control, name: "isActive", disabled: isPending, render: ({ field }) => (_jsxs(FormItem, { className: "builtin:flex builtin:items-center builtin:justify-between builtin:px-0 builtin:py-2", children: [_jsx(FormLabel, { children: partnerLocales.get("area-region-active", "Active") }), _jsx(FormControl, { children: _jsx(Switch, { checked: field.value, onCheckedChange: field.onChange, disabled: isPending }) })] })) }), _jsxs(DialogFooter, { className: "builtin:flex builtin:w-full builtin:items-center builtin:justify-between builtin:gap-2 builtin:bg-(--dialog-background)", children: [isEdit ? (_jsx(Button, { type: "button", variant: "destructive", disabled: isPending, onClick: () => setConfirmDeleteOpen(true), children: baseLocale.get("delete", "Delete") })) : (_jsx("div", {})), _jsxs("div", { className: "builtin:flex builtin:items-center builtin:gap-2", children: [_jsx(Button, { type: "button", variant: "secondary", disabled: isPending, onClick: () => dialogRef.current?.close(), children: baseLocale.get("cancel", "Cancel") }), _jsx(Button, { type: "submit", disabled: isPending, children: isPending
93
+ ? partnerLocales.get("saving", "Saving...")
94
+ : partnerLocales.get("save", "Save") })] })] })] }) })] }) }), _jsx(ConfirmDialog, { open: confirmDeleteOpen, onClose: setConfirmDeleteOpen, onConfirm: onDelete, options: {
95
+ title: partnerLocales.get("delete-area-region", "Delete area region"),
96
+ description: partnerLocales.get("delete-area-region-confirm", "Are you sure you want to delete this area region?"),
97
+ confirmText: baseLocale.get("delete", "Delete"),
98
+ cancelText: baseLocale.get("cancel", "Cancel"),
99
+ variant: "destructive",
100
+ } })] }));
101
+ });
@@ -0,0 +1,16 @@
1
+ import { type ReactNode } from "react";
2
+ import type { AreaRegionDto } from "../../../api/area-region/area-region.types";
3
+ import type { TakeAndPartialRest } from "../../../utils/types.utils";
4
+ export type AreaRegionDropdownValue = number | TakeAndPartialRest<AreaRegionDto, "id" | "name">;
5
+ export type AreaRegionDropdownProps = {
6
+ value?: AreaRegionDropdownValue;
7
+ trigger?: (value?: AreaRegionDropdownValue) => ReactNode;
8
+ setValue: (v?: number, areaRegion?: AreaRegionDto) => void;
9
+ isCompact?: boolean;
10
+ className?: string;
11
+ disabled?: boolean;
12
+ allowClear?: boolean;
13
+ placeholder?: string;
14
+ };
15
+ export declare function AreaRegionDropdown({ value, setValue, trigger, isCompact, className, disabled, allowClear, placeholder: externalPlaceholder, }: AreaRegionDropdownProps): import("react").JSX.Element;
16
+ //# sourceMappingURL=area-region.dropdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"area-region.dropdown.d.ts","sourceRoot":"","sources":["../../../../src/page/partner/component/area-region.dropdown.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAIrE,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,kBAAkB,CAAC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC;AAEhG,MAAM,MAAM,uBAAuB,GAAG;IAClC,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,uBAAuB,KAAK,SAAS,CAAC;IACzD,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAOF,wBAAgB,kBAAkB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,QAAQ,EACR,UAAU,EACV,WAAW,EAAE,mBAAmB,GACnC,EAAE,uBAAuB,+BA+KzB"}
@@ -0,0 +1,62 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Button, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, Popover, PopoverContent, PopoverTrigger, cn, useMediaQuery, useDebounceValue, Drawer, DrawerTrigger, DrawerContent, useLazyLocaleTranslation, } from "@quan-erp/shared-ui";
3
+ import { Check, Down, LoadingFour, Pencil } from "@icon-park/react";
4
+ import { Plus } from "lucide-react";
5
+ import { useMemo, useState, useRef } from "react";
6
+ import { useAreaRegionQuery } from "../../../api/area-region/area-region.queries";
7
+ import { PartnerLocaleLazy } from "../partner.locale";
8
+ import { AreaRegionForm } from "./area-region-form";
9
+ function resolveAreaRegionId(value) {
10
+ if (value == null)
11
+ return undefined;
12
+ return typeof value === "number" ? value : value.id;
13
+ }
14
+ export function AreaRegionDropdown({ value, setValue, trigger, isCompact, className, disabled, allowClear, placeholder: externalPlaceholder, }) {
15
+ const t = useLazyLocaleTranslation(PartnerLocaleLazy);
16
+ const formRef = useRef(null);
17
+ const placeholder = externalPlaceholder || t.get("select-area-region", "Select area region...");
18
+ const [open, setOpen] = useState(false);
19
+ const [search, setSearch] = useState("");
20
+ const debouncedSearch = useDebounceValue(search, 500);
21
+ const isMobile = useMediaQuery();
22
+ const selectedId = resolveAreaRegionId(value);
23
+ const { data: areaRegions = [], isLoading } = useAreaRegionQuery({
24
+ currentPage: 1,
25
+ pageSize: 100,
26
+ query: debouncedSearch,
27
+ }, { enabled: open || selectedId != null });
28
+ const selectedLabel = useMemo(() => {
29
+ if (trigger)
30
+ return null;
31
+ if (selectedId == null)
32
+ return placeholder;
33
+ const found = areaRegions.find((r) => r.id === selectedId);
34
+ if (found) {
35
+ return found.code ? `${found.name} (${found.code})` : found.name;
36
+ }
37
+ if (typeof value === "object" && value?.name)
38
+ return value.name;
39
+ return placeholder;
40
+ }, [selectedId, areaRegions, placeholder, trigger, value]);
41
+ const ListContent = (_jsxs(Command, { shouldFilter: false, className: cn("builtin:bg-transparent"), children: [_jsx(CommandInput, { placeholder: t.get("search-area-region", "Search area region..."), autoFocus: false, value: search, onValueChange: setSearch }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: isLoading ? (_jsxs("div", { className: "builtin:flex builtin:items-center builtin:gap-2", children: [_jsx(LoadingFour, { className: "builtin:h-4 builtin:w-4 builtin:animate-spin" }), _jsx("span", { children: t.get("searching", "Searching...") })] })) : (t.get("no-area-region-found", "No area region found.")) }), _jsxs(CommandGroup, { heading: t.get("available-area-regions", "Available area regions"), children: [allowClear && (_jsxs(CommandItem, { value: "all area regions", onSelect: () => {
42
+ setValue(undefined, undefined);
43
+ setOpen(false);
44
+ }, className: cn("builtin:flex builtin:cursor-pointer builtin:items-center builtin:justify-between builtin:px-3 builtin:py-3 builtin:md:py-2 builtin:md:h-10 builtin:h-12 builtin:rounded-2xl", selectedId == null && "builtin:bg-accent/50"), children: [_jsx("span", { className: "builtin:text-sm builtin:leading-none builtin:font-semibold", children: placeholder }), selectedId == null && _jsx(Check, { className: "builtin:text-primary builtin:h-4 builtin:w-4" })] })), areaRegions.map((region) => (_jsxs(CommandItem, { value: region.name, onSelect: () => {
45
+ setValue(region.id, region);
46
+ setOpen(false);
47
+ }, className: cn("builtin:flex builtin:cursor-pointer builtin:items-center builtin:justify-between builtin:gap-2 builtin:px-3 builtin:py-3 builtin:md:py-2 builtin:rounded-2xl", selectedId === region.id && "builtin:bg-accent/50"), children: [_jsxs("div", { className: "builtin:flex builtin:min-w-0 builtin:flex-1 builtin:flex-col builtin:gap-0.5", children: [_jsx("span", { className: "builtin:truncate builtin:text-sm builtin:leading-none builtin:font-semibold", children: region.name }), region.code && (_jsx("span", { className: "builtin:text-muted-foreground builtin:text-[10px]", children: region.code }))] }), _jsxs("div", { className: "builtin:flex builtin:shrink-0 builtin:items-center builtin:gap-1", children: [selectedId === region.id && (_jsx(Check, { className: "builtin:text-primary builtin:h-4 builtin:w-4" })), _jsx(Button, { type: "button", variant: "ghost", size: "icon", className: "builtin:h-7 builtin:w-7", onClick: (e) => {
48
+ e.stopPropagation();
49
+ setOpen(false);
50
+ formRef.current?.setInitialData(region);
51
+ formRef.current?.open();
52
+ }, children: _jsx(Pencil, { className: "builtin:h-3.5 builtin:w-3.5" }) })] })] }, region.id)))] }), _jsx("div", { className: "builtin:border-border builtin:border-t builtin:p-1", children: _jsxs(CommandItem, { onSelect: () => {
53
+ setOpen(false);
54
+ formRef.current?.setInitialData(null);
55
+ formRef.current?.open();
56
+ }, className: "builtin:text-primary builtin:flex builtin:cursor-pointer builtin:items-center builtin:gap-2 builtin:rounded-2xl builtin:px-3 builtin:py-2", children: [_jsx(Plus, { className: "builtin:h-4 builtin:w-4" }), _jsx("span", { className: "builtin:text-sm builtin:font-semibold", children: t.get("create-area-region", "Create area region") })] }) })] })] }));
57
+ const defaultTrigger = (_jsxs(Button, { variant: "select", disabled: disabled, role: "combobox", "aria-expanded": open, className: cn("builtin:border-input/50 builtin:hover:bg-accent builtin:hover:text-accent-foreground builtin:w-full builtin:justify-between builtin:font-normal builtin:transition-colors", isCompact ? "builtin:h-8 builtin:px-2 builtin:text-xs" : "builtin:h-11 builtin:px-3 builtin:text-sm builtin:md:h-9", className), children: [_jsx("span", { className: "builtin:truncate", children: selectedLabel }), _jsx(Down, { className: "builtin:ml-2 builtin:h-4 builtin:w-4 builtin:shrink-0 builtin:opacity-50" })] }));
58
+ if (isMobile) {
59
+ return (_jsxs(_Fragment, { children: [_jsxs(Drawer, { open: open, onOpenChange: setOpen, children: [_jsx(DrawerTrigger, { asChild: true, children: trigger ? trigger(value) : defaultTrigger }), _jsx(DrawerContent, { className: "builtin:flex builtin:max-h-[85vh] builtin:flex-col builtin:overflow-hidden builtin:p-2", children: ListContent })] }), _jsx(AreaRegionForm, { ref: formRef })] }));
60
+ }
61
+ return (_jsxs(_Fragment, { children: [_jsxs(Popover, { open: open, onOpenChange: setOpen, modal: true, children: [_jsx(PopoverTrigger, { asChild: true, children: trigger ? trigger(value) : defaultTrigger }), _jsx(PopoverContent, { className: "builtin:w-[300px] builtin:p-0 builtin:shadow-lg", align: "start", children: ListContent })] }), _jsx(AreaRegionForm, { ref: formRef })] }));
62
+ }
@@ -0,0 +1,8 @@
1
+ import type { BusinessUnitDto } from "../../../api/business-unit/business-unit.types";
2
+ export type BusinessUnitFormRefType = {
3
+ open: () => void;
4
+ close: () => void;
5
+ setInitialData: (data: BusinessUnitDto | null) => void;
6
+ };
7
+ export declare const BusinessUnitForm: import("react").ForwardRefExoticComponent<import("react").RefAttributes<BusinessUnitFormRefType>>;
8
+ //# sourceMappingURL=business-unit-form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-unit-form.d.ts","sourceRoot":"","sources":["../../../../src/page/partner/component/business-unit-form.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AActF,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,cAAc,EAAE,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;CAC1D,CAAC;AAEF,eAAO,MAAM,gBAAgB,mGAsM3B,CAAC"}
@@ -0,0 +1,101 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Button, ConfirmDialog, DialogFooter, Form, FormControl, FormField, FormItem, FormLabel, FormMessage, Input, ResponsiveContent, ResponsiveHeader, ResponsiveTitle, Switch, UncontrolledResponsiveDialog, useLazyLocaleTranslation, } from "@quan-erp/shared-ui";
3
+ import { zodResolver } from "@hookform/resolvers/zod";
4
+ import { forwardRef, useImperativeHandle, useRef, useState } from "react";
5
+ import { useForm } from "react-hook-form";
6
+ import z from "zod";
7
+ import { useCreateBusinessUnitMutation, useDeleteBusinessUnitMutation, useUpdateBusinessUnitMutation, } from "../../../api/business-unit/business-unit.mutations";
8
+ import { PartnerLocaleLazy } from "../partner.locale";
9
+ import { BUILTIN_PLUGIN } from "../../../utils/common";
10
+ import { useBaseLocale } from "../../../locale/locale.export";
11
+ const businessUnitSchema = z.object({
12
+ id: z.number().nullable().optional(),
13
+ name: z.string().min(1, "Name is required"),
14
+ code: z.string().min(1, "Code is required"),
15
+ isActive: z.boolean(),
16
+ });
17
+ export const BusinessUnitForm = forwardRef((_, ref) => {
18
+ const dialogRef = useRef(null);
19
+ const partnerLocales = useLazyLocaleTranslation(PartnerLocaleLazy);
20
+ const baseLocale = useBaseLocale();
21
+ const [confirmDeleteOpen, setConfirmDeleteOpen] = useState(false);
22
+ const { mutateAsync: createBusinessUnit, isPending: isCreating } = useCreateBusinessUnitMutation();
23
+ const { mutateAsync: updateBusinessUnit, isPending: isUpdating } = useUpdateBusinessUnitMutation();
24
+ const { mutateAsync: deleteBusinessUnit, isPending: isDeleting } = useDeleteBusinessUnitMutation();
25
+ const isPending = isCreating || isUpdating || isDeleting;
26
+ const form = useForm({
27
+ resolver: zodResolver(businessUnitSchema),
28
+ defaultValues: {
29
+ id: null,
30
+ name: "",
31
+ code: "",
32
+ isActive: true,
33
+ },
34
+ });
35
+ const editId = form.watch("id");
36
+ const isEdit = editId != null;
37
+ useImperativeHandle(ref, () => ({
38
+ open: () => dialogRef.current?.open(),
39
+ close: () => dialogRef.current?.close(),
40
+ setInitialData: (data) => {
41
+ if (data) {
42
+ form.reset({
43
+ id: data.id,
44
+ name: data.name,
45
+ code: data.code ?? "",
46
+ isActive: data.isActive ?? true,
47
+ });
48
+ }
49
+ else {
50
+ form.reset({
51
+ id: null,
52
+ name: "",
53
+ code: "",
54
+ isActive: true,
55
+ });
56
+ }
57
+ },
58
+ }));
59
+ const onSubmit = form.handleSubmit(async (values) => {
60
+ const name = values.name.trim();
61
+ const code = values.code.trim();
62
+ if (isEdit) {
63
+ await updateBusinessUnit({
64
+ id: editId,
65
+ data: {
66
+ name,
67
+ code,
68
+ isActive: values.isActive,
69
+ },
70
+ });
71
+ }
72
+ else {
73
+ await createBusinessUnit({
74
+ name,
75
+ code,
76
+ isActive: values.isActive,
77
+ });
78
+ }
79
+ dialogRef.current?.close();
80
+ });
81
+ const onDelete = async () => {
82
+ if (editId == null)
83
+ return;
84
+ await deleteBusinessUnit(editId);
85
+ dialogRef.current?.close();
86
+ };
87
+ return (_jsxs(_Fragment, { children: [_jsx(UncontrolledResponsiveDialog, { ref: dialogRef, trackBrowserBack: false, children: _jsxs(ResponsiveContent, { pluginName: BUILTIN_PLUGIN.name, className: "builtin:w-full builtin:max-w-none builtin:md:max-w-[425px] builtin:gap-4", children: [_jsx(ResponsiveHeader, { children: _jsx(ResponsiveTitle, { children: _jsx("div", { children: isEdit
88
+ ? partnerLocales.get("edit-business-unit", "Edit business unit")
89
+ : partnerLocales.get("create-business-unit", "Create business unit") }) }) }), _jsx(Form, { ...form, children: _jsxs("form", { onSubmit: (e) => {
90
+ e.stopPropagation();
91
+ return onSubmit(e);
92
+ }, className: "builtin:flex builtin:flex-col builtin:gap-3", children: [_jsx(FormField, { control: form.control, name: "name", disabled: isPending, render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: partnerLocales.get("business-unit-name", "Name") }), _jsx(FormControl, { children: _jsx(Input, { ...field, placeholder: partnerLocales.get("business-unit-name", "Name") }) }), _jsx(FormMessage, {})] })) }), _jsx(FormField, { control: form.control, name: "code", disabled: isPending, render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: partnerLocales.get("business-unit-code", "Code") }), _jsx(FormControl, { children: _jsx(Input, { ...field, placeholder: partnerLocales.get("business-unit-code", "Code") }) }), _jsx(FormMessage, {})] })) }), _jsx(FormField, { control: form.control, name: "isActive", disabled: isPending, render: ({ field }) => (_jsxs(FormItem, { className: "builtin:flex builtin:items-center builtin:justify-between builtin:px-0 builtin:py-2", children: [_jsx(FormLabel, { children: partnerLocales.get("business-unit-active", "Active") }), _jsx(FormControl, { children: _jsx(Switch, { checked: field.value, onCheckedChange: field.onChange, disabled: isPending }) })] })) }), _jsxs(DialogFooter, { className: "builtin:flex builtin:w-full builtin:items-center builtin:justify-between builtin:gap-2 builtin:bg-(--dialog-background)", children: [isEdit ? (_jsx(Button, { type: "button", variant: "destructive", disabled: isPending, onClick: () => setConfirmDeleteOpen(true), children: baseLocale.get("delete", "Delete") })) : (_jsx("div", {})), _jsxs("div", { className: "builtin:flex builtin:items-center builtin:gap-2", children: [_jsx(Button, { type: "button", variant: "secondary", disabled: isPending, onClick: () => dialogRef.current?.close(), children: baseLocale.get("cancel", "Cancel") }), _jsx(Button, { type: "submit", disabled: isPending, children: isPending
93
+ ? partnerLocales.get("saving", "Saving...")
94
+ : partnerLocales.get("save", "Save") })] })] })] }) })] }) }), _jsx(ConfirmDialog, { open: confirmDeleteOpen, onClose: setConfirmDeleteOpen, onConfirm: onDelete, options: {
95
+ title: partnerLocales.get("delete-business-unit", "Delete business unit"),
96
+ description: partnerLocales.get("delete-business-unit-confirm", "Are you sure you want to delete this business unit?"),
97
+ confirmText: baseLocale.get("delete", "Delete"),
98
+ cancelText: baseLocale.get("cancel", "Cancel"),
99
+ variant: "destructive",
100
+ } })] }));
101
+ });
@@ -0,0 +1,16 @@
1
+ import { type ReactNode } from "react";
2
+ import type { BusinessUnitDto } from "../../../api/business-unit/business-unit.types";
3
+ import type { TakeAndPartialRest } from "../../../utils/types.utils";
4
+ export type BusinessUnitDropdownValue = number | TakeAndPartialRest<BusinessUnitDto, "id" | "name">;
5
+ export type BusinessUnitDropdownProps = {
6
+ value?: BusinessUnitDropdownValue;
7
+ trigger?: (value?: BusinessUnitDropdownValue) => ReactNode;
8
+ setValue: (v?: number, businessUnit?: BusinessUnitDto) => void;
9
+ isCompact?: boolean;
10
+ className?: string;
11
+ disabled?: boolean;
12
+ allowClear?: boolean;
13
+ placeholder?: string;
14
+ };
15
+ export declare function BusinessUnitDropdown({ value, setValue, trigger, isCompact, className, disabled, allowClear, placeholder: externalPlaceholder, }: BusinessUnitDropdownProps): import("react").JSX.Element;
16
+ //# sourceMappingURL=business-unit.dropdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-unit.dropdown.d.ts","sourceRoot":"","sources":["../../../../src/page/partner/component/business-unit.dropdown.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAIrE,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,kBAAkB,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC;AAEpG,MAAM,MAAM,yBAAyB,GAAG;IACpC,KAAK,CAAC,EAAE,yBAAyB,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,yBAAyB,KAAK,SAAS,CAAC;IAC3D,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAOF,wBAAgB,oBAAoB,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,QAAQ,EACR,UAAU,EACV,WAAW,EAAE,mBAAmB,GACnC,EAAE,yBAAyB,+BA6K3B"}
@@ -0,0 +1,62 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Button, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, Popover, PopoverContent, PopoverTrigger, cn, useMediaQuery, useDebounceValue, Drawer, DrawerTrigger, DrawerContent, useLazyLocaleTranslation, } from "@quan-erp/shared-ui";
3
+ import { Check, Down, LoadingFour, Pencil } from "@icon-park/react";
4
+ import { Plus } from "lucide-react";
5
+ import { useMemo, useState, useRef } from "react";
6
+ import { useBusinessUnitQuery } from "../../../api/business-unit/business-unit.queries";
7
+ import { PartnerLocaleLazy } from "../partner.locale";
8
+ import { BusinessUnitForm } from "./business-unit-form";
9
+ function resolveBusinessUnitId(value) {
10
+ if (value == null)
11
+ return undefined;
12
+ return typeof value === "number" ? value : value.id;
13
+ }
14
+ export function BusinessUnitDropdown({ value, setValue, trigger, isCompact, className, disabled, allowClear, placeholder: externalPlaceholder, }) {
15
+ const t = useLazyLocaleTranslation(PartnerLocaleLazy);
16
+ const formRef = useRef(null);
17
+ const placeholder = externalPlaceholder || t.get("select-business-unit", "Select business unit...");
18
+ const [open, setOpen] = useState(false);
19
+ const [search, setSearch] = useState("");
20
+ const debouncedSearch = useDebounceValue(search, 500);
21
+ const isMobile = useMediaQuery();
22
+ const selectedId = resolveBusinessUnitId(value);
23
+ const { data: businessUnits = [], isLoading } = useBusinessUnitQuery({
24
+ currentPage: 1,
25
+ pageSize: 100,
26
+ query: debouncedSearch,
27
+ }, { enabled: open || selectedId != null });
28
+ const selectedLabel = useMemo(() => {
29
+ if (trigger)
30
+ return null;
31
+ if (selectedId == null)
32
+ return placeholder;
33
+ const found = businessUnits.find((u) => u.id === selectedId);
34
+ if (found) {
35
+ return `${found.name} (${found.code})`;
36
+ }
37
+ if (typeof value === "object" && value?.name)
38
+ return value.name;
39
+ return placeholder;
40
+ }, [selectedId, businessUnits, placeholder, trigger, value]);
41
+ const ListContent = (_jsxs(Command, { shouldFilter: false, className: cn("builtin:bg-transparent"), children: [_jsx(CommandInput, { placeholder: t.get("search-business-unit", "Search business unit..."), autoFocus: false, value: search, onValueChange: setSearch }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: isLoading ? (_jsxs("div", { className: "builtin:flex builtin:items-center builtin:gap-2", children: [_jsx(LoadingFour, { className: "builtin:h-4 builtin:w-4 builtin:animate-spin" }), _jsx("span", { children: t.get("searching", "Searching...") })] })) : (t.get("no-business-unit-found", "No business unit found.")) }), _jsxs(CommandGroup, { heading: t.get("available-business-units", "Available business units"), children: [allowClear && (_jsxs(CommandItem, { value: "all business units", onSelect: () => {
42
+ setValue(undefined, undefined);
43
+ setOpen(false);
44
+ }, className: cn("builtin:flex builtin:cursor-pointer builtin:items-center builtin:justify-between builtin:px-3 builtin:py-3 builtin:md:py-2 builtin:md:h-10 builtin:h-12 builtin:rounded-2xl", selectedId == null && "builtin:bg-accent/50"), children: [_jsx("span", { className: "builtin:text-sm builtin:leading-none builtin:font-semibold", children: placeholder }), selectedId == null && _jsx(Check, { className: "builtin:text-primary builtin:h-4 builtin:w-4" })] })), businessUnits.map((unit) => (_jsxs(CommandItem, { value: unit.name, onSelect: () => {
45
+ setValue(unit.id, unit);
46
+ setOpen(false);
47
+ }, className: cn("builtin:flex builtin:cursor-pointer builtin:items-center builtin:justify-between builtin:gap-2 builtin:px-3 builtin:py-3 builtin:md:py-2 builtin:rounded-2xl", selectedId === unit.id && "builtin:bg-accent/50"), children: [_jsxs("div", { className: "builtin:flex builtin:min-w-0 builtin:flex-1 builtin:flex-col builtin:gap-0.5", children: [_jsx("span", { className: "builtin:truncate builtin:text-sm builtin:leading-none builtin:font-semibold", children: unit.name }), _jsx("span", { className: "builtin:text-muted-foreground builtin:text-[10px]", children: unit.code })] }), _jsxs("div", { className: "builtin:flex builtin:shrink-0 builtin:items-center builtin:gap-1", children: [selectedId === unit.id && (_jsx(Check, { className: "builtin:text-primary builtin:h-4 builtin:w-4" })), _jsx(Button, { type: "button", variant: "ghost", size: "icon", className: "builtin:h-7 builtin:w-7", onClick: (e) => {
48
+ e.stopPropagation();
49
+ setOpen(false);
50
+ formRef.current?.setInitialData(unit);
51
+ formRef.current?.open();
52
+ }, children: _jsx(Pencil, { className: "builtin:h-3.5 builtin:w-3.5" }) })] })] }, unit.id)))] }), _jsx("div", { className: "builtin:border-border builtin:border-t builtin:p-1", children: _jsxs(CommandItem, { onSelect: () => {
53
+ setOpen(false);
54
+ formRef.current?.setInitialData(null);
55
+ formRef.current?.open();
56
+ }, className: "builtin:text-primary builtin:flex builtin:cursor-pointer builtin:items-center builtin:gap-2 builtin:rounded-2xl builtin:px-3 builtin:py-2", children: [_jsx(Plus, { className: "builtin:h-4 builtin:w-4" }), _jsx("span", { className: "builtin:text-sm builtin:font-semibold", children: t.get("create-business-unit", "Create business unit") })] }) })] })] }));
57
+ const defaultTrigger = (_jsxs(Button, { variant: "select", disabled: disabled, role: "combobox", "aria-expanded": open, className: cn("builtin:border-input/50 builtin:hover:bg-accent builtin:hover:text-accent-foreground builtin:w-full builtin:justify-between builtin:font-normal builtin:transition-colors", isCompact ? "builtin:h-8 builtin:px-2 builtin:text-xs" : "builtin:h-11 builtin:px-3 builtin:text-sm builtin:md:h-9", className), children: [_jsx("span", { className: "builtin:truncate", children: selectedLabel }), _jsx(Down, { className: "builtin:ml-2 builtin:h-4 builtin:w-4 builtin:shrink-0 builtin:opacity-50" })] }));
58
+ if (isMobile) {
59
+ return (_jsxs(_Fragment, { children: [_jsxs(Drawer, { open: open, onOpenChange: setOpen, children: [_jsx(DrawerTrigger, { asChild: true, children: trigger ? trigger(value) : defaultTrigger }), _jsx(DrawerContent, { className: "builtin:flex builtin:max-h-[85vh] builtin:flex-col builtin:overflow-hidden builtin:p-2", children: ListContent })] }), _jsx(BusinessUnitForm, { ref: formRef })] }));
60
+ }
61
+ return (_jsxs(_Fragment, { children: [_jsxs(Popover, { open: open, onOpenChange: setOpen, modal: true, children: [_jsx(PopoverTrigger, { asChild: true, children: trigger ? trigger(value) : defaultTrigger }), _jsx(PopoverContent, { className: "builtin:w-[300px] builtin:p-0 builtin:shadow-lg", align: "start", children: ListContent })] }), _jsx(BusinessUnitForm, { ref: formRef })] }));
62
+ }