@sankhyalabs/core 1.0.40 → 1.0.42

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 (154) hide show
  1. package/.eslintignore +2 -0
  2. package/.eslintrc.cjs +34 -0
  3. package/README.md +54 -54
  4. package/dist/application/Application.d.ts +8 -0
  5. package/dist/application/Application.js +19 -0
  6. package/dist/application/Application.js.map +1 -0
  7. package/dist/dataunit/DataUnit.d.ts +82 -82
  8. package/dist/dataunit/DataUnit.js +278 -278
  9. package/dist/dataunit/DataUnit.js.map +1 -1
  10. package/dist/dataunit/metadata/DataType.d.ts +9 -9
  11. package/dist/dataunit/metadata/DataType.js +36 -36
  12. package/dist/dataunit/metadata/DataType.js.map +1 -1
  13. package/dist/dataunit/metadata/UnitMetadata.d.ts +71 -71
  14. package/dist/dataunit/metadata/UnitMetadata.js +31 -31
  15. package/dist/dataunit/state/HistReducer.d.ts +10 -10
  16. package/dist/dataunit/state/HistReducer.js +27 -27
  17. package/dist/dataunit/state/HistReducer.js.map +1 -1
  18. package/dist/dataunit/state/StateManager.d.ts +57 -57
  19. package/dist/dataunit/state/StateManager.js +96 -96
  20. package/dist/dataunit/state/action/DataUnitAction.d.ts +28 -28
  21. package/dist/dataunit/state/action/DataUnitAction.js +33 -33
  22. package/dist/dataunit/state/slice/AddedRecordsSlice.d.ts +11 -11
  23. package/dist/dataunit/state/slice/AddedRecordsSlice.js +25 -25
  24. package/dist/dataunit/state/slice/AddedRecordsSlice.js.map +1 -1
  25. package/dist/dataunit/state/slice/ChangesSlice.d.ts +12 -12
  26. package/dist/dataunit/state/slice/ChangesSlice.js +72 -72
  27. package/dist/dataunit/state/slice/ChangesSlice.js.map +1 -1
  28. package/dist/dataunit/state/slice/CurrentRecordsSlice.d.ts +11 -11
  29. package/dist/dataunit/state/slice/CurrentRecordsSlice.js +45 -45
  30. package/dist/dataunit/state/slice/CurrentRecordsSlice.js.map +1 -1
  31. package/dist/dataunit/state/slice/RecordsSlice.d.ts +10 -10
  32. package/dist/dataunit/state/slice/RecordsSlice.js +43 -43
  33. package/dist/dataunit/state/slice/RecordsSlice.js.map +1 -1
  34. package/dist/dataunit/state/slice/RemovedRecordsSlice.d.ts +9 -9
  35. package/dist/dataunit/state/slice/RemovedRecordsSlice.js +24 -24
  36. package/dist/dataunit/state/slice/RemovedRecordsSlice.js.map +1 -1
  37. package/dist/dataunit/state/slice/SelectionSlice.d.ts +11 -11
  38. package/dist/dataunit/state/slice/SelectionSlice.js +111 -111
  39. package/dist/dataunit/state/slice/SelectionSlice.js.map +1 -1
  40. package/dist/dataunit/state/slice/UnitMetadataSlice.d.ts +11 -11
  41. package/dist/dataunit/state/slice/UnitMetadataSlice.js +20 -20
  42. package/dist/dataunit/state/slice/UnitMetadataSlice.js.map +1 -1
  43. package/dist/http/AuthorizedServiceCaller.d.ts +11 -11
  44. package/dist/http/AuthorizedServiceCaller.js +53 -53
  45. package/dist/http/AuthorizedServiceCaller.js.map +1 -1
  46. package/dist/http/HttpProvider.d.ts +25 -25
  47. package/dist/http/HttpProvider.js +73 -73
  48. package/dist/http/HttpProvider.js.map +1 -1
  49. package/dist/http/RequestMetadata.d.ts +30 -30
  50. package/dist/http/RequestMetadata.js +24 -24
  51. package/dist/http/SkwHttpProvider.d.ts +9 -9
  52. package/dist/http/SkwHttpProvider.js +66 -67
  53. package/dist/http/SkwHttpProvider.js.map +1 -1
  54. package/dist/http/data-fetcher/HttpFetcher.d.ts +14 -0
  55. package/dist/http/data-fetcher/HttpFetcher.js +164 -0
  56. package/dist/http/data-fetcher/HttpFetcher.js.map +1 -0
  57. package/dist/http/data-fetcher/default/DefaultGraphQL.d.ts +3 -0
  58. package/dist/http/data-fetcher/default/DefaultGraphQL.js +18 -0
  59. package/dist/http/data-fetcher/default/DefaultGraphQL.js.map +1 -0
  60. package/dist/http/data-fetcher/default/application-config-fetcher.d.ts +6 -0
  61. package/dist/http/data-fetcher/default/application-config-fetcher.js +21 -0
  62. package/dist/http/data-fetcher/default/application-config-fetcher.js.map +1 -0
  63. package/dist/http/data-fetcher/default/data-unit-graphql.d.ts +3 -0
  64. package/dist/http/data-fetcher/default/data-unit-graphql.js +18 -0
  65. package/dist/http/data-fetcher/default/data-unit-graphql.js.map +1 -0
  66. package/dist/http/data-fetcher/default/dataunit-executor.d.ts +10 -0
  67. package/dist/http/data-fetcher/default/dataunit-executor.js +56 -0
  68. package/dist/http/data-fetcher/default/dataunit-executor.js.map +1 -0
  69. package/dist/http/data-fetcher/default/dataunit-fetcher.d.ts +9 -0
  70. package/dist/http/data-fetcher/default/dataunit-fetcher.js +69 -0
  71. package/dist/http/data-fetcher/default/dataunit-fetcher.js.map +1 -0
  72. package/dist/http/data-fetcher/default/form-config-fetcher.d.ts +2 -0
  73. package/dist/http/data-fetcher/default/form-config-fetcher.js +3 -0
  74. package/dist/http/data-fetcher/default/form-config-fetcher.js.map +1 -0
  75. package/dist/http/data-fetcher/default/grid-config-fetcher.d.ts +2 -0
  76. package/dist/http/data-fetcher/default/grid-config-fetcher.js +3 -0
  77. package/dist/http/data-fetcher/default/grid-config-fetcher.js.map +1 -0
  78. package/dist/http/data-fetcher/default/index.d.ts +0 -0
  79. package/dist/http/data-fetcher/default/index.js +2 -0
  80. package/dist/http/data-fetcher/default/index.js.map +1 -0
  81. package/dist/http/data-fetcher/default/sankhya-graphql.d.ts +3 -0
  82. package/dist/http/data-fetcher/default/sankhya-graphql.js +8 -0
  83. package/dist/http/data-fetcher/default/sankhya-graphql.js.map +1 -0
  84. package/dist/http/data-fetcher/graphql/DefaultGraphQl.d.ts +3 -0
  85. package/dist/http/data-fetcher/graphql/DefaultGraphQl.js +18 -0
  86. package/dist/http/data-fetcher/graphql/DefaultGraphQl.js.map +1 -0
  87. package/dist/http/data-fetcher/state/LoadStateManager.d.ts +23 -0
  88. package/dist/http/data-fetcher/state/LoadStateManager.js +78 -0
  89. package/dist/http/data-fetcher/state/LoadStateManager.js.map +1 -0
  90. package/dist/index.d.ts +16 -16
  91. package/dist/index.js +17 -17
  92. package/dist/index.js.map +1 -1
  93. package/dist/ui/FloatingManager.d.ts +24 -24
  94. package/dist/ui/FloatingManager.js +122 -123
  95. package/dist/ui/FloatingManager.js.map +1 -1
  96. package/dist/utils/ApplicationContext.d.ts +5 -5
  97. package/dist/utils/ApplicationContext.js +16 -16
  98. package/dist/utils/CriteriaModel.d.ts +109 -109
  99. package/dist/utils/CriteriaModel.js +173 -173
  100. package/dist/utils/CriteriaParameter.d.ts +69 -69
  101. package/dist/utils/CriteriaParameter.js +82 -84
  102. package/dist/utils/CriteriaParameter.js.map +1 -1
  103. package/dist/utils/DateUtils.d.ts +5 -5
  104. package/dist/utils/DateUtils.js +42 -42
  105. package/dist/utils/DateUtils.js.map +1 -1
  106. package/dist/utils/MaskFormatter.d.ts +126 -126
  107. package/dist/utils/MaskFormatter.js +275 -275
  108. package/dist/utils/NumberUtils.d.ts +53 -53
  109. package/dist/utils/NumberUtils.js +141 -146
  110. package/dist/utils/NumberUtils.js.map +1 -1
  111. package/dist/utils/StringUtils.d.ts +18 -18
  112. package/dist/utils/StringUtils.js +53 -53
  113. package/dist/utils/TimeFormatter.d.ts +33 -33
  114. package/dist/utils/TimeFormatter.js +97 -97
  115. package/dist/utils/TimeFormatter.js.map +1 -1
  116. package/jest.config.ts +16 -13
  117. package/mock/http/XMLHttpRequest-mock.js +25 -25
  118. package/package.json +37 -31
  119. package/src/dataunit/DataUnit.ts +356 -356
  120. package/src/dataunit/metadata/DataType.ts +37 -37
  121. package/src/dataunit/metadata/UnitMetadata.ts +82 -82
  122. package/src/dataunit/state/HistReducer.ts +33 -33
  123. package/src/dataunit/state/StateManager.ts +141 -141
  124. package/src/dataunit/state/action/DataUnitAction.ts +50 -50
  125. package/src/dataunit/state/slice/AddedRecordsSlice.ts +32 -32
  126. package/src/dataunit/state/slice/ChangesSlice.ts +90 -90
  127. package/src/dataunit/state/slice/CurrentRecordsSlice.ts +53 -53
  128. package/src/dataunit/state/slice/RecordsSlice.ts +56 -56
  129. package/src/dataunit/state/slice/RemovedRecordsSlice.ts +29 -29
  130. package/src/dataunit/state/slice/SelectionSlice.ts +130 -130
  131. package/src/dataunit/state/slice/UnitMetadataSlice.ts +29 -29
  132. package/src/http/AuthorizedServiceCaller.ts +58 -57
  133. package/src/http/HttpProvider.ts +93 -93
  134. package/src/http/RequestMetadata.ts +41 -41
  135. package/src/http/SkwHttpProvider.ts +77 -77
  136. package/src/index.ts +44 -44
  137. package/src/ui/FloatingManager.ts +165 -165
  138. package/src/utils/ApplicationContext.ts +18 -18
  139. package/src/utils/CriteriaModel.ts +207 -207
  140. package/src/utils/CriteriaParameter.ts +107 -107
  141. package/src/utils/DateUtils.ts +52 -52
  142. package/src/utils/MaskFormatter.ts +322 -322
  143. package/src/utils/NumberUtils.ts +175 -175
  144. package/src/utils/StringUtils.ts +60 -60
  145. package/src/utils/TimeFormatter.ts +97 -97
  146. package/test/http/HttpProvider.spec.ts +34 -34
  147. package/test/http/SkwHttpProvider.ts.spec.ts +33 -33
  148. package/test/util/CriteriaModel.spec.ts +231 -231
  149. package/test/util/CriteriaParameter.spec.ts +51 -51
  150. package/test/util/MaskFormatter.spec.ts +138 -138
  151. package/test/util/NumberUtils.spec.ts +156 -156
  152. package/test/util/StringUtils.spec.ts +43 -43
  153. package/test/util/TimeFormatter.spec.ts +25 -25
  154. package/tsconfig.json +15 -15
