@sankhyalabs/core 0.0.0-bugfix-dev-KB-6165.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.
Files changed (283) hide show
  1. package/.docs/.nojekyll +1 -0
  2. package/.docs/README.md +63 -0
  3. package/.docs/classes/ApplicationContext.md +90 -0
  4. package/.docs/classes/ArrayUtils.md +99 -0
  5. package/.docs/classes/AuthorizedServiceCaller.md +76 -0
  6. package/.docs/classes/Change.md +190 -0
  7. package/.docs/classes/DataUnit.md +2453 -0
  8. package/.docs/classes/DataUnitAction.md +96 -0
  9. package/.docs/classes/DataUnitStorage.md +116 -0
  10. package/.docs/classes/DateUtils.md +327 -0
  11. package/.docs/classes/ElementIDUtils.md +308 -0
  12. package/.docs/classes/ErrorException.md +214 -0
  13. package/.docs/classes/ErrorTracking.md +62 -0
  14. package/.docs/classes/FloatingManager.md +530 -0
  15. package/.docs/classes/HTMLBuilder.md +45 -0
  16. package/.docs/classes/HttpProvider.md +96 -0
  17. package/.docs/classes/JSUtils.md +115 -0
  18. package/.docs/classes/MaskFormatter-1.md +347 -0
  19. package/.docs/classes/NumberUtils.md +335 -0
  20. package/.docs/classes/ObjectUtils.md +160 -0
  21. package/.docs/classes/OnboardingUtils.md +126 -0
  22. package/.docs/classes/PromiseSync.md +91 -0
  23. package/.docs/classes/ReadyUtil.md +115 -0
  24. package/.docs/classes/RequestMetadata.md +84 -0
  25. package/.docs/classes/SelectionInfo.md +168 -0
  26. package/.docs/classes/SkwHttpProvider.md +109 -0
  27. package/.docs/classes/StringUtils.md +562 -0
  28. package/.docs/classes/TimeFormatter.md +98 -0
  29. package/.docs/classes/UserAgentUtils.md +58 -0
  30. package/.docs/classes/VersionUtils.md +42 -0
  31. package/.docs/classes/WaitingChangeException.md +200 -0
  32. package/.docs/classes/WarningException.md +214 -0
  33. package/.docs/enums/Action.md +294 -0
  34. package/.docs/enums/ChangeOperation.md +52 -0
  35. package/.docs/enums/DataType.md +63 -0
  36. package/.docs/enums/DependencyType.md +41 -0
  37. package/.docs/enums/SelectionMode.md +30 -0
  38. package/.docs/enums/SortMode.md +30 -0
  39. package/.docs/enums/UserInterface.md +195 -0
  40. package/.docs/interfaces/ChildDescriptor.md +41 -0
  41. package/.docs/interfaces/ChildLink.md +30 -0
  42. package/.docs/interfaces/DUActionInterceptor.md +29 -0
  43. package/.docs/interfaces/ExecutionContext.md +58 -0
  44. package/.docs/interfaces/FieldDescriptor.md +140 -0
  45. package/.docs/interfaces/Filter.md +41 -0
  46. package/.docs/interfaces/IElementIDInfo.md +30 -0
  47. package/.docs/interfaces/LoadDataRequest.md +101 -0
  48. package/.docs/interfaces/LoadDataResponse.md +36 -0
  49. package/.docs/interfaces/PageRequest.md +41 -0
  50. package/.docs/interfaces/PaginationInfo.md +75 -0
  51. package/.docs/interfaces/PromiseSyncCallback.md +39 -0
  52. package/.docs/interfaces/QuickFilter.md +41 -0
  53. package/.docs/interfaces/Record.md +62 -0
  54. package/.docs/interfaces/SavedRecord.md +85 -0
  55. package/.docs/interfaces/Sort.md +41 -0
  56. package/.docs/interfaces/SortingProvider.md +29 -0
  57. package/.docs/interfaces/UnitMetadata.md +52 -0
  58. package/.docs/interfaces/WaitingChange.md +41 -0
  59. package/.docs/modules/MaskFormatter.md +37 -0
  60. package/.docs/modules.md +74 -0
  61. package/.docs/package.json +15 -0
  62. package/.eslintignore +2 -0
  63. package/.eslintrc.cjs +35 -0
  64. package/.husky/commit-msg +4 -0
  65. package/.releaserc +58 -0
  66. package/README.md +62 -0
  67. package/commitlint.config.cjs +14 -0
  68. package/dist/async/PromiseSync.d.ts +29 -0
  69. package/dist/async/PromiseSync.js +31 -0
  70. package/dist/async/PromiseSync.js.map +1 -0
  71. package/dist/dataunit/DataUnit.d.ts +924 -0
  72. package/dist/dataunit/DataUnit.js +1621 -0
  73. package/dist/dataunit/DataUnit.js.map +1 -0
  74. package/dist/dataunit/DataUnitStorage.d.ts +24 -0
  75. package/dist/dataunit/DataUnitStorage.js +39 -0
  76. package/dist/dataunit/DataUnitStorage.js.map +1 -0
  77. package/dist/dataunit/formatting/PrettyFormatter.d.ts +2 -0
  78. package/dist/dataunit/formatting/PrettyFormatter.js +94 -0
  79. package/dist/dataunit/formatting/PrettyFormatter.js.map +1 -0
  80. package/dist/dataunit/loading/LoadDataRequest.d.ts +19 -0
  81. package/dist/dataunit/loading/LoadDataRequest.js +2 -0
  82. package/dist/dataunit/loading/LoadDataRequest.js.map +1 -0
  83. package/dist/dataunit/loading/LoadDataResponse.d.ts +9 -0
  84. package/dist/dataunit/loading/LoadDataResponse.js +2 -0
  85. package/dist/dataunit/loading/LoadDataResponse.js.map +1 -0
  86. package/dist/dataunit/loading/PaginationInfo.d.ts +13 -0
  87. package/dist/dataunit/loading/PaginationInfo.js +2 -0
  88. package/dist/dataunit/loading/PaginationInfo.js.map +1 -0
  89. package/dist/dataunit/metadata/DataType.d.ts +54 -0
  90. package/dist/dataunit/metadata/DataType.js +124 -0
  91. package/dist/dataunit/metadata/DataType.js.map +1 -0
  92. package/dist/dataunit/metadata/UnitMetadata.d.ts +88 -0
  93. package/dist/dataunit/metadata/UnitMetadata.js +36 -0
  94. package/dist/dataunit/metadata/UnitMetadata.js.map +1 -0
  95. package/dist/dataunit/state/HistReducer.d.ts +10 -0
  96. package/dist/dataunit/state/HistReducer.js +28 -0
  97. package/dist/dataunit/state/HistReducer.js.map +1 -0
  98. package/dist/dataunit/state/StateManager.d.ts +57 -0
  99. package/dist/dataunit/state/StateManager.js +97 -0
  100. package/dist/dataunit/state/StateManager.js.map +1 -0
  101. package/dist/dataunit/state/action/DataUnitAction.d.ts +40 -0
  102. package/dist/dataunit/state/action/DataUnitAction.js +42 -0
  103. package/dist/dataunit/state/action/DataUnitAction.js.map +1 -0
  104. package/dist/dataunit/state/slice/AddedRecordsSlice.d.ts +12 -0
  105. package/dist/dataunit/state/slice/AddedRecordsSlice.js +30 -0
  106. package/dist/dataunit/state/slice/AddedRecordsSlice.js.map +1 -0
  107. package/dist/dataunit/state/slice/ChangesSlice.d.ts +13 -0
  108. package/dist/dataunit/state/slice/ChangesSlice.js +105 -0
  109. package/dist/dataunit/state/slice/ChangesSlice.js.map +1 -0
  110. package/dist/dataunit/state/slice/InvalidFieldsSlice.d.ts +10 -0
  111. package/dist/dataunit/state/slice/InvalidFieldsSlice.js +66 -0
  112. package/dist/dataunit/state/slice/InvalidFieldsSlice.js.map +1 -0
  113. package/dist/dataunit/state/slice/LoadingControlSlice.d.ts +19 -0
  114. package/dist/dataunit/state/slice/LoadingControlSlice.js +45 -0
  115. package/dist/dataunit/state/slice/LoadingControlSlice.js.map +1 -0
  116. package/dist/dataunit/state/slice/RecordsSlice.d.ts +11 -0
  117. package/dist/dataunit/state/slice/RecordsSlice.js +62 -0
  118. package/dist/dataunit/state/slice/RecordsSlice.js.map +1 -0
  119. package/dist/dataunit/state/slice/RemovedRecordsSlice.d.ts +9 -0
  120. package/dist/dataunit/state/slice/RemovedRecordsSlice.js +25 -0
  121. package/dist/dataunit/state/slice/RemovedRecordsSlice.js.map +1 -0
  122. package/dist/dataunit/state/slice/SelectionSlice.d.ts +19 -0
  123. package/dist/dataunit/state/slice/SelectionSlice.js +155 -0
  124. package/dist/dataunit/state/slice/SelectionSlice.js.map +1 -0
  125. package/dist/dataunit/state/slice/SnapshotSlice.d.ts +19 -0
  126. package/dist/dataunit/state/slice/SnapshotSlice.js +106 -0
  127. package/dist/dataunit/state/slice/SnapshotSlice.js.map +1 -0
  128. package/dist/dataunit/state/slice/UnitMetadataSlice.d.ts +11 -0
  129. package/dist/dataunit/state/slice/UnitMetadataSlice.js +21 -0
  130. package/dist/dataunit/state/slice/UnitMetadataSlice.js.map +1 -0
  131. package/dist/dataunit/state/slice/WaitingChangesSlice.d.ts +12 -0
  132. package/dist/dataunit/state/slice/WaitingChangesSlice.js +56 -0
  133. package/dist/dataunit/state/slice/WaitingChangesSlice.js.map +1 -0
  134. package/dist/exceptions/ErrorException.d.ts +14 -0
  135. package/dist/exceptions/ErrorException.js +13 -0
  136. package/dist/exceptions/ErrorException.js.map +1 -0
  137. package/dist/exceptions/WaitingChangeException.d.ts +12 -0
  138. package/dist/exceptions/WaitingChangeException.js +12 -0
  139. package/dist/exceptions/WaitingChangeException.js.map +1 -0
  140. package/dist/exceptions/WarningException.d.ts +14 -0
  141. package/dist/exceptions/WarningException.js +13 -0
  142. package/dist/exceptions/WarningException.js.map +1 -0
  143. package/dist/html/HTMLBuilder.d.ts +3 -0
  144. package/dist/html/HTMLBuilder.js +9 -0
  145. package/dist/html/HTMLBuilder.js.map +1 -0
  146. package/dist/http/AuthorizedServiceCaller.d.ts +11 -0
  147. package/dist/http/AuthorizedServiceCaller.js +54 -0
  148. package/dist/http/AuthorizedServiceCaller.js.map +1 -0
  149. package/dist/http/HttpProvider.d.ts +25 -0
  150. package/dist/http/HttpProvider.js +74 -0
  151. package/dist/http/HttpProvider.js.map +1 -0
  152. package/dist/http/RequestMetadata.d.ts +30 -0
  153. package/dist/http/RequestMetadata.js +25 -0
  154. package/dist/http/RequestMetadata.js.map +1 -0
  155. package/dist/http/SkwHttpProvider.d.ts +9 -0
  156. package/dist/http/SkwHttpProvider.js +67 -0
  157. package/dist/http/SkwHttpProvider.js.map +1 -0
  158. package/dist/index.d.ts +34 -0
  159. package/dist/index.js +33 -0
  160. package/dist/index.js.map +1 -0
  161. package/dist/traking/ErrorTraking.d.ts +19 -0
  162. package/dist/traking/ErrorTraking.js +34 -0
  163. package/dist/traking/ErrorTraking.js.map +1 -0
  164. package/dist/ui/FloatingManager.d.ts +164 -0
  165. package/dist/ui/FloatingManager.js +358 -0
  166. package/dist/ui/FloatingManager.js.map +1 -0
  167. package/dist/utils/ApplicationContext.d.ts +26 -0
  168. package/dist/utils/ApplicationContext.js +38 -0
  169. package/dist/utils/ApplicationContext.js.map +1 -0
  170. package/dist/utils/ArrayUtils.d.ts +29 -0
  171. package/dist/utils/ArrayUtils.js +57 -0
  172. package/dist/utils/ArrayUtils.js.map +1 -0
  173. package/dist/utils/CriteriaModel.d.ts +107 -0
  174. package/dist/utils/CriteriaModel.js +172 -0
  175. package/dist/utils/CriteriaModel.js.map +1 -0
  176. package/dist/utils/CriteriaParameter.d.ts +69 -0
  177. package/dist/utils/CriteriaParameter.js +83 -0
  178. package/dist/utils/CriteriaParameter.js.map +1 -0
  179. package/dist/utils/DateUtils.d.ts +97 -0
  180. package/dist/utils/DateUtils.js +171 -0
  181. package/dist/utils/DateUtils.js.map +1 -0
  182. package/dist/utils/ElementIDUtils.d.ts +72 -0
  183. package/dist/utils/ElementIDUtils.js +161 -0
  184. package/dist/utils/ElementIDUtils.js.map +1 -0
  185. package/dist/utils/JSUtils.d.ts +36 -0
  186. package/dist/utils/JSUtils.js +66 -0
  187. package/dist/utils/JSUtils.js.map +1 -0
  188. package/dist/utils/MaskFormatter.d.ts +148 -0
  189. package/dist/utils/MaskFormatter.js +356 -0
  190. package/dist/utils/MaskFormatter.js.map +1 -0
  191. package/dist/utils/NumberUtils.d.ts +127 -0
  192. package/dist/utils/NumberUtils.js +245 -0
  193. package/dist/utils/NumberUtils.js.map +1 -0
  194. package/dist/utils/ObjectUtils.d.ts +47 -0
  195. package/dist/utils/ObjectUtils.js +68 -0
  196. package/dist/utils/ObjectUtils.js.map +1 -0
  197. package/dist/utils/OnboardingUtils.d.ts +17 -0
  198. package/dist/utils/OnboardingUtils.js +41 -0
  199. package/dist/utils/OnboardingUtils.js.map +1 -0
  200. package/dist/utils/ReadyUtil.d.ts +24 -0
  201. package/dist/utils/ReadyUtil.js +41 -0
  202. package/dist/utils/ReadyUtil.js.map +1 -0
  203. package/dist/utils/StringUtils.d.ts +167 -0
  204. package/dist/utils/StringUtils.js +328 -0
  205. package/dist/utils/StringUtils.js.map +1 -0
  206. package/dist/utils/TimeFormatter.d.ts +33 -0
  207. package/dist/utils/TimeFormatter.js +98 -0
  208. package/dist/utils/TimeFormatter.js.map +1 -0
  209. package/dist/utils/UserAgentUtils/index.d.ts +15 -0
  210. package/dist/utils/UserAgentUtils/index.js +48 -0
  211. package/dist/utils/UserAgentUtils/index.js.map +1 -0
  212. package/dist/utils/UserAgentUtils/navigatorAgentList.d.ts +17 -0
  213. package/dist/utils/UserAgentUtils/navigatorAgentList.js +40 -0
  214. package/dist/utils/UserAgentUtils/navigatorAgentList.js.map +1 -0
  215. package/dist/utils/VersionUtils.d.ts +7 -0
  216. package/dist/utils/VersionUtils.js +31 -0
  217. package/dist/utils/VersionUtils.js.map +1 -0
  218. package/jest.config.ts +17 -0
  219. package/mock/http/XMLHttpRequest-mock.js +26 -0
  220. package/package.json +52 -0
  221. package/scripts/runlink.bat +1 -0
  222. package/scripts/runlink.sh +1 -0
  223. package/src/async/PromiseSync.ts +49 -0
  224. package/src/dataunit/DataUnit.ts +1835 -0
  225. package/src/dataunit/DataUnitStorage.ts +43 -0
  226. package/src/dataunit/formatting/PrettyFormatter.ts +113 -0
  227. package/src/dataunit/loading/LoadDataRequest.ts +26 -0
  228. package/src/dataunit/loading/LoadDataResponse.ts +11 -0
  229. package/src/dataunit/loading/PaginationInfo.ts +18 -0
  230. package/src/dataunit/metadata/DataType.ts +127 -0
  231. package/src/dataunit/metadata/UnitMetadata.ts +102 -0
  232. package/src/dataunit/state/HistReducer.ts +34 -0
  233. package/src/dataunit/state/StateManager.ts +142 -0
  234. package/src/dataunit/state/action/DataUnitAction.ts +67 -0
  235. package/src/dataunit/state/slice/AddedRecordsSlice.ts +48 -0
  236. package/src/dataunit/state/slice/ChangesSlice.ts +125 -0
  237. package/src/dataunit/state/slice/InvalidFieldsSlice.ts +85 -0
  238. package/src/dataunit/state/slice/LoadingControlSlice.ts +60 -0
  239. package/src/dataunit/state/slice/RecordsSlice.ts +74 -0
  240. package/src/dataunit/state/slice/RemovedRecordsSlice.ts +30 -0
  241. package/src/dataunit/state/slice/SelectionSlice.ts +193 -0
  242. package/src/dataunit/state/slice/SnapshotSlice.ts +139 -0
  243. package/src/dataunit/state/slice/UnitMetadataSlice.ts +30 -0
  244. package/src/dataunit/state/slice/WaitingChangesSlice.ts +74 -0
  245. package/src/exceptions/ErrorException.ts +25 -0
  246. package/src/exceptions/WaitingChangeException.ts +21 -0
  247. package/src/exceptions/WarningException.ts +26 -0
  248. package/src/html/HTMLBuilder.ts +8 -0
  249. package/src/http/AuthorizedServiceCaller.ts +58 -0
  250. package/src/http/HttpProvider.ts +94 -0
  251. package/src/http/RequestMetadata.ts +42 -0
  252. package/src/http/SkwHttpProvider.ts +78 -0
  253. package/src/index.ts +93 -0
  254. package/src/traking/ErrorTraking.ts +37 -0
  255. package/src/ui/FloatingManager.ts +417 -0
  256. package/src/utils/ApplicationContext.ts +42 -0
  257. package/src/utils/ArrayUtils.ts +61 -0
  258. package/src/utils/CriteriaModel.ts +205 -0
  259. package/src/utils/CriteriaParameter.ts +108 -0
  260. package/src/utils/DateUtils.ts +195 -0
  261. package/src/utils/ElementIDUtils.ts +184 -0
  262. package/src/utils/JSUtils.ts +69 -0
  263. package/src/utils/MaskFormatter.ts +407 -0
  264. package/src/utils/NumberUtils.ts +283 -0
  265. package/src/utils/ObjectUtils.ts +76 -0
  266. package/src/utils/OnboardingUtils.ts +46 -0
  267. package/src/utils/ReadyUtil.ts +45 -0
  268. package/src/utils/StringUtils.ts +359 -0
  269. package/src/utils/TimeFormatter.ts +98 -0
  270. package/src/utils/UserAgentUtils/index.ts +62 -0
  271. package/src/utils/UserAgentUtils/navigatorAgentList.ts +39 -0
  272. package/src/utils/VersionUtils.ts +37 -0
  273. package/test/http/HttpProvider.spec.ts +35 -0
  274. package/test/http/SkwHttpProvider.ts.spec.ts +34 -0
  275. package/test/util/CriteriaModel.spec.ts +232 -0
  276. package/test/util/CriteriaParameter.spec.ts +52 -0
  277. package/test/util/DataUnitStorage.spec.ts +63 -0
  278. package/test/util/ElementIDUtils.spec.ts +272 -0
  279. package/test/util/MaskFormatter.spec.ts +138 -0
  280. package/test/util/NumberUtils.spec.ts +182 -0
  281. package/test/util/StringUtils.spec.ts +51 -0
  282. package/test/util/TimeFormatter.spec.ts +26 -0
  283. package/tsconfig.json +16 -0
