@sankhyalabs/ezui 1.1.6 → 1.1.10

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 (149) hide show
  1. package/README.md +72 -72
  2. package/dist/cjs/{DataUnit-09a6e7be.js → DataUnit-95368a67.js} +418 -361
  3. package/dist/cjs/ez-action-chip.cjs.entry.js +41 -41
  4. package/dist/cjs/ez-button_14.cjs.entry.js +1933 -1847
  5. package/dist/cjs/ez-label-chip.cjs.entry.js +120 -120
  6. package/dist/cjs/ez-modal.cjs.entry.js +102 -95
  7. package/dist/cjs/ez-number-input.cjs.entry.js +236 -236
  8. package/dist/cjs/ez-time-input.cjs.entry.js +168 -168
  9. package/dist/cjs/ezui.cjs.js +1 -1
  10. package/dist/cjs/form-metadata.cjs.entry.js +65 -65
  11. package/dist/cjs/loader.cjs.js +1 -1
  12. package/dist/collection/components/ez-action-chip/ez-action-chip.css +82 -82
  13. package/dist/collection/components/ez-action-chip/ez-action-chip.js +109 -109
  14. package/dist/collection/components/ez-button/ez-button.css +94 -94
  15. package/dist/collection/components/ez-button/ez-button.js +125 -125
  16. package/dist/collection/components/ez-calendar/ez-calendar.css +210 -210
  17. package/dist/collection/components/ez-calendar/ez-calendar.js +215 -215
  18. package/dist/collection/components/ez-check/ez-check.css +265 -265
  19. package/dist/collection/components/ez-check/ez-check.js +168 -168
  20. package/dist/collection/components/ez-collapsable-box/ez-collapsable-box.css +67 -67
  21. package/dist/collection/components/ez-collapsable-box/ez-collapsable-box.js +108 -108
  22. package/dist/collection/components/ez-combo-box/ez-combo-box-interfaces.js +2 -2
  23. package/dist/collection/components/ez-combo-box/ez-combo-box.css +167 -167
  24. package/dist/collection/components/ez-combo-box/ez-combo-box.js +363 -363
  25. package/dist/collection/components/ez-date-input/ez-date-input.css +38 -38
  26. package/dist/collection/components/ez-date-input/ez-date-input.js +172 -172
  27. package/dist/collection/components/ez-form/ez-form.css +19 -19
  28. package/dist/collection/components/ez-form/ez-form.js +390 -289
  29. package/dist/collection/components/ez-form/store/Form.actions.js +132 -123
  30. package/dist/collection/components/ez-form/store/Form.reducer.js +194 -174
  31. package/dist/collection/components/ez-form/store/Form.selectors.js +44 -43
  32. package/dist/collection/components/ez-form/subcomponents/DataUnit.js +252 -207
  33. package/dist/collection/components/ez-form/subcomponents/FormMetadata.js +16 -16
  34. package/dist/collection/components/ez-form/subcomponents/css/place-holder.css +23 -23
  35. package/dist/collection/components/ez-form/subcomponents/form-metadata.js +173 -173
  36. package/dist/collection/components/ez-form/subcomponents/place-holder.js +14 -14
  37. package/dist/collection/components/ez-form/subcomponents/structure/Field.js +71 -71
  38. package/dist/collection/components/ez-form/subcomponents/structure/FieldSet.js +27 -27
  39. package/dist/collection/components/ez-form/subcomponents/structure/FormSheet.js +40 -33
  40. package/dist/collection/components/ez-form/subcomponents/structure/NavigationBar.js +27 -18
  41. package/dist/collection/components/ez-icon/ez-icon.css +36 -36
  42. package/dist/collection/components/ez-icon/ez-icon.js +56 -56
  43. package/dist/collection/components/ez-label-chip/ez-label-chip.css +117 -117
  44. package/dist/collection/components/ez-label-chip/ez-label-chip.js +276 -276
  45. package/dist/collection/components/ez-modal/ez-modal.css +86 -86
  46. package/dist/collection/components/ez-modal/ez-modal.js +222 -200
  47. package/dist/collection/components/ez-number-input/ez-number-input.css +144 -144
  48. package/dist/collection/components/ez-number-input/ez-number-input.js +465 -465
  49. package/dist/collection/components/ez-popover/ez-popover.css +38 -38
  50. package/dist/collection/components/ez-popover/ez-popover.js +323 -323
  51. package/dist/collection/components/ez-search/ez-search.css +295 -295
  52. package/dist/collection/components/ez-search/ez-search.js +527 -527
  53. package/dist/collection/components/ez-tabselector/ez-tabselector.css +125 -125
  54. package/dist/collection/components/ez-tabselector/ez-tabselector.js +283 -283
  55. package/dist/collection/components/ez-text-area/ez-text-area.css +139 -139
  56. package/dist/collection/components/ez-text-area/ez-text-area.js +267 -267
  57. package/dist/collection/components/ez-text-input/ez-text-input.css +169 -169
  58. package/dist/collection/components/ez-text-input/ez-text-input.js +395 -395
  59. package/dist/collection/components/ez-time-input/ez-time-input.css +155 -155
  60. package/dist/collection/components/ez-time-input/ez-time-input.js +326 -326
  61. package/dist/collection/index.js +1 -1
  62. package/dist/collection/servidor.js +100 -100
  63. package/dist/collection/utils/FloatingManager.js +15 -15
  64. package/dist/collection/utils/utils.js +6 -6
  65. package/dist/custom-elements/index.js +3146 -2998
  66. package/dist/esm/{DataUnit-7a983910.js → DataUnit-4bb6a396.js} +417 -362
  67. package/dist/esm/ez-action-chip.entry.js +41 -41
  68. package/dist/esm/ez-button_14.entry.js +1933 -1847
  69. package/dist/esm/ez-label-chip.entry.js +120 -120
  70. package/dist/esm/ez-modal.entry.js +103 -96
  71. package/dist/esm/ez-number-input.entry.js +236 -236
  72. package/dist/esm/ez-time-input.entry.js +168 -168
  73. package/dist/esm/ezui.js +1 -1
  74. package/dist/esm/form-metadata.entry.js +65 -65
  75. package/dist/esm/loader.js +1 -1
  76. package/dist/esm/polyfills/core-js.js +0 -0
  77. package/dist/esm/polyfills/dom.js +0 -0
  78. package/dist/esm/polyfills/es5-html-element.js +0 -0
  79. package/dist/esm/polyfills/index.js +0 -0
  80. package/dist/esm/polyfills/system.js +0 -0
  81. package/dist/ezui/ezui.esm.js +1 -1
  82. package/dist/ezui/p-11d20338.js +1 -0
  83. package/dist/ezui/{p-3c3a43aa.entry.js → p-5d30e51c.entry.js} +1 -1
  84. package/dist/ezui/p-77fdb4fd.entry.js +1 -0
  85. package/dist/ezui/p-e056fb23.entry.js +1 -0
  86. package/dist/types/components/ez-action-chip/ez-action-chip.d.ts +16 -16
  87. package/dist/types/components/ez-button/ez-button.d.ts +20 -20
  88. package/dist/types/components/ez-calendar/ez-calendar.d.ts +42 -42
  89. package/dist/types/components/ez-check/ez-check.d.ts +32 -32
  90. package/dist/types/components/ez-collapsable-box/ez-collapsable-box.d.ts +18 -18
  91. package/dist/types/components/ez-combo-box/ez-combo-box-interfaces.d.ts +4 -4
  92. package/dist/types/components/ez-combo-box/ez-combo-box.d.ts +68 -68
  93. package/dist/types/components/ez-date-input/ez-date-input.d.ts +31 -31
  94. package/dist/types/components/ez-form/ez-form.d.ts +27 -27
  95. package/dist/types/components/ez-form/store/Form.actions.d.ts +111 -104
  96. package/dist/types/components/ez-form/store/Form.reducer.d.ts +20 -11
  97. package/dist/types/components/ez-form/store/Form.selectors.d.ts +14 -13
  98. package/dist/types/components/ez-form/subcomponents/DataUnit.d.ts +61 -48
  99. package/dist/types/components/ez-form/subcomponents/FormMetadata.d.ts +41 -41
  100. package/dist/types/components/ez-form/subcomponents/form-metadata.d.ts +15 -15
  101. package/dist/types/components/ez-form/subcomponents/place-holder.d.ts +3 -3
  102. package/dist/types/components/ez-form/subcomponents/structure/Field.d.ts +10 -10
  103. package/dist/types/components/ez-form/subcomponents/structure/FieldSet.d.ts +12 -12
  104. package/dist/types/components/ez-form/subcomponents/structure/FormSheet.d.ts +13 -13
  105. package/dist/types/components/ez-form/subcomponents/structure/NavigationBar.d.ts +17 -7
  106. package/dist/types/components/ez-icon/ez-icon.d.ts +5 -5
  107. package/dist/types/components/ez-label-chip/ez-label-chip.d.ts +40 -40
  108. package/dist/types/components/ez-modal/ez-modal.d.ts +32 -26
  109. package/dist/types/components/ez-number-input/ez-number-input.d.ts +73 -73
  110. package/dist/types/components/ez-popover/ez-popover.d.ts +52 -52
  111. package/dist/types/components/ez-search/ez-search.d.ts +95 -95
  112. package/dist/types/components/ez-tabselector/ez-tabselector.d.ts +31 -31
  113. package/dist/types/components/ez-text-area/ez-text-area.d.ts +49 -49
  114. package/dist/types/components/ez-text-input/ez-text-input.d.ts +64 -64
  115. package/dist/types/components/ez-time-input/ez-time-input.d.ts +53 -53
  116. package/dist/types/components.d.ts +8 -0
  117. package/dist/types/index.d.ts +1 -1
  118. package/dist/types/utils/utils.d.ts +2 -2
  119. package/package.json +114 -114
  120. package/react/components.d.ts +22 -0
  121. package/react/components.js +25 -0
  122. package/react/components.js.map +1 -0
  123. package/react/react-component-lib/createComponent.d.ts +10 -0
  124. package/react/react-component-lib/createComponent.js +59 -0
  125. package/react/react-component-lib/createComponent.js.map +1 -0
  126. package/react/react-component-lib/createOverlayComponent.d.ts +20 -0
  127. package/react/react-component-lib/createOverlayComponent.js +89 -0
  128. package/react/react-component-lib/createOverlayComponent.js.map +1 -0
  129. package/react/react-component-lib/index.d.ts +2 -0
  130. package/react/react-component-lib/index.js +3 -0
  131. package/react/react-component-lib/index.js.map +1 -0
  132. package/react/react-component-lib/interfaces.d.ts +29 -0
  133. package/react/react-component-lib/interfaces.js +1 -0
  134. package/react/react-component-lib/interfaces.js.map +1 -0
  135. package/react/react-component-lib/utils/attachProps.d.ts +12 -0
  136. package/react/react-component-lib/utils/attachProps.js +96 -0
  137. package/react/react-component-lib/utils/attachProps.js.map +1 -0
  138. package/react/react-component-lib/utils/case.d.ts +2 -0
  139. package/react/react-component-lib/utils/case.js +7 -0
  140. package/react/react-component-lib/utils/case.js.map +1 -0
  141. package/react/react-component-lib/utils/dev.d.ts +2 -0
  142. package/react/react-component-lib/utils/dev.js +13 -0
  143. package/react/react-component-lib/utils/dev.js.map +1 -0
  144. package/react/react-component-lib/utils/index.d.ts +7 -0
  145. package/react/react-component-lib/utils/index.js +21 -0
  146. package/react/react-component-lib/utils/index.js.map +1 -0
  147. package/dist/ezui/p-5185cbf1.entry.js +0 -1
  148. package/dist/ezui/p-5d600057.entry.js +0 -1
  149. package/dist/ezui/p-9f819174.js +0 -1
