d2aura 23.0.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 (274) hide show
  1. package/api/abstractApi.d.ts +21 -0
  2. package/api/abstractApi.js +56 -0
  3. package/api/abstractApi.js.map +1 -0
  4. package/api/abstractEntityApi.d.ts +37 -0
  5. package/api/abstractEntityApi.js +145 -0
  6. package/api/abstractEntityApi.js.map +1 -0
  7. package/api/advancedFilterApi.d.ts +56 -0
  8. package/api/advancedFilterApi.js +108 -0
  9. package/api/advancedFilterApi.js.map +1 -0
  10. package/api/archiveApi.d.ts +14 -0
  11. package/api/archiveApi.js +25 -0
  12. package/api/archiveApi.js.map +1 -0
  13. package/api/comparison/entityComparisonUtils.d.ts +4 -0
  14. package/api/comparison/entityComparisonUtils.js +15 -0
  15. package/api/comparison/entityComparisonUtils.js.map +1 -0
  16. package/api/constants/constants.d.ts +5 -0
  17. package/api/constants/constants.js +6 -0
  18. package/api/constants/constants.js.map +1 -0
  19. package/api/constants/d2ChartConstants.d.ts +5 -0
  20. package/api/constants/d2ChartConstants.js +6 -0
  21. package/api/constants/d2ChartConstants.js.map +1 -0
  22. package/api/edaApi.d.ts +36 -0
  23. package/api/edaApi.js +109 -0
  24. package/api/edaApi.js.map +1 -0
  25. package/api/impl/errorHandling.d.ts +1 -0
  26. package/api/impl/errorHandling.js +72 -0
  27. package/api/impl/errorHandling.js.map +1 -0
  28. package/api/impl/utils/reportError.d.ts +2 -0
  29. package/api/impl/utils/reportError.js +157 -0
  30. package/api/impl/utils/reportError.js.map +1 -0
  31. package/api/impl/utils/reportServiceMessage.d.ts +1 -0
  32. package/api/impl/utils/reportServiceMessage.js +29 -0
  33. package/api/impl/utils/reportServiceMessage.js.map +1 -0
  34. package/api/types/accessRight.d.ts +5 -0
  35. package/api/types/accessRight.js +7 -0
  36. package/api/types/accessRight.js.map +1 -0
  37. package/api/types/advancedFilter.d.ts +22 -0
  38. package/api/types/advancedFilter.js +16 -0
  39. package/api/types/advancedFilter.js.map +1 -0
  40. package/api/types/apiResult.d.ts +5 -0
  41. package/api/types/apiResult.js +2 -0
  42. package/api/types/apiResult.js.map +1 -0
  43. package/api/types/auditableEntity.d.ts +10 -0
  44. package/api/types/auditableEntity.js +2 -0
  45. package/api/types/auditableEntity.js.map +1 -0
  46. package/api/types/d2ArTypes.d.ts +5 -0
  47. package/api/types/d2ArTypes.js +2 -0
  48. package/api/types/d2ArTypes.js.map +1 -0
  49. package/api/types/d2ChartTypes.d.ts +26 -0
  50. package/api/types/d2ChartTypes.js +7 -0
  51. package/api/types/d2ChartTypes.js.map +1 -0
  52. package/api/types/dbBoolean.d.ts +5 -0
  53. package/api/types/dbBoolean.js +15 -0
  54. package/api/types/dbBoolean.js.map +1 -0
  55. package/api/types/entity.d.ts +7 -0
  56. package/api/types/entity.js +2 -0
  57. package/api/types/entity.js.map +1 -0
  58. package/api/types/entityListResult.d.ts +4 -0
  59. package/api/types/entityListResult.js +2 -0
  60. package/api/types/entityListResult.js.map +1 -0
  61. package/api/types/entityResult.d.ts +4 -0
  62. package/api/types/entityResult.js +2 -0
  63. package/api/types/entityResult.js.map +1 -0
  64. package/api/types/nounGender.d.ts +5 -0
  65. package/api/types/nounGender.js +7 -0
  66. package/api/types/nounGender.js.map +1 -0
  67. package/api/util/d2Boolean.d.ts +8 -0
  68. package/api/util/d2Boolean.js +14 -0
  69. package/api/util/d2Boolean.js.map +1 -0
  70. package/api/util/d2ChartUtils.d.ts +7 -0
  71. package/api/util/d2ChartUtils.js +62 -0
  72. package/api/util/d2ChartUtils.js.map +1 -0
  73. package/api/util/edaUtils.d.ts +5 -0
  74. package/api/util/edaUtils.js +33 -0
  75. package/api/util/edaUtils.js.map +1 -0
  76. package/api/util/fileUtils.d.ts +3 -0
  77. package/api/util/fileUtils.js +22 -0
  78. package/api/util/fileUtils.js.map +1 -0
  79. package/api/validation/abstractEntityValidationUtils.d.ts +8 -0
  80. package/api/validation/abstractEntityValidationUtils.js +24 -0
  81. package/api/validation/abstractEntityValidationUtils.js.map +1 -0
  82. package/core/types/panelConfiguration.d.ts +3 -0
  83. package/core/types/panelConfiguration.js +2 -0
  84. package/core/types/panelConfiguration.js.map +1 -0
  85. package/core/util/humanizeDuration.d.ts +1 -0
  86. package/core/util/humanizeDuration.js +24 -0
  87. package/core/util/humanizeDuration.js.map +1 -0
  88. package/core/util/isStringEmpty.d.ts +1 -0
  89. package/core/util/isStringEmpty.js +4 -0
  90. package/core/util/isStringEmpty.js.map +1 -0
  91. package/core/util/locationUtils.d.ts +10 -0
  92. package/core/util/locationUtils.js +34 -0
  93. package/core/util/locationUtils.js.map +1 -0
  94. package/coreui/abstractApp.d.ts +22 -0
  95. package/coreui/abstractApp.js +49 -0
  96. package/coreui/abstractApp.js.map +1 -0
  97. package/coreui/abstractListPanel.d.ts +88 -0
  98. package/coreui/abstractListPanel.js +426 -0
  99. package/coreui/abstractListPanel.js.map +1 -0
  100. package/coreui/abstractPage.d.ts +18 -0
  101. package/coreui/abstractPage.js +104 -0
  102. package/coreui/abstractPage.js.map +1 -0
  103. package/coreui/auth/loginForm.d.ts +27 -0
  104. package/coreui/auth/loginForm.js +47 -0
  105. package/coreui/auth/loginForm.js.map +1 -0
  106. package/coreui/auth/logoutButton.d.ts +9 -0
  107. package/coreui/auth/logoutButton.js +23 -0
  108. package/coreui/auth/logoutButton.js.map +1 -0
  109. package/coreui/components/about/aboutModalDialog.d.ts +30 -0
  110. package/coreui/components/about/aboutModalDialog.js +96 -0
  111. package/coreui/components/about/aboutModalDialog.js.map +1 -0
  112. package/coreui/components/advancedFilter/advancedFilterButton.d.ts +26 -0
  113. package/coreui/components/advancedFilter/advancedFilterButton.js +115 -0
  114. package/coreui/components/advancedFilter/advancedFilterButton.js.map +1 -0
  115. package/coreui/components/advancedFilter/advancedFilterColumnDefinitions.d.ts +18 -0
  116. package/coreui/components/advancedFilter/advancedFilterColumnDefinitions.js +39 -0
  117. package/coreui/components/advancedFilter/advancedFilterColumnDefinitions.js.map +1 -0
  118. package/coreui/components/advancedFilter/advancedFilterUtils.d.ts +12 -0
  119. package/coreui/components/advancedFilter/advancedFilterUtils.js +101 -0
  120. package/coreui/components/advancedFilter/advancedFilterUtils.js.map +1 -0
  121. package/coreui/components/advancedFilter/advancedFilterValidationUtils.d.ts +11 -0
  122. package/coreui/components/advancedFilter/advancedFilterValidationUtils.js +59 -0
  123. package/coreui/components/advancedFilter/advancedFilterValidationUtils.js.map +1 -0
  124. package/coreui/components/advancedFilter/advancedFilteredGrid.d.ts +55 -0
  125. package/coreui/components/advancedFilter/advancedFilteredGrid.js +165 -0
  126. package/coreui/components/advancedFilter/advancedFilteredGrid.js.map +1 -0
  127. package/coreui/components/advancedFilter/components/advancedFilterOperatorSelect.d.ts +14 -0
  128. package/coreui/components/advancedFilter/components/advancedFilterOperatorSelect.js +35 -0
  129. package/coreui/components/advancedFilter/components/advancedFilterOperatorSelect.js.map +1 -0
  130. package/coreui/components/advancedFilter/components/advancedFilterValueInput.d.ts +23 -0
  131. package/coreui/components/advancedFilter/components/advancedFilterValueInput.js +148 -0
  132. package/coreui/components/advancedFilter/components/advancedFilterValueInput.js.map +1 -0
  133. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.d.ts +18 -0
  134. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.js +82 -0
  135. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.js.map +1 -0
  136. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.d.ts +23 -0
  137. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.js +58 -0
  138. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.js.map +1 -0
  139. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.d.ts +31 -0
  140. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.js +211 -0
  141. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.js.map +1 -0
  142. package/coreui/components/advancedFilter/filterList/advancedFilterListModalDialog.d.ts +15 -0
  143. package/coreui/components/advancedFilter/filterList/advancedFilterListModalDialog.js +48 -0
  144. package/coreui/components/advancedFilter/filterList/advancedFilterListModalDialog.js.map +1 -0
  145. package/coreui/components/advancedFilter/filterSave/filterSaveModalDialog.d.ts +18 -0
  146. package/coreui/components/advancedFilter/filterSave/filterSaveModalDialog.js +37 -0
  147. package/coreui/components/advancedFilter/filterSave/filterSaveModalDialog.js.map +1 -0
  148. package/coreui/components/advancedFilter/floatingColumnFilter/advancedFilterFloatingColumnComponent.d.ts +26 -0
  149. package/coreui/components/advancedFilter/floatingColumnFilter/advancedFilterFloatingColumnComponent.js +81 -0
  150. package/coreui/components/advancedFilter/floatingColumnFilter/advancedFilterFloatingColumnComponent.js.map +1 -0
  151. package/coreui/components/assignEntitiesToEntity/abstractEntitiesOnEntityList.d.ts +32 -0
  152. package/coreui/components/assignEntitiesToEntity/abstractEntitiesOnEntityList.js +102 -0
  153. package/coreui/components/assignEntitiesToEntity/abstractEntitiesOnEntityList.js.map +1 -0
  154. package/coreui/components/changePasswordModalDialog/changePasswordModalDialog.d.ts +23 -0
  155. package/coreui/components/changePasswordModalDialog/changePasswordModalDialog.js +83 -0
  156. package/coreui/components/changePasswordModalDialog/changePasswordModalDialog.js.map +1 -0
  157. package/coreui/components/colorTag/colorTag.d.ts +9 -0
  158. package/coreui/components/colorTag/colorTag.js +17 -0
  159. package/coreui/components/colorTag/colorTag.js.map +1 -0
  160. package/coreui/components/d2Chart/d2ChartOptions.d.ts +3 -0
  161. package/coreui/components/d2Chart/d2ChartOptions.js +73 -0
  162. package/coreui/components/d2Chart/d2ChartOptions.js.map +1 -0
  163. package/coreui/components/d2Chart/d2ChartPanel.d.ts +48 -0
  164. package/coreui/components/d2Chart/d2ChartPanel.js +325 -0
  165. package/coreui/components/d2Chart/d2ChartPanel.js.map +1 -0
  166. package/coreui/components/d2Chart/d2ChartTablePanel.d.ts +31 -0
  167. package/coreui/components/d2Chart/d2ChartTablePanel.js +121 -0
  168. package/coreui/components/d2Chart/d2ChartTablePanel.js.map +1 -0
  169. package/coreui/components/d2Chart/d2ChartToolboxPanel.d.ts +27 -0
  170. package/coreui/components/d2Chart/d2ChartToolboxPanel.js +116 -0
  171. package/coreui/components/d2Chart/d2ChartToolboxPanel.js.map +1 -0
  172. package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.d.ts +51 -0
  173. package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.js +169 -0
  174. package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.js.map +1 -0
  175. package/coreui/components/edaManager/abstract/edaManagerAbstractTablePanel.d.ts +32 -0
  176. package/coreui/components/edaManager/abstract/edaManagerAbstractTablePanel.js +87 -0
  177. package/coreui/components/edaManager/abstract/edaManagerAbstractTablePanel.js.map +1 -0
  178. package/coreui/components/edaManager/abstract/edaManagerAbstractVectorList.d.ts +24 -0
  179. package/coreui/components/edaManager/abstract/edaManagerAbstractVectorList.js +98 -0
  180. package/coreui/components/edaManager/abstract/edaManagerAbstractVectorList.js.map +1 -0
  181. package/coreui/components/edaManager/compactPanel/edaManagerCompactPanel.d.ts +19 -0
  182. package/coreui/components/edaManager/compactPanel/edaManagerCompactPanel.js +52 -0
  183. package/coreui/components/edaManager/compactPanel/edaManagerCompactPanel.js.map +1 -0
  184. package/coreui/components/edaManager/compactPanel/initialLayout.d.ts +2 -0
  185. package/coreui/components/edaManager/compactPanel/initialLayout.js +26 -0
  186. package/coreui/components/edaManager/compactPanel/initialLayout.js.map +1 -0
  187. package/coreui/components/edaManager/components/detail/components/edaVectorMassChangeButton.d.ts +38 -0
  188. package/coreui/components/edaManager/components/detail/components/edaVectorMassChangeButton.js +182 -0
  189. package/coreui/components/edaManager/components/detail/components/edaVectorMassChangeButton.js.map +1 -0
  190. package/coreui/components/edaManager/components/detail/edaVectorDetailModalDialog.d.ts +23 -0
  191. package/coreui/components/edaManager/components/detail/edaVectorDetailModalDialog.js +122 -0
  192. package/coreui/components/edaManager/components/detail/edaVectorDetailModalDialog.js.map +1 -0
  193. package/coreui/components/edaManager/components/detail/edaVectorDetailTablePanel.d.ts +16 -0
  194. package/coreui/components/edaManager/components/detail/edaVectorDetailTablePanel.js +63 -0
  195. package/coreui/components/edaManager/components/detail/edaVectorDetailTablePanel.js.map +1 -0
  196. package/coreui/components/edaManager/components/detail/initialLayout.d.ts +2 -0
  197. package/coreui/components/edaManager/components/detail/initialLayout.js +29 -0
  198. package/coreui/components/edaManager/components/detail/initialLayout.js.map +1 -0
  199. package/coreui/components/edaManager/components/edaManagerTablePanel.d.ts +22 -0
  200. package/coreui/components/edaManager/components/edaManagerTablePanel.js +80 -0
  201. package/coreui/components/edaManager/components/edaManagerTablePanel.js.map +1 -0
  202. package/coreui/components/edaManager/components/edaManagerTimePanel.d.ts +22 -0
  203. package/coreui/components/edaManager/components/edaManagerTimePanel.js +38 -0
  204. package/coreui/components/edaManager/components/edaManagerTimePanel.js.map +1 -0
  205. package/coreui/components/edaManager/components/edaManagerVectorList.d.ts +11 -0
  206. package/coreui/components/edaManager/components/edaManagerVectorList.js +35 -0
  207. package/coreui/components/edaManager/components/edaManagerVectorList.js.map +1 -0
  208. package/coreui/components/edaManager/components/edaStepSelect/edaStepConstants.d.ts +0 -0
  209. package/coreui/components/edaManager/components/edaStepSelect/edaStepConstants.js +2 -0
  210. package/coreui/components/edaManager/components/edaStepSelect/edaStepConstants.js.map +1 -0
  211. package/coreui/components/edaManager/components/edaStepSelect/edaStepSelect.d.ts +13 -0
  212. package/coreui/components/edaManager/components/edaStepSelect/edaStepSelect.js +14 -0
  213. package/coreui/components/edaManager/components/edaStepSelect/edaStepSelect.js.map +1 -0
  214. package/coreui/components/edaManager/components/edaVectorSelect/edaVectorSelect.d.ts +10 -0
  215. package/coreui/components/edaManager/components/edaVectorSelect/edaVectorSelect.js +20 -0
  216. package/coreui/components/edaManager/components/edaVectorSelect/edaVectorSelect.js.map +1 -0
  217. package/coreui/components/edaManager/components/edaVectorSelect/edaVectorSelectModalDialog.d.ts +13 -0
  218. package/coreui/components/edaManager/components/edaVectorSelect/edaVectorSelectModalDialog.js +22 -0
  219. package/coreui/components/edaManager/components/edaVectorSelect/edaVectorSelectModalDialog.js.map +1 -0
  220. package/coreui/components/edaManager/constants.d.ts +2 -0
  221. package/coreui/components/edaManager/constants.js +11 -0
  222. package/coreui/components/edaManager/constants.js.map +1 -0
  223. package/coreui/components/edaManager/panel/edaManagerPanel.d.ts +13 -0
  224. package/coreui/components/edaManager/panel/edaManagerPanel.js +32 -0
  225. package/coreui/components/edaManager/panel/edaManagerPanel.js.map +1 -0
  226. package/coreui/components/edaManager/panel/initialLayout.d.ts +2 -0
  227. package/coreui/components/edaManager/panel/initialLayout.js +39 -0
  228. package/coreui/components/edaManager/panel/initialLayout.js.map +1 -0
  229. package/coreui/components/editor/abstractEntityConfigPanel.d.ts +82 -0
  230. package/coreui/components/editor/abstractEntityConfigPanel.js +307 -0
  231. package/coreui/components/editor/abstractEntityConfigPanel.js.map +1 -0
  232. package/coreui/components/filePicker/filePicker.d.ts +20 -0
  233. package/coreui/components/filePicker/filePicker.js +57 -0
  234. package/coreui/components/filePicker/filePicker.js.map +1 -0
  235. package/coreui/components/grid/auditEntityRowStyleRules.d.ts +3 -0
  236. package/coreui/components/grid/auditEntityRowStyleRules.js +34 -0
  237. package/coreui/components/grid/auditEntityRowStyleRules.js.map +1 -0
  238. package/coreui/components/grid/detailHeaderPanel.d.ts +13 -0
  239. package/coreui/components/grid/detailHeaderPanel.js +29 -0
  240. package/coreui/components/grid/detailHeaderPanel.js.map +1 -0
  241. package/coreui/components/grid/standardColumns.d.ts +14 -0
  242. package/coreui/components/grid/standardColumns.js +150 -0
  243. package/coreui/components/grid/standardColumns.js.map +1 -0
  244. package/coreui/components/history/entityHistoryListPanel.d.ts +38 -0
  245. package/coreui/components/history/entityHistoryListPanel.js +154 -0
  246. package/coreui/components/history/entityHistoryListPanel.js.map +1 -0
  247. package/coreui/components/languageSelect/languageSelect.d.ts +17 -0
  248. package/coreui/components/languageSelect/languageSelect.js +28 -0
  249. package/coreui/components/languageSelect/languageSelect.js.map +1 -0
  250. package/coreui/components/modalWithIcon/openModalWithIcon.d.ts +8 -0
  251. package/coreui/components/modalWithIcon/openModalWithIcon.js +30 -0
  252. package/coreui/components/modalWithIcon/openModalWithIcon.js.map +1 -0
  253. package/coreui/components/select/abstractSelect.d.ts +57 -0
  254. package/coreui/components/select/abstractSelect.js +233 -0
  255. package/coreui/components/select/abstractSelect.js.map +1 -0
  256. package/coreui/components/select/abstractSelectModalDialog.d.ts +33 -0
  257. package/coreui/components/select/abstractSelectModalDialog.js +110 -0
  258. package/coreui/components/select/abstractSelectModalDialog.js.map +1 -0
  259. package/coreui/components/select/selectUtils.d.ts +4 -0
  260. package/coreui/components/select/selectUtils.js +14 -0
  261. package/coreui/components/select/selectUtils.js.map +1 -0
  262. package/coreui/components/titleWithCodePanel/titleWithCodePanel.d.ts +10 -0
  263. package/coreui/components/titleWithCodePanel/titleWithCodePanel.js +20 -0
  264. package/coreui/components/titleWithCodePanel/titleWithCodePanel.js.map +1 -0
  265. package/coreui/icons/icons.d.ts +3 -0
  266. package/coreui/icons/icons.js +18 -0
  267. package/coreui/icons/icons.js.map +1 -0
  268. package/coreui/layout/contextToolbar.d.ts +15 -0
  269. package/coreui/layout/contextToolbar.js +41 -0
  270. package/coreui/layout/contextToolbar.js.map +1 -0
  271. package/coreui/style/index.less +165 -0
  272. package/coreui/style/login.css +214 -0
  273. package/package.json +65 -0
  274. package/tsconfig.json +38 -0
