@gisce/react-ooui 2.0.0-alpha.61 → 2.0.0-alpha.63

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 (246) hide show
  1. package/dist/react-ooui.es.js +5 -2
  2. package/dist/react-ooui.es.js.map +1 -1
  3. package/dist/widgets/views/Tree/treeComponents.d.ts.map +1 -1
  4. package/package.json +6 -8
  5. package/src/ConnectionProvider.ts +0 -16
  6. package/src/__tests__/iconMapper.test.ts +0 -30
  7. package/src/__tests__/searchFilterHelper.spec.ts +0 -386
  8. package/src/actionbar/ActionButton.tsx +0 -40
  9. package/src/actionbar/AttachmentsButton.tsx +0 -132
  10. package/src/actionbar/AttachmentsButtonWrapper.tsx +0 -157
  11. package/src/actionbar/ButtonWithBadge.tsx +0 -44
  12. package/src/actionbar/ChangeViewButton.tsx +0 -137
  13. package/src/actionbar/DashboardActionBar.tsx +0 -63
  14. package/src/actionbar/DropdownButton.tsx +0 -124
  15. package/src/actionbar/FormActionBar.tsx +0 -491
  16. package/src/actionbar/GraphActionBar.tsx +0 -67
  17. package/src/actionbar/NewButton.tsx +0 -46
  18. package/src/actionbar/SearchBar.tsx +0 -73
  19. package/src/actionbar/TreeActionBar.tsx +0 -383
  20. package/src/common/ButtonWithTooltip.tsx +0 -18
  21. package/src/common/DatePicker.tsx +0 -98
  22. package/src/common/Field.tsx +0 -93
  23. package/src/common/SelectAllRecordsRow.tsx +0 -94
  24. package/src/common/TimePicker.tsx +0 -38
  25. package/src/context/ActionViewContext.tsx +0 -213
  26. package/src/context/ConfigContext.tsx +0 -28
  27. package/src/context/ContentRootContext.tsx +0 -461
  28. package/src/context/DashboardActionContext.tsx +0 -44
  29. package/src/context/FormContext.tsx +0 -79
  30. package/src/context/FormModalContext.tsx +0 -28
  31. package/src/context/LocaleContext.tsx +0 -50
  32. package/src/context/One2manyContext.tsx +0 -45
  33. package/src/context/TabManagerContext.tsx +0 -117
  34. package/src/helpers/containerHelper.ts +0 -145
  35. package/src/helpers/dayjs.ts +0 -21
  36. package/src/helpers/dynamicColumnsHelper.ts +0 -73
  37. package/src/helpers/errorHelper.ts +0 -27
  38. package/src/helpers/filesHelper.ts +0 -41
  39. package/src/helpers/formHelper.ts +0 -301
  40. package/src/helpers/iconMapper.ts +0 -164
  41. package/src/helpers/logInfoHelper.tsx +0 -30
  42. package/src/helpers/one2manyHelper.ts +0 -194
  43. package/src/helpers/searchHelper.ts +0 -196
  44. package/src/helpers/timeHelper.ts +0 -58
  45. package/src/helpers/treeHelper.tsx +0 -226
  46. package/src/helpers/viewHelper.ts +0 -23
  47. package/src/hooks/useEffectDebugger.ts +0 -43
  48. package/src/hooks/useExport.ts +0 -439
  49. package/src/hooks/useFetchViews.ts +0 -0
  50. package/src/hooks/useSearch.ts +0 -434
  51. package/src/hooks/useWindowDimensions.ts +0 -33
  52. package/src/index.ts +0 -168
  53. package/src/locales/ca_ES.tsx +0 -99
  54. package/src/locales/en_US.tsx +0 -96
  55. package/src/locales/es_ES.tsx +0 -101
  56. package/src/stories/Binary.stories.tsx +0 -23
  57. package/src/stories/Boolean.stories.tsx +0 -22
  58. package/src/stories/Button.stories.tsx +0 -130
  59. package/src/stories/Char.stories.tsx +0 -76
  60. package/src/stories/FiberGrid.stories.tsx +0 -109
  61. package/src/stories/Float.stories.tsx +0 -22
  62. package/src/stories/FloatTime.stories.tsx +0 -32
  63. package/src/stories/Image.stories.tsx +0 -25
  64. package/src/stories/Integer.stories.tsx +0 -22
  65. package/src/stories/Label.stories.tsx +0 -100
  66. package/src/stories/Many2one.stories.tsx +0 -31
  67. package/src/stories/One2many.stories.tsx +0 -288
  68. package/src/stories/ProgressBar.stories.tsx +0 -22
  69. package/src/stories/Reference.stories.tsx +0 -43
  70. package/src/stories/Selection.stories.tsx +0 -34
  71. package/src/stories/Separator.stories.tsx +0 -53
  72. package/src/stories/Text.stories.tsx +0 -35
  73. package/src/stories/Time.stories.tsx +0 -31
  74. package/src/stories/Utils.stories.tsx +0 -14
  75. package/src/stories/containers/Group.stories.tsx +0 -84
  76. package/src/stories/containers/NewLine.stories.tsx +0 -52
  77. package/src/stories/containers/Notebook.stories.tsx +0 -188
  78. package/src/stories/custom/Avatar.stories.tsx +0 -22
  79. package/src/stories/custom/ButtonGroup.stories.tsx +0 -74
  80. package/src/stories/custom/CodeEditor.stories.tsx +0 -25
  81. package/src/stories/custom/Comments.stories.tsx +0 -197
  82. package/src/stories/custom/Indicator.stories.tsx +0 -36
  83. package/src/stories/custom/Markdown.stories.tsx +0 -38
  84. package/src/stories/custom/MultiCheckbox.stories.tsx +0 -60
  85. package/src/stories/custom/Radio.stories.tsx +0 -68
  86. package/src/stories/custom/Steps.stories.tsx +0 -43
  87. package/src/stories/custom/Switch.stories.tsx +0 -23
  88. package/src/stories/custom/Tag.stories.tsx +0 -66
  89. package/src/stories/custom/Tags.stories.tsx +0 -74
  90. package/src/stories/dashboard/Dashboard.stories.tsx +0 -23
  91. package/src/stories/dashboard/DashboardGrid.stories.tsx +0 -43
  92. package/src/stories/forms/ActivacioContracteForm.stories.tsx +0 -25
  93. package/src/stories/forms/Attachment.stories.tsx +0 -24
  94. package/src/stories/forms/CUPSForm.stories.tsx +0 -25
  95. package/src/stories/forms/Company.stories.tsx +0 -25
  96. package/src/stories/forms/CrmCaseForm.stories.tsx +0 -25
  97. package/src/stories/forms/Documents.stories.tsx +0 -25
  98. package/src/stories/forms/FormWithGridFiber.stories.tsx +0 -25
  99. package/src/stories/forms/FormWithLinks.stories.tsx +0 -30
  100. package/src/stories/forms/Lead.stories.tsx +0 -25
  101. package/src/stories/forms/ModContractForm.stories.tsx +0 -26
  102. package/src/stories/forms/PartnersForm.stories.tsx +0 -25
  103. package/src/stories/forms/PolissaForm.stories.tsx +0 -25
  104. package/src/stories/forms/PreferencesForm.stories.tsx +0 -691
  105. package/src/stories/forms/Signatures.stories.tsx +0 -25
  106. package/src/stories/forms/Switching.stories.tsx +0 -25
  107. package/src/stories/graphs/GraphIndicator.stories.tsx +0 -20
  108. package/src/stories/graphs/PieGraph.stories.tsx +0 -78
  109. package/src/stories/mocks/index.ts +0 -46
  110. package/src/stories/mocks/mockProvider.ts +0 -189
  111. package/src/stories/mocks/models/activacioContracte.ts +0 -112
  112. package/src/stories/mocks/models/attachment.ts +0 -1326
  113. package/src/stories/mocks/models/butlleti.ts +0 -296
  114. package/src/stories/mocks/models/company.ts +0 -135
  115. package/src/stories/mocks/models/crm_case.ts +0 -595
  116. package/src/stories/mocks/models/cups.ts +0 -937
  117. package/src/stories/mocks/models/document.ts +0 -223
  118. package/src/stories/mocks/models/factura.ts +0 -2713
  119. package/src/stories/mocks/models/form_with_gridfiber.ts +0 -141
  120. package/src/stories/mocks/models/hist_autoconsum.ts +0 -146
  121. package/src/stories/mocks/models/lead.ts +0 -2101
  122. package/src/stories/mocks/models/modcontractual.ts +0 -952
  123. package/src/stories/mocks/models/partner.ts +0 -1340
  124. package/src/stories/mocks/models/polissa.ts +0 -3127
  125. package/src/stories/mocks/models/res_partner_category.ts +0 -15
  126. package/src/stories/mocks/models/signatura.ts +0 -558
  127. package/src/stories/mocks/models/switching.ts +0 -767
  128. package/src/stories/modals/FormModal.stories.tsx +0 -36
  129. package/src/stories/modals/SearchModal.stories.tsx +0 -37
  130. package/src/stories/trees/FacturesTree.stories.tsx +0 -16
  131. package/src/stories/ui/ActionBar.stories.tsx +0 -21
  132. package/src/stories/ui/FavouriteButton.stories.tsx +0 -16
  133. package/src/stories/ui/GoToResourceModal.stories.tsx +0 -25
  134. package/src/stories/views/ActionView.stories.tsx +0 -28
  135. package/src/stories/views/SearchTree.stories.tsx +0 -1064
  136. package/src/stories/views/Tab.stories.tsx +0 -93
  137. package/src/stories/views/TabsAndContent.stories.tsx +0 -88
  138. package/src/stories/views/Tree.stories.jsx +0 -178
  139. package/src/stories/views/searchFilter/DateRangePicker.stories.tsx +0 -22
  140. package/src/stories/views/searchFilter/DateTimeRangePicker.stories.tsx +0 -23
  141. package/src/stories/views/searchFilter/PairFields.stories.tsx +0 -23
  142. package/src/stories/views/searchFilter/SearchFilter.stories.tsx +0 -165
  143. package/src/stories/views/searchFilter/examples/PartnersSearchFilter.stories.tsx +0 -409
  144. package/src/types/index.ts +0 -392
  145. package/src/ui/ActionErrorDialog.tsx +0 -24
  146. package/src/ui/ConfirmDialog.tsx +0 -28
  147. package/src/ui/ErrorAlert.tsx +0 -37
  148. package/src/ui/FavouriteButton.tsx +0 -271
  149. package/src/ui/FormErrorsDialog.tsx +0 -17
  150. package/src/ui/GenericErrorDialog.tsx +0 -16
  151. package/src/ui/GoToResourceModal.tsx +0 -76
  152. package/src/ui/InfoDialog.tsx +0 -13
  153. package/src/ui/RefreshItemDialog.tsx +0 -29
  154. package/src/ui/RemoveItemDialog.tsx +0 -20
  155. package/src/ui/TitleHeader.tsx +0 -117
  156. package/src/ui/UnlinkItemDialog.tsx +0 -20
  157. package/src/ui/UnsavedChangesDialog.tsx +0 -29
  158. package/src/ui/WarningDialog.tsx +0 -17
  159. package/src/views/ActionView.tsx +0 -526
  160. package/src/views/CurrentTabContent.tsx +0 -21
  161. package/src/views/RootView.tsx +0 -509
  162. package/src/views/TabContent.tsx +0 -31
  163. package/src/views/TabSelector.tsx +0 -31
  164. package/src/views/Welcome.tsx +0 -18
  165. package/src/views/actionViews/DashboardActionView.tsx +0 -52
  166. package/src/views/actionViews/FormActionView.tsx +0 -70
  167. package/src/views/actionViews/GraphActionView.tsx +0 -152
  168. package/src/views/actionViews/TreeActionView.tsx +0 -87
  169. package/src/views/tabs/Tab.tsx +0 -82
  170. package/src/widgets/WidgetFactory.tsx +0 -142
  171. package/src/widgets/base/Binary.tsx +0 -145
  172. package/src/widgets/base/Boolean.tsx +0 -44
  173. package/src/widgets/base/Button.tsx +0 -77
  174. package/src/widgets/base/Char.tsx +0 -157
  175. package/src/widgets/base/Date.tsx +0 -12
  176. package/src/widgets/base/DateTime.tsx +0 -12
  177. package/src/widgets/base/Email.tsx +0 -27
  178. package/src/widgets/base/Float.tsx +0 -38
  179. package/src/widgets/base/FloatTime.tsx +0 -73
  180. package/src/widgets/base/Image.tsx +0 -120
  181. package/src/widgets/base/Integer.tsx +0 -55
  182. package/src/widgets/base/Label.tsx +0 -56
  183. package/src/widgets/base/LinkInput.tsx +0 -106
  184. package/src/widgets/base/MultiSelection.tsx +0 -90
  185. package/src/widgets/base/ProgressBar.tsx +0 -38
  186. package/src/widgets/base/Reference.tsx +0 -115
  187. package/src/widgets/base/ReferenceTree.tsx +0 -62
  188. package/src/widgets/base/Selection.tsx +0 -71
  189. package/src/widgets/base/Separator.tsx +0 -25
  190. package/src/widgets/base/Text.tsx +0 -162
  191. package/src/widgets/base/Time.tsx +0 -40
  192. package/src/widgets/base/Url.tsx +0 -26
  193. package/src/widgets/base/many2one/Many2one.tsx +0 -322
  194. package/src/widgets/base/many2one/Many2oneSuffix.tsx +0 -232
  195. package/src/widgets/base/many2one/Many2oneSuffixModal.tsx +0 -42
  196. package/src/widgets/base/many2one/Many2oneTree.tsx +0 -18
  197. package/src/widgets/base/one2many/One2many.tsx +0 -100
  198. package/src/widgets/base/one2many/One2manyInput.tsx +0 -724
  199. package/src/widgets/base/one2many/One2manyTopBar.tsx +0 -158
  200. package/src/widgets/containers/Container.tsx +0 -99
  201. package/src/widgets/containers/Group.tsx +0 -37
  202. package/src/widgets/containers/Notebook.tsx +0 -52
  203. package/src/widgets/custom/Avatar.tsx +0 -40
  204. package/src/widgets/custom/ButtonGroup.tsx +0 -169
  205. package/src/widgets/custom/CodeEditor.tsx +0 -32
  206. package/src/widgets/custom/Comments.tsx +0 -147
  207. package/src/widgets/custom/FiberGrid.tsx +0 -48
  208. package/src/widgets/custom/Indicator.tsx +0 -66
  209. package/src/widgets/custom/Markdown.tsx +0 -32
  210. package/src/widgets/custom/MultiCheckbox.tsx +0 -165
  211. package/src/widgets/custom/Radio.tsx +0 -47
  212. package/src/widgets/custom/Steps.tsx +0 -56
  213. package/src/widgets/custom/Switch.tsx +0 -26
  214. package/src/widgets/custom/Tag.tsx +0 -53
  215. package/src/widgets/custom/Tags.tsx +0 -164
  216. package/src/widgets/custom/Timeline.tsx +0 -196
  217. package/src/widgets/modals/ExportModal.tsx +0 -75
  218. package/src/widgets/modals/FormModal.tsx +0 -125
  219. package/src/widgets/modals/SearchModal.tsx +0 -130
  220. package/src/widgets/modals/TranslationModal.tsx +0 -202
  221. package/src/widgets/views/Dashboard/Dashboard.tsx +0 -381
  222. package/src/widgets/views/Dashboard/DashboardForm.tsx +0 -30
  223. package/src/widgets/views/Dashboard/DashboardTree.tsx +0 -238
  224. package/src/widgets/views/Dashboard/dashboardHelper.ts +0 -79
  225. package/src/widgets/views/DashboardGrid/DashboardGrid.tsx +0 -53
  226. package/src/widgets/views/DashboardGrid/DashboardGrid.types.ts +0 -4
  227. package/src/widgets/views/DashboardGrid/DashboardGridItem.tsx +0 -62
  228. package/src/widgets/views/DashboardGrid/DashboardGridItem.types.ts +0 -10
  229. package/src/widgets/views/DashboardGrid/index.ts +0 -4
  230. package/src/widgets/views/Form.tsx +0 -1152
  231. package/src/widgets/views/Graph/Graph.tsx +0 -145
  232. package/src/widgets/views/Graph/GraphChart.tsx +0 -113
  233. package/src/widgets/views/Graph/GraphDefaults.ts +0 -170
  234. package/src/widgets/views/Graph/GraphIndicator.tsx +0 -421
  235. package/src/widgets/views/Graph/useGraphData.tsx +0 -176
  236. package/src/widgets/views/SearchTree.tsx +0 -367
  237. package/src/widgets/views/Tree/Tree.tsx +0 -295
  238. package/src/widgets/views/Tree/index.ts +0 -1
  239. package/src/widgets/views/Tree/treeComponents.tsx +0 -276
  240. package/src/widgets/views/searchFilter/DateRangePicker.tsx +0 -16
  241. package/src/widgets/views/searchFilter/DateTimeRangePicker.tsx +0 -87
  242. package/src/widgets/views/searchFilter/PairFields.tsx +0 -56
  243. package/src/widgets/views/searchFilter/SearchBottomBar.tsx +0 -54
  244. package/src/widgets/views/searchFilter/SearchField.tsx +0 -63
  245. package/src/widgets/views/searchFilter/SearchFilter.tsx +0 -160
  246. package/src/widgets/views/searchFilter/SearchParams.tsx +0 -35
