@sankhyalabs/ezui 1.1.4 → 1.1.8

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 (186) hide show
  1. package/README.md +72 -72
  2. package/dist/{ezui/DataUnit-285bec19.js → cjs/DataUnit-28b290cb.js} +382 -369
  3. package/dist/{ezui/index-919090de.js → cjs/RequestMetadata-2cd01e8a.js} +4 -383
  4. package/dist/cjs/ez-action-chip.cjs.entry.js +52 -0
  5. package/dist/cjs/ez-button_14.cjs.entry.js +3341 -0
  6. package/dist/cjs/ez-label-chip.cjs.entry.js +131 -0
  7. package/dist/cjs/ez-modal.cjs.entry.js +115 -0
  8. package/dist/cjs/ez-number-input.cjs.entry.js +248 -0
  9. package/dist/cjs/ez-time-input.cjs.entry.js +180 -0
  10. package/dist/cjs/ezui.cjs.js +19 -0
  11. package/dist/cjs/form-metadata.cjs.entry.js +74 -0
  12. package/dist/cjs/index-9403fe8f.js +1322 -0
  13. package/dist/cjs/index.cjs.js +2 -0
  14. package/dist/cjs/loader.cjs.js +21 -0
  15. package/dist/collection/collection-manifest.json +31 -0
  16. package/dist/collection/components/ez-action-chip/ez-action-chip.css +82 -0
  17. package/dist/collection/components/ez-action-chip/ez-action-chip.js +109 -0
  18. package/dist/collection/components/ez-button/ez-button.css +94 -0
  19. package/dist/collection/components/ez-button/ez-button.js +125 -0
  20. package/dist/collection/components/ez-calendar/ez-calendar.css +210 -0
  21. package/dist/collection/components/ez-calendar/ez-calendar.js +215 -0
  22. package/dist/collection/components/ez-check/ez-check.css +266 -0
  23. package/dist/collection/components/ez-check/ez-check.js +168 -0
  24. package/dist/collection/components/ez-collapsable-box/ez-collapsable-box.css +68 -0
  25. package/dist/collection/components/ez-collapsable-box/ez-collapsable-box.js +108 -0
  26. package/dist/collection/components/ez-combo-box/ez-combo-box-interfaces.js +2 -0
  27. package/dist/collection/components/ez-combo-box/ez-combo-box.css +167 -0
  28. package/dist/collection/components/ez-combo-box/ez-combo-box.js +363 -0
  29. package/dist/collection/components/ez-date-input/ez-date-input.css +39 -0
  30. package/dist/collection/components/ez-date-input/ez-date-input.js +172 -0
  31. package/dist/collection/components/ez-form/ez-form.css +19 -0
  32. package/dist/collection/components/ez-form/ez-form.js +368 -0
  33. package/dist/collection/components/ez-form/store/Form.actions.js +132 -0
  34. package/dist/collection/components/ez-form/store/Form.reducer.js +194 -0
  35. package/dist/collection/components/ez-form/store/Form.selectors.js +44 -0
  36. package/dist/collection/components/ez-form/subcomponents/DataUnit.js +207 -0
  37. package/dist/collection/components/ez-form/subcomponents/FormMetadata.js +16 -0
  38. package/dist/collection/components/ez-form/subcomponents/css/place-holder.css +24 -0
  39. package/dist/collection/components/ez-form/subcomponents/form-metadata.js +173 -0
  40. package/dist/collection/components/ez-form/subcomponents/place-holder.js +14 -0
  41. package/dist/collection/components/ez-form/subcomponents/structure/Field.js +71 -0
  42. package/dist/collection/components/ez-form/subcomponents/structure/FieldSet.js +27 -0
  43. package/dist/collection/components/ez-form/subcomponents/structure/FormSheet.js +40 -0
  44. package/dist/collection/components/ez-form/subcomponents/structure/NavigationBar.js +27 -0
  45. package/dist/collection/components/ez-icon/ez-icon.css +37 -0
  46. package/dist/collection/components/ez-icon/ez-icon.js +56 -0
  47. package/dist/collection/components/ez-label-chip/ez-label-chip.css +117 -0
  48. package/dist/collection/components/ez-label-chip/ez-label-chip.js +276 -0
  49. package/dist/collection/components/ez-modal/ez-modal.css +87 -0
  50. package/dist/collection/components/ez-modal/ez-modal.js +224 -0
  51. package/dist/collection/components/ez-number-input/ez-number-input.css +144 -0
  52. package/dist/collection/components/ez-number-input/ez-number-input.js +465 -0
  53. package/dist/collection/components/ez-popover/ez-popover.css +39 -0
  54. package/dist/collection/components/ez-popover/ez-popover.js +323 -0
  55. package/dist/collection/components/ez-search/ez-search.css +296 -0
  56. package/dist/{ezui/ez-search.entry.js → collection/components/ez-search/ez-search.js} +527 -334
  57. package/dist/collection/components/ez-tabselector/ez-tabselector.css +126 -0
  58. package/dist/{ezui/ez-tabselector.entry.js → collection/components/ez-tabselector/ez-tabselector.js} +283 -209
  59. package/dist/collection/components/ez-text-area/ez-text-area.css +140 -0
  60. package/dist/collection/components/ez-text-area/ez-text-area.js +267 -0
  61. package/dist/collection/components/ez-text-input/ez-text-input.css +170 -0
  62. package/dist/collection/components/ez-text-input/ez-text-input.js +395 -0
  63. package/dist/collection/components/ez-time-input/ez-time-input.css +155 -0
  64. package/dist/collection/components/ez-time-input/ez-time-input.js +326 -0
  65. package/dist/collection/index.js +1 -0
  66. package/dist/collection/servidor.js +101 -0
  67. package/dist/collection/utils/FloatingManager.js +16 -0
  68. package/dist/collection/utils/utils.js +6 -0
  69. package/dist/custom-elements/index.js +5071 -0
  70. package/dist/esm/DataUnit-69e518fa.js +378 -0
  71. package/dist/esm/RequestMetadata-c265c9d5.js +527 -0
  72. package/dist/{ezui → esm}/ez-action-chip.entry.js +42 -42
  73. package/dist/esm/ez-button_14.entry.js +3324 -0
  74. package/dist/{ezui → esm}/ez-label-chip.entry.js +121 -121
  75. package/dist/{ezui → esm}/ez-modal.entry.js +105 -96
  76. package/dist/{ezui → esm}/ez-number-input.entry.js +238 -238
  77. package/dist/{ezui → esm}/ez-time-input.entry.js +170 -170
  78. package/dist/esm/ezui.js +17 -0
  79. package/dist/{ezui → esm}/form-metadata.entry.js +66 -66
  80. package/dist/esm/index-95bb3fd9.js +1293 -0
  81. package/dist/esm/index.js +1 -0
  82. package/dist/esm/loader.js +17 -0
  83. package/dist/esm/polyfills/core-js.js +11 -0
  84. package/dist/esm/polyfills/css-shim.js +1 -0
  85. package/dist/esm/polyfills/dom.js +79 -0
  86. package/dist/esm/polyfills/es5-html-element.js +1 -0
  87. package/dist/esm/polyfills/index.js +34 -0
  88. package/dist/esm/polyfills/system.js +6 -0
  89. package/dist/ezui/ezui.esm.js +1 -122
  90. package/dist/ezui/index.esm.js +0 -1
  91. package/dist/ezui/p-10ef58b3.js +1 -0
  92. package/dist/ezui/p-185c57f4.js +1 -0
  93. package/dist/ezui/p-22b82efb.entry.js +1 -0
  94. package/dist/ezui/p-77fdb4fd.entry.js +1 -0
  95. package/dist/ezui/p-9dfccb16.js +1 -0
  96. package/dist/ezui/p-b0974f4f.entry.js +1 -0
  97. package/dist/ezui/p-db11c600.entry.js +1 -0
  98. package/dist/ezui/p-dd4331b7.entry.js +1 -0
  99. package/dist/ezui/p-f6fd31ab.entry.js +1 -0
  100. package/dist/ezui/p-fa260f22.entry.js +1 -0
  101. package/dist/index.cjs.js +1 -0
  102. package/dist/index.js +1 -0
  103. package/dist/types/components/ez-action-chip/ez-action-chip.d.ts +16 -16
  104. package/dist/types/components/ez-button/ez-button.d.ts +20 -20
  105. package/dist/types/components/ez-calendar/ez-calendar.d.ts +42 -42
  106. package/dist/types/components/ez-check/ez-check.d.ts +32 -32
  107. package/dist/types/components/ez-collapsable-box/ez-collapsable-box.d.ts +18 -18
  108. package/dist/types/components/ez-combo-box/ez-combo-box-interfaces.d.ts +4 -4
  109. package/dist/types/components/ez-combo-box/ez-combo-box.d.ts +68 -68
  110. package/dist/types/components/ez-date-input/ez-date-input.d.ts +31 -31
  111. package/dist/types/components/ez-form/ez-form.d.ts +31 -27
  112. package/dist/types/components/ez-form/store/Form.actions.d.ts +111 -104
  113. package/dist/types/components/ez-form/store/Form.reducer.d.ts +20 -11
  114. package/dist/types/components/ez-form/store/Form.selectors.d.ts +14 -13
  115. package/dist/types/components/ez-form/subcomponents/DataUnit.d.ts +55 -48
  116. package/dist/types/components/ez-form/subcomponents/FormMetadata.d.ts +41 -41
  117. package/dist/types/components/ez-form/subcomponents/form-metadata.d.ts +15 -15
  118. package/dist/types/components/ez-form/subcomponents/place-holder.d.ts +3 -3
  119. package/dist/types/components/ez-form/subcomponents/structure/Field.d.ts +10 -10
  120. package/dist/types/components/ez-form/subcomponents/structure/FieldSet.d.ts +12 -12
  121. package/dist/types/components/ez-form/subcomponents/structure/FormSheet.d.ts +13 -13
  122. package/dist/types/components/ez-form/subcomponents/structure/NavigationBar.d.ts +17 -7
  123. package/dist/types/components/ez-icon/ez-icon.d.ts +5 -5
  124. package/dist/types/components/ez-label-chip/ez-label-chip.d.ts +40 -40
  125. package/dist/types/components/ez-modal/ez-modal.d.ts +32 -26
  126. package/dist/types/components/ez-number-input/ez-number-input.d.ts +73 -73
  127. package/dist/types/components/ez-popover/ez-popover.d.ts +52 -52
  128. package/dist/types/components/ez-search/ez-search.d.ts +95 -95
  129. package/dist/types/components/ez-tabselector/ez-tabselector.d.ts +31 -31
  130. package/dist/types/components/ez-text-area/ez-text-area.d.ts +49 -49
  131. package/dist/types/components/ez-text-input/ez-text-input.d.ts +64 -64
  132. package/dist/types/components/ez-time-input/ez-time-input.d.ts +53 -53
  133. package/dist/types/components.d.ts +8 -0
  134. package/dist/types/index.d.ts +1 -1
  135. package/dist/types/utils/utils.d.ts +2 -2
  136. package/loader/cdn.js +3 -0
  137. package/loader/index.cjs.js +3 -0
  138. package/loader/index.d.ts +13 -0
  139. package/loader/index.es2017.js +3 -0
  140. package/loader/index.js +4 -0
  141. package/loader/package.json +10 -0
  142. package/package.json +114 -114
  143. package/react/components.d.ts +22 -0
  144. package/react/components.js +25 -0
  145. package/react/components.js.map +1 -0
  146. package/react/react-component-lib/createComponent.d.ts +10 -0
  147. package/react/react-component-lib/createComponent.js +59 -0
  148. package/react/react-component-lib/createComponent.js.map +1 -0
  149. package/react/react-component-lib/createOverlayComponent.d.ts +20 -0
  150. package/react/react-component-lib/createOverlayComponent.js +89 -0
  151. package/react/react-component-lib/createOverlayComponent.js.map +1 -0
  152. package/react/react-component-lib/index.d.ts +2 -0
  153. package/react/react-component-lib/index.js +3 -0
  154. package/react/react-component-lib/index.js.map +1 -0
  155. package/react/react-component-lib/interfaces.d.ts +29 -0
  156. package/react/react-component-lib/interfaces.js +1 -0
  157. package/react/react-component-lib/interfaces.js.map +1 -0
  158. package/react/react-component-lib/utils/attachProps.d.ts +12 -0
  159. package/react/react-component-lib/utils/attachProps.js +96 -0
  160. package/react/react-component-lib/utils/attachProps.js.map +1 -0
  161. package/react/react-component-lib/utils/case.d.ts +2 -0
  162. package/react/react-component-lib/utils/case.js +7 -0
  163. package/react/react-component-lib/utils/case.js.map +1 -0
  164. package/react/react-component-lib/utils/dev.d.ts +2 -0
  165. package/react/react-component-lib/utils/dev.js +13 -0
  166. package/react/react-component-lib/utils/dev.js.map +1 -0
  167. package/react/react-component-lib/utils/index.d.ts +7 -0
  168. package/react/react-component-lib/utils/index.js +21 -0
  169. package/react/react-component-lib/utils/index.js.map +1 -0
  170. package/dist/ezui/app-globals-0f993ce5.js +0 -3
  171. package/dist/ezui/css-shim-003e9264.js +0 -4
  172. package/dist/ezui/dom-1b195079.js +0 -73
  173. package/dist/ezui/ez-button.entry.js +0 -47
  174. package/dist/ezui/ez-calendar.entry.js +0 -102
  175. package/dist/ezui/ez-check.entry.js +0 -62
  176. package/dist/ezui/ez-collapsable-box.entry.js +0 -32
  177. package/dist/ezui/ez-combo-box.entry.js +0 -181
  178. package/dist/ezui/ez-date-input.entry.js +0 -77
  179. package/dist/ezui/ez-form.entry.js +0 -1907
  180. package/dist/ezui/ez-icon.entry.js +0 -17
  181. package/dist/ezui/ez-popover.entry.js +0 -112
  182. package/dist/ezui/ez-text-area.entry.js +0 -105
  183. package/dist/ezui/ez-text-input.entry.js +0 -202
  184. package/dist/ezui/index-39044be2.js +0 -2832
  185. package/dist/ezui/place-holder.entry.js +0 -15
  186. package/dist/ezui/shadow-css-c1ad5fdc.js +0 -383