@@ -0,0 +1,62 @@
1
+ import { getRemovedRecords } from "./RemovedRecordsSlice.js";
2
+ import { Action } from "../action/DataUnitAction.js";
3
+ class RecordsReducerImpl {
4
+ constructor() {
5
+ this.sliceName = "records";
6
+ }
7
+ reduce(stateManager, currentState, action) {
8
+ switch (action.type) {
9
+ case Action.DATA_LOADED:
10
+ return action.payload ? action.payload.records : undefined;
11
+ case Action.RECORDS_REMOVED:
12
+ const { records, buffered } = action.payload;
13
+ if (!buffered) {
14
+ return currentState.filter(r => !records.includes(r.__record__id__));
15
+ }
16
+ return currentState;
17
+ case Action.DATA_SAVED:
18
+ const recordsMap = new Map();
19
+ const currentRecords = getRecords(stateManager);
20
+ if (currentRecords) {
21
+ const removed = getRemovedRecords(stateManager) || [];
22
+ currentRecords.forEach(r => {
23
+ if (!removed.includes(r.__record__id__)) {
24
+ recordsMap.set(r.__record__id__, r);
25
+ }
26
+ });
27
+ }
28
+ const newRecords = [];
29
+ const savedRecords = action.payload.records;
30
+ savedRecords.forEach(sr => {
31
+ const recordId = sr.__old__id__ || sr.__record__id__;
32
+ const newRecord = Object.assign({}, sr);
33
+ if (recordsMap.has(recordId)) {
34
+ recordsMap.set(recordId, newRecord);
35
+ }
36
+ else if (this.isNewRecord(newRecord)) {
37
+ newRecords.push(newRecord);
38
+ }
39
+ delete newRecord["__old__id__"];
40
+ });
41
+ return newRecords.concat(Array.from(recordsMap.values()));
42
+ case Action.RECORD_LOADED:
43
+ action.payload.forEach((record) => {
44
+ for (let i = 0; i < currentState.length; i++) {
45
+ if (currentState[i].__record__id__ === record.__record__id__) {
46
+ currentState[i] = record;
47
+ }
48
+ }
49
+ });
50
+ }
51
+ return currentState;
52
+ }
53
+ isNewRecord(record) {
54
+ return (!Object.prototype.hasOwnProperty.call(record, "__old__id__")
55
+ || record["__old__id__"] !== record["__record__id__"]);
56
+ }
57
+ }
58
+ export const RecordsReducer = new RecordsReducerImpl();
59
+ export const getRecords = (stateManager) => {
60
+ return stateManager.select(RecordsReducer.sliceName, (state) => state);
61
+ };
62
+ //# sourceMappingURL=RecordsSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecordsSlice.js","sourceRoot":"","sources":["../../../../src/dataunit/state/slice/RecordsSlice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ActionReducer, StateAction } from "../StateManager.js";
2
+ import StateManager from "../StateManager.js";
3
+ declare class RemovedRecordsReducerImpl implements ActionReducer {
4
+ sliceName: string;
5
+ reduce(_stateManager: StateManager, currentState: Array<string>, action: StateAction): Array<string> | undefined;
6
+ }
7
+ export declare const RemovedRecordsReducer: RemovedRecordsReducerImpl;
8
+ export declare const getRemovedRecords: (stateManager: StateManager) => Array<string>;
9
+ export {};
@@ -0,0 +1,25 @@
1
+ import { Action } from "../action/DataUnitAction.js";
2
+ class RemovedRecordsReducerImpl {
3
+ constructor() {
4
+ this.sliceName = "hist::removedRecords";
5
+ }
6
+ reduce(_stateManager, currentState, action) {
7
+ switch (action.type) {
8
+ case Action.RECORDS_REMOVED:
9
+ const { records, buffered } = action.payload;
10
+ if (buffered) {
11
+ return (currentState || []).concat(records);
12
+ }
13
+ return currentState;
14
+ case Action.EDITION_CANCELED:
15
+ case Action.DATA_SAVED:
16
+ return undefined;
17
+ }
18
+ return currentState;
19
+ }
20
+ }
21
+ export const RemovedRecordsReducer = new RemovedRecordsReducerImpl();
22
+ export const getRemovedRecords = (stateManager) => {
23
+ return stateManager.select(RemovedRecordsReducer.sliceName, (state) => state);
24
+ };
25
+ //# sourceMappingURL=RemovedRecordsSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemovedRecordsSlice.js","sourceRoot":"","sources":["../../../../src/dataunit/state/slice/RemovedRecordsSlice.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAGrD,MAAM,yBAAyB;IAA/B;QAEW,cAAS,GAAW,sBAAsB,CAAC;IAgBtD,CAAC;IAdU,MAAM,CAAC,aAA0B,EAAE,YAA2B,EAAE,MAAmB;QACtF,QAAO,MAAM,CAAC,IAAI,EAAC;YACf,KAAK,MAAM,CAAC,eAAe;gBACvB,MAAM,EAAC,OAAO,EAAE,QAAQ,EAAC,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC3C,IAAG,QAAQ,EAAC;oBACR,OAAO,CAAC,YAAY,IAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;iBAC7C;gBACD,OAAO,YAAY,CAAC;YACxB,KAAK,MAAM,CAAC,gBAAgB,CAAC;YAC7B,KAAK,MAAM,CAAC,UAAU;gBAClB,OAAO,SAAS,CAAC;SACxB;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,yBAAyB,EAAE,CAAC;AAErE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,YAA0B,EAAiB,EAAE;IAC3E,OAAO,YAAY,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,CAAC,KAAoB,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AACjG,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { ActionReducer, StateAction } from "../StateManager.js";
2
+ import StateManager from "../StateManager.js";
3
+ import { SelectionInfo, SelectionMode } from "../../DataUnit.js";
4
+ declare class SelectionReducerImpl implements ActionReducer {
5
+ sliceName: string;
6
+ reduce(stateManager: StateManager, currentState: SelectionState, action: StateAction): SelectionState | undefined;
7
+ }
8
+ export declare const SelectionReducer: SelectionReducerImpl;
9
+ export declare const getSelectionState: (stateManager: StateManager) => SelectionState;
10
+ export declare const getSelection: (stateManager: StateManager) => Array<string>;
11
+ export declare const getSelectionInfo: (stateManager: StateManager) => SelectionInfo;
12
+ export declare const hasNext: (stateManager: StateManager) => boolean;
13
+ export declare const hasPrevious: (stateManager: StateManager) => boolean;
14
+ interface SelectionState {
15
+ currentSelection: Array<string>;
16
+ mode?: SelectionMode;
17
+ lastSelection?: Array<string>;
18
+ }
19
+ export {};
@@ -0,0 +1,155 @@
1
+ import { Action } from "../action/DataUnitAction.js";
2
+ import { getCurrentRecords, getSelectionRecords } from "./SnapshotSlice.js";
3
+ import { SelectionInfo, SelectionMode } from "../../DataUnit.js";
4
+ import { getCurrentRequest, getPaginationInfo } from "./LoadingControlSlice.js";
5
+ class SelectionReducerImpl {
6
+ constructor() {
7
+ this.sliceName = "hist::selection";
8
+ }
9
+ reduce(stateManager, currentState, action) {
10
+ var _a;
11
+ switch (action.type) {
12
+ case Action.DATA_LOADED:
13
+ return !((_a = action.payload) === null || _a === void 0 ? void 0 : _a.keepSelection) ? undefined : currentState;
14
+ case Action.RECORDS_ADDED:
15
+ case Action.RECORDS_COPIED:
16
+ return { currentSelection: action.payload.map((r) => r.__record__id__), lastSelection: currentState === null || currentState === void 0 ? void 0 : currentState.currentSelection };
17
+ case Action.DATA_SAVED:
18
+ return { currentSelection: updateSavedIds(stateManager, action.payload.records) };
19
+ case Action.RECORDS_REMOVED:
20
+ const removed = action.payload.records;
21
+ if (currentState && removed) {
22
+ const currentSelection = currentState.currentSelection;
23
+ const record = currentSelection.filter(recordId => !removed.includes(recordId));
24
+ if (record.length === 0) {
25
+ const currentRecords = getCurrentRecords(stateManager);
26
+ let removedIndex = action.payload.removedIndex.slice(-1)[0];
27
+ let currentIndex = 0;
28
+ if (removedIndex >= currentRecords.size - 1) {
29
+ removedIndex--;
30
+ }
31
+ else {
32
+ removedIndex++;
33
+ }
34
+ currentRecords.forEach((value, key) => {
35
+ if (currentIndex === removedIndex) {
36
+ record.push(key);
37
+ }
38
+ currentIndex++;
39
+ });
40
+ }
41
+ return { currentSelection: record };
42
+ }
43
+ return currentState;
44
+ case Action.NEXT_SELECTED:
45
+ case Action.PREVIOUS_SELECTED:
46
+ const currentRecords = getCurrentRecords(stateManager);
47
+ const currentSelection = currentState === null || currentState === void 0 ? void 0 : currentState.currentSelection;
48
+ if (currentRecords && currentRecords.size > 0) {
49
+ let index;
50
+ if (!currentState || currentSelection.length === 0) {
51
+ index = action.type === Action.PREVIOUS_SELECTED ? 0 : Math.min(1, currentRecords.size);
52
+ }
53
+ else {
54
+ index = getItemIndex(currentSelection[0], currentRecords) + (action.type === Action.PREVIOUS_SELECTED ? -1 : 1);
55
+ }
56
+ if (index < currentRecords.size && index >= 0) {
57
+ return { currentSelection: [Array.from(currentRecords.values())[index].__record__id__] };
58
+ }
59
+ }
60
+ return undefined;
61
+ case Action.SELECTION_CHANGED:
62
+ const { type, selection: selectionSource } = action.payload;
63
+ if (selectionSource === SelectionMode.ALL_RECORDS) {
64
+ return { currentSelection: [], mode: SelectionMode.ALL_RECORDS };
65
+ }
66
+ if (selectionSource && type === "index") {
67
+ const currentRecords = getCurrentRecords(stateManager);
68
+ if (currentRecords) {
69
+ const records = Array.from(currentRecords.values());
70
+ const selectionById = [];
71
+ selectionSource.forEach((i) => {
72
+ if (i >= 0 && i < currentRecords.size) {
73
+ selectionById.push(records[i].__record__id__);
74
+ }
75
+ });
76
+ return { currentSelection: selectionById };
77
+ }
78
+ }
79
+ return { currentSelection: selectionSource };
80
+ case Action.EDITION_CANCELED:
81
+ if (currentState === null || currentState === void 0 ? void 0 : currentState.lastSelection) {
82
+ return { currentSelection: currentState.lastSelection };
83
+ }
84
+ break;
85
+ }
86
+ return currentState;
87
+ }
88
+ }
89
+ export const SelectionReducer = new SelectionReducerImpl();
90
+ export const getSelectionState = (stateManager) => {
91
+ return stateManager.select(SelectionReducer.sliceName, (state) => state);
92
+ };
93
+ export const getSelection = (stateManager) => {
94
+ let selection = getCurrentSelection(stateManager);
95
+ if (!selection || selection.length === 0) {
96
+ return [];
97
+ }
98
+ return selection;
99
+ };
100
+ export const getSelectionInfo = (stateManager) => {
101
+ const selection = getSelectionState(stateManager);
102
+ if (selection && selection.mode === SelectionMode.ALL_RECORDS) {
103
+ const currentRequest = getCurrentRequest(stateManager);
104
+ const paginationInfo = getPaginationInfo(stateManager);
105
+ return new SelectionInfo([], SelectionMode.ALL_RECORDS, (paginationInfo === null || paginationInfo === void 0 ? void 0 : paginationInfo.total) || 0, currentRequest === null || currentRequest === void 0 ? void 0 : currentRequest.filters, currentRequest === null || currentRequest === void 0 ? void 0 : currentRequest.sort);
106
+ }
107
+ return new SelectionInfo(getSelectionRecords(stateManager) || [], SelectionMode.SOME_RECORDS, undefined);
108
+ };
109
+ export const hasNext = (stateManager) => {
110
+ const records = getCurrentRecords(stateManager);
111
+ if (records) {
112
+ const selection = getCurrentSelection(stateManager);
113
+ if (!selection || selection.length === 0) {
114
+ return records.size > 0;
115
+ }
116
+ return records.size > (getItemIndex(selection[0], records) + 1);
117
+ }
118
+ return false;
119
+ };
120
+ export const hasPrevious = (stateManager) => {
121
+ const records = getCurrentRecords(stateManager);
122
+ if (records) {
123
+ const selection = getCurrentSelection(stateManager);
124
+ if (!selection || selection.length === 0) {
125
+ return false;
126
+ }
127
+ return getItemIndex(selection[0], records) > 0;
128
+ }
129
+ return false;
130
+ };
131
+ function getItemIndex(key, map) {
132
+ return Array.from(map.keys()).indexOf(key);
133
+ }
134
+ function updateSavedIds(stateManager, savedRecords) {
135
+ const currentSelection = getSelection(stateManager);
136
+ if (currentSelection) {
137
+ const newSelection = [];
138
+ currentSelection.forEach(id => {
139
+ const record = savedRecords.find(r => r.__old__id__ === id);
140
+ if (record) {
141
+ newSelection.push(record.__record__id__);
142
+ }
143
+ else {
144
+ newSelection.push(id);
145
+ }
146
+ });
147
+ return newSelection;
148
+ }
149
+ return currentSelection;
150
+ }
151
+ function getCurrentSelection(stateManager) {
152
+ const selectionState = getSelectionState(stateManager);
153
+ return selectionState ? selectionState.currentSelection : undefined;
154
+ }
155
+ //# sourceMappingURL=SelectionSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionSlice.js","sourceRoot":"","sources":["../../../../src/dataunit/state/slice/SelectionSlice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { ActionReducer } from "../StateManager.js";
2
+ import StateManager from "../StateManager.js";
3
+ import { Record } from "../../DataUnit.js";
4
+ declare class SnapshotReducerImpl implements ActionReducer {
5
+ sliceName: string;
6
+ reduce(stateManager: StateManager, currentSnapshot: Snapshot): Snapshot;
7
+ }
8
+ export declare const SnapshotReducer: SnapshotReducerImpl;
9
+ export declare const getSnapshot: (stateManager: StateManager) => Snapshot | undefined;
10
+ export declare const getCurrentRecords: (stateManager: StateManager) => Map<string, Record>;
11
+ export declare const getSelectionRecordsMap: (stateManager: StateManager) => Map<string, Record>;
12
+ export declare const getSelectionRecords: (stateManager: StateManager) => Array<Record> | undefined;
13
+ export declare const getModifiedRecords: (stateManager: StateManager) => Array<Record> | undefined;
14
+ export declare const getFieldValue: (stateManager: StateManager, fieldName: string) => any;
15
+ export interface Snapshot {
16
+ records: Map<string, Record>;
17
+ selectionRecords: Map<string, Record>;
18
+ }
19
+ export {};
@@ -0,0 +1,106 @@
1
+ import { getRecords } from "./RecordsSlice.js";
2
+ import { getSelection } from "./SelectionSlice.js";
3
+ import { getChanges } from "./ChangesSlice.js";
4
+ import { getRemovedRecords } from "./RemovedRecordsSlice.js";
5
+ import { getAddedRecords } from "./AddedRecordsSlice.js";
6
+ class SnapshotReducerImpl {
7
+ constructor() {
8
+ this.sliceName = "snapshot";
9
+ }
10
+ reduce(stateManager, currentSnapshot) {
11
+ return buildSnapshot(currentSnapshot, stateManager);
12
+ }
13
+ }
14
+ export const SnapshotReducer = new SnapshotReducerImpl();
15
+ export const getSnapshot = (stateManager) => {
16
+ return stateManager.select(SnapshotReducer.sliceName, (state) => state);
17
+ };
18
+ export const getCurrentRecords = (stateManager) => {
19
+ const snapshot = getSnapshot(stateManager);
20
+ return snapshot ? snapshot.records : new Map();
21
+ };
22
+ export const getSelectionRecordsMap = (stateManager) => {
23
+ const snapshot = getSnapshot(stateManager);
24
+ return snapshot ? snapshot.selectionRecords : new Map();
25
+ };
26
+ export const getSelectionRecords = (stateManager) => {
27
+ const snapshot = getSnapshot(stateManager);
28
+ return snapshot ? Array.from(snapshot.selectionRecords.values()) : undefined;
29
+ };
30
+ export const getModifiedRecords = (stateManager) => {
31
+ const currentRecords = buildCurrentRecords(stateManager);
32
+ if (!currentRecords) {
33
+ return undefined;
34
+ }
35
+ const changes = getChanges(stateManager);
36
+ const added = getAddedRecords(stateManager);
37
+ if (!changes && !added) {
38
+ return undefined;
39
+ }
40
+ let modifiedIDs = changes ? Array.from(changes.keys()) : [];
41
+ if (added) {
42
+ modifiedIDs = modifiedIDs.concat(added.map(r => r.__record__id__));
43
+ }
44
+ return Array.from(currentRecords.values()).filter(r => modifiedIDs.includes(r.__record__id__));
45
+ };
46
+ export const getFieldValue = (stateManager, fieldName) => {
47
+ const selection = getSelection(stateManager);
48
+ if (selection && selection.length > 0) {
49
+ const currentRecords = getSelectionRecords(stateManager);
50
+ if (currentRecords) {
51
+ const record = currentRecords.find(record => record.__record__id__ === selection[0]);
52
+ return record ? record[fieldName] : undefined;
53
+ }
54
+ }
55
+ return undefined;
56
+ };
57
+ function buildSnapshot(oldSnapshot, stateManager) {
58
+ let records = getRecords(stateManager) || [];
59
+ const added = getAddedRecords(stateManager);
60
+ if (added) {
61
+ records = (records).concat(added);
62
+ }
63
+ const removedRecords = getRemovedRecords(stateManager);
64
+ if (removedRecords) {
65
+ records = records.filter(record => !removedRecords.includes(record.__record__id__));
66
+ }
67
+ const changes = getChanges(stateManager);
68
+ const snapshotRecords = new Map(records.map(source => [source.__record__id__, Object.assign(Object.assign({}, source), changes === null || changes === void 0 ? void 0 : changes.get(source.__record__id__))]));
69
+ const selectionRecords = new Map(oldSnapshot === null || oldSnapshot === void 0 ? void 0 : oldSnapshot.selectionRecords);
70
+ for (let [chave, valor] of selectionRecords) {
71
+ selectionRecords.set(chave, Object.assign(Object.assign({}, valor), changes === null || changes === void 0 ? void 0 : changes.get(chave)));
72
+ }
73
+ const selection = getSelection(stateManager);
74
+ if (selection && selection.length > 0) {
75
+ selection.forEach(recordId => {
76
+ const record = snapshotRecords.has(recordId) ? snapshotRecords.get(recordId) : oldSnapshot === null || oldSnapshot === void 0 ? void 0 : oldSnapshot.records.get(recordId);
77
+ if (record) {
78
+ selectionRecords.set(recordId, record);
79
+ }
80
+ });
81
+ }
82
+ Array.from(selectionRecords.keys()).forEach(key => {
83
+ if (!selection.includes(key)) {
84
+ selectionRecords.delete(key);
85
+ }
86
+ });
87
+ return {
88
+ records: snapshotRecords,
89
+ selectionRecords
90
+ };
91
+ }
92
+ function buildCurrentRecords(stateManager) {
93
+ const currentRecords = getCurrentRecords(stateManager);
94
+ const selectionRecords = getSelectionRecordsMap(stateManager);
95
+ /**
96
+ * Precisamos verificar tanto os registros da seleção quanto os da página atual, pois o usuário pode estar tentando
97
+ * editar um registro que não está na página atual ou que não está selecionado.
98
+ */
99
+ selectionRecords.forEach(record => {
100
+ if (!currentRecords.has(record.__record__id__)) {
101
+ currentRecords.set(record.__record__id__, record);
102
+ }
103
+ });
104
+ return currentRecords;
105
+ }
106
+ //# sourceMappingURL=SnapshotSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnapshotSlice.js","sourceRoot":"","sources":["../../../../src/dataunit/state/slice/SnapshotSlice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ActionReducer, StateAction } from "../StateManager.js";
2
+ import { UnitMetadata, FieldDescriptor } from "../../metadata/UnitMetadata.js";
3
+ import StateManager from "../StateManager.js";
4
+ declare class UnitMetadataReducerImpl implements ActionReducer {
5
+ sliceName: string;
6
+ reduce(_stateManager: StateManager, currentState: UnitMetadata, action: StateAction): UnitMetadata;
7
+ }
8
+ export declare const UnitMetadataReducer: UnitMetadataReducerImpl;
9
+ export declare const getMetadata: (stateManager: StateManager) => UnitMetadata;
10
+ export declare const getField: (stateManager: StateManager, fieldName: string) => FieldDescriptor | undefined;
11
+ export {};
@@ -0,0 +1,21 @@
1
+ import { Action } from "../action/DataUnitAction.js";
2
+ class UnitMetadataReducerImpl {
3
+ constructor() {
4
+ this.sliceName = "unitMetadata";
5
+ }
6
+ reduce(_stateManager, currentState, action) {
7
+ if (action.type === Action.METADATA_LOADED) {
8
+ return action.payload;
9
+ }
10
+ return currentState;
11
+ }
12
+ }
13
+ export const UnitMetadataReducer = new UnitMetadataReducerImpl();
14
+ export const getMetadata = (stateManager) => {
15
+ return stateManager.select(UnitMetadataReducer.sliceName, (state) => state);
16
+ };
17
+ export const getField = (stateManager, fieldName) => {
18
+ const md = getMetadata(stateManager);
19
+ return md ? md.fields.find(fmd => fmd.name === fieldName) : undefined;
20
+ };
21
+ //# sourceMappingURL=UnitMetadataSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnitMetadataSlice.js","sourceRoot":"","sources":["../../../../src/dataunit/state/slice/UnitMetadataSlice.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAIrD,MAAM,uBAAuB;IAA7B;QAEW,cAAS,GAAW,cAAc,CAAC;IAS9C,CAAC;IAPU,MAAM,CAAC,aAA0B,EAAE,YAA0B,EAAE,MAAmB;QACrF,IAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,eAAe,EAAC;YACtC,OAAO,MAAM,CAAC,OAAO,CAAC;SACzB;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;CAEJ;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,uBAAuB,EAAE,CAAC;AAEjE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,YAA0B,EAAgB,EAAE;IACpE,OAAO,YAAY,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,KAAmB,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,YAA0B,EAAE,SAAiB,EAA6B,EAAE;IACjG,MAAM,EAAE,GAAiB,WAAW,CAAC,YAAY,CAAC,CAAC;IACnD,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1E,CAAC,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { WaitingChange } from "../../DataUnit.js";
2
+ import StateManager, { ActionReducer, StateAction } from "../StateManager.js";
3
+ declare class WaitingCheangesReducerImpl implements ActionReducer {
4
+ sliceName: string;
5
+ reduce(stateManager: StateManager, currentState: Map<string, WaitingChange>, action: StateAction): Map<string, WaitingChange> | undefined;
6
+ }
7
+ export declare const WaitingChangesReducer: WaitingCheangesReducerImpl;
8
+ export declare const getWaitingChanges: (stateManager: StateManager) => Map<string, WaitingChange> | undefined;
9
+ export declare const isWaiting: (stateManager: StateManager, fieldName: string) => boolean;
10
+ export declare const getBlockingWaitingChanges: (stateManager: StateManager) => Map<string, WaitingChange> | undefined;
11
+ export declare const getWaitingChangePromisses: (stateManager: StateManager) => (Promise<any> | undefined)[] | undefined;
12
+ export {};
@@ -0,0 +1,56 @@
1
+ import { Action } from "../action/DataUnitAction.js";
2
+ class WaitingCheangesReducerImpl {
3
+ constructor() {
4
+ this.sliceName = "waitingChanges";
5
+ }
6
+ reduce(stateManager, currentState, action) {
7
+ let newState;
8
+ switch (action.type) {
9
+ case Action.CHANGING_DATA:
10
+ newState = new Map(currentState);
11
+ Object.entries(action.payload).forEach(([key, value]) => {
12
+ newState.set(key, value);
13
+ });
14
+ return newState;
15
+ case Action.WAITING_CHANGE_CANCELED:
16
+ newState = new Map(currentState);
17
+ newState.delete(action.payload.fieldName);
18
+ return newState.size === 0 ? undefined : newState;
19
+ case Action.DATA_CHANGED:
20
+ newState = new Map(currentState);
21
+ Object.entries(action.payload).forEach(([key]) => {
22
+ newState.delete(key);
23
+ });
24
+ return newState.size === 0 ? undefined : newState;
25
+ case Action.DATA_SAVED:
26
+ case Action.EDITION_CANCELED:
27
+ return undefined;
28
+ }
29
+ return currentState;
30
+ }
31
+ }
32
+ export const WaitingChangesReducer = new WaitingCheangesReducerImpl();
33
+ export const getWaitingChanges = (stateManager) => {
34
+ return stateManager.select(WaitingChangesReducer.sliceName, (state) => state);
35
+ };
36
+ export const isWaiting = (stateManager, fieldName) => {
37
+ const allWC = getWaitingChanges(stateManager);
38
+ return allWC ? allWC.has(fieldName) : false;
39
+ };
40
+ export const getBlockingWaitingChanges = (stateManager) => {
41
+ const allWC = getWaitingChanges(stateManager);
42
+ if (allWC) {
43
+ return new Map(Array.from(allWC.entries())
44
+ .filter(entry => entry[1].blocking)
45
+ .map(entry => [entry[0], entry[1]]));
46
+ }
47
+ };
48
+ export const getWaitingChangePromisses = (stateManager) => {
49
+ const allWC = getWaitingChanges(stateManager);
50
+ if (allWC) {
51
+ return Array.from(allWC.values())
52
+ .filter(wc => !wc.blocking)
53
+ .map(wc => wc.promise);
54
+ }
55
+ };
56
+ //# sourceMappingURL=WaitingChangesSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaitingChangesSlice.js","sourceRoot":"","sources":["../../../../src/dataunit/state/slice/WaitingChangesSlice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `ErrorException`: Exceção lançada quando ocorre um erro.
3
+ */
4
+ export default class ErrorException extends Error {
5
+ /** Nome da exceção. */
6
+ name: string;
7
+ /** Titulo do erro. */
8
+ title: string;
9
+ /** Descrição do erro. */
10
+ message: string;
11
+ /** Código do erro, indica o erro disparado pelo backend. */
12
+ errorCode: string;
13
+ constructor(title: string, message: string, errorCode?: string);
14
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * `ErrorException`: Exceção lançada quando ocorre um erro.
3
+ */
4
+ export default class ErrorException extends Error {
5
+ constructor(title, message, errorCode = "") {
6
+ super(message);
7
+ this.name = "";
8
+ this.title = title;
9
+ this.message = message;
10
+ this.errorCode = errorCode;
11
+ }
12
+ }
13
+ //# sourceMappingURL=ErrorException.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorException.js","sourceRoot":"","sources":["../../src/exceptions/ErrorException.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK;IAc7C,YAAY,KAAa,EAAE,OAAe,EAAE,YAAoB,EAAE;QAC9D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;CACJ"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `WaitingChangeException`: Exceção lançada quando um campo está pendente de finalizar a alteração antes de executar uma ação.
3
+ */
4
+ export default class WaitingChangeException extends Error {
5
+ /** Nome da exceção. */
6
+ name: string;
7
+ /** Titulo do erro. */
8
+ title: string;
9
+ /** Descrição do erro. */
10
+ message: string;
11
+ constructor(title: string, message: string);
12
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `WaitingChangeException`: Exceção lançada quando um campo está pendente de finalizar a alteração antes de executar uma ação.
3
+ */
4
+ export default class WaitingChangeException extends Error {
5
+ constructor(title, message) {
6
+ super(message);
7
+ this.title = title;
8
+ this.name = "";
9
+ this.message = message;
10
+ }
11
+ }
12
+ //# sourceMappingURL=WaitingChangeException.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaitingChangeException.js","sourceRoot":"","sources":["../../src/exceptions/WaitingChangeException.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,KAAK;IAWrD,YAAY,KAAa,EAAE,OAAe;QACtC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `WarningException`: Exceção lançada quando o "erro" vindo do backend é caracterizado como warning.
3
+ */
4
+ export default class WarningException extends Error {
5
+ /** Nome da exceção. */
6
+ name: string;
7
+ /** Titulo do alerta. */
8
+ title: string;
9
+ /** Descrição do alerta. */
10
+ message: string;
11
+ /** Código do alerta, indica o alerta disparado pelo backend. */
12
+ errorCode: string;
13
+ constructor(title: string, message: string, errorCode?: string);
14
+ }