@sankhyalabs/core 1.0.38 → 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 (156) 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 -80
  8. package/dist/dataunit/DataUnit.js +278 -254
  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 -27
  21. package/dist/dataunit/state/action/DataUnitAction.js +33 -32
  22. package/dist/dataunit/state/action/DataUnitAction.js.map +1 -1
  23. package/dist/dataunit/state/slice/AddedRecordsSlice.d.ts +11 -11
  24. package/dist/dataunit/state/slice/AddedRecordsSlice.js +25 -25
  25. package/dist/dataunit/state/slice/AddedRecordsSlice.js.map +1 -1
  26. package/dist/dataunit/state/slice/ChangesSlice.d.ts +12 -12
  27. package/dist/dataunit/state/slice/ChangesSlice.js +72 -72
  28. package/dist/dataunit/state/slice/ChangesSlice.js.map +1 -1
  29. package/dist/dataunit/state/slice/CurrentRecordsSlice.d.ts +11 -11
  30. package/dist/dataunit/state/slice/CurrentRecordsSlice.js +45 -45
  31. package/dist/dataunit/state/slice/CurrentRecordsSlice.js.map +1 -1
  32. package/dist/dataunit/state/slice/RecordsSlice.d.ts +10 -10
  33. package/dist/dataunit/state/slice/RecordsSlice.js +43 -37
  34. package/dist/dataunit/state/slice/RecordsSlice.js.map +1 -1
  35. package/dist/dataunit/state/slice/RemovedRecordsSlice.d.ts +9 -9
  36. package/dist/dataunit/state/slice/RemovedRecordsSlice.js +24 -20
  37. package/dist/dataunit/state/slice/RemovedRecordsSlice.js.map +1 -1
  38. package/dist/dataunit/state/slice/SelectionSlice.d.ts +11 -11
  39. package/dist/dataunit/state/slice/SelectionSlice.js +111 -111
  40. package/dist/dataunit/state/slice/SelectionSlice.js.map +1 -1
  41. package/dist/dataunit/state/slice/UnitMetadataSlice.d.ts +11 -11
  42. package/dist/dataunit/state/slice/UnitMetadataSlice.js +20 -20
  43. package/dist/dataunit/state/slice/UnitMetadataSlice.js.map +1 -1
  44. package/dist/http/AuthorizedServiceCaller.d.ts +11 -11
  45. package/dist/http/AuthorizedServiceCaller.js +53 -53
  46. package/dist/http/AuthorizedServiceCaller.js.map +1 -1
  47. package/dist/http/HttpProvider.d.ts +25 -25
  48. package/dist/http/HttpProvider.js +73 -73
  49. package/dist/http/HttpProvider.js.map +1 -1
  50. package/dist/http/RequestMetadata.d.ts +30 -30
  51. package/dist/http/RequestMetadata.js +24 -24
  52. package/dist/http/SkwHttpProvider.d.ts +9 -9
  53. package/dist/http/SkwHttpProvider.js +66 -67
  54. package/dist/http/SkwHttpProvider.js.map +1 -1
  55. package/dist/http/data-fetcher/HttpFetcher.d.ts +14 -0
  56. package/dist/http/data-fetcher/HttpFetcher.js +164 -0
  57. package/dist/http/data-fetcher/HttpFetcher.js.map +1 -0
  58. package/dist/http/data-fetcher/default/DefaultGraphQL.d.ts +3 -0
  59. package/dist/http/data-fetcher/default/DefaultGraphQL.js +18 -0
  60. package/dist/http/data-fetcher/default/DefaultGraphQL.js.map +1 -0
  61. package/dist/http/data-fetcher/default/application-config-fetcher.d.ts +6 -0
  62. package/dist/http/data-fetcher/default/application-config-fetcher.js +21 -0
  63. package/dist/http/data-fetcher/default/application-config-fetcher.js.map +1 -0
  64. package/dist/http/data-fetcher/default/data-unit-graphql.d.ts +3 -0
  65. package/dist/http/data-fetcher/default/data-unit-graphql.js +18 -0
  66. package/dist/http/data-fetcher/default/data-unit-graphql.js.map +1 -0
  67. package/dist/http/data-fetcher/default/dataunit-executor.d.ts +10 -0
  68. package/dist/http/data-fetcher/default/dataunit-executor.js +56 -0
  69. package/dist/http/data-fetcher/default/dataunit-executor.js.map +1 -0
  70. package/dist/http/data-fetcher/default/dataunit-fetcher.d.ts +9 -0
  71. package/dist/http/data-fetcher/default/dataunit-fetcher.js +69 -0
  72. package/dist/http/data-fetcher/default/dataunit-fetcher.js.map +1 -0
  73. package/dist/http/data-fetcher/default/form-config-fetcher.d.ts +2 -0
  74. package/dist/http/data-fetcher/default/form-config-fetcher.js +3 -0
  75. package/dist/http/data-fetcher/default/form-config-fetcher.js.map +1 -0
  76. package/dist/http/data-fetcher/default/grid-config-fetcher.d.ts +2 -0
  77. package/dist/http/data-fetcher/default/grid-config-fetcher.js +3 -0
  78. package/dist/http/data-fetcher/default/grid-config-fetcher.js.map +1 -0
  79. package/dist/http/data-fetcher/default/index.d.ts +0 -0
  80. package/dist/http/data-fetcher/default/index.js +2 -0
  81. package/dist/http/data-fetcher/default/index.js.map +1 -0
  82. package/dist/http/data-fetcher/default/sankhya-graphql.d.ts +3 -0
  83. package/dist/http/data-fetcher/default/sankhya-graphql.js +8 -0
  84. package/dist/http/data-fetcher/default/sankhya-graphql.js.map +1 -0
  85. package/dist/http/data-fetcher/graphql/DefaultGraphQl.d.ts +3 -0
  86. package/dist/http/data-fetcher/graphql/DefaultGraphQl.js +18 -0
  87. package/dist/http/data-fetcher/graphql/DefaultGraphQl.js.map +1 -0
  88. package/dist/http/data-fetcher/state/LoadStateManager.d.ts +23 -0
  89. package/dist/http/data-fetcher/state/LoadStateManager.js +78 -0
  90. package/dist/http/data-fetcher/state/LoadStateManager.js.map +1 -0
  91. package/dist/index.d.ts +16 -16
  92. package/dist/index.js +17 -17
  93. package/dist/index.js.map +1 -1
  94. package/dist/ui/FloatingManager.d.ts +24 -24
  95. package/dist/ui/FloatingManager.js +122 -123
  96. package/dist/ui/FloatingManager.js.map +1 -1
  97. package/dist/utils/ApplicationContext.d.ts +5 -5
  98. package/dist/utils/ApplicationContext.js +16 -16
  99. package/dist/utils/ApplicationContext.js.map +1 -1
  100. package/dist/utils/CriteriaModel.d.ts +109 -109
  101. package/dist/utils/CriteriaModel.js +173 -173
  102. package/dist/utils/CriteriaParameter.d.ts +69 -69
  103. package/dist/utils/CriteriaParameter.js +82 -84
  104. package/dist/utils/CriteriaParameter.js.map +1 -1
  105. package/dist/utils/DateUtils.d.ts +5 -5
  106. package/dist/utils/DateUtils.js +42 -42
  107. package/dist/utils/DateUtils.js.map +1 -1
  108. package/dist/utils/MaskFormatter.d.ts +126 -126
  109. package/dist/utils/MaskFormatter.js +275 -275
  110. package/dist/utils/NumberUtils.d.ts +53 -53
  111. package/dist/utils/NumberUtils.js +141 -146
  112. package/dist/utils/NumberUtils.js.map +1 -1
  113. package/dist/utils/StringUtils.d.ts +18 -18
  114. package/dist/utils/StringUtils.js +53 -53
  115. package/dist/utils/TimeFormatter.d.ts +33 -33
  116. package/dist/utils/TimeFormatter.js +97 -97
  117. package/dist/utils/TimeFormatter.js.map +1 -1
  118. package/jest.config.ts +16 -13
  119. package/mock/http/XMLHttpRequest-mock.js +25 -25
  120. package/package.json +37 -31
  121. package/src/dataunit/DataUnit.ts +356 -333
  122. package/src/dataunit/metadata/DataType.ts +37 -37
  123. package/src/dataunit/metadata/UnitMetadata.ts +82 -82
  124. package/src/dataunit/state/HistReducer.ts +33 -33
  125. package/src/dataunit/state/StateManager.ts +141 -141
  126. package/src/dataunit/state/action/DataUnitAction.ts +50 -48
  127. package/src/dataunit/state/slice/AddedRecordsSlice.ts +32 -32
  128. package/src/dataunit/state/slice/ChangesSlice.ts +90 -90
  129. package/src/dataunit/state/slice/CurrentRecordsSlice.ts +53 -53
  130. package/src/dataunit/state/slice/RecordsSlice.ts +56 -49
  131. package/src/dataunit/state/slice/RemovedRecordsSlice.ts +29 -25
  132. package/src/dataunit/state/slice/SelectionSlice.ts +130 -130
  133. package/src/dataunit/state/slice/UnitMetadataSlice.ts +29 -29
  134. package/src/http/AuthorizedServiceCaller.ts +58 -57
  135. package/src/http/HttpProvider.ts +93 -93
  136. package/src/http/RequestMetadata.ts +41 -41
  137. package/src/http/SkwHttpProvider.ts +77 -77
  138. package/src/index.ts +44 -44
  139. package/src/ui/FloatingManager.ts +165 -165
  140. package/src/utils/ApplicationContext.ts +18 -18
  141. package/src/utils/CriteriaModel.ts +207 -207
  142. package/src/utils/CriteriaParameter.ts +107 -107
  143. package/src/utils/DateUtils.ts +52 -52
  144. package/src/utils/MaskFormatter.ts +322 -322
  145. package/src/utils/NumberUtils.ts +175 -175
  146. package/src/utils/StringUtils.ts +60 -60
  147. package/src/utils/TimeFormatter.ts +97 -97
  148. package/test/http/HttpProvider.spec.ts +34 -34
  149. package/test/http/SkwHttpProvider.ts.spec.ts +33 -33
  150. package/test/util/CriteriaModel.spec.ts +231 -231
  151. package/test/util/CriteriaParameter.spec.ts +51 -51
  152. package/test/util/MaskFormatter.spec.ts +138 -138
  153. package/test/util/NumberUtils.spec.ts +156 -156
  154. package/test/util/StringUtils.spec.ts +43 -43
  155. package/test/util/TimeFormatter.spec.ts +25 -25
  156. package/tsconfig.json +15 -15