@@ -1,434 +0,0 @@
1
- import { mergeParams } from "@/helpers/searchHelper";
2
- import {
3
- getColorMap,
4
- getStatusMap,
5
- getTableItems,
6
- getTree,
7
- sortResults,
8
- } from "@/helpers/treeHelper";
9
- import { useState, useCallback, useRef } from "react";
10
- import { ConnectionProvider, FormView, TreeView } from "..";
11
-
12
- type UseSearchOpts = {
13
- model: string;
14
- setSearchTreeNameSearch?: (searchString?: string) => void;
15
- setSelectedRowItems?: (value: any[]) => void;
16
- searchParams?: any[];
17
- setSearchParams?: (value: any[]) => void;
18
- setSearchVisible?: (value: boolean) => void;
19
- setTreeIsLoading?: (value: boolean) => void;
20
- nameSearch?: string;
21
- searchNameGetDoneRef?: any;
22
- context?: any;
23
- setActionViewTotalItems?: (totalItems: number) => void;
24
- formView: FormView;
25
- treeView: TreeView;
26
- sorter: any;
27
- setSorter?: (sorter: any) => void;
28
- setCurrentItemIndex?: (value?: number) => void;
29
- setResultsActionView?: (value: any[]) => void;
30
- resultsActionView?: any[];
31
- domain: any;
32
- currentId?: number;
33
- limit?: number;
34
- setLimit?: (value: number) => void;
35
- setSearchValues?: (value: any) => void;
36
- };
37
-
38
- export const DEFAULT_SEARCH_LIMIT = 80;
39
-
40
- export const useSearch = (opts: UseSearchOpts) => {
41
- const {
42
- model,
43
- setSearchTreeNameSearch,
44
- setSelectedRowItems,
45
- setSearchParams,
46
- setSearchVisible,
47
- setTreeIsLoading,
48
- nameSearch,
49
- searchNameGetDoneRef,
50
- context,
51
- setActionViewTotalItems,
52
- treeView,
53
- formView,
54
- sorter,
55
- setSorter,
56
- setCurrentItemIndex,
57
- setResultsActionView,
58
- resultsActionView,
59
- domain,
60
- currentId,
61
- limit,
62
- setLimit,
63
- searchParams = [],
64
- setSearchValues,
65
- } = opts;
66
-
67
- const [tableRefreshing, setTableRefreshing] = useState<boolean>(false);
68
- const [searchFilterLoading, setSearchFilterLoading] =
69
- useState<boolean>(false);
70
- const [searchError, setSearchError] = useState<string>();
71
- const [page, setPage] = useState<number>(1);
72
- const [offset, setOffset] = useState<number>(0);
73
- const [totalItems, setTotalItems] = useState<number>();
74
- const [resultsInternal, setResultsInternal] = useState<any>([]);
75
- const [colorsForResults, setColorsForResults] = useState<any>(undefined);
76
- const [statusForResults, setStatusForResults] = useState<any>(undefined);
77
- const internalLimit = useRef(limit || DEFAULT_SEARCH_LIMIT);
78
-
79
- const originalResults = useRef<any[]>([]);
80
-
81
- const setResults = useCallback((results: any) => {
82
- setResultsActionView?.([...results]);
83
- setResultsInternal([...results]);
84
- }, []);
85
-
86
- const getResults = useCallback(() => {
87
- if (!resultsActionView) {
88
- return resultsInternal;
89
- }
90
- return resultsActionView;
91
- }, [resultsActionView, resultsInternal]);
92
-
93
- const searchByNameSearch = useCallback(async () => {
94
- const searchResults = await ConnectionProvider.getHandler().nameSearch({
95
- model,
96
- payload: nameSearch,
97
- limit: internalLimit.current,
98
- attrs: domain,
99
- context,
100
- });
101
-
102
- setTotalItems(searchResults.length);
103
- setActionViewTotalItems?.(searchResults.length);
104
-
105
- if (searchResults.length > 0) {
106
- const resultsIds = searchResults.map((item: any) => {
107
- return item?.[0];
108
- });
109
-
110
- const { colors, status } = getTree(treeView!);
111
- const attrs: any = {};
112
- if (colors) {
113
- attrs.colors = colors;
114
- }
115
- if (status) {
116
- attrs.status = status;
117
- }
118
-
119
- const resultsWithData =
120
- await ConnectionProvider.getHandler().readEvalUiObjects({
121
- model,
122
- ids: resultsIds,
123
- arch: treeView?.arch!,
124
- fields: treeView!.field_parent
125
- ? { ...treeView!.fields, [treeView!.field_parent]: {} }
126
- : treeView!.fields,
127
- context,
128
- attrs,
129
- });
130
- const resultsData = resultsWithData[0];
131
-
132
- originalResults.current = [...resultsData];
133
-
134
- setColorsForResults(getColorMap(resultsWithData[1]));
135
- setStatusForResults(getStatusMap(resultsWithData[1]));
136
-
137
- const newResultIds = resultsData.map((item: any) => item.id);
138
-
139
- const resultsSorted =
140
- sorter !== undefined
141
- ? sortResults({
142
- resultsToSort: resultsData,
143
- sorter,
144
- fields: { ...treeView!.fields, ...formView!.fields },
145
- })
146
- : [...originalResults.current];
147
-
148
- setResults(resultsSorted);
149
-
150
- if (newResultIds.length > 0) {
151
- setCurrentItemIndex?.(0);
152
- } else {
153
- setCurrentItemIndex?.(undefined);
154
- }
155
- } else {
156
- setResults([]);
157
- setCurrentItemIndex?.(undefined);
158
- }
159
- setTableRefreshing(false);
160
- searchNameGetDoneRef.current = true;
161
- }, [
162
- setResults,
163
- searchNameGetDoneRef,
164
- nameSearch,
165
- model,
166
- context,
167
- domain,
168
- treeView,
169
- formView,
170
- sorter,
171
- setCurrentItemIndex,
172
- setActionViewTotalItems,
173
- ]);
174
-
175
- const searchResults = useCallback(
176
- async (opts?: { params: any; newOffset?: number }) => {
177
- const { params, newOffset } = opts || {};
178
-
179
- const mergedParams = mergeParams(params || searchParams, domain);
180
- const { colors, status } = getTree(treeView!);
181
- const attrs: any = {};
182
- if (colors) {
183
- attrs.colors = colors;
184
- }
185
- if (status) {
186
- attrs.status = status;
187
- }
188
-
189
- const { totalItems, results, attrsEvaluated } =
190
- await ConnectionProvider.getHandler().searchForTree({
191
- params: mergedParams,
192
- limit: internalLimit.current,
193
- offset: newOffset || offset,
194
- model,
195
- fields: treeView!.field_parent
196
- ? { ...treeView!.fields, [treeView!.field_parent]: {} }
197
- : treeView!.fields,
198
- context,
199
- attrs,
200
- });
201
- setColorsForResults(getColorMap(attrsEvaluated));
202
- setStatusForResults(getStatusMap(attrsEvaluated));
203
-
204
- originalResults.current = [...results];
205
-
206
- const resultsSorted =
207
- sorter !== undefined
208
- ? sortResults({
209
- resultsToSort: results,
210
- sorter,
211
- fields: { ...treeView!.fields, ...formView!.fields },
212
- })
213
- : [...originalResults.current];
214
-
215
- setResults(resultsSorted);
216
-
217
- if (resultsActionView && resultsSorted.length > 0) {
218
- const newCurrentItemIndex = resultsSorted.findIndex(
219
- (item) => currentId === item.id,
220
- );
221
-
222
- if (newCurrentItemIndex === -1) {
223
- setCurrentItemIndex?.(0);
224
- } else {
225
- setCurrentItemIndex?.(newCurrentItemIndex);
226
- }
227
- } else {
228
- setCurrentItemIndex?.(undefined);
229
- }
230
- setTableRefreshing(false);
231
-
232
- const totalItemsValue = await totalItems;
233
-
234
- setTotalItems(totalItemsValue);
235
- setActionViewTotalItems?.(totalItemsValue);
236
- },
237
- [
238
- setCurrentItemIndex,
239
- resultsActionView,
240
- setResults,
241
- currentId,
242
- model,
243
- context,
244
- domain,
245
- treeView,
246
- formView,
247
- sorter,
248
- setActionViewTotalItems,
249
- limit,
250
- offset,
251
- searchParams,
252
- ],
253
- );
254
-
255
- const fetchResults = useCallback(
256
- async (opts?: { params: any; newOffset?: number }) => {
257
- try {
258
- setTableRefreshing(true);
259
- setTreeIsLoading?.(true);
260
- if (nameSearch && !searchNameGetDoneRef.current) {
261
- await searchByNameSearch();
262
- } else {
263
- await searchResults(opts);
264
- }
265
- } catch (error) {
266
- setSearchError(error.message);
267
- } finally {
268
- setSelectedRowItems?.([]);
269
- setSearchFilterLoading(false);
270
- setTreeIsLoading?.(false);
271
- }
272
- },
273
- [
274
- context,
275
- currentId,
276
- domain,
277
- formView,
278
- limit,
279
- model,
280
- nameSearch,
281
- offset,
282
- resultsActionView,
283
- searchNameGetDoneRef,
284
- setActionViewTotalItems,
285
- setCurrentItemIndex,
286
- setResults,
287
- setSearchError,
288
- setSearchFilterLoading,
289
- setTableRefreshing,
290
- setTreeIsLoading,
291
- sorter,
292
- treeView,
293
- ],
294
- );
295
-
296
- const changeSort = useCallback(
297
- (newSorter: any) => {
298
- if (JSON.stringify(newSorter) === JSON.stringify(sorter)) return;
299
- setSorter?.(newSorter);
300
- const sortedResults =
301
- newSorter !== undefined
302
- ? sortResults({
303
- resultsToSort: getResults(),
304
- sorter: newSorter,
305
- fields: { ...treeView.fields, ...formView.fields },
306
- })
307
- : [...originalResults.current];
308
- setResults(sortedResults);
309
- },
310
- [setSorter, getResults, treeView, formView, setResults],
311
- );
312
-
313
- const submit = useCallback(
314
- (opts: {
315
- params: any;
316
- limit: number;
317
- offset: number;
318
- searchValues: any;
319
- }) => {
320
- const { params, searchValues, limit: newLimit, offset: newOffset } = opts;
321
-
322
- if (tableRefreshing) return;
323
- setSearchTreeNameSearch?.(undefined);
324
- setSelectedRowItems?.([]);
325
- setSearchValues?.(searchValues);
326
- setSearchParams?.(params);
327
- setSearchVisible?.(false);
328
- setSearchFilterLoading(true);
329
- setSearchError(undefined);
330
- setPage(1);
331
-
332
- if (newLimit) {
333
- internalLimit.current = newLimit;
334
- setLimit?.(newLimit);
335
- }
336
- if (newOffset) setOffset(newOffset);
337
- fetchResults({
338
- params,
339
- newOffset,
340
- });
341
- },
342
- [
343
- tableRefreshing,
344
- setSearchTreeNameSearch,
345
- setSelectedRowItems,
346
- setSearchParams,
347
- setSearchVisible,
348
- setSearchFilterLoading,
349
- setSearchError,
350
- setPage,
351
- setLimit,
352
- setOffset,
353
- fetchResults,
354
- ],
355
- );
356
-
357
- const requestPageChange = useCallback(
358
- (page: number) => {
359
- setTableRefreshing(true);
360
- setPage(page);
361
- setOffset((page - 1) * limit!);
362
- },
363
- [setTableRefreshing, limit, setOffset, setPage],
364
- );
365
-
366
- const clear = useCallback(() => {
367
- if (tableRefreshing) return;
368
- setSearchTreeNameSearch?.(undefined);
369
- setSearchParams?.([]);
370
- setSearchValues?.({});
371
- setSearchError(undefined);
372
- setOffset(0);
373
- setPage(1);
374
- setLimit?.(limit || DEFAULT_SEARCH_LIMIT);
375
- }, [
376
- tableRefreshing,
377
- setSearchTreeNameSearch,
378
- setSearchParams,
379
- setSearchError,
380
- setOffset,
381
- setPage,
382
- setLimit,
383
- limit,
384
- ]);
385
-
386
- const fetchChildrenForRecord = useCallback(
387
- async (record: any) => {
388
- const child_id = record[treeView?.field_parent || "child_id"];
389
-
390
- const children = await ConnectionProvider.getHandler().readObjects({
391
- model,
392
- ids: child_id,
393
- fields: treeView!.field_parent
394
- ? { ...treeView!.fields, [treeView!.field_parent]: {} }
395
- : treeView!.fields,
396
- context,
397
- });
398
-
399
- setResults([...getResults(), ...children]);
400
-
401
- return getTableItems(getTree(treeView!), children);
402
- },
403
- [treeView, model, context, getResults, setResults],
404
- );
405
-
406
- const getAllIds = useCallback(async () => {
407
- return await ConnectionProvider.getHandler().searchAllIds({
408
- params: mergeParams(searchParams, domain),
409
- model,
410
- context,
411
- totalItems,
412
- });
413
- }, [model, context, totalItems, searchParams, domain]);
414
-
415
- return {
416
- submit,
417
- clear,
418
- fetchResults,
419
- tableRefreshing,
420
- searchFilterLoading,
421
- searchError,
422
- page,
423
- offset,
424
- limit,
425
- getResults,
426
- requestPageChange,
427
- changeSort,
428
- fetchChildrenForRecord,
429
- colorsForResults,
430
- statusForResults,
431
- totalItems,
432
- getAllIds,
433
- };
434
- };
@@ -1,33 +0,0 @@
1
- import { useState, useEffect } from "react";
2
-
3
- const MODAL_WIDTH_CONSTANT = 0.7;
4
-
5
- function getWindowDimensions() {
6
- const { innerWidth: width, innerHeight: height } = window;
7
- return {
8
- width,
9
- height,
10
- };
11
- }
12
-
13
- export default function useWindowDimensions() {
14
- const [windowDimensions, setWindowDimensions] = useState(
15
- getWindowDimensions(),
16
- );
17
-
18
- useEffect(() => {
19
- function handleResize() {
20
- setWindowDimensions(getWindowDimensions());
21
- }
22
-
23
- window.addEventListener("resize", handleResize);
24
- return () => window.removeEventListener("resize", handleResize);
25
- }, []);
26
-
27
- return {
28
- modalWidth: windowDimensions.width * MODAL_WIDTH_CONSTANT,
29
- modalHeight: windowDimensions.height,
30
- width: windowDimensions.width,
31
- height: windowDimensions.height,
32
- };
33
- }
package/src/index.ts DELETED
@@ -1,168 +0,0 @@
1
- import { Button } from "@/widgets/base/Button";
2
- import { ButtonGroup } from "./widgets/custom/ButtonGroup";
3
- import { Char } from "@/widgets/base/Char";
4
- import { Selection } from "@/widgets/base/Selection";
5
- import { Boolean } from "@/widgets/base/Boolean";
6
- import { Many2one } from "@/widgets/base/many2one/Many2one";
7
- import { One2many } from "@/widgets/base/one2many/One2many";
8
- import { Tree } from "@/widgets/views/Tree";
9
- import { Float } from "@/widgets/base/Float";
10
- import { ProgressBar } from "@/widgets/base/ProgressBar";
11
- import { FloatTime } from "@/widgets/base/FloatTime";
12
- import { Integer } from "@/widgets/base/Integer";
13
- import Group from "@/widgets/containers/Group";
14
- import Notebook from "@/widgets/containers/Notebook";
15
- import Form from "@/widgets/views/Form";
16
- import Label from "@/widgets/base/Label";
17
- import Text from "@/widgets/base/Text";
18
- import { Separator } from "@/widgets/base/Separator";
19
- import SearchFilter from "@/widgets/views/searchFilter/SearchFilter";
20
- import SearchTree from "@/widgets/views/SearchTree";
21
- import { FormModal } from "@/widgets/modals/FormModal";
22
- import { ExportModal } from "@/widgets/modals/ExportModal";
23
- import { SearchModal } from "@/widgets/modals/SearchModal";
24
- import Date from "@/widgets/base/Date";
25
- import DateTime from "@/widgets/base/DateTime";
26
- import Time from "@/widgets/base/Time";
27
- import type {
28
- One2manyValue,
29
- One2manyItem,
30
- } from "@/widgets/base/one2many/One2manyInput";
31
- import { Reference } from "@/widgets/base/Reference";
32
- import { Binary } from "@/widgets/base/Binary";
33
- import iconMapper from "@/helpers/iconMapper";
34
- import ActionBar from "@/actionbar/FormActionBar";
35
- import { Url } from "@/widgets/base/Url";
36
- import { Email } from "@/widgets/base/Email";
37
- import { Image } from "@/widgets/base/Image";
38
- import showConfirmDialog from "@/ui/ConfirmDialog";
39
- import Dashboard from "@/widgets/views/Dashboard/Dashboard";
40
- import { Tags } from "@/widgets/custom/Tags";
41
- import { Tag } from "@/widgets/custom/Tag";
42
- import { MultiCheckbox } from "./widgets/custom/MultiCheckbox";
43
- import { Markdown } from "@/widgets/custom/Markdown";
44
- import { Radio } from "@/widgets/custom/Radio";
45
- import { Switch } from "@/widgets/custom/Switch";
46
- import { Steps } from "@/widgets/custom/Steps";
47
- import { CodeEditor } from "@/widgets/custom/CodeEditor";
48
- import { CommentsTimelineField } from "@/widgets/custom/Comments";
49
- import {
50
- DashboardGridItem,
51
- DashboardGrid,
52
- } from "@/widgets/views/DashboardGrid";
53
- import { GraphIndicator } from "@/widgets/views/Graph/GraphIndicator";
54
-
55
- import type {
56
- TreeView,
57
- SearchFields,
58
- FormView,
59
- ConnectionProviderType,
60
- SearchRequest,
61
- SearchResponse,
62
- CreateObjectRequest,
63
- UpdateObjectRequest,
64
- ViewData,
65
- Views,
66
- ExecuteRequest,
67
- ReadObjectsRequest,
68
- DeleteObjectsRequest,
69
- CreateReportRequest,
70
- GetReportRequest,
71
- ExecuteOnChangeRequest,
72
- GetViewRequest,
73
- GetFieldsRequest,
74
- DefaultGetRequest,
75
- ReadEvalUiObjectsRequest,
76
- NameSearchRequest,
77
- } from "@/types";
78
- import ConnectionProvider from "@/ConnectionProvider";
79
- import RootView from "./views/RootView";
80
- import TabSelector from "./views/TabSelector";
81
- import CurrentTabContent from "./views/CurrentTabContent";
82
- import ContentRootProvider from "./context/ContentRootContext";
83
- import FavouriteButton from "./ui/FavouriteButton";
84
- import { ConfigContext } from "./context/ConfigContext";
85
- import Tab from "./views/tabs/Tab";
86
- import ActionView from "./views/ActionView";
87
-
88
- export {
89
- Button,
90
- ButtonGroup,
91
- Char,
92
- Selection,
93
- Boolean,
94
- Many2one,
95
- Tree,
96
- Group,
97
- SearchFilter,
98
- Form,
99
- Notebook,
100
- Float,
101
- FloatTime,
102
- Integer,
103
- Label,
104
- Text,
105
- TreeView,
106
- FormView,
107
- SearchFields,
108
- Separator,
109
- SearchTree,
110
- SearchRequest,
111
- SearchResponse,
112
- CreateObjectRequest,
113
- UpdateObjectRequest,
114
- ConnectionProvider,
115
- ConnectionProviderType,
116
- ViewData,
117
- Views,
118
- ExecuteRequest,
119
- ReadObjectsRequest,
120
- ReadEvalUiObjectsRequest,
121
- DeleteObjectsRequest,
122
- FormModal,
123
- SearchModal,
124
- One2many,
125
- One2manyItem,
126
- One2manyValue,
127
- Date,
128
- DateTime,
129
- Time,
130
- Reference,
131
- Binary,
132
- iconMapper,
133
- CreateReportRequest,
134
- GetReportRequest,
135
- ExecuteOnChangeRequest,
136
- ActionBar,
137
- GetViewRequest,
138
- GetFieldsRequest,
139
- DefaultGetRequest,
140
- RootView,
141
- TabSelector,
142
- CurrentTabContent,
143
- Url,
144
- Email,
145
- Image,
146
- ContentRootProvider,
147
- showConfirmDialog,
148
- NameSearchRequest,
149
- ProgressBar,
150
- FavouriteButton,
151
- Dashboard,
152
- GraphIndicator,
153
- DashboardGridItem,
154
- DashboardGrid,
155
- Tags,
156
- Tag,
157
- MultiCheckbox,
158
- Markdown,
159
- Radio,
160
- Switch,
161
- Steps,
162
- CodeEditor,
163
- CommentsTimelineField,
164
- ExportModal,
165
- ConfigContext,
166
- Tab,
167
- ActionView,
168
- };