@headless-adminapp/app 0.0.17-alpha.8 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/app/AppProvider.d.ts +0 -3
  2. package/app/AppProvider.js +10 -33
  3. package/app/AuthWrapper.d.ts +1 -1
  4. package/app/AuthWrapper.js +4 -1
  5. package/app/LayoutProvider.d.ts +8 -7
  6. package/app/LayoutProvider.js +28 -2
  7. package/app/context.d.ts +1 -1
  8. package/auth/AuthProvider.d.ts +1 -1
  9. package/auth/AuthProvider.js +30 -23
  10. package/auth/context.d.ts +2 -0
  11. package/auth/hooks/useIsSkipAuthCheck.d.ts +1 -0
  12. package/auth/hooks/useIsSkipAuthCheck.js +8 -0
  13. package/auth/hooks/useLogout.js +1 -1
  14. package/board/BoardColumnDataResolver.d.ts +1 -0
  15. package/board/BoardColumnDataResolver.js +64 -0
  16. package/board/BoardColumnProvider.d.ts +7 -0
  17. package/board/BoardColumnProvider.js +36 -0
  18. package/board/context.d.ts +19 -0
  19. package/board/context.js +6 -0
  20. package/board/hooks/index.d.ts +6 -0
  21. package/board/hooks/index.js +15 -0
  22. package/board/hooks/useBoardColumnConfig.d.ts +2 -0
  23. package/board/hooks/useBoardColumnConfig.js +8 -0
  24. package/board/hooks/useBoardColumnData.d.ts +3 -0
  25. package/board/hooks/useBoardColumnData.js +9 -0
  26. package/board/hooks/useBoardColumnDataState.d.ts +5 -0
  27. package/board/hooks/useBoardColumnDataState.js +9 -0
  28. package/board/hooks/useBoardConfig.d.ts +3 -0
  29. package/board/hooks/useBoardConfig.js +8 -0
  30. package/board/hooks/useBoardSchema.d.ts +2 -0
  31. package/board/hooks/useBoardSchema.js +7 -0
  32. package/board/hooks/useSearchText.d.ts +1 -0
  33. package/board/hooks/useSearchText.js +14 -0
  34. package/board/types.d.ts +47 -0
  35. package/board/utils.d.ts +3 -0
  36. package/board/utils.js +6 -0
  37. package/builders/CommandBuilder/DefaultCommandBuilder.d.ts +15 -6
  38. package/builders/CommandBuilder/DefaultCommandBuilder.js +42 -20
  39. package/builders/CommandBuilder/FormCommandBuilder.d.ts +14 -13
  40. package/builders/CommandBuilder/FormCommandBuilder.js +66 -52
  41. package/builders/CommandBuilder/SubgridCommandBuilder.d.ts +8 -27
  42. package/builders/CommandBuilder/SubgridCommandBuilder.js +115 -57
  43. package/builders/CommandBuilder/ViewCommandBuilder.js +32 -52
  44. package/builders/CommandBuilder/utils.js +1 -1
  45. package/builders/DefineFormExperience.d.ts +27 -0
  46. package/builders/DefineFormExperience.js +99 -0
  47. package/builders/DefineViewExperience.d.ts +13 -0
  48. package/builders/DefineViewExperience.js +33 -0
  49. package/builders/SchemaExperienceBuilder.d.ts +9 -7
  50. package/builders/SchemaExperienceBuilder.js +62 -40
  51. package/builders/utils.js +30 -44
  52. package/calendar/baseEventAttributes.d.ts +35 -0
  53. package/calendar/baseEventAttributes.js +38 -0
  54. package/calendar/context.d.ts +6 -0
  55. package/calendar/context.js +5 -0
  56. package/calendar/hooks/index.d.ts +1 -0
  57. package/{appearance → calendar}/hooks/index.js +1 -1
  58. package/calendar/hooks/useConfig.d.ts +3 -0
  59. package/calendar/hooks/useConfig.js +8 -0
  60. package/calendar/types.d.ts +41 -0
  61. package/calendar/types.js +2 -0
  62. package/calendar/utils.d.ts +3 -0
  63. package/calendar/utils.js +6 -0
  64. package/command/hooks/useBaseCommandHandlerContext.js +15 -6
  65. package/command/hooks/useCommands.js +1 -1
  66. package/command/utils/index.js +34 -9
  67. package/components/ScrollView/index.d.ts +1 -1
  68. package/components/ScrollView/index.js +2 -2
  69. package/components/ScrollbarWithMoreDataRequest/index.d.ts +9 -0
  70. package/components/ScrollbarWithMoreDataRequest/index.js +32 -0
  71. package/dataform/DataFormProvider/CustomHookExecuter.d.ts +5 -0
  72. package/dataform/DataFormProvider/CustomHookExecuter.js +14 -0
  73. package/dataform/DataFormProvider/DataResolver.d.ts +6 -4
  74. package/dataform/DataFormProvider/DataResolver.js +11 -94
  75. package/dataform/DataFormProvider/InitialValueResolver.js +3 -2
  76. package/dataform/DataFormProvider/ReadonlyInfoResolver.js +2 -3
  77. package/dataform/DataFormProvider/getRecord.d.ts +3 -0
  78. package/dataform/DataFormProvider/getRecord.js +56 -0
  79. package/dataform/DataFormProvider/index.d.ts +4 -0
  80. package/dataform/DataFormProvider/index.js +34 -12
  81. package/dataform/DataFormProvider/types.d.ts +13 -0
  82. package/dataform/DataFormProvider/types.js +2 -0
  83. package/dataform/DataFormProvider/utils.d.ts +23 -0
  84. package/dataform/DataFormProvider/utils.js +105 -0
  85. package/dataform/FormManager.d.ts +57 -0
  86. package/dataform/FormManager.js +247 -0
  87. package/dataform/constants.d.ts +1 -0
  88. package/dataform/constants.js +4 -0
  89. package/dataform/context.d.ts +26 -1
  90. package/dataform/hooks/index.d.ts +11 -0
  91. package/dataform/hooks/index.js +11 -0
  92. package/dataform/hooks/useContextKey.d.ts +1 -0
  93. package/dataform/hooks/useContextKey.js +8 -0
  94. package/dataform/hooks/useDisabledControlsManager.d.ts +6 -0
  95. package/dataform/hooks/useDisabledControlsManager.js +46 -0
  96. package/dataform/hooks/useEventManager.d.ts +1 -0
  97. package/dataform/hooks/useEventManager.js +8 -0
  98. package/dataform/hooks/useFormManager.d.ts +2 -0
  99. package/dataform/hooks/useFormManager.js +13 -0
  100. package/dataform/hooks/useFormNotifications.js +2 -2
  101. package/dataform/hooks/useFormSave.js +28 -31
  102. package/dataform/hooks/useHiddenControlsManager.d.ts +7 -0
  103. package/dataform/hooks/useHiddenControlsManager.js +50 -0
  104. package/dataform/hooks/useIsControlDisabled.d.ts +1 -0
  105. package/dataform/hooks/useIsControlDisabled.js +27 -0
  106. package/dataform/hooks/useIsControlHiddenByAttributeName.d.ts +1 -0
  107. package/dataform/hooks/useIsControlHiddenByAttributeName.js +17 -0
  108. package/dataform/hooks/useIsControlHiddenByKey.d.ts +1 -0
  109. package/dataform/hooks/useIsControlHiddenByKey.js +17 -0
  110. package/dataform/hooks/useIsFieldRequired.d.ts +1 -0
  111. package/dataform/hooks/useIsFieldRequired.js +25 -0
  112. package/dataform/hooks/useLoadFormGridPage.js +8 -17
  113. package/dataform/hooks/useMainFormCommands.d.ts +1 -12
  114. package/dataform/hooks/useMainFormCommands.js +13 -3
  115. package/dataform/hooks/useOnFieldValueChangeListener.d.ts +1 -0
  116. package/dataform/hooks/useOnFieldValueChangeListener.js +30 -0
  117. package/dataform/hooks/useProcessFlowSteps.d.ts +1 -0
  118. package/dataform/hooks/useProcessFlowSteps.js +45 -0
  119. package/dataform/hooks/useRecordTitle.d.ts +3 -1
  120. package/dataform/hooks/useRecordTitle.js +12 -5
  121. package/dataform/hooks/useRequiredFieldManager.d.ts +6 -0
  122. package/dataform/hooks/useRequiredFieldManager.js +49 -0
  123. package/dataform/test.d.ts +57 -0
  124. package/dataform/test.js +247 -0
  125. package/dataform/utils/defaultParameters.d.ts +6 -0
  126. package/dataform/utils/defaultParameters.js +54 -0
  127. package/dataform/utils/index.d.ts +6 -24
  128. package/dataform/utils/index.js +164 -190
  129. package/dataform/utils/saveRecord.d.ts +27 -0
  130. package/dataform/utils/saveRecord.js +163 -0
  131. package/datagrid/DataGridProvider/DataResolver.js +38 -109
  132. package/datagrid/DataGridProvider/index.d.ts +6 -0
  133. package/datagrid/DataGridProvider/index.js +18 -8
  134. package/datagrid/DataGridProvider/transformViewColumns.js +10 -2
  135. package/datagrid/DataGridProvider/utils.js +8 -8
  136. package/datagrid/column-filter/constants.js +38 -3
  137. package/datagrid/column-filter/utils.js +7 -1
  138. package/datagrid/context.d.ts +6 -0
  139. package/datagrid/hooks/useChangeView.js +1 -1
  140. package/datagrid/hooks/useGridColumnFilter.js +4 -1
  141. package/datagrid/hooks/useGridDisabled.d.ts +1 -0
  142. package/datagrid/hooks/useGridDisabled.js +8 -0
  143. package/datagrid/hooks/useLoadMainGridPage.js +1 -1
  144. package/datagrid/hooks/useMainGridCommands.js +23 -9
  145. package/datagrid/hooks/useOpenRecord.js +2 -2
  146. package/datagrid/hooks/useSubGridCommands.js +23 -45
  147. package/defaults.d.ts +2 -0
  148. package/defaults.js +5 -0
  149. package/dialog/hooks/useCloseDialog.js +17 -15
  150. package/dialog/hooks/useOpenAlertDialog.js +8 -3
  151. package/dialog/hooks/useOpenConfirmDialog.js +10 -4
  152. package/dialog/hooks/useOpenDialog.js +7 -5
  153. package/dialog/hooks/useOpenErrorDialog.js +8 -3
  154. package/dialog/hooks/useOpenPromptDialog.js +10 -4
  155. package/form/FormValidationStringContext.d.ts +1 -0
  156. package/form/FormValidationStringContext.js +1 -0
  157. package/hooks/index.d.ts +1 -0
  158. package/hooks/index.js +3 -0
  159. package/hooks/useDebouncedValue.js +0 -1
  160. package/hooks/useElementLayout.js +1 -1
  161. package/hooks/useIsMobile.js +0 -1
  162. package/hooks/useItemsWithKey.d.ts +7 -0
  163. package/hooks/useItemsWithKey.js +13 -0
  164. package/hooks/useStorageState.js +1 -2
  165. package/hooks/useSystemColorScheme.d.ts +1 -1
  166. package/hooks/useSystemColorScheme.js +0 -1
  167. package/insights/InsightsProvider.d.ts +8 -0
  168. package/insights/InsightsProvider.js +27 -0
  169. package/locale/LocaleProvider.d.ts +2 -1
  170. package/locale/LocaleProvider.js +3 -3
  171. package/locale/index.d.ts +1 -0
  172. package/locale/index.js +1 -0
  173. package/locale/useCurrencySymbol.d.ts +1 -0
  174. package/locale/useCurrencySymbol.js +12 -0
  175. package/locale/utils.js +4 -2
  176. package/metadata/MetadataProvider.d.ts +8 -4
  177. package/metadata/MetadataProvider.js +23 -17
  178. package/metadata/context.d.ts +3 -2
  179. package/metadata/hooks/index.d.ts +1 -1
  180. package/metadata/hooks/index.js +1 -1
  181. package/metadata/hooks/useAppExperience.d.ts +1 -0
  182. package/metadata/hooks/useAppExperience.js +8 -0
  183. package/metadata/hooks/useAppStore.d.ts +1 -1
  184. package/metadata/hooks/useAppStore.js +3 -3
  185. package/metadata/hooks/useExperienceView.js +2 -11
  186. package/metadata/hooks/useExperienceViewCommands.d.ts +1 -1
  187. package/metadata/hooks/useExperienceViewCommands.js +5 -14
  188. package/metadata/hooks/useExperienceViewLookup.js +2 -11
  189. package/metadata/hooks/useExperienceViewSubgridCommands.d.ts +1 -1
  190. package/metadata/hooks/useExperienceViewSubgridCommands.js +5 -14
  191. package/metadata/hooks/useMetadata.d.ts +11 -10
  192. package/metadata/hooks/useMetadata.js +4 -16
  193. package/metadata/hooks/useSchema.d.ts +1 -1
  194. package/metadata/hooks/useSchema.js +3 -0
  195. package/mutable/context.d.ts +3 -0
  196. package/mutable/context.js +8 -0
  197. package/mutable/utils.js +5 -12
  198. package/navigation/hooks/useOpenForm.js +4 -0
  199. package/package.json +6 -10
  200. package/providers/PageEntityFormProvider/index.d.ts +5 -1
  201. package/providers/PageEntityFormProvider/index.js +2 -2
  202. package/recordset/hooks/useRecordSetResult.js +4 -14
  203. package/route/RouteProvider.d.ts +2 -2
  204. package/route/RouteProvider.js +4 -1
  205. package/store/ClientAppStore.js +7 -20
  206. package/store/ComponentStore.d.ts +1 -1
  207. package/store/ComponentStore.js +6 -12
  208. package/store/EventManager.d.ts +2 -2
  209. package/store/EventManager.js +13 -29
  210. package/store/SchemaExperienceStore.js +179 -215
  211. package/store/index.d.ts +0 -1
  212. package/store/index.js +0 -1
  213. package/toast-notification/hooks/useCloseToastNotification.js +17 -15
  214. package/toast-notification/hooks/useOpenToastNotification.js +7 -5
  215. package/transport/InMemoryDataService/index.js +54 -77
  216. package/transport/RestDataService/index.d.ts +3 -3
  217. package/transport/RestDataService/index.js +68 -91
  218. package/transport/context.d.ts +2 -1
  219. package/transport/context.js +7 -1
  220. package/transport/hooks/index.d.ts +1 -0
  221. package/transport/hooks/index.js +1 -0
  222. package/transport/hooks/useFileService.d.ts +1 -0
  223. package/transport/hooks/useFileService.js +9 -0
  224. package/transport/hooks/useRetriveRecords.d.ts +33 -0
  225. package/transport/hooks/useRetriveRecords.js +110 -0
  226. package/utils/calculateColumnWidths.js +1 -1
  227. package/utils/color.d.ts +1 -0
  228. package/utils/color.js +14 -0
  229. package/utils/getAttributeFormattedValue.d.ts +4 -1
  230. package/utils/getAttributeFormattedValue.js +109 -54
  231. package/utils/phone.d.ts +13 -0
  232. package/utils/phone.js +33 -0
  233. package/appearance/context.d.ts +0 -7
  234. package/appearance/context.js +0 -5
  235. package/appearance/hooks/index.d.ts +0 -1
  236. package/appearance/hooks/useAppearanceContext.d.ts +0 -1
  237. package/appearance/hooks/useAppearanceContext.js +0 -12
  238. package/appearance/index.d.ts +0 -2
  239. package/appearance/index.js +0 -20
  240. package/builders/CommandBuilder.d.ts +0 -176
  241. package/builders/CommandBuilder.js +0 -567
  242. package/locale/types.d.ts +0 -2
  243. /package/{locale → board}/types.js +0 -0