@@ -1,123 +1,132 @@
1
- export function changeFieldValue(dataUnit, recordId, fieldName, value) {
2
- return {
3
- type: 'FORM/CHANGEFIELD',
4
- payload: { dataUnit, recordId, fieldName, value }
5
- };
6
- }
7
- export function changeTab(formId, index) {
8
- return {
9
- type: 'FORM/CHANGETAB',
10
- payload: { formId, index }
11
- };
12
- }
13
- export function clearEdition(dataUnit, recordsLimit) {
14
- return {
15
- type: 'FORM/CLEAREDITION',
16
- payload: {
17
- dataUnit,
18
- recordsLimit
19
- }
20
- };
21
- }
22
- export function collapseExpandGroup(collapseId, collapsed) {
23
- return {
24
- type: 'FORM/COLLAPSEGROUP',
25
- payload: { collapseId, collapsed }
26
- };
27
- }
28
- export function previousRecord(dataUnit) {
29
- return {
30
- type: 'FORM/NAVIGATE',
31
- payload: {
32
- dataUnit,
33
- limit: 0,
34
- backward: true
35
- }
36
- };
37
- }
38
- export function nextRecord(dataUnit, limit) {
39
- return {
40
- type: 'FORM/NAVIGATE',
41
- payload: {
42
- dataUnit,
43
- limit,
44
- backward: false
45
- }
46
- };
47
- }
48
- export function insertRecord(dataUnit, insertionIndex) {
49
- return {
50
- type: 'FORM/INSERT',
51
- payload: {
52
- dataUnit,
53
- insertionIndex
54
- }
55
- };
56
- }
57
- export function formLoad() {
58
- return {
59
- type: 'FORM/LOAD'
60
- };
61
- }
62
- export function dataLoading(dataUnit) {
63
- return {
64
- type: 'FORM/DATALOADING',
65
- payload: {
66
- dataUnit
67
- }
68
- };
69
- }
70
- export function savingChanges(dataUnit) {
71
- return {
72
- type: 'FORM/SAVINGCHANGES',
73
- payload: {
74
- dataUnit
75
- }
76
- };
77
- }
78
- export function dataLoaded(dataUnit) {
79
- return {
80
- type: 'FORM/DATALOADED',
81
- payload: {
82
- dataUnit
83
- }
84
- };
85
- }
86
- export function changesSaved(dataUnit) {
87
- return {
88
- type: 'FORM/CHANGESSAVED',
89
- payload: {
90
- dataUnit
91
- }
92
- };
93
- }
94
- export function removingRecord(dataUnit) {
95
- return {
96
- type: 'FORM/REMOVINGRECORD',
97
- payload: {
98
- dataUnit
99
- }
100
- };
101
- }
102
- export function recordRemoved(dataUnit) {
103
- return {
104
- type: 'FORM/RECORDREMOVED',
105
- payload: {
106
- dataUnit
107
- }
108
- };
109
- }
110
- export 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
- }
1
+ export function changeFieldValue(dataUnit, recordId, fieldName, value) {
2
+ return {
3
+ type: 'FORM/CHANGEFIELD',
4
+ payload: { dataUnit, recordId, fieldName, value }
5
+ };
6
+ }
7
+ export function changeTab(formId, index) {
8
+ return {
9
+ type: 'FORM/CHANGETAB',
10
+ payload: { formId, index }
11
+ };
12
+ }
13
+ export function clearEdition(dataUnit, recordsLimit) {
14
+ return {
15
+ type: 'FORM/CLEAREDITION',
16
+ payload: {
17
+ dataUnit,
18
+ recordsLimit
19
+ }
20
+ };
21
+ }
22
+ export function collapseExpandGroup(collapseId, collapsed) {
23
+ return {
24
+ type: 'FORM/COLLAPSEGROUP',
25
+ payload: { collapseId, collapsed }
26
+ };
27
+ }
28
+ export function previousRecord(dataUnit) {
29
+ return {
30
+ type: 'FORM/NAVIGATE',
31
+ payload: {
32
+ dataUnit,
33
+ limit: 0,
34
+ backward: true
35
+ }
36
+ };
37
+ }
38
+ export function nextRecord(dataUnit, limit) {
39
+ return {
40
+ type: 'FORM/NAVIGATE',
41
+ payload: {
42
+ dataUnit,
43
+ limit,
44
+ backward: false
45
+ }
46
+ };
47
+ }
48
+ export function insertRecord(dataUnit, insertionIndex) {
49
+ return {
50
+ type: 'FORM/INSERT',
51
+ payload: {
52
+ dataUnit,
53
+ insertionIndex
54
+ }
55
+ };
56
+ }
57
+ export function formLoad() {
58
+ return {
59
+ type: 'FORM/LOAD'
60
+ };
61
+ }
62
+ export function dataLoading(dataUnit) {
63
+ return {
64
+ type: 'FORM/DATALOADING',
65
+ payload: {
66
+ dataUnit
67
+ }
68
+ };
69
+ }
70
+ export function savingChanges(dataUnit) {
71
+ return {
72
+ type: 'FORM/SAVINGCHANGES',
73
+ payload: {
74
+ dataUnit
75
+ }
76
+ };
77
+ }
78
+ export function dataLoaded(dataUnit) {
79
+ return {
80
+ type: 'FORM/DATALOADED',
81
+ payload: {
82
+ dataUnit
83
+ }
84
+ };
85
+ }
86
+ export function changesSaved(dataUnit) {
87
+ return {
88
+ type: 'FORM/CHANGESSAVED',
89
+ payload: {
90
+ dataUnit
91
+ }
92
+ };
93
+ }
94
+ export function removingRecord(dataUnit) {
95
+ return {
96
+ type: 'FORM/REMOVINGRECORD',
97
+ payload: {
98
+ dataUnit
99
+ }
100
+ };
101
+ }
102
+ export function recordRemoved(dataUnit) {
103
+ return {
104
+ type: 'FORM/RECORDREMOVED',
105
+ payload: {
106
+ dataUnit
107
+ }
108
+ };
109
+ }
110
+ export 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
+ export function showHideNavigationButtons(buttonName, status) {
125
+ return {
126
+ type: 'FORM/SHOWHIDENAVBTN',
127
+ payload: {
128
+ buttonName,
129
+ status
130
+ }
131
+ };
132
+ }
@@ -1,174 +1,194 @@
1
- const inicialState = {
2
- currentTabIndex: {},
3
- currentRecordIndex: {},
4
- changes: {},
5
- collapsedGroups: {},
6
- newRecordIndex: {}
7
- };
8
- export default function formReducer(state = inicialState, action) {
9
- switch (action.type) {
10
- case 'FORM/COLLAPSEGROUP':
11
- return collapseGroup(state, action.payload);
12
- case 'FORM/CHANGETAB':
13
- return changeTab(state, action.payload.formId, action.payload.index);
14
- case 'FORM/NAVIGATE':
15
- return navigate(state, action.payload);
16
- case 'FORM/INSERT':
17
- return insertRecord(state, action.payload);
18
- case 'FORM/CHANGEFIELD':
19
- return changeFieldValue(state, action.payload);
20
- case 'FORM/CLEAREDITION':
21
- return clearEdition(state, action.payload);
22
- case 'FORM/INVALIDFIELD':
23
- return navigateToInvalid(state, action.payload);
24
- default:
25
- return state;
26
- }
27
- }
28
- export function formNonHistoricReducer(state = { dataLoading: {}, invalidFields: {} }, action) {
29
- switch (action.type) {
30
- case 'FORM/DATALOADING':
31
- return dataLoading(state, action.payload);
32
- case 'FORM/DATALOADED':
33
- return dataLoaded(state, action.payload);
34
- case 'FORM/SAVINGCHANGES':
35
- return savingChanges(state, action.payload);
36
- case 'FORM/CHANGESSAVED':
37
- return changesSaved(state, action.payload);
38
- case 'FORM/REMOVINGRECORD':
39
- return removingRecord(state, action.payload);
40
- case 'FORM/RECORDREMOVED':
41
- return recordRemoved(state, action.payload);
42
- case 'FORM/INVALIDFIELD':
43
- return invalidField(state, action.payload);
44
- case 'FORM/CLEAREDITION':
45
- return clearAllInvalidFields(state, action.payload);
46
- case 'FORM/CHANGEFIELD':
47
- return clearInvalidField(state, action.payload);
48
- default:
49
- return state;
50
- }
51
- }
52
- function collapseGroup(state, { collapseId, collapsed }) {
53
- const currentCollapsed = Object.assign({}, state.collapsedGroups);
54
- if (collapsed) {
55
- currentCollapsed[collapseId] = true;
56
- }
57
- else {
58
- delete currentCollapsed[collapseId];
59
- }
60
- return Object.assign(Object.assign({}, state), { collapsedGroups: currentCollapsed });
61
- }
62
- function changeTab(state, formId, index) {
63
- const currentTabIndex = Object.assign({}, state.currentTabIndex);
64
- currentTabIndex[formId] = index;
65
- return Object.assign(Object.assign({}, state), { currentTabIndex });
66
- }
67
- function navigate(state, { dataUnit, limit, backward }) {
68
- const currentRecordIndex = Object.assign({}, state.currentRecordIndex);
69
- const recIndex = currentRecordIndex[dataUnit] || 0;
70
- return gotoIndex(state, dataUnit, backward ? Math.max(limit, recIndex - 1) : Math.min(limit, recIndex + 1));
71
- }
72
- function gotoIndex(state, dataUnit, index) {
73
- const currentRecordIndex = Object.assign({}, state.currentRecordIndex);
74
- currentRecordIndex[dataUnit] = index;
75
- return Object.assign(Object.assign({}, state), { currentRecordIndex });
76
- }
77
- function insertRecord(state, { dataUnit, insertionIndex }) {
78
- const currentRecordIndex = Object.assign({}, state.currentRecordIndex);
79
- const newRecordIndex = Object.assign({}, state.newRecordIndex);
80
- currentRecordIndex[dataUnit] = insertionIndex;
81
- newRecordIndex[dataUnit] = (state.newRecordIndex[dataUnit] || 0) + 1;
82
- return Object.assign(Object.assign({}, state), { currentRecordIndex,
83
- newRecordIndex });
84
- }
85
- function changeFieldValue(state, { dataUnit, recordId, fieldName, value }) {
86
- const changes = Object.assign({}, state.changes);
87
- const dataUnitChanges = Object.assign({}, changes[dataUnit]);
88
- const recordChanges = Object.assign({}, dataUnitChanges[recordId]);
89
- recordChanges[fieldName] = value;
90
- dataUnitChanges[recordId] = recordChanges;
91
- changes[dataUnit] = dataUnitChanges;
92
- const invalidFields = Object.assign({}, state.invalidFields);
93
- const dataUnitInvalidRecords = Object.assign({}, invalidFields[dataUnit]);
94
- const errorMessages = Object.assign({}, dataUnitInvalidRecords[recordId]);
95
- delete errorMessages[fieldName];
96
- dataUnitInvalidRecords[recordId] = errorMessages;
97
- invalidFields[dataUnit] = dataUnitInvalidRecords;
98
- return Object.assign(Object.assign({}, state), { changes,
99
- invalidFields, invalidFieldSelected: undefined });
100
- }
101
- function clearEdition(state, { dataUnit, recordsLimit }) {
102
- const changes = Object.assign({}, state.changes);
103
- const newRecordIndex = Object.assign({}, state.newRecordIndex);
104
- const currentRecordIndex = Object.assign({}, state.currentRecordIndex);
105
- delete changes[dataUnit];
106
- delete newRecordIndex[dataUnit];
107
- const recIndex = currentRecordIndex[dataUnit] || 0;
108
- currentRecordIndex[dataUnit] = Math.min(recordsLimit, recIndex);
109
- return Object.assign(Object.assign({}, state), { changes,
110
- newRecordIndex,
111
- currentRecordIndex });
112
- }
113
- function navigateToInvalid(state, payload) {
114
- let newState = Object.assign({}, state);
115
- if (newState.invalidFieldSelected === undefined) {
116
- newState.invalidFieldSelected = true;
117
- newState = gotoIndex(newState, payload.dataUnit, payload.recordIndex);
118
- newState = changeTab(newState, payload.tabController, payload.tabIndex);
119
- }
120
- return newState;
121
- }
122
- function dataLoading(state, { dataUnit }) {
123
- const dataLoading = Object.assign({}, state.dataLoading);
124
- dataLoading[dataUnit] = true;
125
- return Object.assign(Object.assign({}, state), { dataLoading });
126
- }
127
- function dataLoaded(state, { dataUnit }) {
128
- const dataLoading = Object.assign({}, state.dataLoading);
129
- delete dataLoading[dataUnit];
130
- return Object.assign(Object.assign({}, state), { dataLoading });
131
- }
132
- function savingChanges(state, { dataUnit }) {
133
- const dataLoading = Object.assign({}, state.dataLoading);
134
- dataLoading[dataUnit] = true;
135
- return Object.assign(Object.assign({}, state), { dataLoading });
136
- }
137
- function changesSaved(state, { dataUnit }) {
138
- const dataLoading = Object.assign({}, state.dataLoading);
139
- delete dataLoading[dataUnit];
140
- return Object.assign(Object.assign({}, state), { dataLoading });
141
- }
142
- function removingRecord(state, { dataUnit }) {
143
- const dataLoading = Object.assign({}, state.dataLoading);
144
- dataLoading[dataUnit] = true;
145
- return Object.assign(Object.assign({}, state), { dataLoading });
146
- }
147
- function recordRemoved(state, { dataUnit }) {
148
- const dataLoading = Object.assign({}, state.dataLoading);
149
- delete dataLoading[dataUnit];
150
- return Object.assign(Object.assign({}, state), { dataLoading });
151
- }
152
- function invalidField(state, { dataUnit, recordId, fieldName, errorMessage }) {
153
- const invalidFields = Object.assign({}, state.invalidFields);
154
- const dataUnitInvalidRecords = Object.assign({}, invalidFields[dataUnit]);
155
- const errorMessages = Object.assign({}, dataUnitInvalidRecords[recordId]);
156
- errorMessages[fieldName] = errorMessage;
157
- dataUnitInvalidRecords[recordId] = errorMessages;
158
- invalidFields[dataUnit] = dataUnitInvalidRecords;
159
- return Object.assign(Object.assign({}, state), { invalidFields });
160
- }
161
- function clearAllInvalidFields(state, { dataUnit }) {
162
- const invalidFields = Object.assign({}, state.invalidFields);
163
- delete invalidFields[dataUnit];
164
- return Object.assign(Object.assign({}, state), { invalidFields });
165
- }
166
- function clearInvalidField(state, { dataUnit, recordId, fieldName }) {
167
- const invalidFields = Object.assign({}, state.invalidFields);
168
- const dataUnitInvalidRecords = Object.assign({}, invalidFields[dataUnit]);
169
- const errorMessages = Object.assign({}, dataUnitInvalidRecords[recordId]);
170
- delete errorMessages[fieldName];
171
- dataUnitInvalidRecords[recordId] = errorMessages;
172
- invalidFields[dataUnit] = dataUnitInvalidRecords;
173
- return Object.assign(Object.assign({}, state), { invalidFields });
174
- }
1
+ const inicialHistState = {
2
+ currentTabIndex: {},
3
+ currentRecordIndex: {},
4
+ changes: {},
5
+ collapsedGroups: {},
6
+ newRecordIndex: {}
7
+ };
8
+ const inicialNonHistState = {
9
+ dataLoading: {},
10
+ invalidFields: {},
11
+ visibleButtons: {
12
+ previousVisible: true,
13
+ nextVisible: true,
14
+ addVisible: true,
15
+ removeVisible: true,
16
+ saveVisible: true,
17
+ cancelVisible: true,
18
+ reloadVisible: true
19
+ }
20
+ };
21
+ export default function formReducer(state = inicialHistState, action) {
22
+ switch (action.type) {
23
+ case 'FORM/COLLAPSEGROUP':
24
+ return collapseGroup(state, action.payload);
25
+ case 'FORM/CHANGETAB':
26
+ return changeTab(state, action.payload.formId, action.payload.index);
27
+ case 'FORM/NAVIGATE':
28
+ return navigate(state, action.payload);
29
+ case 'FORM/INSERT':
30
+ return insertRecord(state, action.payload);
31
+ case 'FORM/CHANGEFIELD':
32
+ return changeFieldValue(state, action.payload);
33
+ case 'FORM/CLEAREDITION':
34
+ return clearEdition(state, action.payload);
35
+ case 'FORM/INVALIDFIELD':
36
+ return navigateToInvalid(state, action.payload);
37
+ default:
38
+ return state;
39
+ }
40
+ }
41
+ export function formNonHistoricReducer(state = inicialNonHistState, action) {
42
+ switch (action.type) {
43
+ case 'FORM/DATALOADING':
44
+ return dataLoading(state, action.payload);
45
+ case 'FORM/DATALOADED':
46
+ return dataLoaded(state, action.payload);
47
+ case 'FORM/SAVINGCHANGES':
48
+ return savingChanges(state, action.payload);
49
+ case 'FORM/CHANGESSAVED':
50
+ return changesSaved(state, action.payload);
51
+ case 'FORM/REMOVINGRECORD':
52
+ return removingRecord(state, action.payload);
53
+ case 'FORM/RECORDREMOVED':
54
+ return recordRemoved(state, action.payload);
55
+ case 'FORM/INVALIDFIELD':
56
+ return invalidField(state, action.payload);
57
+ case 'FORM/CLEAREDITION':
58
+ return clearAllInvalidFields(state, action.payload);
59
+ case 'FORM/CHANGEFIELD':
60
+ return clearInvalidField(state, action.payload);
61
+ case 'FORM/SHOWHIDENAVBTN':
62
+ return showHideNavBtn(state, action.payload);
63
+ default:
64
+ return state;
65
+ }
66
+ }
67
+ function collapseGroup(state, { collapseId, collapsed }) {
68
+ const currentCollapsed = Object.assign({}, state.collapsedGroups);
69
+ if (collapsed) {
70
+ currentCollapsed[collapseId] = true;
71
+ }
72
+ else {
73
+ delete currentCollapsed[collapseId];
74
+ }
75
+ return Object.assign(Object.assign({}, state), { collapsedGroups: currentCollapsed });
76
+ }
77
+ function changeTab(state, formId, index) {
78
+ const currentTabIndex = Object.assign({}, state.currentTabIndex);
79
+ currentTabIndex[formId] = index;
80
+ return Object.assign(Object.assign({}, state), { currentTabIndex });
81
+ }
82
+ function navigate(state, { dataUnit, limit, backward }) {
83
+ const currentRecordIndex = Object.assign({}, state.currentRecordIndex);
84
+ const recIndex = currentRecordIndex[dataUnit] || 0;
85
+ return gotoIndex(state, dataUnit, backward ? Math.max(limit, recIndex - 1) : Math.min(limit, recIndex + 1));
86
+ }
87
+ function gotoIndex(state, dataUnit, index) {
88
+ const currentRecordIndex = Object.assign({}, state.currentRecordIndex);
89
+ currentRecordIndex[dataUnit] = index;
90
+ return Object.assign(Object.assign({}, state), { currentRecordIndex });
91
+ }
92
+ function insertRecord(state, { dataUnit, insertionIndex }) {
93
+ const currentRecordIndex = Object.assign({}, state.currentRecordIndex);
94
+ const newRecordIndex = Object.assign({}, state.newRecordIndex);
95
+ currentRecordIndex[dataUnit] = insertionIndex;
96
+ newRecordIndex[dataUnit] = (state.newRecordIndex[dataUnit] || 0) + 1;
97
+ return Object.assign(Object.assign({}, state), { currentRecordIndex,
98
+ newRecordIndex });
99
+ }
100
+ function changeFieldValue(state, { dataUnit, recordId, fieldName, value }) {
101
+ const changes = Object.assign({}, state.changes);
102
+ const dataUnitChanges = Object.assign({}, changes[dataUnit]);
103
+ const recordChanges = Object.assign({}, dataUnitChanges[recordId]);
104
+ recordChanges[fieldName] = value;
105
+ dataUnitChanges[recordId] = recordChanges;
106
+ changes[dataUnit] = dataUnitChanges;
107
+ const invalidFields = Object.assign({}, state.invalidFields);
108
+ const dataUnitInvalidRecords = Object.assign({}, invalidFields[dataUnit]);
109
+ const errorMessages = Object.assign({}, dataUnitInvalidRecords[recordId]);
110
+ delete errorMessages[fieldName];
111
+ dataUnitInvalidRecords[recordId] = errorMessages;
112
+ invalidFields[dataUnit] = dataUnitInvalidRecords;
113
+ return Object.assign(Object.assign({}, state), { changes,
114
+ invalidFields, invalidFieldSelected: undefined });
115
+ }
116
+ function clearEdition(state, { dataUnit, recordsLimit }) {
117
+ const changes = Object.assign({}, state.changes);
118
+ const newRecordIndex = Object.assign({}, state.newRecordIndex);
119
+ const currentRecordIndex = Object.assign({}, state.currentRecordIndex);
120
+ delete changes[dataUnit];
121
+ delete newRecordIndex[dataUnit];
122
+ const recIndex = currentRecordIndex[dataUnit] || 0;
123
+ currentRecordIndex[dataUnit] = Math.min(recordsLimit, recIndex);
124
+ return Object.assign(Object.assign({}, state), { changes,
125
+ newRecordIndex,
126
+ currentRecordIndex });
127
+ }
128
+ function navigateToInvalid(state, payload) {
129
+ let newState = Object.assign({}, state);
130
+ if (newState.invalidFieldSelected === undefined) {
131
+ newState.invalidFieldSelected = true;
132
+ newState = gotoIndex(newState, payload.dataUnit, payload.recordIndex);
133
+ newState = changeTab(newState, payload.tabController, payload.tabIndex);
134
+ }
135
+ return newState;
136
+ }
137
+ function dataLoading(state, { dataUnit }) {
138
+ const dataLoading = Object.assign({}, state.dataLoading);
139
+ dataLoading[dataUnit] = true;
140
+ return Object.assign(Object.assign({}, state), { dataLoading });
141
+ }
142
+ function dataLoaded(state, { dataUnit }) {
143
+ const dataLoading = Object.assign({}, state.dataLoading);
144
+ delete dataLoading[dataUnit];
145
+ return Object.assign(Object.assign({}, state), { dataLoading });
146
+ }
147
+ function savingChanges(state, { dataUnit }) {
148
+ const dataLoading = Object.assign({}, state.dataLoading);
149
+ dataLoading[dataUnit] = true;
150
+ return Object.assign(Object.assign({}, state), { dataLoading });
151
+ }
152
+ function changesSaved(state, { dataUnit }) {
153
+ const dataLoading = Object.assign({}, state.dataLoading);
154
+ delete dataLoading[dataUnit];
155
+ return Object.assign(Object.assign({}, state), { dataLoading });
156
+ }
157
+ function removingRecord(state, { dataUnit }) {
158
+ const dataLoading = Object.assign({}, state.dataLoading);
159
+ dataLoading[dataUnit] = true;
160
+ return Object.assign(Object.assign({}, state), { dataLoading });
161
+ }
162
+ function recordRemoved(state, { dataUnit }) {
163
+ const dataLoading = Object.assign({}, state.dataLoading);
164
+ delete dataLoading[dataUnit];
165
+ return Object.assign(Object.assign({}, state), { dataLoading });
166
+ }
167
+ function invalidField(state, { dataUnit, recordId, fieldName, errorMessage }) {
168
+ const invalidFields = Object.assign({}, state.invalidFields);
169
+ const dataUnitInvalidRecords = Object.assign({}, invalidFields[dataUnit]);
170
+ const errorMessages = Object.assign({}, dataUnitInvalidRecords[recordId]);
171
+ errorMessages[fieldName] = errorMessage;
172
+ dataUnitInvalidRecords[recordId] = errorMessages;
173
+ invalidFields[dataUnit] = dataUnitInvalidRecords;
174
+ return Object.assign(Object.assign({}, state), { invalidFields });
175
+ }
176
+ function clearAllInvalidFields(state, { dataUnit }) {
177
+ const invalidFields = Object.assign({}, state.invalidFields);
178
+ delete invalidFields[dataUnit];
179
+ return Object.assign(Object.assign({}, state), { invalidFields });
180
+ }
181
+ function clearInvalidField(state, { dataUnit, recordId, fieldName }) {
182
+ const invalidFields = Object.assign({}, state.invalidFields);
183
+ const dataUnitInvalidRecords = Object.assign({}, invalidFields[dataUnit]);
184
+ const errorMessages = Object.assign({}, dataUnitInvalidRecords[recordId]);
185
+ delete errorMessages[fieldName];
186
+ dataUnitInvalidRecords[recordId] = errorMessages;
187
+ invalidFields[dataUnit] = dataUnitInvalidRecords;
188
+ return Object.assign(Object.assign({}, state), { invalidFields });
189
+ }
190
+ function showHideNavBtn(state, { buttonName, status }) {
191
+ const visibleButtons = Object.assign({}, state.visibleButtons);
192
+ visibleButtons[buttonName] = status;
193
+ return Object.assign(Object.assign({}, state), { visibleButtons });
194
+ }