@@ -0,0 +1,21 @@
1
+ import ApiResult from "./types/apiResult";
2
+ import { D2WebApi, RpcParameter } from "d2jsapi";
3
+ import { UnivalRecordDefinition } from "d2jsapi/dist/unival";
4
+ interface RpcCallConfig {
5
+ eventName: string;
6
+ rpcName: string;
7
+ skipCheckErrorParameters?: boolean;
8
+ skipCheckErrorOnly?: boolean;
9
+ timeout?: number;
10
+ }
11
+ export default abstract class AbstractApi {
12
+ d2Api: D2WebApi;
13
+ static structureTypesDefinitions: {
14
+ [key: string]: UnivalRecordDefinition;
15
+ };
16
+ protected constructor(d2Api: D2WebApi);
17
+ callRpc<T extends ApiResult>(rpcCallConfig: RpcCallConfig, ...parameters: RpcParameter[]): Promise<T>;
18
+ checkError<T extends ApiResult>(eventName: string, rpcName: string, result: T): void;
19
+ private callRpcInternal;
20
+ }
21
+ export {};
@@ -0,0 +1,56 @@
1
+ import React from "react";
2
+ import { D2Data } from "d2jsapi";
3
+ import D2BooleanUtils from "./util/d2Boolean";
4
+ import { ModalDialog } from "d2coreui/components/modal/modalDialog";
5
+ import i18n from "d2core/i18n/i18n";
6
+ import { ClipboardUtils } from "d2coreui/components/clipboard/clipboardUtils";
7
+ class AbstractApi {
8
+ constructor(d2Api) {
9
+ this.d2Api = d2Api;
10
+ }
11
+ async callRpc(rpcCallConfig, ...parameters) {
12
+ return this.callRpcInternal(rpcCallConfig, parameters);
13
+ }
14
+ checkError(eventName, rpcName, result) {
15
+ if (!result.isOk) {
16
+ ModalDialog.error({
17
+ mode: "OK",
18
+ title: React.createElement("span", { onDoubleClick: () => ClipboardUtils.copyToClipboard(`${eventName}.${rpcName}`), title: `${eventName}.${rpcName}` }, i18n("Error")),
19
+ content: i18n(result.errorMessage ?? "")
20
+ });
21
+ }
22
+ }
23
+ async callRpcInternal(rpcCallConfig, parameters) {
24
+ const { eventName, rpcName, skipCheckErrorParameters, skipCheckErrorOnly, timeout } = rpcCallConfig;
25
+ let result;
26
+ if (skipCheckErrorParameters) {
27
+ result = await this.d2Api.rpc(eventName, rpcName, ...parameters).call(timeout);
28
+ }
29
+ else {
30
+ result = await this.d2Api.rpc(eventName, rpcName, ...parameters, { type: "bool", returnAs: "isOk" }, { type: "text", returnAs: "errorMessage" }).call(timeout);
31
+ result.isOk = D2BooleanUtils.d2BooleanToBoolean(D2Data.toSimpleValue(result.isOk));
32
+ result.errorMessage = D2Data.toSimpleValue(result.errorMessage);
33
+ if (!skipCheckErrorOnly) {
34
+ this.checkError(eventName, rpcName, result);
35
+ }
36
+ }
37
+ for (const parameter of parameters) {
38
+ if (typeof parameter === "object" && !!parameter.returnAs) {
39
+ const unival = parameter;
40
+ const returnAsField = unival.returnAs;
41
+ if (unival.type === "record") {
42
+ const univalInRecordValue = parameter;
43
+ const univalOutRecordValue = result[returnAsField];
44
+ if (!!univalInRecordValue.structType) {
45
+ AbstractApi.structureTypesDefinitions[univalInRecordValue.structType] = univalOutRecordValue.definition;
46
+ }
47
+ }
48
+ result[returnAsField] = D2Data.toSimpleValue(result[returnAsField]);
49
+ }
50
+ }
51
+ return result;
52
+ }
53
+ }
54
+ AbstractApi.structureTypesDefinitions = {};
55
+ export default AbstractApi;
56
+ //# sourceMappingURL=abstractApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstractApi.js","sourceRoot":"","sources":["../../../api/abstractApi.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport ApiResult from \"./types/apiResult\";\r\nimport {D2Data, D2WebApi, RpcParameter, UnivalTypeEnum} from \"d2jsapi\";\r\nimport D2BooleanUtils from \"./util/d2Boolean\";\r\nimport {UnivalRecordDefinition, UnivalRecordValue, UnivalValue} from \"d2jsapi/dist/unival\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {ClipboardUtils} from \"d2coreui/components/clipboard/clipboardUtils\";\r\n\r\ninterface RpcCallConfig {\r\n eventName: string,\r\n rpcName: string\r\n skipCheckErrorParameters?: boolean\r\n skipCheckErrorOnly?: boolean\r\n timeout?: number\r\n}\r\n\r\nexport default abstract class AbstractApi {\r\n d2Api: D2WebApi;\r\n static structureTypesDefinitions: { [key: string]: UnivalRecordDefinition } = {}\r\n\r\n protected constructor(d2Api: D2WebApi) {\r\n this.d2Api = d2Api;\r\n }\r\n\r\n async callRpc<T extends ApiResult>(rpcCallConfig: RpcCallConfig, ...parameters: RpcParameter[]): Promise<T> {\r\n return this.callRpcInternal(rpcCallConfig, parameters);\r\n }\r\n\r\n checkError<T extends ApiResult>(eventName: string, rpcName: string, result: T) {\r\n if (!result.isOk) {\r\n ModalDialog.error({\r\n mode: ModalDialogMode.OK,\r\n title:\r\n <span\r\n onDoubleClick={() => ClipboardUtils.copyToClipboard(`${eventName}.${rpcName}`)}\r\n title={`${eventName}.${rpcName}`}\r\n >\r\n {i18n(\"Error\")}\r\n </span>,\r\n content: i18n(result.errorMessage ?? \"\")\r\n });\r\n }\r\n }\r\n\r\n private async callRpcInternal<T extends ApiResult>(rpcCallConfig: RpcCallConfig, parameters: RpcParameter[]): Promise<T> {\r\n const {eventName, rpcName, skipCheckErrorParameters, skipCheckErrorOnly, timeout} = rpcCallConfig;\r\n let result: any;\r\n if (skipCheckErrorParameters) {\r\n result = await this.d2Api.rpc(eventName, rpcName, ...parameters).call(timeout);\r\n } else {\r\n result = await this.d2Api.rpc(eventName, rpcName, ...parameters,\r\n {type: UnivalTypeEnum.BOOL, returnAs: \"isOk\"},\r\n {type: UnivalTypeEnum.TEXT, returnAs: \"errorMessage\"}\r\n ).call(timeout);\r\n\r\n result.isOk = D2BooleanUtils.d2BooleanToBoolean(D2Data.toSimpleValue(result.isOk));\r\n result.errorMessage = D2Data.toSimpleValue(result.errorMessage);\r\n\r\n if (!skipCheckErrorOnly) {\r\n this.checkError(eventName, rpcName, result);\r\n }\r\n }\r\n for (const parameter of parameters) {\r\n if (typeof parameter === \"object\" && !!(parameter as UnivalValue).returnAs) {\r\n const unival = parameter as UnivalValue;\r\n const returnAsField = unival.returnAs as string;\r\n if (unival.type === UnivalTypeEnum.RECORD) {\r\n const univalInRecordValue = parameter as UnivalRecordValue;\r\n const univalOutRecordValue = result[returnAsField] as UnivalRecordValue;\r\n if (!!univalInRecordValue.structType) {\r\n AbstractApi.structureTypesDefinitions[univalInRecordValue.structType] = univalOutRecordValue.definition!;\r\n }\r\n }\r\n result[returnAsField] = D2Data.toSimpleValue(result[returnAsField]);\r\n }\r\n }\r\n return result as T;\r\n }\r\n}"]}
@@ -0,0 +1,37 @@
1
+ import { D2WebApi } from "d2jsapi";
2
+ import { UnivalRecordValue } from "d2jsapi/dist/unival";
3
+ import Entity from "./types/entity";
4
+ import EntityListResult from "./types/entityListResult";
5
+ import { AdvancedFilterCondition } from "./advancedFilterApi";
6
+ import { AccessRight } from "./types/accessRight";
7
+ import AbstractApi from "./abstractApi";
8
+ export interface Closeable {
9
+ close(): void;
10
+ }
11
+ export interface PageableList<T extends Entity> {
12
+ data: T[];
13
+ totalNumberOfRows: number;
14
+ }
15
+ export default abstract class AbstractEntityApi<T extends Entity> extends AbstractApi {
16
+ entityClassName: string;
17
+ protected eventName: string;
18
+ protected structureDefinitionName: string;
19
+ protected entityFields: string[];
20
+ protected constructor(d2Api: D2WebApi, entityClassName: string, eventName: string, structureDefinitionName: string, entityFields: string[]);
21
+ abstract adaptEntityId(entity: T): void;
22
+ createNewEntity(sample?: T): Promise<T>;
23
+ protected adaptNewEntity(newEntity: T, sample?: T): void;
24
+ getAllData(fromRecord: number, toRecord: number, orderBy: string, conditions: AdvancedFilterCondition[], onlyValid: boolean): Promise<PageableList<T>>;
25
+ getAccessRight(): Promise<AccessRight>;
26
+ getHistory(id: number, fromRecord: number, toRecord: number): Promise<PageableList<T>>;
27
+ protected adaptSavedEntity(entity: T, isNewEntity: boolean): Promise<T>;
28
+ protected internalSave(entity: T, isNewEntity: boolean, _isCosmeticChange?: boolean): Promise<EntityListResult<T>>;
29
+ saveEntity(entity: T, isCosmeticChange?: boolean): Promise<T | undefined>;
30
+ getEntity(id: number): Promise<T>;
31
+ setValidity(entity: T, valid: boolean): Promise<boolean>;
32
+ codeExists(code: string): Promise<boolean>;
33
+ lockEntity(entity: T): Promise<boolean>;
34
+ unlockEntity(entity: T): Promise<void>;
35
+ convertToStructure(structureType: string, fields: string[], data: any[], returnAs?: string, valueTimeField?: string): UnivalRecordValue;
36
+ isNewEntity(entity: Entity): boolean;
37
+ }
@@ -0,0 +1,145 @@
1
+ import { ModalDialog } from "d2coreui/components/modal/modalDialog";
2
+ import i18n from "d2core/i18n/i18n";
3
+ import { FILTER_CONDITION_FIELDS, FILTER_CONDITION_SD_NAME } from "./advancedFilterApi";
4
+ import D2BooleanUtils, { D2Boolean } from "./util/d2Boolean";
5
+ import AbstractApi from "./abstractApi";
6
+ export default class AbstractEntityApi extends AbstractApi {
7
+ constructor(d2Api, entityClassName, eventName, structureDefinitionName, entityFields) {
8
+ super(d2Api);
9
+ this.entityClassName = entityClassName;
10
+ this.eventName = eventName;
11
+ this.structureDefinitionName = structureDefinitionName;
12
+ this.entityFields = entityFields;
13
+ }
14
+ async createNewEntity(sample) {
15
+ const result = await this.callRpc({
16
+ eventName: this.eventName,
17
+ rpcName: "Data_GetDefaultValues",
18
+ skipCheckErrorParameters: true,
19
+ }, this.d2Api.connection.user.userName, { type: "record", structType: this.structureDefinitionName, returnAs: "data" });
20
+ const newEntity = result.data[0];
21
+ this.adaptNewEntity(newEntity, sample);
22
+ return newEntity;
23
+ }
24
+ adaptNewEntity(newEntity, sample) {
25
+ newEntity;
26
+ sample;
27
+ }
28
+ async getAllData(fromRecord, toRecord, orderBy, conditions, onlyValid) {
29
+ const result = await this.callRpc({
30
+ eventName: this.eventName,
31
+ rpcName: "Data_GetAll",
32
+ }, { type: "record", structType: this.structureDefinitionName, returnAs: "data" }, { type: "int", returnAs: "totalNumberOfRows" }, fromRecord, toRecord, { type: "text", value: orderBy }, this.convertToStructure(FILTER_CONDITION_SD_NAME, FILTER_CONDITION_FIELDS, conditions), { type: "bool", value: D2BooleanUtils.booleanToD2Boolean(onlyValid) });
33
+ result.data.forEach(value => this.adaptEntityId(value));
34
+ return {
35
+ data: result.data,
36
+ totalNumberOfRows: result.totalNumberOfRows,
37
+ };
38
+ }
39
+ async getAccessRight() {
40
+ const result = await this.callRpc({
41
+ eventName: this.eventName,
42
+ rpcName: "GetAccessRight",
43
+ }, this.d2Api.connection.user.userName, { type: "int", returnAs: "rightLevel" });
44
+ return result.rightLevel;
45
+ }
46
+ async getHistory(id, fromRecord, toRecord) {
47
+ const result = await this.callRpc({
48
+ eventName: this.eventName,
49
+ rpcName: "Data_History_Get",
50
+ }, id, { type: "record", structType: this.structureDefinitionName, returnAs: "data" }, { type: "int", returnAs: "totalNumberOfRows" }, fromRecord, toRecord);
51
+ result.data.forEach((value, index) => value.id = index);
52
+ return {
53
+ data: result.data,
54
+ totalNumberOfRows: result.totalNumberOfRows,
55
+ };
56
+ }
57
+ async adaptSavedEntity(entity, isNewEntity) {
58
+ this.adaptEntityId(entity);
59
+ entity = await this.getEntity(entity.id);
60
+ if (!isNewEntity) {
61
+ await this.unlockEntity(entity);
62
+ }
63
+ return entity;
64
+ }
65
+ async internalSave(entity, isNewEntity, _isCosmeticChange) {
66
+ return await this.callRpc({
67
+ eventName: this.eventName,
68
+ rpcName: "Data_Set",
69
+ }, { type: "bool", value: D2BooleanUtils.booleanToD2Boolean(isNewEntity) }, this.convertToStructure(this.structureDefinitionName, this.entityFields, [entity], "data"), this.d2Api.connection.user.userName, { type: "bool", value: D2Boolean.TRUE });
70
+ }
71
+ async saveEntity(entity, isCosmeticChange) {
72
+ const isNewEntity = this.isNewEntity(entity);
73
+ const result = await this.internalSave(entity, isNewEntity, isCosmeticChange);
74
+ if (result.isOk) {
75
+ let savedEntity = result.data[0];
76
+ return await this.adaptSavedEntity(savedEntity, isNewEntity);
77
+ }
78
+ else {
79
+ return undefined;
80
+ }
81
+ }
82
+ async getEntity(id) {
83
+ const result = await this.callRpc({
84
+ eventName: this.eventName,
85
+ rpcName: "Data_Get",
86
+ }, id, { type: "record", structType: this.structureDefinitionName, returnAs: "data" });
87
+ const entity = result.data[0];
88
+ this.adaptEntityId(entity);
89
+ return entity;
90
+ }
91
+ async setValidity(entity, valid) {
92
+ const result = await this.callRpc({
93
+ eventName: this.eventName,
94
+ rpcName: "Data_SetValid",
95
+ }, { type: "bool", value: D2BooleanUtils.booleanToD2Boolean(valid) }, this.convertToStructure(this.structureDefinitionName, this.entityFields, [entity], "data"), this.d2Api.connection.user.userName, { type: "bool", value: D2Boolean.TRUE });
96
+ return result.isOk;
97
+ }
98
+ async codeExists(code) {
99
+ const result = await this.callRpc({
100
+ eventName: this.eventName,
101
+ rpcName: "Data_CodeExists",
102
+ }, { type: "text", value: code }, { type: "bool", returnAs: "data" });
103
+ return D2BooleanUtils.d2BooleanToBoolean(result.data);
104
+ }
105
+ async lockEntity(entity) {
106
+ const apiResult = await this.callRpc({
107
+ eventName: "E.AR_Session_Manager",
108
+ rpcName: "Lock",
109
+ skipCheckErrorOnly: true,
110
+ }, this.entityClassName, entity.id, this.d2Api.connection.id);
111
+ if (!apiResult.isOk) {
112
+ ModalDialog.error({
113
+ mode: "OK",
114
+ title: i18n("Edit is not allowed"),
115
+ content: i18n("User \"%{name}\" is currently editing selected record.", { name: apiResult.errorMessage ?? "" })
116
+ });
117
+ }
118
+ else {
119
+ entity.locked = true;
120
+ }
121
+ return apiResult.isOk;
122
+ }
123
+ async unlockEntity(entity) {
124
+ await this.d2Api.rpc("E.AR_Session_Manager", "Unlock", this.entityClassName, entity.id).call();
125
+ entity.locked = false;
126
+ }
127
+ convertToStructure(structureType, fields, data, returnAs, valueTimeField) {
128
+ const result = {
129
+ type: "record",
130
+ structType: structureType,
131
+ value: data.map(entity => fields.map(columnName => entity[columnName])),
132
+ };
133
+ if (returnAs) {
134
+ result.returnAs = returnAs;
135
+ }
136
+ if (valueTimeField) {
137
+ result.valueTimes = data.map(value => [value[valueTimeField]]);
138
+ }
139
+ return result;
140
+ }
141
+ isNewEntity(entity) {
142
+ return entity.id === undefined || entity.id === -1;
143
+ }
144
+ }
145
+ //# sourceMappingURL=abstractEntityApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstractEntityApi.js","sourceRoot":"","sources":["../../../api/abstractEntityApi.ts"],"names":[],"mappings":"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","sourcesContent":["import {D2WebApi, UnivalTypeEnum} from \"d2jsapi\";\r\nimport {UnivalRecordValue} from \"d2jsapi/dist/unival\";\r\nimport ApiResult from \"./types/apiResult\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport Entity from \"./types/entity\";\r\nimport EntityListResult from \"./types/entityListResult\";\r\nimport {AdvancedFilterCondition, FILTER_CONDITION_FIELDS, FILTER_CONDITION_SD_NAME} from \"./advancedFilterApi\";\r\nimport D2BooleanUtils, {D2Boolean} from \"./util/d2Boolean\";\r\nimport EntityResult from \"./types/entityResult\";\r\nimport {AccessRight} from \"./types/accessRight\";\r\nimport AbstractApi from \"./abstractApi\";\r\n\r\nexport interface Closeable {\r\n close(): void\r\n}\r\n\r\nexport interface PageableList<T extends Entity> {\r\n data: T[]\r\n totalNumberOfRows: number\r\n}\r\n\r\nexport default abstract class AbstractEntityApi<T extends Entity> extends AbstractApi {\r\n entityClassName: string;\r\n protected eventName: string;\r\n protected structureDefinitionName: string;\r\n protected entityFields: string[];\r\n\r\n protected constructor(d2Api: D2WebApi, entityClassName: string, eventName: string, structureDefinitionName: string, entityFields: string[]) {\r\n super(d2Api);\r\n this.entityClassName = entityClassName;\r\n this.eventName = eventName;\r\n this.structureDefinitionName = structureDefinitionName;\r\n this.entityFields = entityFields;\r\n }\r\n\r\n abstract adaptEntityId(entity: T): void;\r\n\r\n async createNewEntity(sample?: T): Promise<T> {\r\n const result: EntityListResult<T> = await this.callRpc(\r\n {\r\n eventName: this.eventName,\r\n rpcName: \"Data_GetDefaultValues\",\r\n skipCheckErrorParameters: true,\r\n },\r\n this.d2Api.connection.user.userName,\r\n {type: UnivalTypeEnum.RECORD, structType: this.structureDefinitionName, returnAs: \"data\"}\r\n );\r\n\r\n const newEntity = result.data[0];\r\n this.adaptNewEntity(newEntity, sample);\r\n return newEntity;\r\n }\r\n\r\n protected adaptNewEntity(newEntity: T, sample?: T) {\r\n newEntity;\r\n sample;\r\n }\r\n\r\n async getAllData(fromRecord: number, toRecord: number, orderBy: string, conditions: AdvancedFilterCondition[], onlyValid: boolean): Promise<PageableList<T>> {\r\n const result: EntityListResult<T> = await this.callRpc(\r\n {\r\n eventName: this.eventName,\r\n rpcName: \"Data_GetAll\",\r\n },\r\n {type: UnivalTypeEnum.RECORD, structType: this.structureDefinitionName, returnAs: \"data\"},\r\n {type: UnivalTypeEnum.INT, returnAs: \"totalNumberOfRows\"},\r\n fromRecord,\r\n toRecord,\r\n {type: UnivalTypeEnum.TEXT, value: orderBy},\r\n this.convertToStructure(FILTER_CONDITION_SD_NAME, FILTER_CONDITION_FIELDS, conditions),\r\n {type: UnivalTypeEnum.BOOL, value: D2BooleanUtils.booleanToD2Boolean(onlyValid)}\r\n );\r\n\r\n result.data.forEach(value => this.adaptEntityId(value));\r\n\r\n return {\r\n data: result.data,\r\n totalNumberOfRows: result.totalNumberOfRows,\r\n }\r\n }\r\n\r\n async getAccessRight(): Promise<AccessRight> {\r\n const result: ApiResult = await this.callRpc(\r\n {\r\n eventName: this.eventName,\r\n rpcName: \"GetAccessRight\",\r\n },\r\n this.d2Api.connection.user.userName,\r\n {type: UnivalTypeEnum.INT, returnAs: \"rightLevel\"},\r\n );\r\n\r\n return result.rightLevel;\r\n }\r\n\r\n async getHistory(id: number, fromRecord: number, toRecord: number): Promise<PageableList<T>> {\r\n const result: EntityListResult<T> = await this.callRpc(\r\n {\r\n eventName: this.eventName,\r\n rpcName: \"Data_History_Get\",\r\n },\r\n id,\r\n {type: UnivalTypeEnum.RECORD, structType: this.structureDefinitionName, returnAs: \"data\"},\r\n {type: UnivalTypeEnum.INT, returnAs: \"totalNumberOfRows\"},\r\n fromRecord,\r\n toRecord,\r\n );\r\n\r\n result.data.forEach((value, index) => value.id = index);\r\n\r\n return {\r\n data: result.data,\r\n totalNumberOfRows: result.totalNumberOfRows,\r\n }\r\n }\r\n\r\n protected async adaptSavedEntity(entity: T, isNewEntity: boolean): Promise<T> {\r\n this.adaptEntityId(entity);\r\n entity = await this.getEntity(entity.id);\r\n if (!isNewEntity) {\r\n await this.unlockEntity(entity);\r\n }\r\n return entity;\r\n }\r\n\r\n protected async internalSave(entity: T, isNewEntity: boolean, _isCosmeticChange?: boolean): Promise<EntityListResult<T>> {\r\n return await this.callRpc(\r\n {\r\n eventName: this.eventName,\r\n rpcName: \"Data_Set\",\r\n },\r\n {type: UnivalTypeEnum.BOOL, value: D2BooleanUtils.booleanToD2Boolean(isNewEntity)},\r\n this.convertToStructure(this.structureDefinitionName, this.entityFields, [entity], \"data\"),\r\n this.d2Api.connection.user.userName,\r\n {type: UnivalTypeEnum.BOOL, value: D2Boolean.TRUE}\r\n );\r\n }\r\n\r\n async saveEntity(entity: T, isCosmeticChange?: boolean): Promise<T | undefined> {\r\n const isNewEntity = this.isNewEntity(entity);\r\n const result = await this.internalSave(entity, isNewEntity, isCosmeticChange);\r\n\r\n if (result.isOk) {\r\n let savedEntity = result.data[0];\r\n return await this.adaptSavedEntity(savedEntity, isNewEntity);\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n async getEntity(id: number): Promise<T> {\r\n const result: EntityListResult<T> = await this.callRpc(\r\n {\r\n eventName: this.eventName,\r\n rpcName: \"Data_Get\",\r\n },\r\n id,\r\n {type: UnivalTypeEnum.RECORD, structType: this.structureDefinitionName, returnAs: \"data\"}\r\n );\r\n\r\n const entity = result.data[0];\r\n this.adaptEntityId(entity);\r\n\r\n return entity;\r\n }\r\n\r\n async setValidity(entity: T, valid: boolean): Promise<boolean> {\r\n const result: EntityListResult<T> = await this.callRpc(\r\n {\r\n eventName: this.eventName,\r\n rpcName: \"Data_SetValid\",\r\n },\r\n {type: UnivalTypeEnum.BOOL, value: D2BooleanUtils.booleanToD2Boolean(valid)},\r\n this.convertToStructure(this.structureDefinitionName, this.entityFields, [entity], \"data\"),\r\n this.d2Api.connection.user.userName,\r\n {type: UnivalTypeEnum.BOOL, value: D2Boolean.TRUE}\r\n );\r\n\r\n return result.isOk;\r\n }\r\n\r\n async codeExists(code: string): Promise<boolean> {\r\n const result: EntityResult<D2Boolean> = await this.callRpc(\r\n {\r\n eventName: this.eventName,\r\n rpcName: \"Data_CodeExists\",\r\n },\r\n {type: UnivalTypeEnum.TEXT, value: code},\r\n {type: UnivalTypeEnum.BOOL, returnAs: \"data\"}\r\n );\r\n\r\n return D2BooleanUtils.d2BooleanToBoolean(result.data);\r\n }\r\n\r\n async lockEntity(entity: T): Promise<boolean> {\r\n const apiResult = await this.callRpc(\r\n {\r\n eventName: \"E.AR_Session_Manager\",\r\n rpcName: \"Lock\",\r\n skipCheckErrorOnly: true,\r\n },\r\n this.entityClassName,\r\n entity.id,\r\n this.d2Api.connection.id\r\n );\r\n\r\n if (!apiResult.isOk) {\r\n ModalDialog.error({\r\n mode: ModalDialogMode.OK,\r\n title: i18n(\"Edit is not allowed\"),\r\n content: i18n(\"User \\\"%{name}\\\" is currently editing selected record.\", {name: apiResult.errorMessage ?? \"\"})\r\n });\r\n } else {\r\n entity.locked = true;\r\n }\r\n return apiResult.isOk;\r\n }\r\n\r\n async unlockEntity(entity: T): Promise<void> {\r\n await this.d2Api.rpc(\"E.AR_Session_Manager\", \"Unlock\", this.entityClassName, entity.id).call();\r\n entity.locked = false;\r\n }\r\n\r\n convertToStructure(structureType: string, fields: string[], data: any[], returnAs?: string, valueTimeField?: string): UnivalRecordValue {\r\n const result: UnivalRecordValue = {\r\n type: UnivalTypeEnum.RECORD,\r\n structType: structureType,\r\n value: data.map(entity => fields.map(columnName => entity[columnName])),\r\n }\r\n\r\n if (returnAs) {\r\n result.returnAs = returnAs;\r\n }\r\n if (valueTimeField) {\r\n result.valueTimes = data.map(value => [value[valueTimeField]]);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n isNewEntity(entity: Entity) {\r\n return entity.id === undefined || entity.id === -1;\r\n }\r\n}"]}
@@ -0,0 +1,56 @@
1
+ import AbstractEntityApi, { PageableList } from "./abstractEntityApi";
2
+ import { D2WebApi } from "d2jsapi";
3
+ import AuditableEntity from "./types/auditableEntity";
4
+ import EntityListResult from "./types/entityListResult";
5
+ import { AdvancedFilterConditionError, AdvancedFilterValueType } from "./types/advancedFilter";
6
+ import { AccessRight } from "./types/accessRight";
7
+ export interface AdvancedFilterEntity extends AuditableEntity {
8
+ id_filter: number;
9
+ entity_list_name: string;
10
+ filterConditions: AdvancedFilterCondition[];
11
+ }
12
+ export type AdvancedFilterValue = string | string[] | number | number[] | undefined;
13
+ export interface AdvancedFilterCondition {
14
+ id: number;
15
+ id_condition: number;
16
+ id_filter: number;
17
+ not_flag: number;
18
+ left_par: number;
19
+ column_name: string;
20
+ operator: AdvancedFilterOperator;
21
+ value: AdvancedFilterValue;
22
+ value_type: AdvancedFilterValueType;
23
+ right_par: number;
24
+ logical_operator: AdvancedFilterLogicalOperator | null;
25
+ _errors?: AdvancedFilterConditionError[];
26
+ }
27
+ export declare enum AdvancedFilterOperator {
28
+ EQUALS = "=",
29
+ LESS_THAN = "<",
30
+ GREATER_THAN = ">",
31
+ NOT_EQUALS = "<>",
32
+ LESS_THAN_EQUALS = "<=",
33
+ GREATER_THAN_EQUALS = ">=",
34
+ IN = "IN",
35
+ LIKE = "LIKE",
36
+ IS_NULL = "IS"
37
+ }
38
+ export declare function getAdvancedFilterOperatorString(operator: AdvancedFilterOperator): string;
39
+ export declare enum AdvancedFilterLogicalOperator {
40
+ AND = "AND",
41
+ OR = "OR"
42
+ }
43
+ export declare const FILTER_CONDITION_FIELDS: string[];
44
+ export declare const FILTER_CONDITION_SD_NAME = "SD.AR_VW_Filter_Condition";
45
+ export declare class AdvancedFilterApi extends AbstractEntityApi<AdvancedFilterEntity> {
46
+ private _entityListName;
47
+ constructor(d2Api: D2WebApi);
48
+ set entityListName(value: string);
49
+ adaptEntityId(entity: AdvancedFilterEntity): void;
50
+ createNewEntity(_sample?: AdvancedFilterEntity): Promise<AdvancedFilterEntity>;
51
+ getAllData(fromRecord: number, toRecord: number, orderBy: string): Promise<PageableList<AdvancedFilterEntity>>;
52
+ getAccessRight(): Promise<AccessRight>;
53
+ protected internalSave(entity: AdvancedFilterEntity, isNewEntity: boolean): Promise<EntityListResult<AdvancedFilterEntity>>;
54
+ deleteFilter(filterId: number): Promise<void>;
55
+ getFilterConditions(filterId: number): Promise<AdvancedFilterCondition[]>;
56
+ }
@@ -0,0 +1,108 @@
1
+ import AbstractEntityApi from "./abstractEntityApi";
2
+ import i18n from "d2core/i18n/i18n";
3
+ import D2BooleanUtils, { D2Boolean } from "./util/d2Boolean";
4
+ import { AccessRight } from "./types/accessRight";
5
+ import { DbBoolean } from "./types/dbBoolean";
6
+ export var AdvancedFilterOperator;
7
+ (function (AdvancedFilterOperator) {
8
+ AdvancedFilterOperator["EQUALS"] = "=";
9
+ AdvancedFilterOperator["LESS_THAN"] = "<";
10
+ AdvancedFilterOperator["GREATER_THAN"] = ">";
11
+ AdvancedFilterOperator["NOT_EQUALS"] = "<>";
12
+ AdvancedFilterOperator["LESS_THAN_EQUALS"] = "<=";
13
+ AdvancedFilterOperator["GREATER_THAN_EQUALS"] = ">=";
14
+ AdvancedFilterOperator["IN"] = "IN";
15
+ AdvancedFilterOperator["LIKE"] = "LIKE";
16
+ AdvancedFilterOperator["IS_NULL"] = "IS";
17
+ })(AdvancedFilterOperator || (AdvancedFilterOperator = {}));
18
+ export function getAdvancedFilterOperatorString(operator) {
19
+ switch (operator) {
20
+ case AdvancedFilterOperator.EQUALS:
21
+ return "=";
22
+ case AdvancedFilterOperator.LESS_THAN:
23
+ return "<";
24
+ case AdvancedFilterOperator.GREATER_THAN:
25
+ return ">";
26
+ case AdvancedFilterOperator.NOT_EQUALS:
27
+ return "<>";
28
+ case AdvancedFilterOperator.LESS_THAN_EQUALS:
29
+ return "<=";
30
+ case AdvancedFilterOperator.GREATER_THAN_EQUALS:
31
+ return ">=";
32
+ case AdvancedFilterOperator.IN:
33
+ return i18n("Belongs To Set");
34
+ case AdvancedFilterOperator.LIKE:
35
+ return i18n("Similar To");
36
+ case AdvancedFilterOperator.IS_NULL:
37
+ return i18n("Is Empty");
38
+ }
39
+ }
40
+ export var AdvancedFilterLogicalOperator;
41
+ (function (AdvancedFilterLogicalOperator) {
42
+ AdvancedFilterLogicalOperator["AND"] = "AND";
43
+ AdvancedFilterLogicalOperator["OR"] = "OR";
44
+ })(AdvancedFilterLogicalOperator || (AdvancedFilterLogicalOperator = {}));
45
+ const FILTER_FIELDS = ["id_filter", "name", "entity_list_name", "date_in", "date_ch", "user_in", "user_ch", "ano_platny"];
46
+ export const FILTER_CONDITION_FIELDS = ["id_condition", "id_filter", "not_flag", "left_par", "column_name", "operator", "value", "value_type", "right_par", "logical_operator"];
47
+ export const FILTER_CONDITION_SD_NAME = "SD.AR_VW_Filter_Condition";
48
+ export class AdvancedFilterApi extends AbstractEntityApi {
49
+ constructor(d2Api) {
50
+ super(d2Api, "AdvancedFilter", "E.AR_Filter", "SD.AR_VW_Filter", FILTER_FIELDS);
51
+ this._entityListName = "";
52
+ }
53
+ set entityListName(value) {
54
+ this._entityListName = value;
55
+ }
56
+ adaptEntityId(entity) {
57
+ entity.id = entity.id_filter;
58
+ }
59
+ createNewEntity(_sample) {
60
+ return new Promise(resolve => resolve({
61
+ id: undefined,
62
+ id_filter: -1,
63
+ name: "",
64
+ code: "",
65
+ entity_list_name: this._entityListName,
66
+ filterConditions: [],
67
+ date_in: new Date().getDate(),
68
+ user_in: this.d2Api.connection.user.userName,
69
+ ano_platny: DbBoolean.TRUE,
70
+ note: "",
71
+ }));
72
+ }
73
+ async getAllData(fromRecord, toRecord, orderBy) {
74
+ const result = await this.callRpc({
75
+ eventName: this.eventName,
76
+ rpcName: "Data_GetAll",
77
+ }, { type: "text", value: this._entityListName }, { type: "record", structType: this.structureDefinitionName, returnAs: "data" }, { type: "int", returnAs: "totalNumberOfRows" }, fromRecord, toRecord, { type: "text", value: orderBy });
78
+ result.data.forEach(value => value.id = value.id_filter);
79
+ return {
80
+ data: result.data,
81
+ totalNumberOfRows: result.totalNumberOfRows,
82
+ };
83
+ }
84
+ async getAccessRight() {
85
+ return AccessRight.WRITE;
86
+ }
87
+ async internalSave(entity, isNewEntity) {
88
+ return await this.callRpc({
89
+ eventName: this.eventName,
90
+ rpcName: "Data_Set",
91
+ }, { type: "bool", value: D2BooleanUtils.booleanToD2Boolean(isNewEntity) }, this.convertToStructure(this.structureDefinitionName, FILTER_FIELDS, [entity], "data"), this.convertToStructure(FILTER_CONDITION_SD_NAME, FILTER_CONDITION_FIELDS, entity.filterConditions), this.d2Api.connection.user.userName, { type: "bool", value: D2Boolean.TRUE });
92
+ }
93
+ async deleteFilter(filterId) {
94
+ await this.callRpc({
95
+ eventName: this.eventName,
96
+ rpcName: "Data_Delete",
97
+ }, filterId);
98
+ }
99
+ async getFilterConditions(filterId) {
100
+ const result = await this.callRpc({
101
+ eventName: this.eventName,
102
+ rpcName: "Data_GetFilterConditions",
103
+ }, filterId, { type: "record", structType: FILTER_CONDITION_SD_NAME, returnAs: "data" });
104
+ result.data.forEach(value => value.id = value.id_condition);
105
+ return result.data;
106
+ }
107
+ }
108
+ //# sourceMappingURL=advancedFilterApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advancedFilterApi.js","sourceRoot":"","sources":["../../../api/advancedFilterApi.ts"],"names":[],"mappings":"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","sourcesContent":["import AbstractEntityApi, {PageableList} from \"./abstractEntityApi\";\r\nimport {D2WebApi, UnivalTypeEnum} from \"d2jsapi\";\r\nimport AuditableEntity from \"./types/auditableEntity\";\r\nimport EntityListResult from \"./types/entityListResult\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport D2BooleanUtils, {D2Boolean} from \"./util/d2Boolean\";\r\nimport {AdvancedFilterConditionError, AdvancedFilterValueType} from \"./types/advancedFilter\";\r\nimport {AccessRight} from \"./types/accessRight\";\r\nimport {DbBoolean} from \"./types/dbBoolean\";\r\n\r\nexport interface AdvancedFilterEntity extends AuditableEntity {\r\n id_filter: number\r\n entity_list_name: string\r\n\r\n // transient fields\r\n filterConditions: AdvancedFilterCondition[]\r\n}\r\n\r\nexport type AdvancedFilterValue = string | string[] | number | number[] | undefined;\r\n\r\nexport interface AdvancedFilterCondition {\r\n id: number\r\n id_condition: number\r\n id_filter: number\r\n not_flag: number\r\n left_par: number\r\n column_name: string\r\n operator: AdvancedFilterOperator\r\n value: AdvancedFilterValue\r\n value_type: AdvancedFilterValueType\r\n right_par: number\r\n logical_operator: AdvancedFilterLogicalOperator | null\r\n\r\n // transient fields\r\n _errors?: AdvancedFilterConditionError[]\r\n}\r\n\r\nexport enum AdvancedFilterOperator {\r\n EQUALS = \"=\",\r\n LESS_THAN = \"<\",\r\n GREATER_THAN = \">\",\r\n NOT_EQUALS = \"<>\",\r\n LESS_THAN_EQUALS = \"<=\",\r\n GREATER_THAN_EQUALS = \">=\",\r\n IN = \"IN\",\r\n LIKE = \"LIKE\",\r\n IS_NULL = \"IS\",\r\n}\r\n\r\nexport function getAdvancedFilterOperatorString(operator: AdvancedFilterOperator): string {\r\n switch (operator) {\r\n case AdvancedFilterOperator.EQUALS:\r\n return \"=\";\r\n case AdvancedFilterOperator.LESS_THAN:\r\n return \"<\";\r\n case AdvancedFilterOperator.GREATER_THAN:\r\n return \">\";\r\n case AdvancedFilterOperator.NOT_EQUALS:\r\n return \"<>\";\r\n case AdvancedFilterOperator.LESS_THAN_EQUALS:\r\n return \"<=\";\r\n case AdvancedFilterOperator.GREATER_THAN_EQUALS:\r\n return \">=\";\r\n case AdvancedFilterOperator.IN:\r\n return i18n(\"Belongs To Set\");\r\n case AdvancedFilterOperator.LIKE:\r\n return i18n(\"Similar To\");\r\n case AdvancedFilterOperator.IS_NULL:\r\n return i18n(\"Is Empty\");\r\n }\r\n}\r\n\r\nexport enum AdvancedFilterLogicalOperator {\r\n AND = \"AND\",\r\n OR = \"OR\",\r\n}\r\n\r\nconst FILTER_FIELDS = [\"id_filter\", \"name\", \"entity_list_name\", \"date_in\", \"date_ch\", \"user_in\", \"user_ch\", \"ano_platny\"]\r\nexport const FILTER_CONDITION_FIELDS = [\"id_condition\", \"id_filter\", \"not_flag\", \"left_par\", \"column_name\", \"operator\", \"value\", \"value_type\", \"right_par\", \"logical_operator\"];\r\n\r\nexport const FILTER_CONDITION_SD_NAME = \"SD.AR_VW_Filter_Condition\";\r\n\r\nexport class AdvancedFilterApi extends AbstractEntityApi<AdvancedFilterEntity> {\r\n private _entityListName: string = \"\";\r\n\r\n constructor(d2Api: D2WebApi) {\r\n super(\r\n d2Api,\r\n \"AdvancedFilter\",\r\n \"E.AR_Filter\",\r\n \"SD.AR_VW_Filter\",\r\n FILTER_FIELDS,\r\n );\r\n }\r\n\r\n set entityListName(value: string) {\r\n this._entityListName = value;\r\n }\r\n\r\n adaptEntityId(entity: AdvancedFilterEntity) {\r\n entity.id = entity.id_filter;\r\n }\r\n\r\n createNewEntity(_sample?: AdvancedFilterEntity): Promise<AdvancedFilterEntity> {\r\n return new Promise<AdvancedFilterEntity>(resolve => resolve(\r\n {\r\n id: undefined as unknown as number,\r\n id_filter: -1,\r\n name: \"\",\r\n code: \"\",\r\n entity_list_name: this._entityListName,\r\n filterConditions: [],\r\n date_in: new Date().getDate(),\r\n user_in: this.d2Api.connection.user.userName,\r\n ano_platny: DbBoolean.TRUE,\r\n note: \"\",\r\n }\r\n ));\r\n }\r\n\r\n async getAllData(fromRecord: number, toRecord:number, orderBy: string): Promise<PageableList<AdvancedFilterEntity>> {\r\n const result: EntityListResult<AdvancedFilterEntity> = await this.callRpc(\r\n {\r\n eventName: this.eventName,\r\n rpcName: \"Data_GetAll\",\r\n },\r\n {type: UnivalTypeEnum.TEXT, value: this._entityListName},\r\n {type: UnivalTypeEnum.RECORD, structType: this.structureDefinitionName, returnAs: \"data\"},\r\n {type: UnivalTypeEnum.INT, returnAs: \"totalNumberOfRows\"},\r\n fromRecord,\r\n toRecord,\r\n {type: UnivalTypeEnum.TEXT, value: orderBy},\r\n );\r\n\r\n result.data.forEach(value => value.id = value.id_filter);\r\n\r\n return {\r\n data: result.data,\r\n totalNumberOfRows: result.totalNumberOfRows,\r\n }\r\n }\r\n\r\n async getAccessRight(): Promise<AccessRight> {\r\n return AccessRight.WRITE;\r\n }\r\n\r\n protected async internalSave(entity: AdvancedFilterEntity, isNewEntity: boolean): Promise<EntityListResult<AdvancedFilterEntity>> {\r\n return await this.callRpc(\r\n {\r\n eventName: this.eventName,\r\n rpcName: \"Data_Set\",\r\n },\r\n {type: UnivalTypeEnum.BOOL, value: D2BooleanUtils.booleanToD2Boolean(isNewEntity)},\r\n this.convertToStructure(this.structureDefinitionName, FILTER_FIELDS, [entity], \"data\"),\r\n this.convertToStructure(FILTER_CONDITION_SD_NAME, FILTER_CONDITION_FIELDS, entity.filterConditions),\r\n this.d2Api.connection.user.userName,\r\n {type: UnivalTypeEnum.BOOL, value: D2Boolean.TRUE}\r\n );\r\n }\r\n\r\n async deleteFilter(filterId: number) {\r\n await this.callRpc(\r\n {\r\n eventName: this.eventName,\r\n rpcName: \"Data_Delete\",\r\n },\r\n filterId,\r\n );\r\n }\r\n\r\n async getFilterConditions(filterId: number): Promise<AdvancedFilterCondition[]> {\r\n const result: EntityListResult<AdvancedFilterCondition> = await this.callRpc(\r\n {\r\n eventName: this.eventName,\r\n rpcName: \"Data_GetFilterConditions\",\r\n },\r\n filterId,\r\n {type: UnivalTypeEnum.RECORD, structType: FILTER_CONDITION_SD_NAME, returnAs: \"data\"}\r\n );\r\n\r\n result.data.forEach(value => value.id = value.id_condition);\r\n return result.data;\r\n }\r\n\r\n}"]}
@@ -0,0 +1,14 @@
1
+ import AbstractEntityApi from "./abstractEntityApi";
2
+ import Entity from "./types/entity";
3
+ import { ArchiveRecord, D2WebApi } from "d2jsapi";
4
+ import dayjs from "d2core/dayjs";
5
+ import { D2ChartRecord } from "./types/d2ChartTypes";
6
+ export interface ArchiveEntity extends Entity {
7
+ }
8
+ export interface ArchiveDataRecord extends D2ChartRecord {
9
+ }
10
+ export declare class ArchiveApi extends AbstractEntityApi<ArchiveEntity> {
11
+ constructor(d2Api: D2WebApi);
12
+ adaptEntityId(entity: ArchiveEntity): void;
13
+ getArchiveData(archiveNames: string[], from: dayjs.Dayjs | null, to: dayjs.Dayjs | null, oversampleSeconds: number): Promise<ArchiveRecord[]>;
14
+ }
@@ -0,0 +1,25 @@
1
+ import AbstractEntityApi from "./abstractEntityApi";
2
+ export class ArchiveApi extends AbstractEntityApi {
3
+ constructor(d2Api) {
4
+ super(d2Api, "ArchiveApi", "", "", []);
5
+ }
6
+ adaptEntityId(entity) {
7
+ entity;
8
+ }
9
+ async getArchiveData(archiveNames, from, to, oversampleSeconds) {
10
+ const specificationObject = {};
11
+ archiveNames.forEach((archiveName, index) => {
12
+ specificationObject[`col${index}`] = archiveName;
13
+ });
14
+ if (from && to) {
15
+ return await this.d2Api.loadArchives(specificationObject, from.toDate(), to.toDate(), {
16
+ returnFields: [],
17
+ oversampleSeconds: oversampleSeconds,
18
+ limitDataLength: -1,
19
+ });
20
+ }
21
+ console.log("WNCT", oversampleSeconds);
22
+ return [];
23
+ }
24
+ }
25
+ //# sourceMappingURL=archiveApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archiveApi.js","sourceRoot":"","sources":["../../../api/archiveApi.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAapD,MAAM,OAAO,UAAW,SAAQ,iBAAgC;IAC5D,YAAY,KAAe;QACvB,KAAK,CACD,KAAK,EACL,YAAY,EACZ,EAAE,EACF,EAAE,EACF,EAAE,CACL,CAAC;IACN,CAAC;IAED,aAAa,CAAC,MAAqB;QAC/B,MAAM,CAAC;IACX,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,YAAsB,EAAE,IAAwB,EAAE,EAAsB,EAAE,iBAAyB;QACpH,MAAM,mBAAmB,GAA8B,EAAE,CAAC;QAC1D,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE;YACxC,mBAAmB,CAAC,MAAM,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC;QACrD,CAAC,CAAC,CAAC;QAGH,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YACb,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAChC,mBAAmB,EACnB,IAAI,CAAC,MAAM,EAAE,EACb,EAAE,CAAC,MAAM,EAAE,EACX;gBACI,YAAY,EAAE,EAAE;gBAChB,iBAAiB,EAAE,iBAAiB;gBACpC,eAAe,EAAE,CAAC,CAAC;aACtB,CACJ,CAAC;QACN,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;QAEtC,OAAO,EAAE,CAAC;IACd,CAAC;CAEJ","sourcesContent":["import AbstractEntityApi from \"./abstractEntityApi\";\r\nimport Entity from \"./types/entity\";\r\nimport {ArchiveRecord, D2WebApi} from \"d2jsapi\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {D2ChartRecord} from \"./types/d2ChartTypes\";\r\n\r\nexport interface ArchiveEntity extends Entity {\r\n}\r\n\r\nexport interface ArchiveDataRecord extends D2ChartRecord {\r\n\r\n}\r\n\r\nexport class ArchiveApi extends AbstractEntityApi<ArchiveEntity> {\r\n constructor(d2Api: D2WebApi) {\r\n super(\r\n d2Api,\r\n \"ArchiveApi\",\r\n \"\",\r\n \"\",\r\n [],\r\n );\r\n }\r\n\r\n adaptEntityId(entity: ArchiveEntity): void {\r\n entity;\r\n }\r\n\r\n async getArchiveData(archiveNames: string[], from: dayjs.Dayjs | null, to: dayjs.Dayjs | null, oversampleSeconds: number): Promise<ArchiveRecord[]> {\r\n const specificationObject: { [key: string]: string } = {};\r\n archiveNames.forEach((archiveName, index) => {\r\n specificationObject[`col${index}`] = archiveName;\r\n });\r\n\r\n\r\n if (from && to) {\r\n return await this.d2Api.loadArchives(\r\n specificationObject,\r\n from.toDate(),\r\n to.toDate(),\r\n {\r\n returnFields: [],\r\n oversampleSeconds: oversampleSeconds,\r\n limitDataLength: -1,\r\n }\r\n );\r\n }\r\n\r\n console.log(\"WNCT\", oversampleSeconds)\r\n// console.log(\"XX\", data);\r\n return [];\r\n }\r\n\r\n}\r\n"]}
@@ -0,0 +1,4 @@
1
+ import Entity from "../types/entity";
2
+ export default class EntityComparisonUtils {
3
+ static compare(a?: Entity, b?: Entity): string[];
4
+ }
@@ -0,0 +1,15 @@
1
+ export default class EntityComparisonUtils {
2
+ static compare(a, b) {
3
+ if (!a || !b) {
4
+ return [];
5
+ }
6
+ const differences = [];
7
+ Object.keys(a).forEach(key => {
8
+ if (b[key] !== a[key]) {
9
+ differences.push(key);
10
+ }
11
+ });
12
+ return differences;
13
+ }
14
+ }
15
+ //# sourceMappingURL=entityComparisonUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entityComparisonUtils.js","sourceRoot":"","sources":["../../../../api/comparison/entityComparisonUtils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,qBAAqB;IAEtC,MAAM,CAAC,OAAO,CAAC,CAAU,EAAE,CAAU;QACjC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAEzB,IAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAC,CAAC;gBAClB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC,CAAC,CAAA;QACF,OAAO,WAAW,CAAC;IACvB,CAAC;CAEJ","sourcesContent":["import Entity from \"../types/entity\";\r\n\r\nexport default class EntityComparisonUtils {\r\n\r\n static compare(a?: Entity, b?: Entity): string[] {\r\n if (!a || !b) {\r\n return [];\r\n }\r\n\r\n const differences: string[] = [];\r\n Object.keys(a).forEach(key => {\r\n // @ts-ignore\r\n if(b[key] !== a[key]){\r\n differences.push(key);\r\n }\r\n })\r\n return differences;\r\n }\r\n\r\n}"]}
@@ -0,0 +1,5 @@
1
+ export declare const DEFAULT_ENTITY_BG_COLOR = "#FAFAFAFF";
2
+ export declare const PRIMARY_COLOR = "#1677ff";
3
+ export declare const SUCCESS_COLOR = "#52c41a";
4
+ export declare const ERROR_COLOR = "#ff4d4f";
5
+ export declare const WARNING_COLOR = "#faad14";
@@ -0,0 +1,6 @@
1
+ export const DEFAULT_ENTITY_BG_COLOR = "#FAFAFAFF";
2
+ export const PRIMARY_COLOR = "#1677ff";
3
+ export const SUCCESS_COLOR = "#52c41a";
4
+ export const ERROR_COLOR = "#ff4d4f";
5
+ export const WARNING_COLOR = "#faad14";
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../api/constants/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,WAAW,CAAC;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AACvC,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AACrC,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC","sourcesContent":["export const DEFAULT_ENTITY_BG_COLOR = \"#FAFAFAFF\";\r\n\r\nexport const PRIMARY_COLOR = \"#1677ff\";\r\nexport const SUCCESS_COLOR = \"#52c41a\";\r\nexport const ERROR_COLOR = \"#ff4d4f\";\r\nexport const WARNING_COLOR = \"#faad14\";"]}
@@ -0,0 +1,5 @@
1
+ export declare const CHART_CALENDAR_SATURDAY_COLOR = "#0022FF20";
2
+ export declare const CHART_CALENDAR_SUNDAY_COLOR = "#FF880020";
3
+ export declare const CHART_CALENDAR_HOLIDAY_COLOR = "#AF2B7520";
4
+ export declare const CHART_VALIDATION_AREA_COLOR = "#98F66E3F";
5
+ export declare const CHART_MISSING_DATA_COLOR = "#ff636355";
@@ -0,0 +1,6 @@
1
+ export const CHART_CALENDAR_SATURDAY_COLOR = "#0022FF20";
2
+ export const CHART_CALENDAR_SUNDAY_COLOR = "#FF880020";
3
+ export const CHART_CALENDAR_HOLIDAY_COLOR = "#AF2B7520";
4
+ export const CHART_VALIDATION_AREA_COLOR = "#98F66E3F";
5
+ export const CHART_MISSING_DATA_COLOR = "#ff636355";
6
+ //# sourceMappingURL=d2ChartConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"d2ChartConstants.js","sourceRoot":"","sources":["../../../../api/constants/d2ChartConstants.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,6BAA6B,GAAG,WAAW,CAAC;AACzD,MAAM,CAAC,MAAM,2BAA2B,GAAG,WAAW,CAAC;AACvD,MAAM,CAAC,MAAM,4BAA4B,GAAG,WAAW,CAAC;AACxD,MAAM,CAAC,MAAM,2BAA2B,GAAG,WAAW,CAAC;AACvD,MAAM,CAAC,MAAM,wBAAwB,GAAG,WAAW,CAAC","sourcesContent":["// color constants\r\nexport const CHART_CALENDAR_SATURDAY_COLOR = \"#0022FF20\";\r\nexport const CHART_CALENDAR_SUNDAY_COLOR = \"#FF880020\";\r\nexport const CHART_CALENDAR_HOLIDAY_COLOR = \"#AF2B7520\";\r\nexport const CHART_VALIDATION_AREA_COLOR = \"#98F66E3F\";\r\nexport const CHART_MISSING_DATA_COLOR = \"#ff636355\";"]}