@sankhyalabs/core 4.0.2 → 4.1.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.
- package/.docs/classes/Change.md +11 -11
- package/.docs/classes/DataUnit.md +125 -70
- package/.docs/enums/Action.md +12 -1
- package/.docs/enums/ChangeOperation.md +4 -4
- package/.docs/interfaces/AllRecord.md +96 -0
- package/.docs/interfaces/DUActionInterceptor.md +1 -1
- package/.docs/interfaces/PageRequest.md +3 -3
- package/.docs/interfaces/QuickFilter.md +2 -2
- package/.docs/interfaces/Record.md +6 -4
- package/.docs/interfaces/SavedRecord.md +5 -5
- package/.docs/interfaces/WaitingChange.md +3 -3
- package/.docs/modules.md +1 -0
- package/dist/dataunit/DataUnit.d.ts +37 -10
- package/dist/dataunit/DataUnit.js +61 -31
- package/dist/dataunit/DataUnit.js.map +1 -1
- package/dist/dataunit/state/action/DataUnitAction.d.ts +1 -0
- package/dist/dataunit/state/action/DataUnitAction.js +1 -0
- package/dist/dataunit/state/action/DataUnitAction.js.map +1 -1
- package/dist/dataunit/state/slice/ChangesSlice.js +2 -2
- package/dist/dataunit/state/slice/ChangesSlice.js.map +1 -1
- package/dist/dataunit/state/slice/CurrentRecordsSlice.js +3 -3
- package/dist/dataunit/state/slice/CurrentRecordsSlice.js.map +1 -1
- package/dist/dataunit/state/slice/SelectionSlice.d.ts +4 -3
- package/dist/dataunit/state/slice/SelectionSlice.js +31 -25
- package/dist/dataunit/state/slice/SelectionSlice.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js.map +1 -1
- package/dist/utils/JSUtils.js +2 -2
- package/dist/utils/JSUtils.js.map +1 -1
- package/package.json +1 -1
- package/src/dataunit/DataUnit.ts +72 -35
- package/src/dataunit/state/action/DataUnitAction.ts +2 -1
- package/src/dataunit/state/slice/ChangesSlice.ts +2 -2
- package/src/dataunit/state/slice/CurrentRecordsSlice.ts +3 -3
- package/src/dataunit/state/slice/SelectionSlice.ts +40 -33
- package/src/index.ts +3 -2
- package/src/utils/JSUtils.ts +4 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Action } from "../action/DataUnitAction.js";
|
|
2
|
-
import {
|
|
2
|
+
import { getAllSelection } from "./SelectionSlice.js";
|
|
3
3
|
import { getRecords } from "./RecordsSlice.js";
|
|
4
4
|
import { getRemovedRecords } from "./RemovedRecordsSlice.js";
|
|
5
5
|
import { getAddedRecords } from "./AddedRecordsSlice.js";
|
|
@@ -26,7 +26,7 @@ class ChangesReducerImpl {
|
|
|
26
26
|
});
|
|
27
27
|
return changes;
|
|
28
28
|
case Action.DATA_CHANGED:
|
|
29
|
-
const selection = action.payload.records ||
|
|
29
|
+
const selection = action.payload.records || getAllSelection(stateManager);
|
|
30
30
|
if (selection) {
|
|
31
31
|
const newState = new Map(currentState);
|
|
32
32
|
selection.forEach(recordId => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangesSlice.js","sourceRoot":"","sources":["../../../../src/dataunit/state/slice/ChangesSlice.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ChangesSlice.js","sourceRoot":"","sources":["../../../../src/dataunit/state/slice/ChangesSlice.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getRecords } from "./RecordsSlice.js";
|
|
2
|
-
import {
|
|
2
|
+
import { getAllSelection } from "./SelectionSlice.js";
|
|
3
3
|
import { getChanges } from "./ChangesSlice.js";
|
|
4
4
|
import { getRemovedRecords } from "./RemovedRecordsSlice.js";
|
|
5
5
|
import { getAddedRecords } from "./AddedRecordsSlice.js";
|
|
@@ -49,11 +49,11 @@ export const getModifiedRecords = (stateManager) => {
|
|
|
49
49
|
return Array.from(currentRecords.values()).filter(r => modifiedIDs.includes(r.__record__id__));
|
|
50
50
|
};
|
|
51
51
|
export const getFieldValue = (stateManager, fieldName) => {
|
|
52
|
-
const selection =
|
|
52
|
+
const selection = getAllSelection(stateManager);
|
|
53
53
|
if (selection && selection.length > 0) {
|
|
54
54
|
const currentRecords = getCurrentRecords(stateManager);
|
|
55
55
|
if (currentRecords) {
|
|
56
|
-
const record = currentRecords.get(selection[0]);
|
|
56
|
+
const record = currentRecords.get(selection[0].__record__id__);
|
|
57
57
|
return record ? record[fieldName] : undefined;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurrentRecordsSlice.js","sourceRoot":"","sources":["../../../../src/dataunit/state/slice/CurrentRecordsSlice.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CurrentRecordsSlice.js","sourceRoot":"","sources":["../../../../src/dataunit/state/slice/CurrentRecordsSlice.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { ActionReducer, StateAction } from "../StateManager.js";
|
|
2
2
|
import StateManager from "../StateManager.js";
|
|
3
|
+
import { Record } from "../../DataUnit.js";
|
|
3
4
|
declare class SelectionReducerImpl implements ActionReducer {
|
|
4
5
|
sliceName: string;
|
|
5
6
|
reduce(stateManager: StateManager, currentState: SelectionState, action: StateAction): SelectionState | undefined;
|
|
6
7
|
}
|
|
7
8
|
export declare const SelectionReducer: SelectionReducerImpl;
|
|
8
|
-
export declare const
|
|
9
|
+
export declare const getAllSelection: (stateManager: StateManager) => Array<Record>;
|
|
9
10
|
export declare const hasNext: (stateManager: StateManager) => boolean;
|
|
10
11
|
export declare const hasPrevious: (stateManager: StateManager) => boolean;
|
|
11
12
|
interface SelectionState {
|
|
12
|
-
currentSelection: Array<
|
|
13
|
-
lastSelection?: Array<
|
|
13
|
+
currentSelection: Array<Record>;
|
|
14
|
+
lastSelection?: Array<Record>;
|
|
14
15
|
}
|
|
15
16
|
export {};
|
|
@@ -15,7 +15,7 @@ class SelectionReducerImpl {
|
|
|
15
15
|
const removed = action.payload.records;
|
|
16
16
|
if (currentState && removed) {
|
|
17
17
|
const currentSelection = currentState.currentSelection;
|
|
18
|
-
const record = currentSelection.filter(
|
|
18
|
+
const record = currentSelection.filter((selectedRecord) => !removed.includes(selectedRecord.__record__id__));
|
|
19
19
|
if (record.length === 0) {
|
|
20
20
|
const currentRecords = getCurrentRecords(stateManager);
|
|
21
21
|
let removedIndex = action.payload.removedIndex.slice(-1)[0];
|
|
@@ -26,9 +26,9 @@ class SelectionReducerImpl {
|
|
|
26
26
|
else {
|
|
27
27
|
removedIndex++;
|
|
28
28
|
}
|
|
29
|
-
currentRecords.forEach((value
|
|
29
|
+
currentRecords.forEach((value) => {
|
|
30
30
|
if (currentIndex === removedIndex) {
|
|
31
|
-
record.push(
|
|
31
|
+
record.push(value);
|
|
32
32
|
}
|
|
33
33
|
currentIndex++;
|
|
34
34
|
});
|
|
@@ -46,10 +46,10 @@ class SelectionReducerImpl {
|
|
|
46
46
|
index = action.type === Action.PREVIOUS_SELECTED ? 0 : Math.min(1, currentRecords.size);
|
|
47
47
|
}
|
|
48
48
|
else {
|
|
49
|
-
index = getItemIndex(currentSelection[0], currentRecords) + (action.type === Action.PREVIOUS_SELECTED ? -1 : 1);
|
|
49
|
+
index = getItemIndex(currentSelection[0].__record__id__, currentRecords) + (action.type === Action.PREVIOUS_SELECTED ? -1 : 1);
|
|
50
50
|
}
|
|
51
51
|
if (index < currentRecords.size && index >= 0) {
|
|
52
|
-
return { currentSelection: [Array.from(currentRecords.values())[index]
|
|
52
|
+
return { currentSelection: [Array.from(currentRecords.values())[index]] };
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
return undefined;
|
|
@@ -59,16 +59,29 @@ class SelectionReducerImpl {
|
|
|
59
59
|
const currentRecords = getCurrentRecords(stateManager);
|
|
60
60
|
if (currentRecords) {
|
|
61
61
|
const records = Array.from(currentRecords.values());
|
|
62
|
-
const
|
|
62
|
+
const selectionRecord = [];
|
|
63
63
|
selectionSource.forEach((i) => {
|
|
64
64
|
if (i >= 0 && i < currentRecords.size) {
|
|
65
|
-
|
|
65
|
+
selectionRecord.push(records[i]);
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
|
-
return { currentSelection:
|
|
68
|
+
return { currentSelection: selectionRecord };
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
return { currentSelection:
|
|
71
|
+
return { currentSelection: selectionSource };
|
|
72
|
+
case Action.SELECTION_REMOVED:
|
|
73
|
+
if (currentState != undefined) {
|
|
74
|
+
const { unselection } = action.payload;
|
|
75
|
+
const currentSelection = currentState.currentSelection;
|
|
76
|
+
const selectionFiltered = currentSelection === null || currentSelection === void 0 ? void 0 : currentSelection.filter((selectedRecord) => {
|
|
77
|
+
return !(unselection || [])
|
|
78
|
+
.some((unselectedRecord) => {
|
|
79
|
+
return unselectedRecord.__record__id__ === selectedRecord.__record__id__;
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
return { currentSelection: selectionFiltered };
|
|
83
|
+
}
|
|
84
|
+
return undefined;
|
|
72
85
|
case Action.EDITION_CANCELED:
|
|
73
86
|
if (currentState === null || currentState === void 0 ? void 0 : currentState.lastSelection) {
|
|
74
87
|
return { currentSelection: currentState.lastSelection };
|
|
@@ -78,8 +91,8 @@ class SelectionReducerImpl {
|
|
|
78
91
|
}
|
|
79
92
|
}
|
|
80
93
|
export const SelectionReducer = new SelectionReducerImpl();
|
|
81
|
-
export const
|
|
82
|
-
|
|
94
|
+
export const getAllSelection = (stateManager) => {
|
|
95
|
+
const selection = getCurrentSelection(stateManager);
|
|
83
96
|
if (!selection || selection.length === 0) {
|
|
84
97
|
return [];
|
|
85
98
|
}
|
|
@@ -92,7 +105,7 @@ export const hasNext = (stateManager) => {
|
|
|
92
105
|
if (!selection || selection.length === 0) {
|
|
93
106
|
return records.size > 0;
|
|
94
107
|
}
|
|
95
|
-
return records.size > (getItemIndex(selection[0], records) + 1);
|
|
108
|
+
return records.size > (getItemIndex(selection[0].__record__id__, records) + 1);
|
|
96
109
|
}
|
|
97
110
|
return false;
|
|
98
111
|
};
|
|
@@ -103,31 +116,24 @@ export const hasPrevious = (stateManager) => {
|
|
|
103
116
|
if (!selection || selection.length === 0) {
|
|
104
117
|
return false;
|
|
105
118
|
}
|
|
106
|
-
return getItemIndex(selection[0], records) > 0;
|
|
119
|
+
return getItemIndex(selection[0].__record__id__, records) > 0;
|
|
107
120
|
}
|
|
108
121
|
return false;
|
|
109
122
|
};
|
|
110
|
-
function getFilteredSelection(selection, stateManager) {
|
|
111
|
-
if (selection) {
|
|
112
|
-
const records = getCurrentRecords(stateManager);
|
|
113
|
-
return selection.filter(id => records.has(id));
|
|
114
|
-
}
|
|
115
|
-
return selection;
|
|
116
|
-
}
|
|
117
123
|
function getItemIndex(key, map) {
|
|
118
124
|
return Array.from(map.keys()).indexOf(key);
|
|
119
125
|
}
|
|
120
126
|
function updateSavedIds(stateManager, savedRecords) {
|
|
121
|
-
const currentSelection =
|
|
127
|
+
const currentSelection = getAllSelection(stateManager);
|
|
122
128
|
if (currentSelection) {
|
|
123
129
|
const newSelection = [];
|
|
124
|
-
currentSelection.forEach(
|
|
125
|
-
const record = savedRecords.find(r => r.__old__id__ ===
|
|
130
|
+
currentSelection.forEach(recordSelection => {
|
|
131
|
+
const record = savedRecords.find(r => r.__old__id__ === recordSelection.__record__id__);
|
|
126
132
|
if (record) {
|
|
127
|
-
newSelection.push(record
|
|
133
|
+
newSelection.push(record);
|
|
128
134
|
}
|
|
129
135
|
else {
|
|
130
|
-
newSelection.push(
|
|
136
|
+
newSelection.push(recordSelection);
|
|
131
137
|
}
|
|
132
138
|
});
|
|
133
139
|
return newSelection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionSlice.js","sourceRoot":"","sources":["../../../../src/dataunit/state/slice/SelectionSlice.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,MAAM,oBAAoB;IAA1B;QAEW,cAAS,GAAW,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"SelectionSlice.js","sourceRoot":"","sources":["../../../../src/dataunit/state/slice/SelectionSlice.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { HttpProvider } from "./http/HttpProvider.js";
|
|
|
9
9
|
import { SkwHttpProvider } from "./http/SkwHttpProvider.js";
|
|
10
10
|
import { RequestMetadata } from "./http/RequestMetadata.js";
|
|
11
11
|
import { AuthorizedServiceCaller } from "./http/AuthorizedServiceCaller.js";
|
|
12
|
-
import DataUnit, { SavedRecord, Record, Change, ChangeOperation, DUActionInterceptor, WaitingChange, PageRequest, QuickFilter } from "./dataunit/DataUnit.js";
|
|
12
|
+
import DataUnit, { SavedRecord, Record, Change, ChangeOperation, DUActionInterceptor, WaitingChange, PageRequest, QuickFilter, AllRecord } from "./dataunit/DataUnit.js";
|
|
13
13
|
import { DataType } from "./dataunit/metadata/DataType.js";
|
|
14
14
|
import { UnitMetadata, FieldDescriptor, UserInterface, Sort, SortMode, SortingProvider, Filter, DependencyType, ChildDescriptor, ChildLink } from "./dataunit/metadata/UnitMetadata.js";
|
|
15
15
|
import { DataUnitAction, Action, ExecutionContext } from "./dataunit/state/action/DataUnitAction.js";
|
|
@@ -27,4 +27,4 @@ import { ElementIDUtils, IElementIDInfo } from "./utils/ElementIDUtils.js";
|
|
|
27
27
|
import { UserAgentUtils } from "./utils/UserAgentUtils/index.js";
|
|
28
28
|
import { JSUtils } from "./utils/JSUtils.js";
|
|
29
29
|
import { DataUnitStorage } from "./dataunit/DataUnitStorage.js";
|
|
30
|
-
export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, ArrayUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, DataUnitStorage, Record, SavedRecord, DataType, UnitMetadata, FieldDescriptor, UserInterface, DependencyType, ChildDescriptor, ChildLink, DataUnitAction, Action, Change, Sort, Filter, ChangeOperation, DUActionInterceptor, ApplicationContext, WaitingChange, PageRequest, QuickFilter, ReadyUtil, ObjectUtils, WarningException, WaitingChangeException, ErrorException, ErrorTracking, ExecutionContext, PaginationInfo, SortingProvider, SortMode, LoadDataRequest, LoadDataResponse, ElementIDUtils, IElementIDInfo, UserAgentUtils, JSUtils };
|
|
30
|
+
export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, ArrayUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, DataUnitStorage, Record, SavedRecord, DataType, UnitMetadata, FieldDescriptor, UserInterface, DependencyType, ChildDescriptor, ChildLink, DataUnitAction, Action, Change, Sort, Filter, ChangeOperation, DUActionInterceptor, ApplicationContext, WaitingChange, PageRequest, QuickFilter, ReadyUtil, ObjectUtils, WarningException, WaitingChangeException, ErrorException, ErrorTracking, ExecutionContext, PaginationInfo, SortingProvider, SortMode, LoadDataRequest, LoadDataResponse, ElementIDUtils, IElementIDInfo, UserAgentUtils, JSUtils, AllRecord };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,QAAQ,EAAE,EAAsB,MAAM,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,QAAQ,EAAE,EAAsB,MAAM,EAAE,eAAe,EAA0E,MAAM,wBAAwB,CAAC;AACvK,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAiC,aAAa,EAAQ,QAAQ,EAA2B,cAAc,EAA8B,MAAM,qCAAqC,CAAC;AACxL,OAAO,EAAE,cAAc,EAAE,MAAM,EAAoB,MAAM,2CAA2C,CAAC;AACrG,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAC/D,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAChE,OAAO,sBAAsB,MAAM,wCAAwC,CAAC;AAC5E,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI1D,OAAO,EAAE,cAAc,EAAkB,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,8BAA8B;AAC9B,OAAO,EACH,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,SAAS,EACT,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,QAAQ,EACR,eAAe,EAGf,QAAQ,EAGR,aAAa,EACb,cAAc,EAGd,cAAc,EACd,MAAM,EACN,MAAM,EAGN,eAAe,EAEf,kBAAkB,EAIlB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,aAAa,EAIb,QAAQ,EAGR,cAAc,EAEd,cAAc,EACd,OAAO,EAEV,CAAC"}
|
package/dist/utils/JSUtils.js
CHANGED
|
@@ -42,12 +42,12 @@ export class JSUtils {
|
|
|
42
42
|
* @returns - Retorna um valor booleando informando se a string está encodada com base64.
|
|
43
43
|
*/
|
|
44
44
|
static isBase64(str) {
|
|
45
|
-
str = str.replaceAll("\n", "");
|
|
45
|
+
str = (str || '').replaceAll("\n", "");
|
|
46
46
|
if (str === '' || str.trim() === '') {
|
|
47
47
|
return false;
|
|
48
48
|
}
|
|
49
49
|
try {
|
|
50
|
-
return btoa(atob(str)) == str;
|
|
50
|
+
return window.btoa(window.atob(str)) == str;
|
|
51
51
|
}
|
|
52
52
|
catch (err) {
|
|
53
53
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSUtils.js","sourceRoot":"","sources":["../../src/utils/JSUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,OAAO;IAElB;;;;;;;OAOG;IACI,MAAM,CAAC,QAAQ,CAAC,QAAa,EAAE,UAAkB,GAAG;QACvD,IAAI,KAAU,CAAC;QACf,OAAO,CAAC,GAAG,IAAS,EAAE,EAAE;YACtB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,gBAAgB,CAAC,OAA0B;QACvD,IAAI,OAAO,IAAI,SAAS,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QAED,IAAI,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE;YAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACvE,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,MAAK,UAAU,CAAC;SAC7C;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"JSUtils.js","sourceRoot":"","sources":["../../src/utils/JSUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,OAAO;IAElB;;;;;;;OAOG;IACI,MAAM,CAAC,QAAQ,CAAC,QAAa,EAAE,UAAkB,GAAG;QACvD,IAAI,KAAU,CAAC;QACf,OAAO,CAAC,GAAG,IAAS,EAAE,EAAE;YACtB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,gBAAgB,CAAC,OAA0B;QACvD,IAAI,OAAO,IAAI,SAAS,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QAED,IAAI,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE;YAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACvE,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,MAAK,UAAU,CAAC;SAC7C;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,QAAQ,CAAC,GAAW;QAChC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAC;YAAE,OAAO,KAAK,CAAC;SAAE;QACrD,IAAI;YACA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;SAC/C;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,KAAK,CAAC;SAChB;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
package/src/dataunit/DataUnit.ts
CHANGED
|
@@ -17,7 +17,7 @@ import { CurrentRecordsReducer, getCurrentRecords, getFieldValue, getModifiedRec
|
|
|
17
17
|
import { getCurrentPage, getLastPage, getPaginationInfo, getCurrentRequest, LoadingControlReducer, hasMorePages, hasPreviousPages } from "./state/slice/LoadingControlSlice.js";
|
|
18
18
|
import { getRecords, RecordsReducer } from "./state/slice/RecordsSlice.js";
|
|
19
19
|
import { RemovedRecordsReducer } from "./state/slice/RemovedRecordsSlice.js";
|
|
20
|
-
import {
|
|
20
|
+
import { getAllSelection, hasNext, hasPrevious, SelectionReducer } from "./state/slice/SelectionSlice.js";
|
|
21
21
|
import { getField, getMetadata, UnitMetadataReducer } from "./state/slice/UnitMetadataSlice.js";
|
|
22
22
|
import { getBlockingWaitingChanges, getWaitingChangePromisses, isWaiting, WaitingChangesReducer } from "./state/slice/WaitingChangesSlice.js";
|
|
23
23
|
import { canRedo, canUndo, HistReducer } from "./state/HistReducer.js";
|
|
@@ -436,10 +436,10 @@ export default class DataUnit {
|
|
|
436
436
|
*
|
|
437
437
|
*/
|
|
438
438
|
public async removeSelectedRecords(buffered: boolean = false): Promise<Array<string>> {
|
|
439
|
-
const selection =
|
|
439
|
+
const selection = getAllSelection(this._stateManager);
|
|
440
440
|
if (selection) {
|
|
441
|
-
const records = this.
|
|
442
|
-
return this.removeRecords(selection, records, buffered);
|
|
441
|
+
const records = this.getAllSelection() || [];
|
|
442
|
+
return this.removeRecords(selection.map(sel => sel.__record__id__), records, buffered);
|
|
443
443
|
}
|
|
444
444
|
return Promise.resolve(selection);
|
|
445
445
|
}
|
|
@@ -724,7 +724,7 @@ export default class DataUnit {
|
|
|
724
724
|
*
|
|
725
725
|
*/
|
|
726
726
|
public copySelected(executionCtx?: ExecutionContext): void {
|
|
727
|
-
const selectedRecords = this.
|
|
727
|
+
const selectedRecords = this.getAllSelection();
|
|
728
728
|
if (selectedRecords) {
|
|
729
729
|
this.dispatchAction(Action.RECORDS_COPIED, prepareCopiedRecord(this._stateManager, selectedRecords, this.getParentRecordId()), executionCtx);
|
|
730
730
|
}
|
|
@@ -734,18 +734,19 @@ export default class DataUnit {
|
|
|
734
734
|
const recordsMap = new Map<string, Array<Record>>();
|
|
735
735
|
|
|
736
736
|
records.forEach(record => {
|
|
737
|
-
|
|
737
|
+
let { __owner__dataunit__name__: ownerDataUnitName } = record;
|
|
738
738
|
|
|
739
|
-
if(ownerDataUnitName){
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
if(!changes){
|
|
743
|
-
changes = [];
|
|
744
|
-
recordsMap.set(ownerDataUnitName, changes);
|
|
745
|
-
}
|
|
746
|
-
|
|
747
|
-
changes.push(record);
|
|
739
|
+
if(!ownerDataUnitName){
|
|
740
|
+
ownerDataUnitName = this.name;
|
|
748
741
|
}
|
|
742
|
+
let changes = recordsMap.get(ownerDataUnitName);
|
|
743
|
+
|
|
744
|
+
if(!changes){
|
|
745
|
+
changes = [];
|
|
746
|
+
recordsMap.set(ownerDataUnitName, changes);
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
changes.push(record);
|
|
749
750
|
});
|
|
750
751
|
|
|
751
752
|
return recordsMap;
|
|
@@ -825,26 +826,53 @@ export default class DataUnit {
|
|
|
825
826
|
}
|
|
826
827
|
|
|
827
828
|
/**
|
|
829
|
+
* Obtém todos os registros selecionados.
|
|
828
830
|
*
|
|
829
|
-
*
|
|
831
|
+
* @returns - Lista de todos os registros selecionados.
|
|
832
|
+
*/
|
|
833
|
+
public getAllSelection(): Array<Record> {
|
|
834
|
+
return getAllSelection(this._stateManager);
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
/**
|
|
838
|
+
*
|
|
839
|
+
* Seleciona múltiplos registros.
|
|
840
|
+
*
|
|
841
|
+
* @param selection - Registros para selecionar.
|
|
842
|
+
* @param executionCtx - Contexto de execução da seleção dos registros do DataUnit.
|
|
830
843
|
*
|
|
831
|
-
* @returns -
|
|
844
|
+
* @returns - Verdadeiro se ação executada.
|
|
832
845
|
*
|
|
833
846
|
*/
|
|
834
|
-
public
|
|
835
|
-
return
|
|
847
|
+
public setSelection(selection: Array<Record>, executionCtx?: ExecutionContext): Promise<boolean> {
|
|
848
|
+
return this.dispatchAction(Action.SELECTION_CHANGED, { type: "id", selection }, executionCtx);
|
|
836
849
|
}
|
|
837
850
|
|
|
838
851
|
/**
|
|
839
852
|
*
|
|
840
|
-
*
|
|
853
|
+
* Remove a seleção de múltiplos registros.
|
|
841
854
|
*
|
|
842
|
-
* @param
|
|
843
|
-
* @param executionCtx - Contexto de execução da seleção dos registros do DataUnit.
|
|
855
|
+
* @param unselection - Registros para remover a seleção.
|
|
856
|
+
* @param executionCtx - Contexto de execução da remoção da seleção dos registros do DataUnit.
|
|
857
|
+
*
|
|
858
|
+
* @returns - Verdadeiro se ação executada.
|
|
844
859
|
*
|
|
845
860
|
*/
|
|
846
|
-
public
|
|
847
|
-
this.dispatchAction(Action.
|
|
861
|
+
public setUnselection(unselection: Array<Record>, executionCtx?: ExecutionContext): Promise<boolean> {
|
|
862
|
+
return this.dispatchAction(Action.SELECTION_REMOVED, { type: "id", unselection }, executionCtx);
|
|
863
|
+
}
|
|
864
|
+
|
|
865
|
+
/**
|
|
866
|
+
*
|
|
867
|
+
* Remove a seleção de todos os registros.
|
|
868
|
+
*
|
|
869
|
+
* @param executionCtx - Contexto de execução da remoção da seleção dos registros do DataUnit.
|
|
870
|
+
*
|
|
871
|
+
* @returns - Verdadeiro se ação executada.
|
|
872
|
+
*
|
|
873
|
+
*/
|
|
874
|
+
public clearSelection(executionCtx?: ExecutionContext): Promise<boolean> {
|
|
875
|
+
return this.dispatchAction(Action.SELECTION_REMOVED, { type: "id", unselection: this.getAllSelection() }, executionCtx);
|
|
848
876
|
}
|
|
849
877
|
|
|
850
878
|
/**
|
|
@@ -881,23 +909,27 @@ export default class DataUnit {
|
|
|
881
909
|
* @param selection - Índices desejados para a seleção.
|
|
882
910
|
* @param executionCtx - Contexto de execução da seleção do registro do DataUnit.
|
|
883
911
|
*
|
|
912
|
+
* @returns - Verdadeiro se ação executada.
|
|
913
|
+
*
|
|
884
914
|
*/
|
|
885
|
-
public setSelectionByIndex(selection: Array<number>, executionCtx?: ExecutionContext):
|
|
886
|
-
this.dispatchAction(Action.SELECTION_CHANGED, { type: "index", selection }, executionCtx);
|
|
915
|
+
public setSelectionByIndex(selection: Array<number>, executionCtx?: ExecutionContext): Promise<boolean> {
|
|
916
|
+
return this.dispatchAction(Action.SELECTION_CHANGED, { type: "index", selection }, executionCtx);
|
|
887
917
|
}
|
|
888
918
|
|
|
889
919
|
/**
|
|
890
920
|
*
|
|
891
|
-
* Obtém
|
|
921
|
+
* Obtém os registros selecionados da página atual.
|
|
892
922
|
*
|
|
893
|
-
* @returns - Lista de registros selecionados.
|
|
923
|
+
* @returns - Lista de registros selecionados da página atual.
|
|
894
924
|
*
|
|
895
925
|
*/
|
|
896
926
|
public getSelectedRecords(): Array<Record> | undefined {
|
|
897
|
-
const selection: Array<
|
|
927
|
+
const selection: Array<Record> = this.getAllSelection();
|
|
898
928
|
if (selection) {
|
|
899
929
|
const currentRecords: Array<Record> = this.records;
|
|
900
|
-
return currentRecords?.filter(record =>
|
|
930
|
+
return currentRecords?.filter((record: Record) => {
|
|
931
|
+
return selection.some((sel: Record) => sel.__record__id__ === record.__record__id__);
|
|
932
|
+
});
|
|
901
933
|
}
|
|
902
934
|
}
|
|
903
935
|
|
|
@@ -909,9 +941,9 @@ export default class DataUnit {
|
|
|
909
941
|
*
|
|
910
942
|
*/
|
|
911
943
|
public getSelectedRecord(): Record | undefined {
|
|
912
|
-
const selection: Array<
|
|
913
|
-
if(!selection) return;
|
|
914
|
-
return this.records.find(record => (selection as Array<
|
|
944
|
+
const selection: Array<Record> = this.getAllSelection();
|
|
945
|
+
if (!selection) return;
|
|
946
|
+
return this.records.find(record => (selection as Array<Record>).some(sel => sel.__record__id__ === record.__record__id__));
|
|
915
947
|
}
|
|
916
948
|
|
|
917
949
|
/**
|
|
@@ -1299,13 +1331,13 @@ export default class DataUnit {
|
|
|
1299
1331
|
*/
|
|
1300
1332
|
public reloadCurrentRecord(): Promise<Array<Record>>{
|
|
1301
1333
|
return new Promise(async (resolve, fail) => {
|
|
1302
|
-
const selection = this.
|
|
1334
|
+
const selection = this.getAllSelection();
|
|
1303
1335
|
this.dispatchAction(Action.LOADING_RECORD, selection);
|
|
1304
1336
|
|
|
1305
1337
|
if(!this.dataLoader) return;
|
|
1306
1338
|
if(!this.recordLoader) return;
|
|
1307
1339
|
|
|
1308
|
-
this.recordLoader(this, selection).then(response => {
|
|
1340
|
+
this.recordLoader(this, selection?.map(sel => sel.__record__id__)).then(response => {
|
|
1309
1341
|
this.dispatchAction(Action.RECORD_LOADED, response)
|
|
1310
1342
|
}).catch(cause => {
|
|
1311
1343
|
const {errorCode} = cause;
|
|
@@ -1420,6 +1452,11 @@ export interface SavedRecord extends Record {
|
|
|
1420
1452
|
__old__id__?: string;
|
|
1421
1453
|
}
|
|
1422
1454
|
|
|
1455
|
+
export interface AllRecord extends Record {
|
|
1456
|
+
filter: Array<Filter>;
|
|
1457
|
+
sort: Array<Sort>;
|
|
1458
|
+
}
|
|
1459
|
+
|
|
1423
1460
|
export enum ChangeOperation {
|
|
1424
1461
|
INSERT = "INSERT",
|
|
1425
1462
|
COPY = "COPY",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { ActionReducer, StateAction } from "../StateManager.js";
|
|
3
3
|
import { Action } from "../action/DataUnitAction.js";
|
|
4
4
|
import StateManager from "../StateManager.js";
|
|
5
|
-
import {
|
|
5
|
+
import { getAllSelection } from "./SelectionSlice.js";
|
|
6
6
|
import { getRecords } from "./RecordsSlice.js";
|
|
7
7
|
import { getRemovedRecords } from "./RemovedRecordsSlice.js";
|
|
8
8
|
import { getAddedRecords } from "./AddedRecordsSlice.js";
|
|
@@ -32,7 +32,7 @@ class ChangesReducerImpl implements ActionReducer{
|
|
|
32
32
|
);
|
|
33
33
|
return changes;
|
|
34
34
|
case Action.DATA_CHANGED:
|
|
35
|
-
const selection: Array<string> = action.payload.records ||
|
|
35
|
+
const selection: Array<string> = action.payload.records || getAllSelection(stateManager);
|
|
36
36
|
if(selection){
|
|
37
37
|
const newState = new Map(currentState);
|
|
38
38
|
selection.forEach(recordId => {
|
|
@@ -3,7 +3,7 @@ import { ActionReducer } from "../StateManager.js";
|
|
|
3
3
|
import StateManager from "../StateManager.js";
|
|
4
4
|
import { Record } from "../../DataUnit.js";
|
|
5
5
|
import { getRecords } from "./RecordsSlice.js";
|
|
6
|
-
import {
|
|
6
|
+
import { getAllSelection } from "./SelectionSlice.js";
|
|
7
7
|
import { getChanges } from "./ChangesSlice.js";
|
|
8
8
|
import { getRemovedRecords } from "./RemovedRecordsSlice.js";
|
|
9
9
|
import { getAddedRecords } from "./AddedRecordsSlice.js";
|
|
@@ -64,11 +64,11 @@ export const getModifiedRecords = (stateManager: StateManager): Array<Record> |
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
export const getFieldValue = (stateManager: StateManager, fieldName: string): any => {
|
|
67
|
-
const selection =
|
|
67
|
+
const selection = getAllSelection(stateManager);
|
|
68
68
|
if(selection && selection.length > 0){
|
|
69
69
|
const currentRecords = getCurrentRecords(stateManager);
|
|
70
70
|
if(currentRecords){
|
|
71
|
-
const record = currentRecords.get(selection[0]);
|
|
71
|
+
const record = currentRecords.get(selection[0].__record__id__);
|
|
72
72
|
return record ? record[fieldName] : undefined;
|
|
73
73
|
}
|
|
74
74
|
}
|