package/.eslintignore ADDED
@@ -0,0 +1,2 @@
1
+ *.spec.ts
2
+ /test/*
package/.eslintrc.cjs ADDED
@@ -0,0 +1,34 @@
1
+ module.exports = {
2
+ "env": {
3
+ "browser": true,
4
+ "es2021": true,
5
+ "node": true
6
+ },
7
+ "extends": [
8
+ "eslint:recommended",
9
+ "plugin:@typescript-eslint/recommended"
10
+ ],
11
+ "parser": "@typescript-eslint/parser",
12
+ "parserOptions": {
13
+ "ecmaVersion": "latest",
14
+ "sourceType": "module"
15
+ },
16
+ "plugins": [
17
+ "@typescript-eslint",
18
+ "import"
19
+ ],
20
+ "rules": {
21
+ "import/extensions": [
22
+ "error",
23
+ "always"
24
+ ],
25
+ "@typescript-eslint/no-inferrable-types": 0,
26
+ "@typescript-eslint/no-explicit-any": 0,
27
+ "@typescript-eslint/ban-types": 0,
28
+ "@typescript-eslint/no-empty-function": 0,
29
+ "no-case-declarations": 0,
30
+ "prefer-const": 1,
31
+ "@typescript-eslint/no-namespace": 1,
32
+ "no-useless-escape": 1
33
+ }
34
+ }
package/README.md CHANGED
@@ -1,55 +1,55 @@
1
- # @sankhyalabs/core
2
-
3
- ### Intro
4
- Esse projeto é responsavél por disponibilizar utilitários JavaScript comuns entre vários projetos.
5
-
6
- # Como usar
7
-
8
- ```sh
9
- $ npm install @sankhyalabs/core
10
- ```
11
-
12
- ```ts
13
- import { StringUtils } from '@sankhyalabs/core'
14
-
15
- function test(){
16
- alert(StringUtils.isEmpty(''));
17
- }
18
- ```
19
- # Executar testes
20
- ```sh
21
- $ npm t
22
- ```
23
- # Como contribuir
24
- - Criar uma branch com nome sugestivo para o problema/melhoria.
25
- - Dentro do projeto criar uma pasta chamada "change_proposal" dentro dessa pasta deverá existir um exemplo do caso de uso/problema que você está resolvendo.
26
- - Realizar as alterações.
27
- - Criar caso de teste para o problema que você está resolvendo.
28
- - Fazer commit na branch.
29
- - Abrir MR para master, na descrição do MR, colocar a seguinte documentação :arrow_down:
30
-
31
- ##### Tipo de problema:
32
- - [ ] Hotfix
33
- - [ ] Feature
34
- ##### Ambiente simulação:
35
- - [ ] Teste/Desenvolvimento
36
- - [ ] Produçãp
37
-
38
- ##### Nome do projeto de origem (core, flow, wms...):
39
-
40
- ##### Descrição do problema:
41
-
42
- ##### Num.OS de origem(caso exista):
43
-
44
- #
45
- #
46
- #
47
- #
48
-
49
- ### Build em ambiente de desenvolvimento
50
-
51
- ```sh
52
- $ npm run build --watch
53
- ```
54
-
1
+ # @sankhyalabs/core
2
+
3
+ ### Intro
4
+ Esse projeto é responsavél por disponibilizar utilitários JavaScript comuns entre vários projetos.
5
+
6
+ # Como usar
7
+
8
+ ```sh
9
+ $ npm install @sankhyalabs/core
10
+ ```
11
+
12
+ ```ts
13
+ import { StringUtils } from '@sankhyalabs/core'
14
+
15
+ function test(){
16
+ alert(StringUtils.isEmpty(''));
17
+ }
18
+ ```
19
+ # Executar testes
20
+ ```sh
21
+ $ npm t
22
+ ```
23
+ # Como contribuir
24
+ - Criar uma branch com nome sugestivo para o problema/melhoria.
25
+ - Dentro do projeto criar uma pasta chamada "change_proposal" dentro dessa pasta deverá existir um exemplo do caso de uso/problema que você está resolvendo.
26
+ - Realizar as alterações.
27
+ - Criar caso de teste para o problema que você está resolvendo.
28
+ - Fazer commit na branch.
29
+ - Abrir MR para master, na descrição do MR, colocar a seguinte documentação :arrow_down:
30
+
31
+ ##### Tipo de problema:
32
+ - [ ] Hotfix
33
+ - [ ] Feature
34
+ ##### Ambiente simulação:
35
+ - [ ] Teste/Desenvolvimento
36
+ - [ ] Produçãp
37
+
38
+ ##### Nome do projeto de origem (core, flow, wms...):
39
+
40
+ ##### Descrição do problema:
41
+
42
+ ##### Num.OS de origem(caso exista):
43
+
44
+ #
45
+ #
46
+ #
47
+ #
48
+
49
+ ### Build em ambiente de desenvolvimento
50
+
51
+ ```sh
52
+ $ npm run build --watch
53
+ ```
54
+
55
55
  Veja mais informações em nossa [Wiki](https://git.sankhya.com.br/sankhyalabs/sankhyacore/-/wikis/Diretrizes-de-Codifica%C3%A7%C3%A3o)
@@ -0,0 +1,8 @@
1
+ export declare class Application {
2
+ private static instance;
3
+ private static element;
4
+ private constructor();
5
+ static get(): Application;
6
+ onLoaded(listener: Function): void;
7
+ getResourceID(): string;
8
+ }
@@ -0,0 +1,19 @@
1
+ export class Application {
2
+ constructor() { }
3
+ static get() {
4
+ if (Application.instance === undefined) {
5
+ Application.instance = new Application();
6
+ Application.element = document.querySelector('ez-application');
7
+ }
8
+ return Application.instance;
9
+ }
10
+ onLoaded(listener) {
11
+ var _a;
12
+ (_a = Application.element) === null || _a === void 0 ? void 0 : _a.addEventListener('applicationLoaded', () => listener());
13
+ }
14
+ getResourceID() {
15
+ return "br.com.sankhya.mge.cad.parceiro"; //TODO: Remover mock
16
+ }
17
+ }
18
+ Application.element = null;
19
+ //# sourceMappingURL=Application.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Application.js","sourceRoot":"","sources":["../../src/application/Application.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IAGpB,gBAAsB,CAAC;IAEhB,MAAM,CAAC,GAAG;QACb,IAAG,WAAW,CAAC,QAAQ,KAAK,SAAS,EAAC;YAClC,WAAW,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;YACzC,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;SAClE;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEM,QAAQ,CAAC,QAAiB;;QAC7B,MAAA,WAAW,CAAC,OAAO,0CAAE,gBAAgB,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjF,CAAC;IAEM,aAAa;QAChB,OAAO,iCAAiC,CAAC,CAAC,oBAAoB;IAClE,CAAC;;AAjBc,mBAAO,GAAkB,IAAI,CAAC"}
@@ -1,80 +1,82 @@
1
- import { UnitMetadata, FieldDescriptor, SortingProvider, FilterProvider, Sort, Filter } from "./metadata/UnitMetadata";
2
- import { DataUnitAction } from "./state/action/DataUnitAction";
3
- export default class DataUnit {
4
- private _name;
5
- private _observers;
6
- private _sortingProvider?;
7
- private _filterProviders;
8
- private _stateManager;
9
- private _interceptors;
10
- metadataLoader?: (dataUnit: DataUnit) => Promise<UnitMetadata>;
11
- dataLoader?: (dataUnit: DataUnit, sort?: Array<Sort>, filters?: Array<Filter>) => Promise<Array<Record>>;
12
- saveLoader?: (dataUnit: DataUnit, changes: Array<Change>) => Promise<Array<SavedRecord>>;
13
- constructor(name: string);
14
- get name(): string;
15
- private validateAndTypeValue;
16
- private getFilters;
17
- private getSort;
18
- loadMetadata(): Promise<UnitMetadata>;
19
- loadData(): Promise<Array<Record>>;
20
- saveData(): Promise<void>;
21
- valueFromString(fieldName: string, value: string): any;
22
- addInterceptor(interceptor: DUActionInterceptor): void;
23
- addFilterProvider(provider: FilterProvider): void;
24
- set sortingProvider(provider: SortingProvider);
25
- set metadata(md: UnitMetadata);
26
- get metadata(): UnitMetadata;
27
- set records(r: Array<Record>);
28
- get records(): Array<Record>;
29
- getField(fieldName: string): FieldDescriptor | undefined;
30
- addRecord(): void;
31
- copySelected(): void;
32
- removeSelectedRecords(): void;
33
- getFieldValue(fieldName: string): any;
34
- setFieldValue(fieldName: string, newValue: any, records?: Array<string>): void;
35
- getSelection(): Array<string>;
36
- setSelection(selection: Array<string>): void;
37
- setSelectionByIndex(selection: Array<number>): void;
38
- getSelectedRecords(): Array<Record> | undefined;
39
- nextRecord(): void;
40
- previousRecord(): void;
41
- cancelEdition(): void;
42
- isDirty(): boolean;
43
- hasNext(): boolean;
44
- hasPrevious(): boolean;
45
- canUndo(): boolean;
46
- canRedo(): boolean;
47
- undo(): void;
48
- redo(): void;
49
- toString(): string;
50
- private dispatchAction;
51
- subscribe(observer: (action: DataUnitAction) => void): void;
52
- unsubscribe(observer: Function): void;
53
- }
54
- export interface DUActionInterceptor {
55
- interceptAction(action: DataUnitAction): DataUnitAction;
56
- }
57
- export interface Record {
58
- __record__id__: string;
59
- __parent__record__id__?: string;
60
- [key: string]: any;
61
- }
62
- export interface SavedRecord extends Record {
63
- __old__id__?: string;
64
- }
65
- export declare enum ChangeOperation {
66
- INSERT = "INSERT",
67
- UPDATE = "UPDATE",
68
- DELETE = "DELETE"
69
- }
70
- export declare class Change {
71
- dataUnit: string;
72
- record: Record;
73
- updatingFields: any;
74
- private _operation;
75
- constructor(dataUnit: string, record: Record, updates: any, operation: ChangeOperation);
76
- get operation(): string;
77
- isInsert(): boolean;
78
- isDelete(): boolean;
79
- isUpdate(): boolean;
80
- }
1
+ import { UnitMetadata, FieldDescriptor, SortingProvider, FilterProvider, Sort, Filter } from "./metadata/UnitMetadata.js";
2
+ import { DataUnitAction } from "./state/action/DataUnitAction.js";
3
+ export default class DataUnit {
4
+ private _name;
5
+ private _observers;
6
+ private _sortingProvider?;
7
+ private _filterProviders;
8
+ private _stateManager;
9
+ private _interceptors;
10
+ metadataLoader?: (dataUnit: DataUnit) => Promise<UnitMetadata>;
11
+ dataLoader?: (dataUnit: DataUnit, sort?: Array<Sort>, filters?: Array<Filter>) => Promise<Array<Record>>;
12
+ saveLoader?: (dataUnit: DataUnit, changes: Array<Change>) => Promise<Array<SavedRecord>>;
13
+ removeLoader?: (dataUnit: DataUnit, recordIds: Array<string>) => Promise<Array<string>>;
14
+ constructor(name: string);
15
+ get name(): string;
16
+ private validateAndTypeValue;
17
+ private getFilters;
18
+ private getSort;
19
+ loadMetadata(): Promise<UnitMetadata>;
20
+ loadData(): Promise<Array<Record>>;
21
+ saveData(): Promise<void>;
22
+ removeSelectedRecords(buffered?: boolean): Promise<Array<string>>;
23
+ removeRecords(records: Array<string>, buffered?: boolean): Promise<Array<string>>;
24
+ valueFromString(fieldName: string, value: string): any;
25
+ addInterceptor(interceptor: DUActionInterceptor): void;
26
+ addFilterProvider(provider: FilterProvider): void;
27
+ set sortingProvider(provider: SortingProvider);
28
+ set metadata(md: UnitMetadata);
29
+ get metadata(): UnitMetadata;
30
+ set records(r: Array<Record>);
31
+ get records(): Array<Record>;
32
+ getField(fieldName: string): FieldDescriptor | undefined;
33
+ addRecord(): void;
34
+ copySelected(): void;
35
+ getFieldValue(fieldName: string): any;
36
+ setFieldValue(fieldName: string, newValue: any, records?: Array<string>): void;
37
+ getSelection(): Array<string>;
38
+ setSelection(selection: Array<string>): void;
39
+ setSelectionByIndex(selection: Array<number>): void;
40
+ getSelectedRecords(): Array<Record> | undefined;
41
+ nextRecord(): void;
42
+ previousRecord(): void;
43
+ cancelEdition(): void;
44
+ isDirty(): boolean;
45
+ hasNext(): boolean;
46
+ hasPrevious(): boolean;
47
+ canUndo(): boolean;
48
+ canRedo(): boolean;
49
+ undo(): void;
50
+ redo(): void;
51
+ toString(): string;
52
+ private dispatchAction;
53
+ subscribe(observer: (action: DataUnitAction) => void): void;
54
+ unsubscribe(observer: Function): void;
55
+ }
56
+ export interface DUActionInterceptor {
57
+ interceptAction(action: DataUnitAction): DataUnitAction;
58
+ }
59
+ export interface Record {
60
+ __record__id__: string;
61
+ __parent__record__id__?: string;
62
+ [key: string]: any;
63
+ }
64
+ export interface SavedRecord extends Record {
65
+ __old__id__?: string;
66
+ }
67
+ export declare enum ChangeOperation {
68
+ INSERT = "INSERT",
69
+ UPDATE = "UPDATE",
70
+ DELETE = "DELETE"
71
+ }
72
+ export declare class Change {
73
+ dataUnit: string;
74
+ record: Record;
75
+ updatingFields: any;
76
+ private _operation;
77
+ constructor(dataUnit: string, record: Record, updates: any, operation: ChangeOperation);
78
+ get operation(): string;
79
+ isInsert(): boolean;
80
+ isDelete(): boolean;
81
+ isUpdate(): boolean;
82
+ }