drf-react-by-schema 0.28.8 → 0.28.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 (232) hide show
  1. package/dist/@types/index.d.ts +410 -0
  2. package/dist/@types/index.d.ts.map +1 -0
  3. package/dist/@types/index.js +9 -0
  4. package/dist/@types/string-mask.d.ts +10 -0
  5. package/dist/@types/string-mask.d.ts.map +1 -0
  6. package/dist/@types/string-mask.js +1 -0
  7. package/dist/api.d.ts +81 -0
  8. package/dist/api.d.ts.map +1 -0
  9. package/dist/api.js +1118 -0
  10. package/dist/components/DataGridBySchemaEditable/BooleanInputCell.d.ts +8 -0
  11. package/dist/components/DataGridBySchemaEditable/BooleanInputCell.d.ts.map +1 -0
  12. package/dist/components/DataGridBySchemaEditable/BooleanInputCell.js +86 -0
  13. package/dist/components/DataGridBySchemaEditable/ConditionalEditWrapper.d.ts +12 -0
  14. package/dist/components/DataGridBySchemaEditable/ConditionalEditWrapper.d.ts.map +1 -0
  15. package/dist/components/DataGridBySchemaEditable/ConditionalEditWrapper.js +71 -0
  16. package/dist/components/DataGridBySchemaEditable/ConfirmDialog.d.ts +9 -0
  17. package/dist/components/DataGridBySchemaEditable/ConfirmDialog.d.ts.map +1 -0
  18. package/dist/components/DataGridBySchemaEditable/ConfirmDialog.js +21 -0
  19. package/dist/components/DataGridBySchemaEditable/CustomToolbar.d.ts +26 -0
  20. package/dist/components/DataGridBySchemaEditable/CustomToolbar.d.ts.map +1 -0
  21. package/dist/components/DataGridBySchemaEditable/CustomToolbar.js +146 -0
  22. package/dist/components/DataGridBySchemaEditable/DataGridDesktop.d.ts +73 -0
  23. package/dist/components/DataGridBySchemaEditable/DataGridDesktop.d.ts.map +1 -0
  24. package/dist/components/DataGridBySchemaEditable/DataGridDesktop.js +421 -0
  25. package/dist/components/DataGridBySchemaEditable/DataGridMobile.d.ts +18 -0
  26. package/dist/components/DataGridBySchemaEditable/DataGridMobile.d.ts.map +1 -0
  27. package/dist/components/DataGridBySchemaEditable/DataGridMobile.js +105 -0
  28. package/dist/components/DataGridBySchemaEditable/FileInputCell.d.ts +11 -0
  29. package/dist/components/DataGridBySchemaEditable/FileInputCell.d.ts.map +1 -0
  30. package/dist/components/DataGridBySchemaEditable/FileInputCell.js +155 -0
  31. package/dist/components/DataGridBySchemaEditable/FooterToolbar.d.ts +12 -0
  32. package/dist/components/DataGridBySchemaEditable/FooterToolbar.d.ts.map +1 -0
  33. package/dist/components/DataGridBySchemaEditable/FooterToolbar.js +36 -0
  34. package/dist/components/DataGridBySchemaEditable/GeoEditCell.d.ts +10 -0
  35. package/dist/components/DataGridBySchemaEditable/GeoEditCell.d.ts.map +1 -0
  36. package/dist/components/DataGridBySchemaEditable/GeoEditCell.js +85 -0
  37. package/dist/components/DataGridBySchemaEditable/GeoThumbCell.d.ts +11 -0
  38. package/dist/components/DataGridBySchemaEditable/GeoThumbCell.d.ts.map +1 -0
  39. package/dist/components/DataGridBySchemaEditable/GeoThumbCell.js +87 -0
  40. package/dist/components/DataGridBySchemaEditable/GridActionsCellItemLink.d.ts +18 -0
  41. package/dist/components/DataGridBySchemaEditable/GridActionsCellItemLink.d.ts.map +1 -0
  42. package/dist/components/DataGridBySchemaEditable/GridActionsCellItemLink.js +24 -0
  43. package/dist/components/DataGridBySchemaEditable/GridDateInput.d.ts +8 -0
  44. package/dist/components/DataGridBySchemaEditable/GridDateInput.d.ts.map +1 -0
  45. package/dist/components/DataGridBySchemaEditable/GridDateInput.js +166 -0
  46. package/dist/components/DataGridBySchemaEditable/GridDateTimeInput.d.ts +6 -0
  47. package/dist/components/DataGridBySchemaEditable/GridDateTimeInput.d.ts.map +1 -0
  48. package/dist/components/DataGridBySchemaEditable/GridDateTimeInput.js +154 -0
  49. package/dist/components/DataGridBySchemaEditable/GridDecimalInput.d.ts +10 -0
  50. package/dist/components/DataGridBySchemaEditable/GridDecimalInput.d.ts.map +1 -0
  51. package/dist/components/DataGridBySchemaEditable/GridDecimalInput.js +78 -0
  52. package/dist/components/DataGridBySchemaEditable/GridGenericInput.d.ts +8 -0
  53. package/dist/components/DataGridBySchemaEditable/GridGenericInput.d.ts.map +1 -0
  54. package/dist/components/DataGridBySchemaEditable/GridGenericInput.js +30 -0
  55. package/dist/components/DataGridBySchemaEditable/GridPatternInput.d.ts +7 -0
  56. package/dist/components/DataGridBySchemaEditable/GridPatternInput.d.ts.map +1 -0
  57. package/dist/components/DataGridBySchemaEditable/GridPatternInput.js +74 -0
  58. package/dist/components/DataGridBySchemaEditable/InputInterval.d.ts +21 -0
  59. package/dist/components/DataGridBySchemaEditable/InputInterval.d.ts.map +1 -0
  60. package/dist/components/DataGridBySchemaEditable/InputInterval.js +131 -0
  61. package/dist/components/DataGridBySchemaEditable/MobileSearchBar.d.ts +9 -0
  62. package/dist/components/DataGridBySchemaEditable/MobileSearchBar.d.ts.map +1 -0
  63. package/dist/components/DataGridBySchemaEditable/MobileSearchBar.js +70 -0
  64. package/dist/components/DataGridBySchemaEditable/RowEditingWatcher.d.ts +7 -0
  65. package/dist/components/DataGridBySchemaEditable/RowEditingWatcher.d.ts.map +1 -0
  66. package/dist/components/DataGridBySchemaEditable/RowEditingWatcher.js +41 -0
  67. package/dist/components/DataGridBySchemaEditable/SelectEditInputCell.d.ts +24 -0
  68. package/dist/components/DataGridBySchemaEditable/SelectEditInputCell.d.ts.map +1 -0
  69. package/dist/components/DataGridBySchemaEditable/SelectEditInputCell.js +259 -0
  70. package/dist/components/DataGridBySchemaEditable/geoConstants.d.ts +5 -0
  71. package/dist/components/DataGridBySchemaEditable/geoConstants.d.ts.map +1 -0
  72. package/dist/components/DataGridBySchemaEditable/geoConstants.js +6 -0
  73. package/dist/components/DataGridBySchemaEditable/hooks/useDataGridActions.d.ts +33 -0
  74. package/dist/components/DataGridBySchemaEditable/hooks/useDataGridActions.d.ts.map +1 -0
  75. package/dist/components/DataGridBySchemaEditable/hooks/useDataGridActions.js +161 -0
  76. package/dist/components/DataGridBySchemaEditable/hooks/useOptionsAC.d.ts +14 -0
  77. package/dist/components/DataGridBySchemaEditable/hooks/useOptionsAC.d.ts.map +1 -0
  78. package/dist/components/DataGridBySchemaEditable/hooks/useOptionsAC.js +69 -0
  79. package/dist/components/DataGridBySchemaEditable/hooks/usePreparedColumns.d.ts +9 -0
  80. package/dist/components/DataGridBySchemaEditable/hooks/usePreparedColumns.d.ts.map +1 -0
  81. package/dist/components/DataGridBySchemaEditable/hooks/usePreparedColumns.js +73 -0
  82. package/dist/components/DataGridBySchemaEditable/hooks/useProcessRowUpdate.d.ts +30 -0
  83. package/dist/components/DataGridBySchemaEditable/hooks/useProcessRowUpdate.d.ts.map +1 -0
  84. package/dist/components/DataGridBySchemaEditable/hooks/useProcessRowUpdate.js +199 -0
  85. package/dist/components/DataGridBySchemaEditable/utils/columnFactory.d.ts +33 -0
  86. package/dist/components/DataGridBySchemaEditable/utils/columnFactory.d.ts.map +1 -0
  87. package/dist/components/DataGridBySchemaEditable/utils/columnFactory.js +270 -0
  88. package/dist/components/DataGridBySchemaEditable/utils.d.ts +40 -0
  89. package/dist/components/DataGridBySchemaEditable/utils.d.ts.map +1 -0
  90. package/dist/components/DataGridBySchemaEditable/utils.js +181 -0
  91. package/dist/components/DataGridBySchemaEditable.d.ts +64 -0
  92. package/dist/components/DataGridBySchemaEditable.d.ts.map +1 -0
  93. package/dist/components/DataGridBySchemaEditable.js +172 -0
  94. package/dist/components/DataTotals.d.ts +12 -0
  95. package/dist/components/DataTotals.d.ts.map +1 -0
  96. package/dist/components/DataTotals.js +32 -0
  97. package/dist/components/DataTotalsServer.d.ts +10 -0
  98. package/dist/components/DataTotalsServer.d.ts.map +1 -0
  99. package/dist/components/DataTotalsServer.js +18 -0
  100. package/dist/components/DialogActions.d.ts +11 -0
  101. package/dist/components/DialogActions.d.ts.map +1 -0
  102. package/dist/components/DialogActions.js +20 -0
  103. package/dist/components/FileTypeIcon.d.ts +18 -0
  104. package/dist/components/FileTypeIcon.d.ts.map +1 -0
  105. package/dist/components/FileTypeIcon.js +48 -0
  106. package/dist/components/GenericModelList.d.ts +53 -0
  107. package/dist/components/GenericModelList.d.ts.map +1 -0
  108. package/dist/components/GenericModelList.js +194 -0
  109. package/dist/components/GenericRelatedModelList.d.ts +55 -0
  110. package/dist/components/GenericRelatedModelList.d.ts.map +1 -0
  111. package/dist/components/GenericRelatedModelList.js +181 -0
  112. package/dist/components/GenericRelatedModelListTable.d.ts +56 -0
  113. package/dist/components/GenericRelatedModelListTable.d.ts.map +1 -0
  114. package/dist/components/GenericRelatedModelListTable.js +31 -0
  115. package/dist/components/Image.d.ts +10 -0
  116. package/dist/components/Image.d.ts.map +1 -0
  117. package/dist/components/Image.js +111 -0
  118. package/dist/components/details/DetailBySchema.d.ts +4 -0
  119. package/dist/components/details/DetailBySchema.d.ts.map +1 -0
  120. package/dist/components/details/DetailBySchema.js +175 -0
  121. package/dist/components/details/DetailFieldBySchema.d.ts +4 -0
  122. package/dist/components/details/DetailFieldBySchema.d.ts.map +1 -0
  123. package/dist/components/details/DetailFieldBySchema.js +88 -0
  124. package/dist/components/forms/ChangePasswordForm.d.ts +7 -0
  125. package/dist/components/forms/ChangePasswordForm.d.ts.map +1 -0
  126. package/dist/components/forms/ChangePasswordForm.js +93 -0
  127. package/dist/components/forms/DialogFormBySchema.d.ts +22 -0
  128. package/dist/components/forms/DialogFormBySchema.d.ts.map +1 -0
  129. package/dist/components/forms/DialogFormBySchema.js +97 -0
  130. package/dist/components/forms/FieldBySchema.d.ts +4 -0
  131. package/dist/components/forms/FieldBySchema.d.ts.map +1 -0
  132. package/dist/components/forms/FieldBySchema.js +80 -0
  133. package/dist/components/forms/ForgotPasswordForm.d.ts +11 -0
  134. package/dist/components/forms/ForgotPasswordForm.d.ts.map +1 -0
  135. package/dist/components/forms/ForgotPasswordForm.js +114 -0
  136. package/dist/components/forms/Form.d.ts +61 -0
  137. package/dist/components/forms/Form.d.ts.map +1 -0
  138. package/dist/components/forms/Form.js +264 -0
  139. package/dist/components/forms/FormActions.d.ts +20 -0
  140. package/dist/components/forms/FormActions.d.ts.map +1 -0
  141. package/dist/components/forms/FormActions.js +55 -0
  142. package/dist/components/forms/FormBySchema.d.ts +21 -0
  143. package/dist/components/forms/FormBySchema.d.ts.map +1 -0
  144. package/dist/components/forms/FormBySchema.js +280 -0
  145. package/dist/components/forms/FormWatcher.d.ts +10 -0
  146. package/dist/components/forms/FormWatcher.d.ts.map +1 -0
  147. package/dist/components/forms/FormWatcher.js +25 -0
  148. package/dist/components/forms/inputs/AutocompleteFieldBySchema.d.ts +13 -0
  149. package/dist/components/forms/inputs/AutocompleteFieldBySchema.d.ts.map +1 -0
  150. package/dist/components/forms/inputs/AutocompleteFieldBySchema.js +133 -0
  151. package/dist/components/forms/inputs/BooleanFieldBySchema.d.ts +4 -0
  152. package/dist/components/forms/inputs/BooleanFieldBySchema.d.ts.map +1 -0
  153. package/dist/components/forms/inputs/BooleanFieldBySchema.js +39 -0
  154. package/dist/components/forms/inputs/DesktopDatePickerBySchema.d.ts +5 -0
  155. package/dist/components/forms/inputs/DesktopDatePickerBySchema.d.ts.map +1 -0
  156. package/dist/components/forms/inputs/DesktopDatePickerBySchema.js +54 -0
  157. package/dist/components/forms/inputs/DesktopDateTimePickerBySchema.d.ts +5 -0
  158. package/dist/components/forms/inputs/DesktopDateTimePickerBySchema.d.ts.map +1 -0
  159. package/dist/components/forms/inputs/DesktopDateTimePickerBySchema.js +47 -0
  160. package/dist/components/forms/inputs/EditableAutocompleteFieldBySchema.d.ts +14 -0
  161. package/dist/components/forms/inputs/EditableAutocompleteFieldBySchema.d.ts.map +1 -0
  162. package/dist/components/forms/inputs/EditableAutocompleteFieldBySchema.js +272 -0
  163. package/dist/components/forms/inputs/FileFieldBySchema.d.ts +4 -0
  164. package/dist/components/forms/inputs/FileFieldBySchema.d.ts.map +1 -0
  165. package/dist/components/forms/inputs/FileFieldBySchema.js +144 -0
  166. package/dist/components/forms/inputs/FloatFieldBySchema.d.ts +4 -0
  167. package/dist/components/forms/inputs/FloatFieldBySchema.d.ts.map +1 -0
  168. package/dist/components/forms/inputs/FloatFieldBySchema.js +64 -0
  169. package/dist/components/forms/inputs/GeometryFieldBySchema.d.ts +8 -0
  170. package/dist/components/forms/inputs/GeometryFieldBySchema.d.ts.map +1 -0
  171. package/dist/components/forms/inputs/GeometryFieldBySchema.js +61 -0
  172. package/dist/components/forms/inputs/MapGeometryPicker.d.ts +19 -0
  173. package/dist/components/forms/inputs/MapGeometryPicker.d.ts.map +1 -0
  174. package/dist/components/forms/inputs/MapGeometryPicker.js +344 -0
  175. package/dist/components/forms/inputs/PatternFieldBySchema.d.ts +4 -0
  176. package/dist/components/forms/inputs/PatternFieldBySchema.d.ts.map +1 -0
  177. package/dist/components/forms/inputs/PatternFieldBySchema.js +56 -0
  178. package/dist/components/forms/inputs/TextFieldBySchema.d.ts +4 -0
  179. package/dist/components/forms/inputs/TextFieldBySchema.d.ts.map +1 -0
  180. package/dist/components/forms/inputs/TextFieldBySchema.js +56 -0
  181. package/dist/components/forms/inputs/leafletMarker.d.ts +12 -0
  182. package/dist/components/forms/inputs/leafletMarker.d.ts.map +1 -0
  183. package/dist/components/forms/inputs/leafletMarker.js +52 -0
  184. package/dist/context/APIWrapper.d.ts +18 -0
  185. package/dist/context/APIWrapper.d.ts.map +1 -0
  186. package/dist/context/APIWrapper.js +593 -0
  187. package/dist/context/APIWrapperContext.d.ts +132 -0
  188. package/dist/context/APIWrapperContext.d.ts.map +1 -0
  189. package/dist/context/APIWrapperContext.js +63 -0
  190. package/dist/context/DRFReactBySchemaContext.d.ts +31 -0
  191. package/dist/context/DRFReactBySchemaContext.d.ts.map +1 -0
  192. package/dist/context/DRFReactBySchemaContext.js +20 -0
  193. package/dist/context/DRFReactBySchemaProvider.d.ts +5 -0
  194. package/dist/context/DRFReactBySchemaProvider.d.ts.map +1 -0
  195. package/dist/context/DRFReactBySchemaProvider.js +105 -0
  196. package/dist/context/Overlays.d.ts +5 -0
  197. package/dist/context/Overlays.d.ts.map +1 -0
  198. package/dist/context/Overlays.js +114 -0
  199. package/dist/context/PrivateContext.d.ts +10 -0
  200. package/dist/context/PrivateContext.d.ts.map +1 -0
  201. package/dist/context/PrivateContext.js +16 -0
  202. package/dist/hooks/useDeepMemo.d.ts +2 -0
  203. package/dist/hooks/useDeepMemo.d.ts.map +1 -0
  204. package/dist/hooks/useDeepMemo.js +13 -0
  205. package/dist/hooks/useWhyDidYouUpdate.d.ts +4 -0
  206. package/dist/hooks/useWhyDidYouUpdate.d.ts.map +1 -0
  207. package/dist/hooks/useWhyDidYouUpdate.js +26 -0
  208. package/dist/index.d.ts +37 -0
  209. package/dist/index.d.ts.map +1 -0
  210. package/dist/index.js +108 -0
  211. package/dist/styles/grid.d.ts +3 -0
  212. package/dist/styles/grid.d.ts.map +1 -0
  213. package/dist/styles/grid.js +38 -0
  214. package/dist/styles/index.d.ts +3 -0
  215. package/dist/styles/index.d.ts.map +1 -0
  216. package/dist/styles/index.js +38 -0
  217. package/dist/styles/layout.d.ts +23 -0
  218. package/dist/styles/layout.d.ts.map +1 -0
  219. package/dist/styles/layout.js +71 -0
  220. package/dist/styles/texts.d.ts +66 -0
  221. package/dist/styles/texts.d.ts.map +1 -0
  222. package/dist/styles/texts.js +73 -0
  223. package/dist/styles/theme.d.ts +29 -0
  224. package/dist/styles/theme.d.ts.map +1 -0
  225. package/dist/styles/theme.js +226 -0
  226. package/dist/utils/index.d.ts +2 -0
  227. package/dist/utils/index.d.ts.map +1 -0
  228. package/dist/utils/index.js +17 -0
  229. package/dist/utils/utils.d.ts +107 -0
  230. package/dist/utils/utils.d.ts.map +1 -0
  231. package/dist/utils/utils.js +957 -0
  232. package/package.json +1 -1