@@ -1,51 +1,51 @@
1
-
2
- import { StateAction } from "../StateManager";
3
-
4
- export class DataUnitAction implements StateAction{
5
-
6
- private _type: Action;
7
- private _payload: any;
8
-
9
- constructor(type: Action, payload?:any){
10
- this._type = type;
11
- this._payload = payload;
12
- }
13
-
14
- public get type(): Action{
15
- return this._type;
16
- }
17
-
18
- public get payload(): any{
19
- return this._payload;
20
- }
21
- }
22
-
23
- export enum Action{
24
-
25
- LOADING_METADATA = "loadingMetadata",
26
- METADATA_LOADED = "metadataLoaded",
27
-
28
- LOADING_DATA = "loadingData",
29
- DATA_LOADED = "dataLoaded",
30
-
31
- SAVING_DATA = "savingData",
32
- DATA_SAVED = "dataSaved",
33
-
34
- REMOVING_RECORDS = "removingRecords",
35
- RECORDS_REMOVED = "recordsRemoved",
36
-
37
- RECORDS_ADDED = "recordsAdded",
38
- RECORDS_COPIED = "recordsCopied",
39
- DATA_CHANGED = "dataChanged",
40
-
41
- EDITION_CANCELED = "editionCanceled",
42
- CHANGE_UNDONE = "changeUndone",
43
- CHANGE_REDONE = "changeRedone",
44
-
45
- SELECTION_CHANGED = "selectionChanged",
46
- NEXT_SELECTED = "nextSelected",
47
- PREVIOUS_SELECTED = "previousSelected",
48
-
49
- STATE_CHANGED = "stateChanged"
50
-
1
+
2
+ import { StateAction } from "../StateManager.js";
3
+
4
+ export class DataUnitAction implements StateAction{
5
+
6
+ private _type: Action;
7
+ private _payload: any;
8
+
9
+ constructor(type: Action, payload?:any){
10
+ this._type = type;
11
+ this._payload = payload;
12
+ }
13
+
14
+ public get type(): Action{
15
+ return this._type;
16
+ }
17
+
18
+ public get payload(): any{
19
+ return this._payload;
20
+ }
21
+ }
22
+
23
+ export enum Action{
24
+
25
+ LOADING_METADATA = "loadingMetadata",
26
+ METADATA_LOADED = "metadataLoaded",
27
+
28
+ LOADING_DATA = "loadingData",
29
+ DATA_LOADED = "dataLoaded",
30
+
31
+ SAVING_DATA = "savingData",
32
+ DATA_SAVED = "dataSaved",
33
+
34
+ REMOVING_RECORDS = "removingRecords",
35
+ RECORDS_REMOVED = "recordsRemoved",
36
+
37
+ RECORDS_ADDED = "recordsAdded",
38
+ RECORDS_COPIED = "recordsCopied",
39
+ DATA_CHANGED = "dataChanged",
40
+
41
+ EDITION_CANCELED = "editionCanceled",
42
+ CHANGE_UNDONE = "changeUndone",
43
+ CHANGE_REDONE = "changeRedone",
44
+
45
+ SELECTION_CHANGED = "selectionChanged",
46
+ NEXT_SELECTED = "nextSelected",
47
+ PREVIOUS_SELECTED = "previousSelected",
48
+
49
+ STATE_CHANGED = "stateChanged"
50
+
51
51
  }
@@ -1,33 +1,33 @@
1
-
2
- import { ActionReducer, StateAction } from "../StateManager";
3
- import { Action } from "../action/DataUnitAction";
4
- import StateManager from "../StateManager";
5
- import { Record } from "../../DataUnit";
6
-
7
- class AddedRecordsReducerImpl implements ActionReducer{
8
-
9
- public sliceName: string = "hist::addedRecords";
10
-
11
- public reduce(_stateManager:StateManager, currentState: Array<Record>, action: StateAction): Array<Record>|undefined {
12
- switch(action.type){
13
- case Action.RECORDS_ADDED:
14
- case Action.RECORDS_COPIED:
15
- return (currentState||[]).concat(action.payload);
16
- case Action.DATA_SAVED:
17
- case Action.EDITION_CANCELED:
18
- return undefined;
19
- }
20
- return currentState;
21
- }
22
- }
23
-
24
- export const AddedRecordsReducer = new AddedRecordsReducerImpl();
25
-
26
- export const getAddedRecords = (stateManager: StateManager): Array<Record> => {
27
- return stateManager.select(AddedRecordsReducer.sliceName, (state: Array<Record>) => state);
28
- };
29
-
30
- export const prepareAddedRecordId = (stateManager: StateManager, source: Array<any>): Array<Record> => {
31
- let index = (getAddedRecords(stateManager)||[]).length;
32
- return source.map(item=>{return {...item, __record__id__: "NEW_" + (index++)}});
1
+
2
+ import { ActionReducer, StateAction } from "../StateManager.js";
3
+ import { Action } from "../action/DataUnitAction.js";
4
+ import StateManager from "../StateManager.js";
5
+ import { Record } from "../../DataUnit.js";
6
+
7
+ class AddedRecordsReducerImpl implements ActionReducer{
8
+
9
+ public sliceName: string = "hist::addedRecords";
10
+
11
+ public reduce(_stateManager:StateManager, currentState: Array<Record>, action: StateAction): Array<Record>|undefined {
12
+ switch(action.type){
13
+ case Action.RECORDS_ADDED:
14
+ case Action.RECORDS_COPIED:
15
+ return (currentState||[]).concat(action.payload);
16
+ case Action.DATA_SAVED:
17
+ case Action.EDITION_CANCELED:
18
+ return undefined;
19
+ }
20
+ return currentState;
21
+ }
22
+ }
23
+
24
+ export const AddedRecordsReducer = new AddedRecordsReducerImpl();
25
+
26
+ export const getAddedRecords = (stateManager: StateManager): Array<Record> => {
27
+ return stateManager.select(AddedRecordsReducer.sliceName, (state: Array<Record>) => state);
28
+ };
29
+
30
+ export const prepareAddedRecordId = (stateManager: StateManager, source: Array<any>): Array<Record> => {
31
+ let index = (getAddedRecords(stateManager)||[]).length;
32
+ return source.map(item=>{return {...item, __record__id__: "NEW_" + (index++)}});
33
33
  };
@@ -1,91 +1,91 @@
1
-
2
- import { ActionReducer, StateAction } from "../StateManager";
3
- import { Action } from "../action/DataUnitAction";
4
- import StateManager from "../StateManager";
5
- import { getSelection } from "./SelectionSlice";
6
- import { getRecords } from "./RecordsSlice";
7
- import { getRemovedRecords } from "./RemovedRecordsSlice";
8
- import { getAddedRecords } from "./AddedRecordsSlice";
9
- import { Change, ChangeOperation } from "../../DataUnit";
10
-
11
- class ChangesReducerImpl implements ActionReducer{
12
-
13
- public sliceName: string = "hist::changes";
14
-
15
- public reduce(stateManager:StateManager, currentState: Map<string, any>, action: StateAction): Map<string, any>|undefined {
16
- switch(action.type){
17
-
18
- case Action.DATA_CHANGED:
19
- const selection: Array<string> = action.payload.records || getSelection(stateManager);
20
- if(selection){
21
- const newState = new Map(currentState);
22
- selection.forEach(recordId => {
23
- const newChanges = {...newState.get(recordId), ...action.payload};
24
- delete newChanges.records;
25
- newState.set(recordId, newChanges);
26
- });
27
- return newState;
28
- }
29
- return currentState;
30
-
31
- case Action.DATA_SAVED:
32
- case Action.EDITION_CANCELED:
33
- return undefined;
34
- }
35
- return currentState;
36
- }
37
-
38
- }
39
-
40
- export const ChangesReducer = new ChangesReducerImpl();
41
-
42
- export const getChanges = (stateManager: StateManager): Map<string, any> => {
43
- return stateManager.select(ChangesReducer.sliceName, (state: Map<string, any>) => state);
44
- }
45
-
46
- export const isDirty = (stateManager: StateManager): boolean => {
47
-
48
- if (getAddedRecords(stateManager) !== undefined) {
49
- return true;
50
- }
51
-
52
- if (getRemovedRecords(stateManager) !== undefined) {
53
- return true;
54
- }
55
-
56
- return getChanges(stateManager) !== undefined;
57
- }
58
-
59
- export const getChangesToSave = (dataUnit: string, stateManager: StateManager): Array<Change> => {
60
- const result: Array<Change> = [];
61
-
62
- const changes = getChanges(stateManager);
63
- const records = getRecords(stateManager);
64
-
65
- records?.forEach(r => {
66
- if(changes){
67
- const c = changes.get(r.__record__id__);
68
- if (c) {
69
- result.push(new Change(dataUnit, r, c, ChangeOperation.UPDATE));
70
- }
71
- }
72
- });
73
-
74
- const addedRecords = getAddedRecords(stateManager);
75
- if (addedRecords) {
76
- addedRecords.forEach(r => {
77
- result.push(new Change(dataUnit, r, changes?.get(r.__record__id__), ChangeOperation.INSERT));
78
- });
79
- }
80
-
81
- const removedRecords = getRemovedRecords(stateManager);
82
- const recordsById: any = {};
83
- records?.forEach(r=>recordsById[r.__record__id__] = r);
84
- if (removedRecords) {
85
- removedRecords.forEach(id => {
86
- result.push(new Change(dataUnit, recordsById[id], undefined, ChangeOperation.DELETE));
87
- });
88
- }
89
-
90
- return result;
1
+
2
+ import { ActionReducer, StateAction } from "../StateManager.js";
3
+ import { Action } from "../action/DataUnitAction.js";
4
+ import StateManager from "../StateManager.js";
5
+ import { getSelection } from "./SelectionSlice.js";
6
+ import { getRecords } from "./RecordsSlice.js";
7
+ import { getRemovedRecords } from "./RemovedRecordsSlice.js";
8
+ import { getAddedRecords } from "./AddedRecordsSlice.js";
9
+ import { Change, ChangeOperation } from "../../DataUnit.js";
10
+
11
+ class ChangesReducerImpl implements ActionReducer{
12
+
13
+ public sliceName: string = "hist::changes";
14
+
15
+ public reduce(stateManager:StateManager, currentState: Map<string, any>, action: StateAction): Map<string, any>|undefined {
16
+ switch(action.type){
17
+
18
+ case Action.DATA_CHANGED:
19
+ const selection: Array<string> = action.payload.records || getSelection(stateManager);
20
+ if(selection){
21
+ const newState = new Map(currentState);
22
+ selection.forEach(recordId => {
23
+ const newChanges = {...newState.get(recordId), ...action.payload};
24
+ delete newChanges.records;
25
+ newState.set(recordId, newChanges);
26
+ });
27
+ return newState;
28
+ }
29
+ return currentState;
30
+
31
+ case Action.DATA_SAVED:
32
+ case Action.EDITION_CANCELED:
33
+ return undefined;
34
+ }
35
+ return currentState;
36
+ }
37
+
38
+ }
39
+
40
+ export const ChangesReducer = new ChangesReducerImpl();
41
+
42
+ export const getChanges = (stateManager: StateManager): Map<string, any> => {
43
+ return stateManager.select(ChangesReducer.sliceName, (state: Map<string, any>) => state);
44
+ }
45
+
46
+ export const isDirty = (stateManager: StateManager): boolean => {
47
+
48
+ if (getAddedRecords(stateManager) !== undefined) {
49
+ return true;
50
+ }
51
+
52
+ if (getRemovedRecords(stateManager) !== undefined) {
53
+ return true;
54
+ }
55
+
56
+ return getChanges(stateManager) !== undefined;
57
+ }
58
+
59
+ export const getChangesToSave = (dataUnit: string, stateManager: StateManager): Array<Change> => {
60
+ const result: Array<Change> = [];
61
+
62
+ const changes = getChanges(stateManager);
63
+ const records = getRecords(stateManager);
64
+
65
+ records?.forEach(r => {
66
+ if(changes){
67
+ const c = changes.get(r.__record__id__);
68
+ if (c) {
69
+ result.push(new Change(dataUnit, r, c, ChangeOperation.UPDATE));
70
+ }
71
+ }
72
+ });
73
+
74
+ const addedRecords = getAddedRecords(stateManager);
75
+ if (addedRecords) {
76
+ addedRecords.forEach(r => {
77
+ result.push(new Change(dataUnit, r, changes?.get(r.__record__id__), ChangeOperation.INSERT));
78
+ });
79
+ }
80
+
81
+ const removedRecords = getRemovedRecords(stateManager);
82
+ const recordsById: any = {};
83
+ records?.forEach(r=>recordsById[r.__record__id__] = r);
84
+ if (removedRecords) {
85
+ removedRecords.forEach(id => {
86
+ result.push(new Change(dataUnit, recordsById[id], undefined, ChangeOperation.DELETE));
87
+ });
88
+ }
89
+
90
+ return result;
91
91
  }
@@ -1,54 +1,54 @@
1
-
2
- import { ActionReducer, StateAction } from "../StateManager";
3
- import StateManager from "../StateManager";
4
- import { Record } from "../../DataUnit";
5
- import { getRecords } from "./RecordsSlice";
6
- import { getSelection } from "./SelectionSlice";
7
- import { getChanges } from "./ChangesSlice";
8
- import { getRemovedRecords } from "./RemovedRecordsSlice";
9
- import { getAddedRecords } from "./AddedRecordsSlice";
10
-
11
-
12
- class CurrentRecordsReducerImpl implements ActionReducer{
13
-
14
- public sliceName: string = "currentRecords";
15
-
16
- public reduce(stateManager: StateManager, _currentState: Map<string, Record>, _action: StateAction): Map<string, Record> | undefined {
17
- let records = getRecords(stateManager);
18
- const added = getAddedRecords(stateManager);
19
- if(!records && !added){
20
- return undefined;
21
- }
22
- if(added){
23
- records = (records||[]).concat(added);
24
- }
25
- const removedRecords = getRemovedRecords(stateManager);
26
- if(removedRecords){
27
- records = records.filter(r => !removedRecords.includes(r.__record__id__));
28
- }
29
- const changes = getChanges(stateManager);
30
- return new Map(records.map(r => {
31
- const recordId = r.__record__id__;
32
- const record = {...r, ...changes?.get(recordId)};
33
- return [recordId, record];
34
- }));
35
- }
36
- }
37
-
38
- export const CurrentRecordsReducer = new CurrentRecordsReducerImpl();
39
-
40
- export const getCurrentRecords = (stateManager: StateManager): Map<string, Record> => {
41
- return stateManager.select(CurrentRecordsReducer.sliceName, (state: Map<string, Record>) => state);
42
- };
43
-
44
- export const getFieldValue = (stateManager: StateManager, fieldName: string): any => {
45
- const selection = getSelection(stateManager);
46
- if(selection && selection.length > 0){
47
- const currentRecords = getCurrentRecords(stateManager);
48
- if(currentRecords){
49
- const record = currentRecords.get(selection[0]);
50
- return record ? record[fieldName] : undefined;
51
- }
52
- }
53
- return undefined;
1
+
2
+ import { ActionReducer } from "../StateManager.js";
3
+ import StateManager from "../StateManager.js";
4
+ import { Record } from "../../DataUnit.js";
5
+ import { getRecords } from "./RecordsSlice.js";
6
+ import { getSelection } from "./SelectionSlice.js";
7
+ import { getChanges } from "./ChangesSlice.js";
8
+ import { getRemovedRecords } from "./RemovedRecordsSlice.js";
9
+ import { getAddedRecords } from "./AddedRecordsSlice.js";
10
+
11
+
12
+ class CurrentRecordsReducerImpl implements ActionReducer{
13
+
14
+ public sliceName: string = "currentRecords";
15
+
16
+ public reduce(stateManager: StateManager): Map<string, Record> | undefined {
17
+ let records = getRecords(stateManager);
18
+ const added = getAddedRecords(stateManager);
19
+ if(!records && !added){
20
+ return undefined;
21
+ }
22
+ if(added){
23
+ records = (records||[]).concat(added);
24
+ }
25
+ const removedRecords = getRemovedRecords(stateManager);
26
+ if(removedRecords){
27
+ records = records.filter(r => !removedRecords.includes(r.__record__id__));
28
+ }
29
+ const changes = getChanges(stateManager);
30
+ return new Map(records.map(r => {
31
+ const recordId = r.__record__id__;
32
+ const record = {...r, ...changes?.get(recordId)};
33
+ return [recordId, record];
34
+ }));
35
+ }
36
+ }
37
+
38
+ export const CurrentRecordsReducer = new CurrentRecordsReducerImpl();
39
+
40
+ export const getCurrentRecords = (stateManager: StateManager): Map<string, Record> => {
41
+ return stateManager.select(CurrentRecordsReducer.sliceName, (state: Map<string, Record>) => state);
42
+ };
43
+
44
+ export const getFieldValue = (stateManager: StateManager, fieldName: string): any => {
45
+ const selection = getSelection(stateManager);
46
+ if(selection && selection.length > 0){
47
+ const currentRecords = getCurrentRecords(stateManager);
48
+ if(currentRecords){
49
+ const record = currentRecords.get(selection[0]);
50
+ return record ? record[fieldName] : undefined;
51
+ }
52
+ }
53
+ return undefined;
54
54
  };
@@ -1,57 +1,57 @@
1
-
2
- import { ActionReducer, StateAction } from "../StateManager";
3
- import { Action } from "../action/DataUnitAction";
4
- import StateManager from "../StateManager";
5
- import { Record, SavedRecord } from "../../DataUnit";
6
- import { getRemovedRecords } from "./RemovedRecordsSlice";
7
-
8
-
9
- class RecordsReducerImpl implements ActionReducer {
10
-
11
- public sliceName: string = "records";
12
-
13
- public reduce(stateManager: StateManager, currentState: Array<Record>, action: StateAction): Array<Record> {
14
- switch (action.type) {
15
-
16
- case Action.DATA_LOADED:
17
- return action.payload;
18
- case Action.RECORDS_REMOVED:
19
-
20
- const {records, buffered} = action.payload;
21
- if(!buffered){
22
- return currentState.filter(r=>!records.includes(r.__record__id__));
23
- }
24
- return currentState;
25
-
26
- case Action.DATA_SAVED:
27
-
28
- const recordsMap: Map<string, Record> = new Map();
29
- const currentRecords = getRecords(stateManager);
30
-
31
- if (currentRecords) {
32
- const removed: Array<string> = getRemovedRecords(stateManager) || [];
33
- currentRecords.forEach(r => {
34
- if (!removed.includes(r.__record__id__)) {
35
- recordsMap.set(r.__record__id__, r);
36
- }
37
- });
38
- }
39
-
40
- const savedRecords: Array<SavedRecord> = action.payload.records;
41
- savedRecords.forEach(sr => {
42
- const recordId = sr.__old__id__ || sr.__record__id__;
43
- const newRecord: Record = { ...sr };
44
- delete newRecord["__old__id__"];
45
- recordsMap.set(recordId, newRecord);
46
- });
47
- return Array.from(recordsMap.values());
48
- }
49
- return currentState;
50
- }
51
- }
52
-
53
- export const RecordsReducer = new RecordsReducerImpl();
54
-
55
- export const getRecords = (stateManager: StateManager): Array<Record> => {
56
- return stateManager.select(RecordsReducer.sliceName, (state: Array<Record>) => state);
1
+
2
+ import { ActionReducer, StateAction } from "../StateManager.js";
3
+ import { Action } from "../action/DataUnitAction.js";
4
+ import StateManager from "../StateManager.js";
5
+ import { Record, SavedRecord } from "../../DataUnit.js";
6
+ import { getRemovedRecords } from "./RemovedRecordsSlice.js";
7
+
8
+
9
+ class RecordsReducerImpl implements ActionReducer {
10
+
11
+ public sliceName: string = "records";
12
+
13
+ public reduce(stateManager: StateManager, currentState: Array<Record>, action: StateAction): Array<Record> {
14
+ switch (action.type) {
15
+
16
+ case Action.DATA_LOADED:
17
+ return action.payload;
18
+ case Action.RECORDS_REMOVED:
19
+
20
+ const {records, buffered} = action.payload;
21
+ if(!buffered){
22
+ return currentState.filter(r=>!records.includes(r.__record__id__));
23
+ }
24
+ return currentState;
25
+
26
+ case Action.DATA_SAVED:
27
+
28
+ const recordsMap: Map<string, Record> = new Map();
29
+ const currentRecords = getRecords(stateManager);
30
+
31
+ if (currentRecords) {
32
+ const removed: Array<string> = getRemovedRecords(stateManager) || [];
33
+ currentRecords.forEach(r => {
34
+ if (!removed.includes(r.__record__id__)) {
35
+ recordsMap.set(r.__record__id__, r);
36
+ }
37
+ });
38
+ }
39
+
40
+ const savedRecords: Array<SavedRecord> = action.payload.records;
41
+ savedRecords.forEach(sr => {
42
+ const recordId = sr.__old__id__ || sr.__record__id__;
43
+ const newRecord: Record = { ...sr };
44
+ delete newRecord["__old__id__"];
45
+ recordsMap.set(recordId, newRecord);
46
+ });
47
+ return Array.from(recordsMap.values());
48
+ }
49
+ return currentState;
50
+ }
51
+ }
52
+
53
+ export const RecordsReducer = new RecordsReducerImpl();
54
+
55
+ export const getRecords = (stateManager: StateManager): Array<Record> => {
56
+ return stateManager.select(RecordsReducer.sliceName, (state: Array<Record>) => state);
57
57
  };
@@ -1,30 +1,30 @@
1
-
2
- import { ActionReducer, StateAction } from "../StateManager";
3
- import { Action } from "../action/DataUnitAction";
4
- import StateManager from "../StateManager";
5
-
6
- class RemovedRecordsReducerImpl implements ActionReducer{
7
-
8
- public sliceName: string = "hist::removedRecords";
9
-
10
- public reduce(_stateManager:StateManager, currentState: Array<string>, action: StateAction): Array<string>|undefined {
11
- switch(action.type){
12
- case Action.RECORDS_REMOVED:
13
- const {records, buffered} = action.payload;
14
- if(buffered){
15
- return (currentState||[]).concat(records);
16
- }
17
- return currentState;
18
- case Action.EDITION_CANCELED:
19
- case Action.DATA_SAVED:
20
- return undefined;
21
- }
22
- return currentState;
23
- }
24
- }
25
-
26
- export const RemovedRecordsReducer = new RemovedRecordsReducerImpl();
27
-
28
- export const getRemovedRecords = (stateManager: StateManager): Array<string> => {
29
- return stateManager.select(RemovedRecordsReducer.sliceName, (state: Array<string>) => state);
1
+
2
+ import { ActionReducer, StateAction } from "../StateManager.js";
3
+ import { Action } from "../action/DataUnitAction.js";
4
+ import StateManager from "../StateManager.js";
5
+
6
+ class RemovedRecordsReducerImpl implements ActionReducer{
7
+
8
+ public sliceName: string = "hist::removedRecords";
9
+
10
+ public reduce(_stateManager:StateManager, currentState: Array<string>, action: StateAction): Array<string>|undefined {
11
+ switch(action.type){
12
+ case Action.RECORDS_REMOVED:
13
+ const {records, buffered} = action.payload;
14
+ if(buffered){
15
+ return (currentState||[]).concat(records);
16
+ }
17
+ return currentState;
18
+ case Action.EDITION_CANCELED:
19
+ case Action.DATA_SAVED:
20
+ return undefined;
21
+ }
22
+ return currentState;
23
+ }
24
+ }
25
+
26
+ export const RemovedRecordsReducer = new RemovedRecordsReducerImpl();
27
+
28
+ export const getRemovedRecords = (stateManager: StateManager): Array<string> => {
29
+ return stateManager.select(RemovedRecordsReducer.sliceName, (state: Array<string>) => state);
30
30
  };