@@ -0,0 +1,378 @@
1
+ function changeFieldValue(dataUnit, recordId, fieldName, value) {
2
+ return {
3
+ type: 'FORM/CHANGEFIELD',
4
+ payload: { dataUnit, recordId, fieldName, value }
5
+ };
6
+ }
7
+ function changeTab(formId, index) {
8
+ return {
9
+ type: 'FORM/CHANGETAB',
10
+ payload: { formId, index }
11
+ };
12
+ }
13
+ function clearEdition(dataUnit, recordsLimit) {
14
+ return {
15
+ type: 'FORM/CLEAREDITION',
16
+ payload: {
17
+ dataUnit,
18
+ recordsLimit
19
+ }
20
+ };
21
+ }
22
+ function collapseExpandGroup(collapseId, collapsed) {
23
+ return {
24
+ type: 'FORM/COLLAPSEGROUP',
25
+ payload: { collapseId, collapsed }
26
+ };
27
+ }
28
+ function previousRecord(dataUnit) {
29
+ return {
30
+ type: 'FORM/NAVIGATE',
31
+ payload: {
32
+ dataUnit,
33
+ limit: 0,
34
+ backward: true
35
+ }
36
+ };
37
+ }
38
+ function nextRecord(dataUnit, limit) {
39
+ return {
40
+ type: 'FORM/NAVIGATE',
41
+ payload: {
42
+ dataUnit,
43
+ limit,
44
+ backward: false
45
+ }
46
+ };
47
+ }
48
+ function insertRecord(dataUnit, insertionIndex) {
49
+ return {
50
+ type: 'FORM/INSERT',
51
+ payload: {
52
+ dataUnit,
53
+ insertionIndex
54
+ }
55
+ };
56
+ }
57
+ function formLoad() {
58
+ return {
59
+ type: 'FORM/LOAD'
60
+ };
61
+ }
62
+ function dataLoading(dataUnit) {
63
+ return {
64
+ type: 'FORM/DATALOADING',
65
+ payload: {
66
+ dataUnit
67
+ }
68
+ };
69
+ }
70
+ function savingChanges(dataUnit) {
71
+ return {
72
+ type: 'FORM/SAVINGCHANGES',
73
+ payload: {
74
+ dataUnit
75
+ }
76
+ };
77
+ }
78
+ function dataLoaded(dataUnit) {
79
+ return {
80
+ type: 'FORM/DATALOADED',
81
+ payload: {
82
+ dataUnit
83
+ }
84
+ };
85
+ }
86
+ function changesSaved(dataUnit) {
87
+ return {
88
+ type: 'FORM/CHANGESSAVED',
89
+ payload: {
90
+ dataUnit
91
+ }
92
+ };
93
+ }
94
+ function removingRecord(dataUnit) {
95
+ return {
96
+ type: 'FORM/REMOVINGRECORD',
97
+ payload: {
98
+ dataUnit
99
+ }
100
+ };
101
+ }
102
+ function recordRemoved(dataUnit) {
103
+ return {
104
+ type: 'FORM/RECORDREMOVED',
105
+ payload: {
106
+ dataUnit
107
+ }
108
+ };
109
+ }
110
+ function invalidField(tabController, tabIndex, dataUnit, recordIndex, recordId, fieldName, errorMessage) {
111
+ return {
112
+ type: 'FORM/INVALIDFIELD',
113
+ payload: {
114
+ tabController,
115
+ tabIndex,
116
+ dataUnit,
117
+ recordId,
118
+ recordIndex,
119
+ fieldName,
120
+ errorMessage
121
+ }
122
+ };
123
+ }
124
+ function showHideNavigationButtons(buttonName, status) {
125
+ return {
126
+ type: 'FORM/SHOWHIDENAVBTN',
127
+ payload: {
128
+ buttonName,
129
+ status
130
+ }
131
+ };
132
+ }
133
+
134
+ //histórico
135
+ const selectCurrentTab = (state, formName) => {
136
+ const data = state.hist.present.currentTabIndex;
137
+ return data[formName] || 0;
138
+ };
139
+ const selectIsCollapsedFieldSet = (state, fieldSetName) => {
140
+ const data = state.hist.present.collapsedGroups;
141
+ return data[fieldSetName];
142
+ };
143
+ const selectRecordChanges = (state, dataUnit, recordId) => {
144
+ const data = selectDataUnitChanges(state, dataUnit);
145
+ return data ? data[recordId] : undefined;
146
+ };
147
+ const selectDataUnitChanges = (state, dataUnit) => {
148
+ const data = state.hist.present.changes;
149
+ return data[dataUnit];
150
+ };
151
+ const selectCurrentRecordIndex = (state, dataUnit) => {
152
+ const data = state.hist.present.currentRecordIndex;
153
+ return data[dataUnit] || 0;
154
+ };
155
+ const selectNewRecordIndex = (state, dataUnit) => {
156
+ const data = state.hist.present.newRecordIndex;
157
+ return data[dataUnit] || 0;
158
+ };
159
+ //não histórico
160
+ const selectLoadingData = (state, dataUnit) => {
161
+ const data = state.nonhist.dataLoading;
162
+ return data[dataUnit];
163
+ };
164
+ const selectErrorMessage = (state, dataUnit, recordId, fieldName) => {
165
+ const data = state.nonhist.invalidFields;
166
+ const dataUnitMessages = data[dataUnit] || {};
167
+ const recordMessages = dataUnitMessages[recordId] || {};
168
+ return recordMessages[fieldName] || "";
169
+ };
170
+ const selectVisibleButtons = state => state.nonhist.visibleButtons;
171
+
172
+ class DataUnit {
173
+ constructor(name, unitLabel, cardinality = '1') {
174
+ this.name = name;
175
+ this.unitLabel = unitLabel;
176
+ this.cardinality = cardinality;
177
+ }
178
+ set store(store) {
179
+ this._store = store;
180
+ }
181
+ isLoading() {
182
+ return selectLoadingData(this._store.getState(), this.name);
183
+ }
184
+ hasChanges() {
185
+ const state = this._store.getState();
186
+ return selectDataUnitChanges(state, this.name) !== undefined || selectNewRecordIndex(state, this.name) > 0;
187
+ }
188
+ hasNext() {
189
+ return selectCurrentRecordIndex(this._store.getState(), this.name) < (this.records.length - 1);
190
+ }
191
+ hasPrevious() {
192
+ return selectCurrentRecordIndex(this._store.getState(), this.name) > 0;
193
+ }
194
+ hasCurrentRecord() {
195
+ return this.getCurrentRecord() != undefined;
196
+ }
197
+ previous() {
198
+ this._store.dispatch(previousRecord(this.name));
199
+ }
200
+ next() {
201
+ this._store.dispatch(nextRecord(this.name, this.records.length));
202
+ }
203
+ getValue(fieldName) {
204
+ const currentRecord = this.getCurrentRecord();
205
+ if (!currentRecord) {
206
+ return undefined;
207
+ }
208
+ const changes = this.getRecordChanges(currentRecord);
209
+ return changes && changes[fieldName] !== undefined ? changes[fieldName] : currentRecord[fieldName] || null;
210
+ }
211
+ getErrorMessage(fieldName) {
212
+ const currentRecord = this.getCurrentRecord();
213
+ return selectErrorMessage(this._store.getState(), this.name, currentRecord === null || currentRecord === void 0 ? void 0 : currentRecord.record__id, fieldName);
214
+ }
215
+ changeValue(fieldName, newValue) {
216
+ if (this.records.length == 0) {
217
+ this.insert();
218
+ }
219
+ if (this._changeDeboucing) {
220
+ window.clearTimeout(this._changeDeboucing);
221
+ }
222
+ this._changeDeboucing = window.setTimeout(() => {
223
+ const currentRecord = this.getCurrentRecord();
224
+ this._store.dispatch(changeFieldValue(this.name, currentRecord.record__id, fieldName, newValue));
225
+ }, 100);
226
+ }
227
+ cancel() {
228
+ this.records = this.records.filter(r => !r.record__id.startsWith('NEW_'));
229
+ this._store.dispatch(clearEdition(this.name, this.records.length - 1));
230
+ }
231
+ insert() {
232
+ const insertionIndex = this.records.length;
233
+ const newRecordIndex = selectNewRecordIndex(this._store.getState(), this.name);
234
+ this.records.push({ record__id: 'NEW_' + (newRecordIndex + 1) });
235
+ this._store.dispatch(insertRecord(this.name, insertionIndex));
236
+ }
237
+ getChangesToSave() {
238
+ const duChanges = selectDataUnitChanges(this._store.getState(), this.name);
239
+ if (duChanges) {
240
+ const changesByRecord = Object.keys(duChanges).map(record__id => {
241
+ const record = { record__id };
242
+ const recordChanges = duChanges[record__id];
243
+ Object.keys(recordChanges).forEach(fieldName => { record[fieldName] = recordChanges[fieldName]; });
244
+ return record;
245
+ });
246
+ return [{
247
+ dataUnit: this.name,
248
+ records: changesByRecord
249
+ }];
250
+ }
251
+ return undefined;
252
+ }
253
+ save() {
254
+ if (!this.validateRecords()) {
255
+ return;
256
+ }
257
+ this._store.dispatch(savingChanges(this.name));
258
+ let saveResult;
259
+ if (this.saveExecutor) {
260
+ saveResult = this.saveExecutor(this.getChangesToSave());
261
+ }
262
+ if (saveResult instanceof Promise) {
263
+ saveResult.then(r => this.processSaveResult(r));
264
+ }
265
+ else {
266
+ this.processSaveResult(saveResult);
267
+ }
268
+ }
269
+ load() {
270
+ this._store.dispatch(dataLoading(this.name));
271
+ let result;
272
+ if (this.loadExecutor) {
273
+ result = this.loadExecutor({ dataUnit: this.name });
274
+ }
275
+ if (result instanceof Promise) {
276
+ result.then(r => this.processLoadResult(r));
277
+ }
278
+ else {
279
+ this.processLoadResult(result);
280
+ }
281
+ }
282
+ remove() {
283
+ const currentIndex = selectCurrentRecordIndex(this._store.getState(), this.name);
284
+ this._store.dispatch(removingRecord(this.name));
285
+ let removeResult;
286
+ if (this.removeExecutor) {
287
+ const record = this.getCurrentRecord();
288
+ removeResult = this.removeExecutor({ dataUnit: this.name, recordId: record.record__id, record });
289
+ }
290
+ else {
291
+ removeResult = true;
292
+ }
293
+ if (removeResult) {
294
+ if (removeResult instanceof Promise) {
295
+ removeResult.then(r => this.processRemoveResult(r, currentIndex));
296
+ }
297
+ else {
298
+ this.processRemoveResult(removeResult, currentIndex);
299
+ }
300
+ }
301
+ }
302
+ processSaveResult(result) {
303
+ if (result) {
304
+ if (result instanceof Array) {
305
+ result.forEach(item => this.processSaveResult(item));
306
+ }
307
+ else {
308
+ if (result.dataUnit === this.name) {
309
+ result.records.forEach(savedRecord => {
310
+ let rID = savedRecord.oldRecord__id;
311
+ delete savedRecord.oldRecord__id;
312
+ if (rID === undefined) {
313
+ rID = savedRecord.record__id;
314
+ }
315
+ this.records.forEach((r, index) => {
316
+ if (r.record__id === rID) {
317
+ this.records[index] = Object.assign(r, savedRecord);
318
+ }
319
+ });
320
+ });
321
+ }
322
+ }
323
+ }
324
+ this._store.dispatch(clearEdition(this.name, this.records.length - 1));
325
+ this._store.dispatch(changesSaved(this.name));
326
+ }
327
+ processLoadResult(records) {
328
+ this.records = records;
329
+ this._store.dispatch(clearEdition(this.name, this.records.length - 1));
330
+ this._store.dispatch(dataLoaded(this.name));
331
+ }
332
+ processRemoveResult(removed, recordIndex) {
333
+ if (removed) {
334
+ this.records.splice(recordIndex, 1);
335
+ this._store.dispatch(clearEdition(this.name, this.records.length - 1));
336
+ }
337
+ this._store.dispatch(recordRemoved(this.name));
338
+ }
339
+ set records(records) {
340
+ this._records = records;
341
+ }
342
+ get records() {
343
+ if (!this._records) {
344
+ this._records = [];
345
+ }
346
+ return this._records;
347
+ }
348
+ getCurrentRecord() {
349
+ const currentIndex = selectCurrentRecordIndex(this._store.getState(), this.name);
350
+ return this.records[currentIndex];
351
+ }
352
+ getRecordChanges(currentRecord = undefined) {
353
+ if (currentRecord === undefined) {
354
+ currentRecord = this.getCurrentRecord();
355
+ }
356
+ return currentRecord ? selectRecordChanges(this._store.getState(), this.name, currentRecord.record__id) : undefined;
357
+ }
358
+ validateRecords() {
359
+ if (!this.recordsValidator) {
360
+ return true;
361
+ }
362
+ const duChanges = selectDataUnitChanges(this._store.getState(), this.name);
363
+ const recordsToValidate = [];
364
+ this.records.forEach((record, i) => {
365
+ const changes = duChanges[record.record__id];
366
+ if (changes) {
367
+ recordsToValidate.push(Object.assign(Object.assign(Object.assign({}, record), changes), { record__index: i, record__changedfields: Object.keys(changes) }));
368
+ }
369
+ });
370
+ const result = this.recordsValidator.validateRecords(this, recordsToValidate);
371
+ if (result.message) {
372
+ alert(result.message);
373
+ }
374
+ return result.isValid;
375
+ }
376
+ }
377
+
378
+ export { DataUnit as D, selectCurrentTab as a, selectVisibleButtons as b, collapseExpandGroup as c, changeTab as d, showHideNavigationButtons as e, formLoad as f, invalidField as i, selectIsCollapsedFieldSet as s };