package/dist/api.js ADDED
@@ -0,0 +1,1118 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.exportExcelData = exports.getAllModels = exports.changePassword = exports.confirmPasswordReset = exports.requestPasswordReset = exports.signUp = exports.getSignUpOptions = exports.isLoggedIn = exports.setAuthToken = exports.hasJWT = exports.clearJWT = exports.loginByPayload = exports.dispatchAuthExpired = exports.AUTH_EXPIRED_EVENT = void 0;
16
+ exports.getRawData = getRawData;
17
+ exports.getData = getData;
18
+ exports.updateData = updateData;
19
+ exports.partialUpdateData = partialUpdateData;
20
+ exports.createData = createData;
21
+ exports.deleteData = deleteData;
22
+ exports.createOrUpdateData = createOrUpdateData;
23
+ exports.prepareDataBySchema = prepareDataBySchema;
24
+ exports.updateDataBySchema = updateDataBySchema;
25
+ exports.addExistingRelatedModel = addExistingRelatedModel;
26
+ exports.getAutoComplete = getAutoComplete;
27
+ exports.getGenericModelList = getGenericModelList;
28
+ exports.getGenericModel = getGenericModel;
29
+ const axios_1 = __importDefault(require("axios"));
30
+ const dayjs_1 = __importDefault(require("dayjs"));
31
+ const utils_1 = require("./utils");
32
+ const expiredTokenMessage = 'Token expired! System must login again';
33
+ const noServerEndPointMessage = 'There is not API definition (serverEndPoint)!';
34
+ const unknownError = 'Unknown error!';
35
+ /**
36
+ * Global event dispatched whenever the session is definitively expired (i.e. a
37
+ * 401 happened AND refreshing the token failed). Host apps can listen to this
38
+ * to immediately sign out and redirect to the login page.
39
+ */
40
+ exports.AUTH_EXPIRED_EVENT = 'drf-react-by-schema:auth-expired';
41
+ const dispatchAuthExpired = () => {
42
+ if (typeof window !== 'undefined') {
43
+ window.dispatchEvent(new CustomEvent(exports.AUTH_EXPIRED_EVENT));
44
+ }
45
+ };
46
+ exports.dispatchAuthExpired = dispatchAuthExpired;
47
+ function getOptions(path, serverEndPoint, schemas) {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ var _a;
50
+ if (schemas) {
51
+ const pathParts = path.split('/');
52
+ const model = pathParts[0];
53
+ const relatedModel = pathParts.length > 2 ? pathParts[2] : null;
54
+ const schemaKey = relatedModel
55
+ ? (0, utils_1.slugToCamelCase)(`${model}_related_${relatedModel}_schema`, true)
56
+ : (0, utils_1.slugToCamelCase)(`${model}_schema`, true);
57
+ if (schemas[schemaKey]) {
58
+ const foundSchema = schemas[schemaKey];
59
+ if (typeof foundSchema === 'function') {
60
+ try {
61
+ const loaded = yield foundSchema();
62
+ return loaded.default || loaded;
63
+ }
64
+ catch (e) {
65
+ console.error(`Failed to load schema for ${schemaKey}`, e);
66
+ }
67
+ }
68
+ else {
69
+ return foundSchema;
70
+ }
71
+ }
72
+ }
73
+ if (!serverEndPoint) {
74
+ return {
75
+ message: noServerEndPointMessage,
76
+ isAxiosError: true,
77
+ };
78
+ }
79
+ const url = `${serverEndPoint.api}/${path}`;
80
+ try {
81
+ const { data } = yield axios_1.default.options(url);
82
+ return {
83
+ schema: data.actions.POST,
84
+ verbose_name: data.verbose_name,
85
+ verbose_name_plural: data.verbose_name_plural,
86
+ };
87
+ }
88
+ catch (e) {
89
+ if (axios_1.default.isAxiosError(e)) {
90
+ const err = e;
91
+ const message = `Error fetching options from ${url}`;
92
+ if (((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 401) {
93
+ const isRefreshed = yield refreshToken(serverEndPoint);
94
+ if (!isRefreshed) {
95
+ console.log(expiredTokenMessage);
96
+ return {
97
+ message: expiredTokenMessage,
98
+ isAxiosError: true,
99
+ };
100
+ }
101
+ try {
102
+ const { data } = yield axios_1.default.options(url);
103
+ return {
104
+ schema: data.actions.POST,
105
+ verbose_name: data.verbose_name,
106
+ verbose_name_plural: data.verbose_name_plural,
107
+ };
108
+ }
109
+ catch (e) {
110
+ console.log(message, e);
111
+ return {
112
+ message,
113
+ isAxiosError: true,
114
+ };
115
+ }
116
+ }
117
+ console.log(message, e);
118
+ return {
119
+ message,
120
+ isAxiosError: true,
121
+ };
122
+ }
123
+ return {
124
+ message: unknownError,
125
+ isAxiosError: true,
126
+ };
127
+ }
128
+ });
129
+ }
130
+ function getSchema(path, serverEndPoint, schemas) {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ const options = yield getOptions(path, serverEndPoint, schemas);
133
+ if (axios_1.default.isAxiosError(options)) {
134
+ return options;
135
+ }
136
+ // Special default value of "currentUser":
137
+ let usuaria = false;
138
+ for (const [key, fieldRaw] of Object.entries(options.schema)) {
139
+ const field = fieldRaw;
140
+ if (field.model_default === '{currentUser}') {
141
+ if (!usuaria) {
142
+ usuaria = yield (0, exports.isLoggedIn)(serverEndPoint);
143
+ }
144
+ if (usuaria) {
145
+ options.schema[key].model_default = {
146
+ id: usuaria.id,
147
+ label: usuaria.first_name,
148
+ };
149
+ }
150
+ }
151
+ if (field.model_default === '{dateNow}') {
152
+ field.model_default = (0, dayjs_1.default)().format('YYYY-MM-DD');
153
+ }
154
+ if (field.model_default === '{dateTimeNow}') {
155
+ field.model_default = (0, dayjs_1.default)().format('YYYY-MM-DDTHH:mm');
156
+ }
157
+ if (field.model_default && field.type === 'choice') {
158
+ if (field.choices) {
159
+ const modelDefault = field.choices.filter((choice) => choice.value === field.model_default);
160
+ options.schema[key].model_default =
161
+ modelDefault.length === 1 ? modelDefault[0] : undefined;
162
+ }
163
+ }
164
+ }
165
+ const modelOptions = {
166
+ verbose_name: options.verbose_name,
167
+ verbose_name_plural: options.verbose_name_plural,
168
+ };
169
+ return { schema: options.schema, modelOptions };
170
+ });
171
+ }
172
+ function getRawData(_a) {
173
+ return __awaiter(this, arguments, void 0, function* ({ path, serverEndPoint, }) {
174
+ var _b;
175
+ if (!serverEndPoint) {
176
+ return {
177
+ message: noServerEndPointMessage,
178
+ isAxiosError: true,
179
+ };
180
+ }
181
+ const url = `${serverEndPoint.api}/${path}`;
182
+ try {
183
+ const { data } = yield axios_1.default.get(url);
184
+ return data;
185
+ }
186
+ catch (e) {
187
+ const message = `Error fetching data from ${url}`;
188
+ if (axios_1.default.isAxiosError(e)) {
189
+ const err = e;
190
+ if (((_b = err.response) === null || _b === void 0 ? void 0 : _b.status) === 401) {
191
+ const isRefreshed = yield refreshToken(serverEndPoint);
192
+ if (!isRefreshed) {
193
+ console.log(expiredTokenMessage);
194
+ return {
195
+ message: expiredTokenMessage,
196
+ isAxiosError: true,
197
+ };
198
+ }
199
+ try {
200
+ const { data } = yield axios_1.default.get(url);
201
+ return data;
202
+ }
203
+ catch (e) {
204
+ const message = `Error fetching data from ${url}`;
205
+ console.log(message, e);
206
+ return {
207
+ message,
208
+ isAxiosError: true,
209
+ };
210
+ }
211
+ }
212
+ }
213
+ console.log(message, e);
214
+ return {
215
+ message,
216
+ isAxiosError: true,
217
+ };
218
+ }
219
+ });
220
+ }
221
+ function getData(_a) {
222
+ return __awaiter(this, arguments, void 0, function* ({ path, serverEndPoint, route = 'api', }) {
223
+ var _b;
224
+ if (!serverEndPoint) {
225
+ return {
226
+ message: noServerEndPointMessage,
227
+ isAxiosError: true,
228
+ };
229
+ }
230
+ const url = `${serverEndPoint[route]}/${path}`;
231
+ try {
232
+ const { data } = yield axios_1.default.get(url);
233
+ return data;
234
+ }
235
+ catch (e) {
236
+ if (axios_1.default.isAxiosError(e)) {
237
+ const err = e;
238
+ if (((_b = err.response) === null || _b === void 0 ? void 0 : _b.status) === 401) {
239
+ const isRefreshed = yield refreshToken(serverEndPoint);
240
+ if (!isRefreshed) {
241
+ console.log(expiredTokenMessage);
242
+ return {
243
+ message: expiredTokenMessage,
244
+ isAxiosError: true,
245
+ };
246
+ }
247
+ try {
248
+ const { data } = yield axios_1.default.get(url);
249
+ return data;
250
+ }
251
+ catch (e) {
252
+ console.log(expiredTokenMessage, e);
253
+ return {
254
+ message: expiredTokenMessage,
255
+ isAxiosError: true,
256
+ };
257
+ }
258
+ }
259
+ }
260
+ const message = `Error fetching data from ${url}`;
261
+ console.log(message, e);
262
+ return {
263
+ message,
264
+ isAxiosError: true,
265
+ };
266
+ }
267
+ });
268
+ }
269
+ /**
270
+ *
271
+ * @param options - params
272
+ * @returns updatedData when succesfully updated, axiosError otherwise
273
+ */
274
+ function updateData(_a) {
275
+ return __awaiter(this, arguments, void 0, function* ({ path, serverEndPoint, data, id, contentType = 'application/json', }) {
276
+ var _b, _c, _d;
277
+ if (!serverEndPoint) {
278
+ return {
279
+ message: noServerEndPointMessage,
280
+ isAxiosError: true,
281
+ };
282
+ }
283
+ const url = `${serverEndPoint.api}/${path}/${id}/`;
284
+ const config = { headers: { 'Content-Type': contentType } };
285
+ try {
286
+ const { data: updatedData } = yield axios_1.default.put(url, data, config);
287
+ return updatedData;
288
+ }
289
+ catch (e) {
290
+ if (axios_1.default.isAxiosError(e)) {
291
+ const err = e;
292
+ const message = `Error updating data at ${url}`;
293
+ if (((_b = err.response) === null || _b === void 0 ? void 0 : _b.status) === 401) {
294
+ const isRefreshed = yield refreshToken(serverEndPoint);
295
+ if (!isRefreshed) {
296
+ console.log(expiredTokenMessage);
297
+ return {
298
+ message: expiredTokenMessage,
299
+ isAxiosError: true,
300
+ };
301
+ }
302
+ try {
303
+ const { data: updatedData } = yield axios_1.default.put(url, data, config);
304
+ return updatedData;
305
+ }
306
+ catch (e) {
307
+ console.log(message, data, (_c = err.response) === null || _c === void 0 ? void 0 : _c.data, e);
308
+ return { message, isAxiosError: true };
309
+ }
310
+ }
311
+ console.log(message, data, (_d = err.response) === null || _d === void 0 ? void 0 : _d.data);
312
+ return { message, isAxiosError: true, response: err.response };
313
+ }
314
+ }
315
+ return { message: unknownError, isAxiosError: true };
316
+ });
317
+ }
318
+ function partialUpdateData(_a) {
319
+ return __awaiter(this, arguments, void 0, function* ({ path, serverEndPoint, data, id, }) {
320
+ var _b, _c;
321
+ if (!serverEndPoint) {
322
+ return {
323
+ message: noServerEndPointMessage,
324
+ isAxiosError: true,
325
+ };
326
+ }
327
+ const url = `${serverEndPoint.api}/${path}/${id}/`;
328
+ try {
329
+ const { data: updatedData } = yield axios_1.default.patch(url, data);
330
+ return updatedData;
331
+ }
332
+ catch (e) {
333
+ if (axios_1.default.isAxiosError(e)) {
334
+ const err = e;
335
+ const message = `Error partial updating data at ${url}`;
336
+ if (((_b = err.response) === null || _b === void 0 ? void 0 : _b.status) === 401) {
337
+ const isRefreshed = yield refreshToken(serverEndPoint);
338
+ if (!isRefreshed) {
339
+ console.log(expiredTokenMessage);
340
+ return {
341
+ message: expiredTokenMessage,
342
+ isAxiosError: true,
343
+ };
344
+ }
345
+ try {
346
+ const { data: updatedData } = yield axios_1.default.patch(url, data);
347
+ return updatedData;
348
+ }
349
+ catch (e) {
350
+ console.log(message, data, e);
351
+ return {
352
+ message: err.response ? err.response.data : message,
353
+ isAxiosError: true,
354
+ };
355
+ }
356
+ }
357
+ console.log(message, data, (_c = err.response) === null || _c === void 0 ? void 0 : _c.data);
358
+ return {
359
+ message: err.response ? err.response.data : message,
360
+ isAxiosError: true,
361
+ };
362
+ }
363
+ }
364
+ return { message: unknownError, isAxiosError: true };
365
+ });
366
+ }
367
+ function createData(_a) {
368
+ return __awaiter(this, arguments, void 0, function* ({ path, serverEndPoint, data, contentType = 'application/json', }) {
369
+ var _b, _c;
370
+ if (!serverEndPoint) {
371
+ return {
372
+ message: noServerEndPointMessage,
373
+ isAxiosError: true,
374
+ };
375
+ }
376
+ const url = `${serverEndPoint.api}/${path}/`;
377
+ const config = { headers: { 'Content-Type': contentType } };
378
+ try {
379
+ const { data: createdData } = yield axios_1.default.post(url, data, config);
380
+ return createdData;
381
+ }
382
+ catch (err) {
383
+ if (axios_1.default.isAxiosError(err)) {
384
+ const message = `Error creating data at ${url}`;
385
+ if (((_b = err.response) === null || _b === void 0 ? void 0 : _b.status) === 401) {
386
+ const isRefreshed = yield refreshToken(serverEndPoint);
387
+ if (!isRefreshed) {
388
+ console.log(expiredTokenMessage);
389
+ return {
390
+ message: expiredTokenMessage,
391
+ isAxiosError: true,
392
+ };
393
+ }
394
+ try {
395
+ const { data: createdData } = yield axios_1.default.post(url, data);
396
+ return createdData;
397
+ }
398
+ catch (e) {
399
+ console.log(message, data, e);
400
+ return {
401
+ message: err.response ? err.response.data : message,
402
+ isAxiosError: true,
403
+ response: err.response,
404
+ };
405
+ }
406
+ }
407
+ console.log(message, data, (_c = err.response) === null || _c === void 0 ? void 0 : _c.data);
408
+ return {
409
+ message: err.response ? err.response.data : message,
410
+ isAxiosError: true,
411
+ response: err.response,
412
+ };
413
+ }
414
+ }
415
+ return {
416
+ message: unknownError,
417
+ isAxiosError: true,
418
+ };
419
+ });
420
+ }
421
+ function deleteData(path, serverEndPoint, id) {
422
+ return __awaiter(this, void 0, void 0, function* () {
423
+ var _a;
424
+ if (!serverEndPoint) {
425
+ return {
426
+ message: noServerEndPointMessage,
427
+ isAxiosError: true,
428
+ };
429
+ }
430
+ const url = `${serverEndPoint.api}/${path}/${id}`;
431
+ try {
432
+ yield axios_1.default.delete(url);
433
+ return true;
434
+ }
435
+ catch (e) {
436
+ if (axios_1.default.isAxiosError(e)) {
437
+ const err = e;
438
+ const message = `Error deleting data from ${url}`;
439
+ if (((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 401) {
440
+ const isRefreshed = yield refreshToken(serverEndPoint);
441
+ if (!isRefreshed) {
442
+ console.log(expiredTokenMessage);
443
+ return {
444
+ message: expiredTokenMessage,
445
+ isAxiosError: true,
446
+ };
447
+ }
448
+ try {
449
+ yield axios_1.default.delete(url);
450
+ return true;
451
+ }
452
+ catch (e) {
453
+ console.log(message, e);
454
+ return {
455
+ message: err.response ? err.response.data : message,
456
+ isAxiosError: true,
457
+ };
458
+ }
459
+ }
460
+ console.log(message, e);
461
+ return {
462
+ message: err.response ? err.response.data : message,
463
+ isAxiosError: true,
464
+ };
465
+ }
466
+ }
467
+ return {
468
+ message: unknownError,
469
+ isAxiosError: true,
470
+ };
471
+ });
472
+ }
473
+ function createOrUpdateData(_a) {
474
+ return __awaiter(this, arguments, void 0, function* ({ path, serverEndPoint, data, id, contentType = 'application/json', }) {
475
+ if ((0, utils_1.isTmpId)(id) || !id) {
476
+ const responseCreate = yield createData({ path, serverEndPoint, data, contentType });
477
+ return responseCreate;
478
+ }
479
+ const responseUpdate = yield updateData({ path, serverEndPoint, data, id, contentType });
480
+ return responseUpdate;
481
+ });
482
+ }
483
+ function prepareDataBySchemaRecursive({ data: typedData, schema, }) {
484
+ const data = typedData;
485
+ let requiresMultipart = false;
486
+ const dbData = {};
487
+ const conditionalVisible = (0, utils_1.buildConditionalVisibleBySchema)(schema);
488
+ for (const [key, field] of Object.entries(schema)) {
489
+ const value = data[key];
490
+ if (!(key in data) || (key === 'id' && (0, utils_1.isTmpId)(value))) {
491
+ continue;
492
+ }
493
+ // Clear hidden conditional_visible fields so their stale value isn't saved.
494
+ if (!(0, utils_1.showConditionalVisibleFieldObj)(key, conditionalVisible, data)) {
495
+ dbData[key] = (0, utils_1.emptyByType)(field, true);
496
+ continue;
497
+ }
498
+ if (typeof value !== 'boolean' && !value) {
499
+ dbData[key] = (0, utils_1.emptyByType)(field, true);
500
+ continue;
501
+ }
502
+ // Check for file upload fields
503
+ if (field && ['file upload', 'image upload'].includes(field.type)) {
504
+ requiresMultipart = true;
505
+ if ('file' in data[key]) {
506
+ dbData[key] = { file: value.file };
507
+ }
508
+ continue;
509
+ }
510
+ // OneToMany or ManyToMany relations:
511
+ if ((field === null || field === void 0 ? void 0 : field.type) === 'field' && field.child) {
512
+ const dataArr = value;
513
+ dbData[key] = dataArr.map((row) => {
514
+ var _a;
515
+ return ((_a = field.child) === null || _a === void 0 ? void 0 : _a.children)
516
+ ? prepareDataBySchemaRecursive({
517
+ data: row,
518
+ schema: field.child.children,
519
+ }).data
520
+ : row;
521
+ });
522
+ continue;
523
+ }
524
+ // Nested Object:
525
+ if ((field === null || field === void 0 ? void 0 : field.type) === 'nested object' && field.children && typeof value === 'object') {
526
+ dbData[key] = (0, utils_1.isTmpId)(value === null || value === void 0 ? void 0 : value.id)
527
+ ? prepareDataBySchemaRecursive({
528
+ data: value,
529
+ schema: field.children,
530
+ }).data
531
+ : value.id;
532
+ continue;
533
+ }
534
+ // Choices:
535
+ if ((field === null || field === void 0 ? void 0 : field.type) === 'choice') {
536
+ dbData[key] = value.value;
537
+ continue;
538
+ }
539
+ // Multiple-choice lists: unwrap {value, display_name} objects to raw .value
540
+ // for the backend; raw values already present are passed through unchanged.
541
+ if ((field === null || field === void 0 ? void 0 : field.type) === 'list' || (field === null || field === void 0 ? void 0 : field.type) === 'multiple choice') {
542
+ dbData[key] = Array.isArray(value)
543
+ ? value.map((choice) => typeof choice === 'object' && choice !== null ? choice.value : choice)
544
+ : value;
545
+ continue;
546
+ }
547
+ // Date:
548
+ if ((field === null || field === void 0 ? void 0 : field.type) === 'date') {
549
+ dbData[key] = (0, dayjs_1.default)(value).format('YYYY-MM-DD');
550
+ continue;
551
+ }
552
+ // DateTime:
553
+ if ((field === null || field === void 0 ? void 0 : field.type) === 'datetime') {
554
+ dbData[key] = (0, dayjs_1.default)(value).format('YYYY-MM-DDTHH:mm');
555
+ continue;
556
+ }
557
+ // Default:
558
+ dbData[key] = value;
559
+ }
560
+ return {
561
+ data: dbData,
562
+ requiresMultipart,
563
+ };
564
+ }
565
+ function prepareDataBySchema({ data, schema, }) {
566
+ const { data: preparedData, requiresMultipart } = prepareDataBySchemaRecursive({
567
+ data,
568
+ schema,
569
+ });
570
+ return {
571
+ data: requiresMultipart ? (0, utils_1.convertToFormData)(preparedData) : preparedData,
572
+ contentType: requiresMultipart
573
+ ? 'multipart/form-data'
574
+ : 'application/json',
575
+ };
576
+ }
577
+ function updateDataBySchema(_a) {
578
+ return __awaiter(this, arguments, void 0, function* ({ model, modelObjectId, serverEndPoint, data, schema, path = null, }) {
579
+ const { data: dbData, contentType } = prepareDataBySchema({ data, schema });
580
+ if (!path) {
581
+ path = model;
582
+ }
583
+ const response = yield createOrUpdateData({
584
+ path,
585
+ serverEndPoint,
586
+ data: dbData,
587
+ id: modelObjectId,
588
+ contentType,
589
+ });
590
+ return response;
591
+ });
592
+ }
593
+ function addExistingRelatedModel(_a) {
594
+ return __awaiter(this, arguments, void 0, function* ({ model, serverEndPoint, id, data, }) {
595
+ const response = yield partialUpdateData({ path: model, serverEndPoint, data, id });
596
+ return response;
597
+ });
598
+ }
599
+ function getDataGridColumns(schema, columnFields, creatableFields, disabledFields) {
600
+ if (!schema) {
601
+ return false;
602
+ }
603
+ const finalColumnFields = !columnFields || columnFields.length === 0
604
+ ? Object.keys(schema)
605
+ : columnFields.filter((field) => {
606
+ return field in schema;
607
+ });
608
+ return finalColumnFields.map((field) => {
609
+ const fieldSchema = schema[field];
610
+ const column = {
611
+ field,
612
+ headerName: fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.label,
613
+ creatable: creatableFields && creatableFields.includes(field)
614
+ ? true
615
+ : fieldSchema && 'related_editable' in fieldSchema
616
+ ? fieldSchema.related_editable
617
+ : false,
618
+ disabled: !!disabledFields && disabledFields.includes(field),
619
+ uiRequired: (fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.ui_required) || false,
620
+ width: 100,
621
+ };
622
+ return column;
623
+ });
624
+ }
625
+ function getAutoComplete(_a) {
626
+ return __awaiter(this, arguments, void 0, function* ({ model, queryParams, serverEndPoint, }) {
627
+ const data = yield getData({
628
+ path: `${model}/${queryParams && queryParams.length > 0 ? '?' + queryParams.join('&') : ''}`,
629
+ serverEndPoint,
630
+ route: 'autocomplete',
631
+ });
632
+ if (axios_1.default.isAxiosError(data)) {
633
+ return data;
634
+ }
635
+ const occurrences = {};
636
+ const sanitizedData = data.map((row) => {
637
+ const baseLabel = row.label;
638
+ occurrences[baseLabel] = (occurrences[baseLabel] || 0) + 1;
639
+ return Object.assign(Object.assign({}, row), { label: occurrences[baseLabel] > 1 ? `${baseLabel} (${occurrences[baseLabel]})` : baseLabel });
640
+ });
641
+ return sanitizedData;
642
+ });
643
+ }
644
+ const loginByPayload = (payload, serverEndPoint) => __awaiter(void 0, void 0, void 0, function* () {
645
+ if (!serverEndPoint) {
646
+ return {
647
+ message: noServerEndPointMessage,
648
+ isAxiosError: true,
649
+ };
650
+ }
651
+ const url = serverEndPoint.getToken;
652
+ if (!url) {
653
+ console.log('Erro no loginByPayload: faltou a configuração de url getToken!');
654
+ return false;
655
+ }
656
+ try {
657
+ const { data } = yield axios_1.default.post(url, payload);
658
+ localStorage.setItem('refreshToken', data.refresh);
659
+ (0, exports.setAuthToken)(data.access);
660
+ return true;
661
+ }
662
+ catch (e) {
663
+ console.log('Erro no loginByPayload!', e);
664
+ (0, exports.setAuthToken)(null);
665
+ return false;
666
+ }
667
+ });
668
+ exports.loginByPayload = loginByPayload;
669
+ const clearJWT = () => {
670
+ localStorage.removeItem('token');
671
+ return false;
672
+ };
673
+ exports.clearJWT = clearJWT;
674
+ const hasJWT = () => {
675
+ const token = localStorage.getItem('token');
676
+ if (token) {
677
+ return true;
678
+ }
679
+ return false;
680
+ };
681
+ exports.hasJWT = hasJWT;
682
+ const setAuthToken = (token) => {
683
+ if (token) {
684
+ localStorage.setItem('token', token);
685
+ axios_1.default.defaults.headers.common.Authorization = `Bearer ${token}`;
686
+ return;
687
+ }
688
+ localStorage.removeItem('token');
689
+ localStorage.removeItem('refreshToken');
690
+ delete axios_1.default.defaults.headers.common.Authorization;
691
+ };
692
+ exports.setAuthToken = setAuthToken;
693
+ const refreshToken = (serverEndPoint) => __awaiter(void 0, void 0, void 0, function* () {
694
+ if (!serverEndPoint) {
695
+ return {
696
+ message: noServerEndPointMessage,
697
+ isAxiosError: true,
698
+ };
699
+ }
700
+ const refreshToken = localStorage.getItem('refreshToken');
701
+ (0, exports.setAuthToken)(null);
702
+ if (!refreshToken) {
703
+ (0, exports.dispatchAuthExpired)();
704
+ return false;
705
+ }
706
+ try {
707
+ const { data } = yield axios_1.default.post(`${serverEndPoint.refreshToken}`, {
708
+ refresh: refreshToken,
709
+ });
710
+ (0, exports.setAuthToken)(data.access);
711
+ return true;
712
+ }
713
+ catch (e) {
714
+ console.log('Failed refreshing token', e);
715
+ (0, exports.dispatchAuthExpired)();
716
+ return false;
717
+ }
718
+ });
719
+ const isLoggedIn = (serverEndPoint) => __awaiter(void 0, void 0, void 0, function* () {
720
+ const token = localStorage.getItem('token');
721
+ (0, exports.setAuthToken)(token);
722
+ if (!token) {
723
+ return false;
724
+ }
725
+ const usuaria = yield getData({ path: 'my_account/', serverEndPoint });
726
+ if (axios_1.default.isAxiosError(usuaria)) {
727
+ console.log('Erro ao recuperar dados de usuária!');
728
+ return false;
729
+ }
730
+ return usuaria;
731
+ });
732
+ exports.isLoggedIn = isLoggedIn;
733
+ const getSignUpOptions = (serverEndPoint) => __awaiter(void 0, void 0, void 0, function* () {
734
+ if (!serverEndPoint || !serverEndPoint.signUp) {
735
+ return {
736
+ message: noServerEndPointMessage,
737
+ isAxiosError: true,
738
+ };
739
+ }
740
+ const url = serverEndPoint.signUp;
741
+ try {
742
+ const { data } = yield axios_1.default.options(url);
743
+ return data.action.POST;
744
+ }
745
+ catch (e) {
746
+ const message = `Error fetching options from ${url}`;
747
+ console.log(message, e);
748
+ return {
749
+ message,
750
+ isAxiosError: true,
751
+ };
752
+ }
753
+ });
754
+ exports.getSignUpOptions = getSignUpOptions;
755
+ const signUp = (data, serverEndPoint) => __awaiter(void 0, void 0, void 0, function* () {
756
+ var _a;
757
+ if (!serverEndPoint || !serverEndPoint.signUp) {
758
+ return {
759
+ message: noServerEndPointMessage,
760
+ isAxiosError: true,
761
+ };
762
+ }
763
+ const url = serverEndPoint.signUp;
764
+ try {
765
+ const { data: responseData } = yield axios_1.default.post(url, data);
766
+ return responseData;
767
+ }
768
+ catch (e) {
769
+ if (axios_1.default.isAxiosError(e)) {
770
+ const err = e;
771
+ const message = `Error trying signUp at ${url}`;
772
+ if (((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 401) {
773
+ const isRefreshed = yield refreshToken(serverEndPoint);
774
+ if (!isRefreshed) {
775
+ console.log(expiredTokenMessage);
776
+ return {
777
+ message: expiredTokenMessage,
778
+ isAxiosError: true,
779
+ };
780
+ }
781
+ try {
782
+ const { data: responseData } = yield axios_1.default.post(url, data);
783
+ return responseData;
784
+ }
785
+ catch (e) {
786
+ console.log(message, data, e);
787
+ return {
788
+ message,
789
+ isAxiosError: true,
790
+ };
791
+ }
792
+ }
793
+ console.log(message, data, e);
794
+ return {
795
+ message,
796
+ isAxiosError: true,
797
+ };
798
+ }
799
+ }
800
+ console.log(unknownError, data);
801
+ return {
802
+ message: unknownError,
803
+ isAxiosError: true,
804
+ };
805
+ });
806
+ exports.signUp = signUp;
807
+ const requestPasswordReset = (email, serverEndPoint) => __awaiter(void 0, void 0, void 0, function* () {
808
+ if (!serverEndPoint || !serverEndPoint.requestPasswordReset) {
809
+ return {
810
+ message: noServerEndPointMessage,
811
+ isAxiosError: true,
812
+ };
813
+ }
814
+ const url = serverEndPoint.requestPasswordReset;
815
+ try {
816
+ const { data } = yield axios_1.default.post(url, { email });
817
+ return data;
818
+ }
819
+ catch (e) {
820
+ if (axios_1.default.isAxiosError(e)) {
821
+ return e;
822
+ }
823
+ }
824
+ return { message: unknownError, isAxiosError: true };
825
+ });
826
+ exports.requestPasswordReset = requestPasswordReset;
827
+ const confirmPasswordReset = (data, serverEndPoint) => __awaiter(void 0, void 0, void 0, function* () {
828
+ if (!serverEndPoint || !serverEndPoint.confirmPasswordReset) {
829
+ return {
830
+ message: noServerEndPointMessage,
831
+ isAxiosError: true,
832
+ };
833
+ }
834
+ const url = serverEndPoint.confirmPasswordReset;
835
+ try {
836
+ const { data: responseData } = yield axios_1.default.post(url, data);
837
+ return responseData;
838
+ }
839
+ catch (e) {
840
+ if (axios_1.default.isAxiosError(e)) {
841
+ return e;
842
+ }
843
+ }
844
+ return { message: unknownError, isAxiosError: true };
845
+ });
846
+ exports.confirmPasswordReset = confirmPasswordReset;
847
+ const changePassword = (data, serverEndPoint) => __awaiter(void 0, void 0, void 0, function* () {
848
+ if (!serverEndPoint || !serverEndPoint.changePassword) {
849
+ return {
850
+ message: noServerEndPointMessage,
851
+ isAxiosError: true,
852
+ };
853
+ }
854
+ const url = serverEndPoint.changePassword;
855
+ try {
856
+ const { data: responseData } = yield axios_1.default.post(url, data);
857
+ return responseData;
858
+ }
859
+ catch (e) {
860
+ if (axios_1.default.isAxiosError(e)) {
861
+ return e;
862
+ }
863
+ }
864
+ return { message: unknownError, isAxiosError: true };
865
+ });
866
+ exports.changePassword = changePassword;
867
+ function getGenericModelList(_a) {
868
+ return __awaiter(this, arguments, void 0, function* ({ model, serverEndPoint, id = '', relatedModel = '', relatedModelId = '', columnFields, creatableFields, disabledFields, isInBatches = false, loadedSchema, loadedModelOptions, page, filter, queryParams = [], sort, sumRows, schemas, }) {
869
+ const newQueryParams = [...queryParams];
870
+ let path = `${model}/${id}`;
871
+ let schemaPath = `${model}/`;
872
+ let schema = loadedSchema;
873
+ let modelOptions = loadedModelOptions;
874
+ let columns = [];
875
+ if (!(0, utils_1.isTmpId)(id) && relatedModel) {
876
+ path += `/${relatedModel}/`;
877
+ if (relatedModelId) {
878
+ path += `${relatedModelId}/`;
879
+ }
880
+ schemaPath += `${id}/${relatedModel}/`;
881
+ }
882
+ // SERVER-SIDE TOTALS (sumRows):
883
+ if (sumRows) {
884
+ const sumRowsParams = sumRows.rows.map((row) => row.field).join(',');
885
+ newQueryParams.push(`sum_rows=${sumRowsParams}`);
886
+ }
887
+ // SERVER-SIDE FILTERING:
888
+ if (filter) {
889
+ if (filter.quickFilterValues &&
890
+ filter.quickFilterValues.length > 0 &&
891
+ filter.quickFilterValues[0]) {
892
+ newQueryParams.push(`search=${filter.quickFilterValues[0]}`);
893
+ }
894
+ for (const item of filter.items) {
895
+ if (!item.operator) {
896
+ continue;
897
+ }
898
+ const queryParam = item.value
899
+ ? `field=${item.field}&operator=${item.operator}&value=${item.value}`
900
+ : `field=${item.field}&operator=${item.operator}`;
901
+ newQueryParams.push(queryParam);
902
+ }
903
+ }
904
+ // SERVER-SIDE SORTING:
905
+ if (sort) {
906
+ const sortParams = [];
907
+ for (const item of sort) {
908
+ sortParams.push(item.sort === 'desc' ? `-${item.field}` : item.field);
909
+ }
910
+ newQueryParams.push(`ordering=${sortParams.join(',')}`);
911
+ }
912
+ // SERVER-SIDE PAGINATION:
913
+ if (page) {
914
+ newQueryParams.push(`page=${page + 1}`);
915
+ }
916
+ // Only get schema and columns if not in batches or in first batch:
917
+ if (!schema) {
918
+ const options = yield getSchema(schemaPath, serverEndPoint, schemas);
919
+ if (!options || axios_1.default.isAxiosError(options)) {
920
+ return (options || { message: unknownError, isAxiosError: true });
921
+ }
922
+ schema = options.schema;
923
+ if (!schema) {
924
+ return { message: `Schema not found for ${model}`, isAxiosError: true };
925
+ }
926
+ modelOptions = options.modelOptions;
927
+ columns = getDataGridColumns(schema, columnFields, creatableFields, disabledFields);
928
+ if (!columns) {
929
+ return {
930
+ message: `Columns could not be generated for ${model}`,
931
+ isAxiosError: true,
932
+ };
933
+ }
934
+ }
935
+ let rowCount = 0;
936
+ let sumRowsTotals = null;
937
+ let data = [];
938
+ if (!id || (id && !relatedModelId)) {
939
+ if (isInBatches) {
940
+ newQueryParams.push(loadedSchema ? 'is_last_batch=1' : 'is_first_batch=1');
941
+ }
942
+ if (newQueryParams.length > 0) {
943
+ path += `?${newQueryParams.join('&')}`;
944
+ }
945
+ const ret = yield getData({ path, serverEndPoint });
946
+ if (ret && axios_1.default.isAxiosError(ret)) {
947
+ return ret;
948
+ }
949
+ const dataRaw = 'results' in ret ? ret.results : ret;
950
+ if ('results' in ret) {
951
+ rowCount = ret.count;
952
+ if (sumRows) {
953
+ sumRowsTotals = ret.sum_rows;
954
+ }
955
+ }
956
+ if (!schema) {
957
+ return { message: `Schema not found for ${model}`, isAxiosError: true };
958
+ }
959
+ data = dataRaw.map((row) => {
960
+ const newRow = {};
961
+ for (const [key, field] of Object.entries(schema)) {
962
+ if (!(key in row)) {
963
+ continue;
964
+ }
965
+ if ((field === null || field === void 0 ? void 0 : field.type) === 'choice') {
966
+ newRow[key] = row[key]
967
+ ? {
968
+ value: row[key],
969
+ display_name: (0, utils_1.getChoiceByValue)(row[key], field.choices),
970
+ }
971
+ : (0, utils_1.emptyByType)(field);
972
+ continue;
973
+ }
974
+ if ((field === null || field === void 0 ? void 0 : field.type) === 'list' || (field === null || field === void 0 ? void 0 : field.type) === 'multiple choice') {
975
+ newRow[key] = Array.isArray(row[key])
976
+ ? row[key].map((entry) => { var _a; return (0, utils_1.toChoiceItem)(entry, (_a = field.child) === null || _a === void 0 ? void 0 : _a.choices); })
977
+ : (0, utils_1.emptyByType)(field);
978
+ continue;
979
+ }
980
+ newRow[key] = row[key] ? row[key] : (0, utils_1.emptyByType)(field);
981
+ }
982
+ return newRow;
983
+ });
984
+ }
985
+ if (!schema || !columns) {
986
+ return {
987
+ message: `Schema or columns not found for ${model}`,
988
+ isAxiosError: true,
989
+ };
990
+ }
991
+ return { data, columns, schema, modelOptions, rowCount, sumRowsTotals };
992
+ });
993
+ }
994
+ function getGenericModel(_a) {
995
+ return __awaiter(this, arguments, void 0, function* ({ model, serverEndPoint, id = '', relatedModel = '', relatedModelId = '', schemas, }) {
996
+ let path = `${model}/${id}`;
997
+ let schemaPath = `${model}/`;
998
+ if (!(0, utils_1.isTmpId)(id) && relatedModel) {
999
+ path += `/${relatedModel}/`;
1000
+ if (relatedModelId) {
1001
+ path += `${relatedModelId}/`;
1002
+ }
1003
+ schemaPath += `${id}/${relatedModel}/`;
1004
+ }
1005
+ else if (id) {
1006
+ path += '/';
1007
+ }
1008
+ const options = yield getSchema(schemaPath, serverEndPoint, schemas);
1009
+ if (!options || axios_1.default.isAxiosError(options)) {
1010
+ return (options || { message: unknownError, isAxiosError: true });
1011
+ }
1012
+ const { schema, modelOptions } = options;
1013
+ const columns = getDataGridColumns(schema);
1014
+ if (!columns) {
1015
+ return {
1016
+ message: `Columns could not be generated for ${model}`,
1017
+ isAxiosError: true,
1018
+ };
1019
+ }
1020
+ let data = {};
1021
+ if (!(0, utils_1.isTmpId)(id) && (!relatedModel || (relatedModel && relatedModelId))) {
1022
+ const response = yield getData({ path, serverEndPoint });
1023
+ if (!axios_1.default.isAxiosError(response)) {
1024
+ data = response;
1025
+ }
1026
+ else {
1027
+ return response;
1028
+ }
1029
+ }
1030
+ return { schema, columns, modelOptions, data };
1031
+ });
1032
+ }
1033
+ const getAllModels = (serverEndPoint) => __awaiter(void 0, void 0, void 0, function* () {
1034
+ if (!serverEndPoint) {
1035
+ return {
1036
+ message: noServerEndPointMessage,
1037
+ isAxiosError: true,
1038
+ };
1039
+ }
1040
+ const data = yield getData({ path: 'endpoints/', serverEndPoint });
1041
+ return axios_1.default.isAxiosError(data) ? [] : data;
1042
+ });
1043
+ exports.getAllModels = getAllModels;
1044
+ const exportExcelData = (_a) => __awaiter(void 0, [_a], void 0, function* ({ model, modelParent, modelParentId, paginationModel, serverEndPoint, }) {
1045
+ var _b;
1046
+ if (!serverEndPoint) {
1047
+ return {
1048
+ message: noServerEndPointMessage,
1049
+ isAxiosError: true,
1050
+ };
1051
+ }
1052
+ const filter = paginationModel.filter;
1053
+ const sort = paginationModel.sort;
1054
+ const newQueryParams = paginationModel.queryParams ? [...paginationModel.queryParams] : [];
1055
+ try {
1056
+ // SERVER-SIDE FILTERING:
1057
+ if (filter) {
1058
+ if (filter.quickFilterValues &&
1059
+ filter.quickFilterValues.length > 0 &&
1060
+ filter.quickFilterValues[0]) {
1061
+ newQueryParams.push(`search=${filter.quickFilterValues[0]}`);
1062
+ }
1063
+ for (const item of filter.items) {
1064
+ if (!item.operator) {
1065
+ continue;
1066
+ }
1067
+ const queryParam = item.value
1068
+ ? `field=${item.field}&operator=${item.operator}&value=${item.value}`
1069
+ : `field=${item.field}&operator=${item.operator}`;
1070
+ newQueryParams.push(queryParam);
1071
+ }
1072
+ }
1073
+ // SERVER-SIDE SORTING:
1074
+ if (sort) {
1075
+ const sortParams = [];
1076
+ for (const item of sort) {
1077
+ sortParams.push(item.sort === 'desc' ? `-${item.field}` : item.field);
1078
+ }
1079
+ newQueryParams.push(`ordering=${sortParams.join(',')}`);
1080
+ }
1081
+ let url = !modelParent || !modelParentId
1082
+ ? `${serverEndPoint.api}/${model}/excel/`
1083
+ : `${serverEndPoint.api}/${modelParent}/${modelParentId}/${model}/excel/`;
1084
+ if (newQueryParams.length > 0) {
1085
+ url += `?${newQueryParams.join('&')}`;
1086
+ }
1087
+ const response = yield axios_1.default.get(url, { responseType: 'blob' });
1088
+ const downloadUrl = window.URL.createObjectURL(new Blob([response.data]));
1089
+ const link = document.createElement('a');
1090
+ link.href = downloadUrl;
1091
+ // Try to get filename from content-disposition header if available, otherwise use model name
1092
+ let filename = `${model}.xlsx`;
1093
+ const disposition = response.headers['content-disposition'];
1094
+ if (disposition && disposition.indexOf('attachment') !== -1) {
1095
+ const filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
1096
+ const matches = filenameRegex.exec(disposition);
1097
+ if (matches != null && matches[1]) {
1098
+ filename = matches[1].replace(/['"]/g, '');
1099
+ }
1100
+ }
1101
+ link.setAttribute('download', filename);
1102
+ document.body.appendChild(link);
1103
+ link.click();
1104
+ (_b = link.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(link);
1105
+ return true;
1106
+ }
1107
+ catch (error) {
1108
+ console.error('Error exporting to excel:', error);
1109
+ if (axios_1.default.isAxiosError(error)) {
1110
+ return error;
1111
+ }
1112
+ return {
1113
+ message: 'Erro desconhecido ao exportar para Excel',
1114
+ isAxiosError: true,
1115
+ };
1116
+ }
1117
+ });
1118
+ exports.exportExcelData = exportExcelData;