@@ -1,13 +1,4 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.SchemaExperienceStore = void 0;
13
4
  exports.getDefaultCardView = getDefaultCardView;
@@ -17,9 +8,10 @@ function getDefaultCardView(schema) {
17
8
  };
18
9
  }
19
10
  class SchemaExperienceStore {
11
+ options;
12
+ experiences = {};
20
13
  constructor(options) {
21
14
  this.options = options;
22
- this.experiences = {};
23
15
  }
24
16
  register(experience) {
25
17
  for (const view of Object.values(experience.views)) {
@@ -35,209 +27,183 @@ class SchemaExperienceStore {
35
27
  }
36
28
  this.experiences[experience.logicalName] = experience;
37
29
  }
38
- getExperience(logicalName) {
39
- return __awaiter(this, void 0, void 0, function* () {
40
- const experience = this.experiences[logicalName];
41
- if (!experience) {
42
- throw new Error(`Experience for ${logicalName} not found`);
43
- }
44
- return experience;
45
- });
46
- }
47
- getPublicViewLookup(logicalName, viewIds) {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- const experience = yield this.getExperience(logicalName);
50
- let views = experience.views;
51
- if (viewIds === null || viewIds === void 0 ? void 0 : viewIds.length) {
52
- views = views.filter((view) => viewIds.includes(view.id));
53
- }
54
- if (!views.length) {
55
- views = experience.views.filter((x) => x.id === experience.defaultViewId);
56
- }
57
- return views.map((view) => ({
58
- id: view.id,
59
- name: view.name,
60
- localizedNames: view.localizedNames,
61
- }));
62
- });
63
- }
64
- getAssociatedViewLookup(logicalName, viewIds) {
65
- return __awaiter(this, void 0, void 0, function* () {
66
- const experience = yield this.getExperience(logicalName);
67
- let associatedViews = experience.associatedViews;
68
- if (viewIds === null || viewIds === void 0 ? void 0 : viewIds.length) {
69
- associatedViews = associatedViews.filter((view) => viewIds.includes(view.id));
70
- }
71
- if (!associatedViews.length) {
72
- associatedViews = experience.associatedViews.filter((x) => x.id === experience.defaultAssociatedViewId);
73
- }
74
- return associatedViews.map((view) => ({
75
- id: view.id,
76
- name: view.name,
77
- localizedNames: view.localizedNames,
78
- }));
79
- });
80
- }
81
- getPublicView(logicalName, viewId, viewIds) {
82
- return __awaiter(this, void 0, void 0, function* () {
83
- const experience = yield this.getExperience(logicalName);
84
- const availableViewLookup = yield this.getPublicViewLookup(logicalName, viewIds);
85
- let validViewIds = availableViewLookup.map((x) => x.id);
86
- if (!validViewIds.length) {
87
- validViewIds = [experience.defaultViewId];
88
- }
89
- if (!viewId) {
90
- viewId = experience.defaultViewId;
91
- }
92
- if (!validViewIds.includes(viewId)) {
93
- viewId = validViewIds[0];
94
- }
95
- let view = experience.views.find((v) => v.id === viewId);
96
- if (!view) {
97
- throw new Error(`View ${viewId} not found`);
98
- }
99
- let viewExperience = view.experience;
100
- if (typeof viewExperience === 'function') {
101
- viewExperience = yield viewExperience();
102
- }
103
- if (!viewExperience.card) {
104
- viewExperience.card = getDefaultCardView(this.options.schemaStore.getSchema(logicalName));
105
- }
106
- return {
107
- id: view.id,
108
- name: view.name,
109
- logicalName: view.logicalName,
110
- localizedNames: view.localizedNames,
111
- experience: viewExperience,
112
- };
113
- });
114
- }
115
- getAssociatedView(logicalName, viewId, viewIds) {
116
- return __awaiter(this, void 0, void 0, function* () {
117
- const experience = yield this.getExperience(logicalName);
118
- const availableViewLookup = yield this.getAssociatedViewLookup(logicalName, viewIds);
119
- let validViewIds = availableViewLookup.map((x) => x.id);
120
- if (!validViewIds.length) {
121
- validViewIds = [experience.defaultViewId];
122
- }
123
- if (!viewId) {
124
- viewId = experience.defaultAssociatedViewId;
125
- }
126
- if (!validViewIds.includes(viewId)) {
127
- viewId = validViewIds[0];
128
- }
129
- let view = experience.associatedViews.find((v) => v.id === viewId);
130
- if (!view) {
131
- throw new Error(`View ${viewId} not found`);
132
- }
133
- let viewExperience = view.experience;
134
- if (typeof viewExperience === 'function') {
135
- viewExperience = yield viewExperience();
136
- }
137
- if (!viewExperience.card) {
138
- viewExperience.card = getDefaultCardView(this.options.schemaStore.getSchema(logicalName));
139
- }
140
- return {
141
- id: view.id,
142
- name: view.name,
143
- logicalName: view.logicalName,
144
- localizedNames: view.localizedNames,
145
- experience: viewExperience,
146
- };
147
- });
148
- }
149
- getViewLookupV2(logicalName, viewId) {
150
- return __awaiter(this, void 0, void 0, function* () {
151
- const experience = yield this.getExperience(logicalName);
152
- if (!viewId) {
153
- viewId = experience.defaultViewId;
154
- }
155
- const view = experience.lookups.find((v) => v.id === viewId);
156
- if (!view) {
157
- throw new Error(`Lookup ${viewId} not found`);
158
- }
159
- let viewExperience = view.experience;
160
- if (typeof viewExperience === 'function') {
161
- viewExperience = yield viewExperience();
162
- }
163
- return {
164
- id: view.id,
165
- name: view.name,
166
- logicalName: view.logicalName,
167
- experience: viewExperience,
168
- };
169
- });
170
- }
171
- getDefaultViewId(logicalName) {
172
- return __awaiter(this, void 0, void 0, function* () {
173
- const experience = yield this.getExperience(logicalName);
174
- return experience.defaultViewId;
175
- });
30
+ async getExperience(logicalName) {
31
+ const experience = this.experiences[logicalName];
32
+ if (!experience) {
33
+ throw new Error(`Experience for ${logicalName} not found`);
34
+ }
35
+ return experience;
176
36
  }
177
- getDefaultViewLookupId(logicalName) {
178
- return __awaiter(this, void 0, void 0, function* () {
179
- const experience = yield this.getExperience(logicalName);
180
- return experience.defaultLookupId;
181
- });
37
+ async getPublicViewLookup(logicalName, viewIds) {
38
+ const experience = await this.getExperience(logicalName);
39
+ let views = experience.views;
40
+ if (viewIds?.length) {
41
+ views = views.filter((view) => viewIds.includes(view.id));
42
+ }
43
+ if (!views.length) {
44
+ views = experience.views.filter((x) => x.id === experience.defaultViewId);
45
+ }
46
+ return views.map((view) => ({
47
+ id: view.id,
48
+ name: view.name,
49
+ localizedNames: view.localizedNames,
50
+ }));
182
51
  }
183
- getForm(logicalName, formId) {
184
- return __awaiter(this, void 0, void 0, function* () {
185
- const experience = yield this.getExperience(logicalName);
186
- if (!formId) {
187
- formId = experience.defaultFormId;
188
- }
189
- const form = experience.forms.find((f) => f.id === formId);
190
- if (!form) {
191
- throw new Error(`Form ${formId} not found`);
192
- }
193
- let formExperience = form.experience;
194
- if (typeof formExperience === 'function') {
195
- formExperience = yield formExperience();
196
- }
197
- return {
198
- id: form.id,
199
- name: form.name,
200
- logicalName: form.logicalName,
201
- experience: formExperience,
202
- };
203
- });
52
+ async getAssociatedViewLookup(logicalName, viewIds) {
53
+ const experience = await this.getExperience(logicalName);
54
+ let associatedViews = experience.associatedViews;
55
+ if (viewIds?.length) {
56
+ associatedViews = associatedViews.filter((view) => viewIds.includes(view.id));
57
+ }
58
+ if (!associatedViews.length) {
59
+ associatedViews = experience.associatedViews.filter((x) => x.id === experience.defaultAssociatedViewId);
60
+ }
61
+ return associatedViews.map((view) => ({
62
+ id: view.id,
63
+ name: view.name,
64
+ localizedNames: view.localizedNames,
65
+ }));
204
66
  }
205
- getQuickCreateForm(logicalName, formId) {
206
- return __awaiter(this, void 0, void 0, function* () {
207
- const experience = yield this.getExperience(logicalName);
208
- const form = experience.quickCreateForms.find((f) => f.id === formId);
209
- if (!form) {
210
- throw new Error(`Quick create form ${formId} not found`);
211
- }
212
- let formExperience = form.experience;
213
- if (typeof formExperience === 'function') {
214
- formExperience = yield formExperience();
215
- }
216
- return {
217
- id: form.id,
218
- name: form.name,
219
- logicalName: form.logicalName,
220
- experience: formExperience,
221
- };
222
- });
67
+ async getPublicView(logicalName, viewId, viewIds) {
68
+ const experience = await this.getExperience(logicalName);
69
+ const availableViewLookup = await this.getPublicViewLookup(logicalName, viewIds);
70
+ let validViewIds = availableViewLookup.map((x) => x.id);
71
+ if (!validViewIds.length) {
72
+ validViewIds = [experience.defaultViewId];
73
+ }
74
+ if (!viewId) {
75
+ viewId = experience.defaultViewId;
76
+ }
77
+ if (!validViewIds.includes(viewId)) {
78
+ viewId = validViewIds[0];
79
+ }
80
+ let view = experience.views.find((v) => v.id === viewId);
81
+ if (!view) {
82
+ throw new Error(`View ${viewId} not found`);
83
+ }
84
+ let viewExperience = view.experience;
85
+ if (typeof viewExperience === 'function') {
86
+ viewExperience = await viewExperience();
87
+ }
88
+ if (!viewExperience.card) {
89
+ viewExperience.card = getDefaultCardView(this.options.schemaStore.getSchema(logicalName));
90
+ }
91
+ return {
92
+ id: view.id,
93
+ name: view.name,
94
+ logicalName: view.logicalName,
95
+ localizedNames: view.localizedNames,
96
+ experience: viewExperience,
97
+ };
98
+ }
99
+ async getAssociatedView(logicalName, viewId, viewIds) {
100
+ const experience = await this.getExperience(logicalName);
101
+ const availableViewLookup = await this.getAssociatedViewLookup(logicalName, viewIds);
102
+ let validViewIds = availableViewLookup.map((x) => x.id);
103
+ if (!validViewIds.length) {
104
+ validViewIds = [experience.defaultViewId];
105
+ }
106
+ if (!viewId) {
107
+ viewId = experience.defaultAssociatedViewId;
108
+ }
109
+ if (!validViewIds.includes(viewId)) {
110
+ viewId = validViewIds[0];
111
+ }
112
+ let view = experience.associatedViews.find((v) => v.id === viewId);
113
+ if (!view) {
114
+ throw new Error(`View ${viewId} not found`);
115
+ }
116
+ let viewExperience = view.experience;
117
+ if (typeof viewExperience === 'function') {
118
+ viewExperience = await viewExperience();
119
+ }
120
+ if (!viewExperience.card) {
121
+ viewExperience.card = getDefaultCardView(this.options.schemaStore.getSchema(logicalName));
122
+ }
123
+ return {
124
+ id: view.id,
125
+ name: view.name,
126
+ logicalName: view.logicalName,
127
+ localizedNames: view.localizedNames,
128
+ experience: viewExperience,
129
+ };
130
+ }
131
+ async getViewLookupV2(logicalName, viewId) {
132
+ const experience = await this.getExperience(logicalName);
133
+ if (!viewId) {
134
+ viewId = experience.defaultViewId;
135
+ }
136
+ const view = experience.lookups.find((v) => v.id === viewId);
137
+ if (!view) {
138
+ throw new Error(`Lookup ${viewId} not found`);
139
+ }
140
+ let viewExperience = view.experience;
141
+ if (typeof viewExperience === 'function') {
142
+ viewExperience = await viewExperience();
143
+ }
144
+ return {
145
+ id: view.id,
146
+ name: view.name,
147
+ logicalName: view.logicalName,
148
+ experience: viewExperience,
149
+ };
150
+ }
151
+ async getDefaultViewId(logicalName) {
152
+ const experience = await this.getExperience(logicalName);
153
+ return experience.defaultViewId;
154
+ }
155
+ async getDefaultViewLookupId(logicalName) {
156
+ const experience = await this.getExperience(logicalName);
157
+ return experience.defaultLookupId;
158
+ }
159
+ async getForm(logicalName, formId) {
160
+ const experience = await this.getExperience(logicalName);
161
+ if (!formId) {
162
+ formId = experience.defaultFormId;
163
+ }
164
+ const form = experience.forms.find((f) => f.id === formId);
165
+ if (!form) {
166
+ throw new Error(`Form ${formId} not found`);
167
+ }
168
+ let formExperience = form.experience;
169
+ if (typeof formExperience === 'function') {
170
+ formExperience = await formExperience();
171
+ }
172
+ return {
173
+ id: form.id,
174
+ name: form.name,
175
+ logicalName: form.logicalName,
176
+ experience: formExperience,
177
+ };
178
+ }
179
+ async getQuickCreateForm(logicalName, formId) {
180
+ const experience = await this.getExperience(logicalName);
181
+ const form = experience.quickCreateForms.find((f) => f.id === formId);
182
+ if (!form) {
183
+ throw new Error(`Quick create form ${formId} not found`);
184
+ }
185
+ let formExperience = form.experience;
186
+ if (typeof formExperience === 'function') {
187
+ formExperience = await formExperience();
188
+ }
189
+ return {
190
+ id: form.id,
191
+ name: form.name,
192
+ logicalName: form.logicalName,
193
+ experience: formExperience,
194
+ };
223
195
  }
224
- getViewCommands(logicalName) {
225
- return __awaiter(this, void 0, void 0, function* () {
226
- const experience = yield this.getExperience(logicalName);
227
- return experience.viewCommands;
228
- });
196
+ async getViewCommands(logicalName) {
197
+ const experience = await this.getExperience(logicalName);
198
+ return experience.viewCommands;
229
199
  }
230
- getFormCommands(logicalName) {
231
- return __awaiter(this, void 0, void 0, function* () {
232
- const experience = yield this.getExperience(logicalName);
233
- return experience.formCommands;
234
- });
200
+ async getFormCommands(logicalName) {
201
+ const experience = await this.getExperience(logicalName);
202
+ return experience.formCommands;
235
203
  }
236
- getSubgridCommands(logicalName) {
237
- return __awaiter(this, void 0, void 0, function* () {
238
- const experience = yield this.getExperience(logicalName);
239
- return experience.subgridCommands;
240
- });
204
+ async getSubgridCommands(logicalName) {
205
+ const experience = await this.getExperience(logicalName);
206
+ return experience.subgridCommands;
241
207
  }
242
208
  getSchemaMetadataList() {
243
209
  const schemas = this.options.schemaStore.getAllSchema();
@@ -251,14 +217,12 @@ class SchemaExperienceStore {
251
217
  localizedPluralLabels: schema.localizedPluralLabels,
252
218
  }));
253
219
  }
254
- getExperienceSchemaMetadatList() {
255
- return __awaiter(this, void 0, void 0, function* () {
256
- const schemaMetadatas = this.getSchemaMetadataList();
257
- return schemaMetadatas.map((schemaMetadata) => {
258
- var _a;
259
- return (Object.assign(Object.assign({}, schemaMetadata), { icon: (_a = this.experiences[schemaMetadata.logicalName]) === null || _a === void 0 ? void 0 : _a.icon }));
260
- });
261
- });
220
+ async getExperienceSchemaMetadatList() {
221
+ const schemaMetadatas = this.getSchemaMetadataList();
222
+ return schemaMetadatas.map((schemaMetadata) => ({
223
+ ...schemaMetadata,
224
+ icon: this.experiences[schemaMetadata.logicalName]?.icon,
225
+ }));
262
226
  }
263
227
  }
264
228
  exports.SchemaExperienceStore = SchemaExperienceStore;
package/store/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export * from './ClientAppStore';
2
1
  export * from './ComponentStore';
3
2
  export * from './EventManager';
4
3
  export * from './SchemaExperienceStore';
package/store/index.js CHANGED
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./ClientAppStore"), exports);
18
17
  __exportStar(require("./ComponentStore"), exports);
19
18
  __exportStar(require("./EventManager"), exports);
20
19
  __exportStar(require("./SchemaExperienceStore"), exports);
@@ -4,26 +4,28 @@ exports.useCloseToastNotification = useCloseToastNotification;
4
4
  const react_1 = require("react");
5
5
  const context_1 = require("../../mutable/context");
6
6
  const context_2 = require("../context");
7
+ function markToastNotificationAsClosed(items, id) {
8
+ return items.map((item) => {
9
+ if (item.id === id) {
10
+ return { ...item, isOpen: false };
11
+ }
12
+ return item;
13
+ });
14
+ }
15
+ function excludeToastNotificationItemById(items, id) {
16
+ return items.filter((item) => item.id !== id);
17
+ }
7
18
  function useCloseToastNotification() {
8
19
  const setValue = (0, context_1.useContextSetValue)(context_2.ToastNotificationContext);
9
20
  const closeDialog = (0, react_1.useCallback)((id) => {
10
- setValue((state) => {
11
- return {
12
- items: state.items.map((item) => {
13
- if (item.id === id) {
14
- return Object.assign(Object.assign({}, item), { isOpen: false });
15
- }
16
- return item;
17
- }),
18
- };
19
- });
21
+ setValue((state) => ({
22
+ items: markToastNotificationAsClosed(state.items, id),
23
+ }));
20
24
  // Simulate a delay to show the dialog closing animation
21
25
  setTimeout(() => {
22
- setValue((state) => {
23
- return {
24
- items: state.items.filter((item) => item.id !== id),
25
- };
26
- });
26
+ setValue((state) => ({
27
+ items: excludeToastNotificationItemById(state.items, id),
28
+ }));
27
29
  }, 1000);
28
30
  }, [setValue]);
29
31
  return closeDialog;
@@ -2,22 +2,24 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useOpenToastNotification = useOpenToastNotification;
4
4
  const react_1 = require("react");
5
+ const uuid_1 = require("uuid");
5
6
  const context_1 = require("../../mutable/context");
6
7
  const context_2 = require("../context");
7
8
  const useCloseToastNotification_1 = require("./useCloseToastNotification");
8
- function randomId() {
9
- return Math.random().toString(36).substring(2);
10
- }
11
9
  function useOpenToastNotification() {
12
10
  const setValue = (0, context_1.useContextSetValue)(context_2.ToastNotificationContext);
13
11
  const closeDialog = (0, useCloseToastNotification_1.useCloseToastNotification)();
14
12
  const openToastNotification = (0, react_1.useCallback)((options) => {
15
- const id = randomId();
13
+ const id = (0, uuid_1.v4)();
16
14
  setValue((state) => {
17
15
  return {
18
16
  items: [
19
17
  ...state.items,
20
- Object.assign({ id, isOpen: true }, options),
18
+ {
19
+ id,
20
+ isOpen: true,
21
+ ...options,
22
+ },
21
23
  ],
22
24
  };
23
25
  });