@cratis/arc.react 18.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 (311) hide show
  1. package/Arc.tsx +44 -0
  2. package/ArcContext.ts +23 -0
  3. package/Bindings.ts +15 -0
  4. package/README.md +65 -0
  5. package/WellKnownBindings.ts +9 -0
  6. package/commands/CommandScope.tsx +57 -0
  7. package/commands/CommandScopeImplementation.ts +68 -0
  8. package/commands/ICommandScope.ts +31 -0
  9. package/commands/for_CommandScopeImplementation/FakeCommand.ts +59 -0
  10. package/commands/for_CommandScopeImplementation/when_executing_with_three_commands_were_two_having_changes.ts +25 -0
  11. package/commands/for_CommandScopeImplementation/when_none_of_the_added_commands_has_changes.ts +19 -0
  12. package/commands/for_CommandScopeImplementation/when_one_of_the_added_commands_has_changes.ts +19 -0
  13. package/commands/for_CommandScopeImplementation/when_property_changes_on_added_command.ts +26 -0
  14. package/commands/for_CommandScopeImplementation/when_reverting_with_three_commands_were_two_having_changes.ts +25 -0
  15. package/commands/for_CommandScopeImplementation/when_there_are_no_commands.ts +10 -0
  16. package/commands/for_useCommand/FakeCommand.ts +31 -0
  17. package/commands/for_useCommand/when_creating_instance.ts +41 -0
  18. package/commands/for_useCommand/when_creating_instance_with_initial_values.ts +38 -0
  19. package/commands/for_useCommand/when_creating_instance_without_optional_context_values.ts +37 -0
  20. package/commands/index.ts +8 -0
  21. package/commands/useCommand.ts +70 -0
  22. package/commands/useCommandScope.ts +9 -0
  23. package/dialogs/BusyIndicatorDialogRequest.ts +18 -0
  24. package/dialogs/CloseDialog.ts +9 -0
  25. package/dialogs/ConfirmationDialogRequest.ts +22 -0
  26. package/dialogs/DialogButtons.ts +28 -0
  27. package/dialogs/DialogComponents.tsx +113 -0
  28. package/dialogs/DialogContext.ts +33 -0
  29. package/dialogs/DialogProps.ts +14 -0
  30. package/dialogs/DialogResponse.ts +9 -0
  31. package/dialogs/DialogResult.ts +32 -0
  32. package/dialogs/ShowDialog.ts +9 -0
  33. package/dialogs/index.ts +16 -0
  34. package/dialogs/useBusyIndicator.ts +41 -0
  35. package/dialogs/useConfirmationDialog.ts +39 -0
  36. package/dialogs/useDialog.tsx +55 -0
  37. package/dist/cjs/Arc.d.ts +12 -0
  38. package/dist/cjs/Arc.d.ts.map +1 -0
  39. package/dist/cjs/Arc.js +25 -0
  40. package/dist/cjs/Arc.js.map +1 -0
  41. package/dist/cjs/ArcContext.d.ts +12 -0
  42. package/dist/cjs/ArcContext.d.ts.map +1 -0
  43. package/dist/cjs/ArcContext.js +16 -0
  44. package/dist/cjs/ArcContext.js.map +1 -0
  45. package/dist/cjs/Bindings.d.ts +5 -0
  46. package/dist/cjs/Bindings.d.ts.map +1 -0
  47. package/dist/cjs/Bindings.js +15 -0
  48. package/dist/cjs/Bindings.js.map +1 -0
  49. package/dist/cjs/WellKnownBindings.d.ts +4 -0
  50. package/dist/cjs/WellKnownBindings.d.ts.map +1 -0
  51. package/dist/cjs/WellKnownBindings.js +8 -0
  52. package/dist/cjs/WellKnownBindings.js.map +1 -0
  53. package/dist/cjs/commands/CommandScope.d.ts +13 -0
  54. package/dist/cjs/commands/CommandScope.d.ts.map +1 -0
  55. package/dist/cjs/commands/CommandScope.js +39 -0
  56. package/dist/cjs/commands/CommandScope.js.map +1 -0
  57. package/dist/cjs/commands/CommandScopeImplementation.d.ts +16 -0
  58. package/dist/cjs/commands/CommandScopeImplementation.d.ts.map +1 -0
  59. package/dist/cjs/commands/CommandScopeImplementation.js +52 -0
  60. package/dist/cjs/commands/CommandScopeImplementation.js.map +1 -0
  61. package/dist/cjs/commands/ICommandScope.d.ts +8 -0
  62. package/dist/cjs/commands/ICommandScope.d.ts.map +1 -0
  63. package/dist/cjs/commands/index.d.ts +6 -0
  64. package/dist/cjs/commands/index.d.ts.map +1 -0
  65. package/dist/cjs/commands/index.js +15 -0
  66. package/dist/cjs/commands/index.js.map +1 -0
  67. package/dist/cjs/commands/useCommand.d.ts +6 -0
  68. package/dist/cjs/commands/useCommand.d.ts.map +1 -0
  69. package/dist/cjs/commands/useCommand.js +47 -0
  70. package/dist/cjs/commands/useCommand.js.map +1 -0
  71. package/dist/cjs/commands/useCommandScope.d.ts +2 -0
  72. package/dist/cjs/commands/useCommandScope.d.ts.map +1 -0
  73. package/dist/cjs/commands/useCommandScope.js +11 -0
  74. package/dist/cjs/commands/useCommandScope.js.map +1 -0
  75. package/dist/cjs/dialogs/BusyIndicatorDialogRequest.d.ts +6 -0
  76. package/dist/cjs/dialogs/BusyIndicatorDialogRequest.d.ts.map +1 -0
  77. package/dist/cjs/dialogs/BusyIndicatorDialogRequest.js +13 -0
  78. package/dist/cjs/dialogs/BusyIndicatorDialogRequest.js.map +1 -0
  79. package/dist/cjs/dialogs/CloseDialog.d.ts +3 -0
  80. package/dist/cjs/dialogs/CloseDialog.d.ts.map +1 -0
  81. package/dist/cjs/dialogs/ConfirmationDialogRequest.d.ts +8 -0
  82. package/dist/cjs/dialogs/ConfirmationDialogRequest.d.ts.map +1 -0
  83. package/dist/cjs/dialogs/ConfirmationDialogRequest.js +15 -0
  84. package/dist/cjs/dialogs/ConfirmationDialogRequest.js.map +1 -0
  85. package/dist/cjs/dialogs/DialogButtons.d.ts +7 -0
  86. package/dist/cjs/dialogs/DialogButtons.d.ts.map +1 -0
  87. package/dist/cjs/dialogs/DialogButtons.js +10 -0
  88. package/dist/cjs/dialogs/DialogButtons.js.map +1 -0
  89. package/dist/cjs/dialogs/DialogComponents.d.ts +20 -0
  90. package/dist/cjs/dialogs/DialogComponents.d.ts.map +1 -0
  91. package/dist/cjs/dialogs/DialogComponents.js +34 -0
  92. package/dist/cjs/dialogs/DialogComponents.js.map +1 -0
  93. package/dist/cjs/dialogs/DialogContext.d.ts +10 -0
  94. package/dist/cjs/dialogs/DialogContext.d.ts.map +1 -0
  95. package/dist/cjs/dialogs/DialogContext.js +40 -0
  96. package/dist/cjs/dialogs/DialogContext.js.map +1 -0
  97. package/dist/cjs/dialogs/DialogProps.d.ts +5 -0
  98. package/dist/cjs/dialogs/DialogProps.d.ts.map +1 -0
  99. package/dist/cjs/dialogs/DialogResponse.d.ts +3 -0
  100. package/dist/cjs/dialogs/DialogResponse.d.ts.map +1 -0
  101. package/dist/cjs/dialogs/DialogResult.d.ts +8 -0
  102. package/dist/cjs/dialogs/DialogResult.d.ts.map +1 -0
  103. package/dist/cjs/dialogs/DialogResult.js +11 -0
  104. package/dist/cjs/dialogs/DialogResult.js.map +1 -0
  105. package/dist/cjs/dialogs/ShowDialog.d.ts +3 -0
  106. package/dist/cjs/dialogs/ShowDialog.d.ts.map +1 -0
  107. package/dist/cjs/dialogs/index.d.ts +14 -0
  108. package/dist/cjs/dialogs/index.d.ts.map +1 -0
  109. package/dist/cjs/dialogs/index.js +33 -0
  110. package/dist/cjs/dialogs/index.js.map +1 -0
  111. package/dist/cjs/dialogs/useBusyIndicator.d.ts +5 -0
  112. package/dist/cjs/dialogs/useBusyIndicator.d.ts.map +1 -0
  113. package/dist/cjs/dialogs/useBusyIndicator.js +21 -0
  114. package/dist/cjs/dialogs/useBusyIndicator.js.map +1 -0
  115. package/dist/cjs/dialogs/useConfirmationDialog.d.ts +5 -0
  116. package/dist/cjs/dialogs/useConfirmationDialog.d.ts.map +1 -0
  117. package/dist/cjs/dialogs/useConfirmationDialog.js +20 -0
  118. package/dist/cjs/dialogs/useConfirmationDialog.js.map +1 -0
  119. package/dist/cjs/dialogs/useDialog.d.ts +5 -0
  120. package/dist/cjs/dialogs/useDialog.d.ts.map +1 -0
  121. package/dist/cjs/dialogs/useDialog.js +34 -0
  122. package/dist/cjs/dialogs/useDialog.js.map +1 -0
  123. package/dist/cjs/identity/IdentityProvider.d.ts +10 -0
  124. package/dist/cjs/identity/IdentityProvider.d.ts.map +1 -0
  125. package/dist/cjs/identity/IdentityProvider.js +48 -0
  126. package/dist/cjs/identity/IdentityProvider.js.map +1 -0
  127. package/dist/cjs/identity/index.d.ts +3 -0
  128. package/dist/cjs/identity/index.d.ts.map +1 -0
  129. package/dist/cjs/identity/index.js +11 -0
  130. package/dist/cjs/identity/index.js.map +1 -0
  131. package/dist/cjs/identity/useIdentity.d.ts +3 -0
  132. package/dist/cjs/identity/useIdentity.d.ts.map +1 -0
  133. package/dist/cjs/identity/useIdentity.js +15 -0
  134. package/dist/cjs/identity/useIdentity.js.map +1 -0
  135. package/dist/cjs/index.d.ts +9 -0
  136. package/dist/cjs/index.d.ts.map +1 -0
  137. package/dist/cjs/index.js +20 -0
  138. package/dist/cjs/index.js.map +1 -0
  139. package/dist/cjs/queries/SetPage.d.ts +2 -0
  140. package/dist/cjs/queries/SetPage.d.ts.map +1 -0
  141. package/dist/cjs/queries/SetPageSize.d.ts +2 -0
  142. package/dist/cjs/queries/SetPageSize.d.ts.map +1 -0
  143. package/dist/cjs/queries/SetSorting.d.ts +3 -0
  144. package/dist/cjs/queries/SetSorting.d.ts.map +1 -0
  145. package/dist/cjs/queries/index.d.ts +6 -0
  146. package/dist/cjs/queries/index.d.ts.map +1 -0
  147. package/dist/cjs/queries/index.js +12 -0
  148. package/dist/cjs/queries/index.js.map +1 -0
  149. package/dist/cjs/queries/useObservableQuery.d.ts +16 -0
  150. package/dist/cjs/queries/useObservableQuery.d.ts.map +1 -0
  151. package/dist/cjs/queries/useObservableQuery.js +54 -0
  152. package/dist/cjs/queries/useObservableQuery.js.map +1 -0
  153. package/dist/cjs/queries/useQuery.d.ts +19 -0
  154. package/dist/cjs/queries/useQuery.d.ts.map +1 -0
  155. package/dist/cjs/queries/useQuery.js +76 -0
  156. package/dist/cjs/queries/useQuery.js.map +1 -0
  157. package/dist/esm/Arc.d.ts +12 -0
  158. package/dist/esm/Arc.d.ts.map +1 -0
  159. package/dist/esm/Arc.js +23 -0
  160. package/dist/esm/Arc.js.map +1 -0
  161. package/dist/esm/ArcContext.d.ts +12 -0
  162. package/dist/esm/ArcContext.d.ts.map +1 -0
  163. package/dist/esm/ArcContext.js +14 -0
  164. package/dist/esm/ArcContext.js.map +1 -0
  165. package/dist/esm/Bindings.d.ts +5 -0
  166. package/dist/esm/Bindings.d.ts.map +1 -0
  167. package/dist/esm/Bindings.js +13 -0
  168. package/dist/esm/Bindings.js.map +1 -0
  169. package/dist/esm/WellKnownBindings.d.ts +4 -0
  170. package/dist/esm/WellKnownBindings.d.ts.map +1 -0
  171. package/dist/esm/WellKnownBindings.js +6 -0
  172. package/dist/esm/WellKnownBindings.js.map +1 -0
  173. package/dist/esm/commands/CommandScope.d.ts +13 -0
  174. package/dist/esm/commands/CommandScope.d.ts.map +1 -0
  175. package/dist/esm/commands/CommandScope.js +36 -0
  176. package/dist/esm/commands/CommandScope.js.map +1 -0
  177. package/dist/esm/commands/CommandScopeImplementation.d.ts +16 -0
  178. package/dist/esm/commands/CommandScopeImplementation.d.ts.map +1 -0
  179. package/dist/esm/commands/CommandScopeImplementation.js +50 -0
  180. package/dist/esm/commands/CommandScopeImplementation.js.map +1 -0
  181. package/dist/esm/commands/ICommandScope.d.ts +8 -0
  182. package/dist/esm/commands/ICommandScope.d.ts.map +1 -0
  183. package/dist/esm/commands/ICommandScope.js +2 -0
  184. package/dist/esm/commands/ICommandScope.js.map +1 -0
  185. package/dist/esm/commands/index.d.ts +6 -0
  186. package/dist/esm/commands/index.d.ts.map +1 -0
  187. package/dist/esm/commands/index.js +5 -0
  188. package/dist/esm/commands/index.js.map +1 -0
  189. package/dist/esm/commands/useCommand.d.ts +6 -0
  190. package/dist/esm/commands/useCommand.d.ts.map +1 -0
  191. package/dist/esm/commands/useCommand.js +45 -0
  192. package/dist/esm/commands/useCommand.js.map +1 -0
  193. package/dist/esm/commands/useCommandScope.d.ts +2 -0
  194. package/dist/esm/commands/useCommandScope.d.ts.map +1 -0
  195. package/dist/esm/commands/useCommandScope.js +9 -0
  196. package/dist/esm/commands/useCommandScope.js.map +1 -0
  197. package/dist/esm/dialogs/BusyIndicatorDialogRequest.d.ts +6 -0
  198. package/dist/esm/dialogs/BusyIndicatorDialogRequest.d.ts.map +1 -0
  199. package/dist/esm/dialogs/BusyIndicatorDialogRequest.js +11 -0
  200. package/dist/esm/dialogs/BusyIndicatorDialogRequest.js.map +1 -0
  201. package/dist/esm/dialogs/CloseDialog.d.ts +3 -0
  202. package/dist/esm/dialogs/CloseDialog.d.ts.map +1 -0
  203. package/dist/esm/dialogs/CloseDialog.js +2 -0
  204. package/dist/esm/dialogs/CloseDialog.js.map +1 -0
  205. package/dist/esm/dialogs/ConfirmationDialogRequest.d.ts +8 -0
  206. package/dist/esm/dialogs/ConfirmationDialogRequest.d.ts.map +1 -0
  207. package/dist/esm/dialogs/ConfirmationDialogRequest.js +13 -0
  208. package/dist/esm/dialogs/ConfirmationDialogRequest.js.map +1 -0
  209. package/dist/esm/dialogs/DialogButtons.d.ts +7 -0
  210. package/dist/esm/dialogs/DialogButtons.d.ts.map +1 -0
  211. package/dist/esm/dialogs/DialogButtons.js +10 -0
  212. package/dist/esm/dialogs/DialogButtons.js.map +1 -0
  213. package/dist/esm/dialogs/DialogComponents.d.ts +20 -0
  214. package/dist/esm/dialogs/DialogComponents.d.ts.map +1 -0
  215. package/dist/esm/dialogs/DialogComponents.js +31 -0
  216. package/dist/esm/dialogs/DialogComponents.js.map +1 -0
  217. package/dist/esm/dialogs/DialogContext.d.ts +10 -0
  218. package/dist/esm/dialogs/DialogContext.d.ts.map +1 -0
  219. package/dist/esm/dialogs/DialogContext.js +18 -0
  220. package/dist/esm/dialogs/DialogContext.js.map +1 -0
  221. package/dist/esm/dialogs/DialogProps.d.ts +5 -0
  222. package/dist/esm/dialogs/DialogProps.d.ts.map +1 -0
  223. package/dist/esm/dialogs/DialogProps.js +2 -0
  224. package/dist/esm/dialogs/DialogProps.js.map +1 -0
  225. package/dist/esm/dialogs/DialogResponse.d.ts +3 -0
  226. package/dist/esm/dialogs/DialogResponse.d.ts.map +1 -0
  227. package/dist/esm/dialogs/DialogResponse.js +2 -0
  228. package/dist/esm/dialogs/DialogResponse.js.map +1 -0
  229. package/dist/esm/dialogs/DialogResult.d.ts +8 -0
  230. package/dist/esm/dialogs/DialogResult.d.ts.map +1 -0
  231. package/dist/esm/dialogs/DialogResult.js +11 -0
  232. package/dist/esm/dialogs/DialogResult.js.map +1 -0
  233. package/dist/esm/dialogs/ShowDialog.d.ts +3 -0
  234. package/dist/esm/dialogs/ShowDialog.d.ts.map +1 -0
  235. package/dist/esm/dialogs/ShowDialog.js +2 -0
  236. package/dist/esm/dialogs/ShowDialog.js.map +1 -0
  237. package/dist/esm/dialogs/index.d.ts +14 -0
  238. package/dist/esm/dialogs/index.d.ts.map +1 -0
  239. package/dist/esm/dialogs/index.js +10 -0
  240. package/dist/esm/dialogs/index.js.map +1 -0
  241. package/dist/esm/dialogs/useBusyIndicator.d.ts +5 -0
  242. package/dist/esm/dialogs/useBusyIndicator.d.ts.map +1 -0
  243. package/dist/esm/dialogs/useBusyIndicator.js +19 -0
  244. package/dist/esm/dialogs/useBusyIndicator.js.map +1 -0
  245. package/dist/esm/dialogs/useConfirmationDialog.d.ts +5 -0
  246. package/dist/esm/dialogs/useConfirmationDialog.d.ts.map +1 -0
  247. package/dist/esm/dialogs/useConfirmationDialog.js +18 -0
  248. package/dist/esm/dialogs/useConfirmationDialog.js.map +1 -0
  249. package/dist/esm/dialogs/useDialog.d.ts +5 -0
  250. package/dist/esm/dialogs/useDialog.d.ts.map +1 -0
  251. package/dist/esm/dialogs/useDialog.js +32 -0
  252. package/dist/esm/dialogs/useDialog.js.map +1 -0
  253. package/dist/esm/identity/IdentityProvider.d.ts +10 -0
  254. package/dist/esm/identity/IdentityProvider.d.ts.map +1 -0
  255. package/dist/esm/identity/IdentityProvider.js +45 -0
  256. package/dist/esm/identity/IdentityProvider.js.map +1 -0
  257. package/dist/esm/identity/index.d.ts +3 -0
  258. package/dist/esm/identity/index.d.ts.map +1 -0
  259. package/dist/esm/identity/index.js +3 -0
  260. package/dist/esm/identity/index.js.map +1 -0
  261. package/dist/esm/identity/useIdentity.d.ts +3 -0
  262. package/dist/esm/identity/useIdentity.d.ts.map +1 -0
  263. package/dist/esm/identity/useIdentity.js +13 -0
  264. package/dist/esm/identity/useIdentity.js.map +1 -0
  265. package/dist/esm/index.d.ts +9 -0
  266. package/dist/esm/index.d.ts.map +1 -0
  267. package/dist/esm/index.js +12 -0
  268. package/dist/esm/index.js.map +1 -0
  269. package/dist/esm/queries/SetPage.d.ts +2 -0
  270. package/dist/esm/queries/SetPage.d.ts.map +1 -0
  271. package/dist/esm/queries/SetPage.js +2 -0
  272. package/dist/esm/queries/SetPage.js.map +1 -0
  273. package/dist/esm/queries/SetPageSize.d.ts +2 -0
  274. package/dist/esm/queries/SetPageSize.d.ts.map +1 -0
  275. package/dist/esm/queries/SetPageSize.js +2 -0
  276. package/dist/esm/queries/SetPageSize.js.map +1 -0
  277. package/dist/esm/queries/SetSorting.d.ts +3 -0
  278. package/dist/esm/queries/SetSorting.d.ts.map +1 -0
  279. package/dist/esm/queries/SetSorting.js +2 -0
  280. package/dist/esm/queries/SetSorting.js.map +1 -0
  281. package/dist/esm/queries/index.d.ts +6 -0
  282. package/dist/esm/queries/index.d.ts.map +1 -0
  283. package/dist/esm/queries/index.js +3 -0
  284. package/dist/esm/queries/index.js.map +1 -0
  285. package/dist/esm/queries/useObservableQuery.d.ts +16 -0
  286. package/dist/esm/queries/useObservableQuery.d.ts.map +1 -0
  287. package/dist/esm/queries/useObservableQuery.js +51 -0
  288. package/dist/esm/queries/useObservableQuery.js.map +1 -0
  289. package/dist/esm/queries/useQuery.d.ts +19 -0
  290. package/dist/esm/queries/useQuery.d.ts.map +1 -0
  291. package/dist/esm/queries/useQuery.js +73 -0
  292. package/dist/esm/queries/useQuery.js.map +1 -0
  293. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  294. package/global.d.ts +11 -0
  295. package/identity/IdentityProvider.tsx +61 -0
  296. package/identity/for_IdentityProvider/when_refreshing_identity.ts +59 -0
  297. package/identity/index.ts +5 -0
  298. package/identity/useIdentity.ts +19 -0
  299. package/index.ts +18 -0
  300. package/package.json +69 -0
  301. package/queries/SetPage.ts +7 -0
  302. package/queries/SetPageSize.ts +7 -0
  303. package/queries/SetSorting.ts +9 -0
  304. package/queries/for_useQuery/FakeQuery.ts +25 -0
  305. package/queries/for_useQuery/when_creating_instance.ts +63 -0
  306. package/queries/for_useQuery/when_creating_instance_with_sorting.ts +55 -0
  307. package/queries/for_useQuery/when_creating_instance_without_optional_context_values.ts +59 -0
  308. package/queries/for_useQueryWithPaging/when_creating_instance_with_paging.ts +67 -0
  309. package/queries/index.ts +8 -0
  310. package/queries/useObservableQuery.ts +83 -0
  311. package/queries/useQuery.ts +113 -0
@@ -0,0 +1,8 @@
1
+ export declare enum DialogResult {
2
+ None = 0,
3
+ Yes = 1,
4
+ No = 2,
5
+ Ok = 3,
6
+ Cancelled = 4
7
+ }
8
+ //# sourceMappingURL=DialogResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogResult.d.ts","sourceRoot":"","sources":["../../../dialogs/DialogResult.ts"],"names":[],"mappings":"AAMA,oBAAY,YAAY;IAIpB,IAAI,IAAI;IAKR,GAAG,IAAI;IAKP,EAAE,IAAI;IAKN,EAAE,IAAI;IAKN,SAAS,IAAI;CAChB"}
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ exports.DialogResult = void 0;
4
+ (function (DialogResult) {
5
+ DialogResult[DialogResult["None"] = 0] = "None";
6
+ DialogResult[DialogResult["Yes"] = 1] = "Yes";
7
+ DialogResult[DialogResult["No"] = 2] = "No";
8
+ DialogResult[DialogResult["Ok"] = 3] = "Ok";
9
+ DialogResult[DialogResult["Cancelled"] = 4] = "Cancelled";
10
+ })(exports.DialogResult || (exports.DialogResult = {}));
11
+ //# sourceMappingURL=DialogResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogResult.js","sources":["../../../dialogs/DialogResult.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/**\n * Defines the possible results from a dialog interaction.\n */\nexport enum DialogResult {\n /**\n * Indicates that no action was taken or the dialog was closed without a specific result.\n */\n None = 0,\n\n /**\n * Indicates that the user confirmed the action, typically by clicking \"Yes\" or \"OK\".\n */\n Yes = 1,\n\n /**\n * Indicates that the user declined the action, typically by clicking \"No\".\n */\n No = 2,\n\n /**\n * Indicates that the user acknowledged the action, typically by clicking \"OK\".\n */\n Ok = 3,\n\n /**\n * Indicates that the dialog was cancelled, typically by clicking \"Cancel\".\n */\n Cancelled = 4\n}\n"],"names":["DialogResult"],"mappings":";;AAMYA;AAAZ,CAAA,UAAY,YAAY,EAAA;AAIpB,IAAA,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AAKR,IAAA,YAAA,CAAA,YAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO;AAKP,IAAA,YAAA,CAAA,YAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM;AAKN,IAAA,YAAA,CAAA,YAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM;AAKN,IAAA,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;AACjB,CAAC,EAzBWA,oBAAY,KAAZA,oBAAY,GAAA,EAAA,CAAA,CAAA;;"}
@@ -0,0 +1,3 @@
1
+ import { DialogResponse } from './DialogResponse';
2
+ export type ShowDialog<TProps, TResponse = object> = (props?: TProps) => Promise<DialogResponse<TResponse>>;
3
+ //# sourceMappingURL=ShowDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShowDialog.d.ts","sourceRoot":"","sources":["../../../dialogs/ShowDialog.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ export * from './BusyIndicatorDialogRequest';
2
+ export * from './CloseDialog';
3
+ export * from './ConfirmationDialogRequest';
4
+ export * from './DialogButtons';
5
+ export * from './DialogComponents';
6
+ export * from './DialogContext';
7
+ export * from './DialogProps';
8
+ export * from './DialogResponse';
9
+ export * from './DialogResult';
10
+ export * from './ShowDialog';
11
+ export * from './useBusyIndicator';
12
+ export * from './useConfirmationDialog';
13
+ export * from './useDialog';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../dialogs/index.ts"],"names":[],"mappings":"AAGA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ var BusyIndicatorDialogRequest = require('./BusyIndicatorDialogRequest.js');
4
+ var ConfirmationDialogRequest = require('./ConfirmationDialogRequest.js');
5
+ var DialogButtons = require('./DialogButtons.js');
6
+ var DialogComponents = require('./DialogComponents.js');
7
+ var DialogContext = require('./DialogContext.js');
8
+ var DialogResult = require('./DialogResult.js');
9
+ var useBusyIndicator = require('./useBusyIndicator.js');
10
+ var useConfirmationDialog = require('./useConfirmationDialog.js');
11
+ var useDialog = require('./useDialog.js');
12
+
13
+
14
+
15
+ exports.BusyIndicatorDialogRequest = BusyIndicatorDialogRequest.BusyIndicatorDialogRequest;
16
+ exports.ConfirmationDialogRequest = ConfirmationDialogRequest.ConfirmationDialogRequest;
17
+ Object.defineProperty(exports, "DialogButtons", {
18
+ enumerable: true,
19
+ get: function () { return DialogButtons.DialogButtons; }
20
+ });
21
+ exports.DialogComponents = DialogComponents.DialogComponents;
22
+ exports.DialogComponentsContext = DialogComponents.DialogComponentsContext;
23
+ exports.DialogContext = DialogContext.DialogContext;
24
+ exports.DialogContextContent = DialogContext.DialogContextContent;
25
+ exports.useDialogContext = DialogContext.useDialogContext;
26
+ Object.defineProperty(exports, "DialogResult", {
27
+ enumerable: true,
28
+ get: function () { return DialogResult.DialogResult; }
29
+ });
30
+ exports.useBusyIndicator = useBusyIndicator.useBusyIndicator;
31
+ exports.useConfirmationDialog = useConfirmationDialog.useConfirmationDialog;
32
+ exports.useDialog = useDialog.useDialog;
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,5 @@
1
+ import { DialogResult } from './DialogResult';
2
+ export type ShowBusyIndicatorDialog = (title?: string, message?: string) => Promise<DialogResult>;
3
+ export type CloseBusyIndicatorDialog = () => void;
4
+ export declare const useBusyIndicator: (title?: string, message?: string) => [ShowBusyIndicatorDialog, CloseBusyIndicatorDialog];
5
+ //# sourceMappingURL=useBusyIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBusyIndicator.d.ts","sourceRoot":"","sources":["../../../dialogs/useBusyIndicator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAS9C,MAAM,MAAM,uBAAuB,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAKlG,MAAM,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC;AAQlD,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,EAAE,UAAU,MAAM,KAAG,CAAC,uBAAuB,EAAE,wBAAwB,CAarH,CAAC"}
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var DialogComponents = require('./DialogComponents.js');
5
+ var DialogResult = require('./DialogResult.js');
6
+ var BusyIndicatorDialogRequest = require('./BusyIndicatorDialogRequest.js');
7
+
8
+ const useBusyIndicator = (title, message) => {
9
+ const components = React.useContext(DialogComponents.DialogComponentsContext);
10
+ return [
11
+ async (delegateTitle, delegateMessage) => {
12
+ const request = new BusyIndicatorDialogRequest.BusyIndicatorDialogRequest(delegateTitle ?? title ?? '', delegateMessage ?? message ?? '');
13
+ const [result] = await components.showBusyIndicator(request);
14
+ return result;
15
+ },
16
+ () => components.closeBusyIndicator?.(DialogResult.DialogResult.Cancelled)
17
+ ];
18
+ };
19
+
20
+ exports.useBusyIndicator = useBusyIndicator;
21
+ //# sourceMappingURL=useBusyIndicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBusyIndicator.js","sources":["../../../dialogs/useBusyIndicator.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useContext } from 'react';\nimport { DialogComponentsContext, IDialogComponents } from './DialogComponents';\nimport { DialogResult } from './DialogResult';\nimport { BusyIndicatorDialogRequest } from './BusyIndicatorDialogRequest';\n\n/**\n * Represents the signature for showing a confirmation dialog.\n * @param title Optional title of the confirmation dialog.\n * @param message Optional message to display in the confirmation dialog.\n * @return A promise that resolves to a tuple containing the dialog result and any additional data.\n */\nexport type ShowBusyIndicatorDialog = (title?: string, message?: string) => Promise<DialogResult>;\n\n/**\n * Represents the signature for closing a busy indicator dialog.\n */\nexport type CloseBusyIndicatorDialog = () => void;\n\n/**\n * Uses a busy indicator dialog in your application.\n * @param title Optional title of the confirmation dialog.\n * @param message Optional message to display in the confirmation dialog.\n * @returns A tuple containing the a function to show the dialog and one to close the dialog.\n */\nexport const useBusyIndicator = (title?: string, message?: string): [ShowBusyIndicatorDialog, CloseBusyIndicatorDialog] => {\n const components = useContext<IDialogComponents>(DialogComponentsContext);\n\n return [\n async (delegateTitle?: string, delegateMessage?: string) => {\n const request = new BusyIndicatorDialogRequest(\n delegateTitle ?? title ?? '',\n delegateMessage ?? message ?? '');\n const [result] = await components.showBusyIndicator(request);\n return result;\n },\n () => components.closeBusyIndicator?.(DialogResult.Cancelled)\n ];\n};"],"names":["useContext","DialogComponentsContext","BusyIndicatorDialogRequest","DialogResult"],"mappings":";;;;;;;MA2Ba,gBAAgB,GAAG,CAAC,KAAc,EAAE,OAAgB,KAAyD;AACtH,IAAA,MAAM,UAAU,GAAGA,gBAAU,CAAoBC,wCAAuB,CAAC;IAEzE,OAAO;AACH,QAAA,OAAO,aAAsB,EAAE,eAAwB,KAAI;AACvD,YAAA,MAAM,OAAO,GAAG,IAAIC,qDAA0B,CAC1C,aAAa,IAAI,KAAK,IAAI,EAAE,EAC5B,eAAe,IAAI,OAAO,IAAI,EAAE,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC;AAC5D,YAAA,OAAO,MAAM;QACjB,CAAC;QACD,MAAM,UAAU,CAAC,kBAAkB,GAAGC,yBAAY,CAAC,SAAS;KAC/D;AACL;;;;"}
@@ -0,0 +1,5 @@
1
+ import { DialogButtons } from './DialogButtons';
2
+ import { DialogResult } from './DialogResult';
3
+ export type ShowConfirmationDialog = (title?: string, message?: string, buttons?: DialogButtons) => Promise<DialogResult>;
4
+ export declare const useConfirmationDialog: (title?: string, message?: string, buttons?: DialogButtons) => [ShowConfirmationDialog];
5
+ //# sourceMappingURL=useConfirmationDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConfirmationDialog.d.ts","sourceRoot":"","sources":["../../../dialogs/useConfirmationDialog.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAS9C,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAS1H,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,EAAE,UAAU,MAAM,EAAE,UAAU,aAAa,KAAG,CAAC,sBAAsB,CAaxH,CAAC"}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var DialogButtons = require('./DialogButtons.js');
5
+ var DialogComponents = require('./DialogComponents.js');
6
+ var ConfirmationDialogRequest = require('./ConfirmationDialogRequest.js');
7
+
8
+ const useConfirmationDialog = (title, message, buttons) => {
9
+ const components = React.useContext(DialogComponents.DialogComponentsContext);
10
+ return [
11
+ async (delegateTitle, delegateMessage, delegateButtons) => {
12
+ const request = new ConfirmationDialogRequest.ConfirmationDialogRequest(delegateTitle ?? title ?? '', delegateMessage ?? message ?? '', delegateButtons ?? buttons ?? DialogButtons.DialogButtons.Ok);
13
+ const [result] = await components.showConfirmation(request);
14
+ return result;
15
+ }
16
+ ];
17
+ };
18
+
19
+ exports.useConfirmationDialog = useConfirmationDialog;
20
+ //# sourceMappingURL=useConfirmationDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConfirmationDialog.js","sources":["../../../dialogs/useConfirmationDialog.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useContext } from 'react';\nimport { DialogButtons } from './DialogButtons';\nimport { DialogComponentsContext, IDialogComponents } from './DialogComponents';\nimport { ConfirmationDialogRequest } from './ConfirmationDialogRequest';\nimport { DialogResult } from './DialogResult';\n\n/**\n * Represents the signature for showing a confirmation dialog.\n * @param title Optional title of the confirmation dialog.\n * @param message Optional message to display in the confirmation dialog.\n * @param buttons Optional buttons to display in the confirmation dialog. If not provided, defaults to `DialogButtons.Ok`. \n * @return A promise that resolves to a tuple containing the dialog result and any additional data.\n */\nexport type ShowConfirmationDialog = (title?: string, message?: string, buttons?: DialogButtons) => Promise<DialogResult>;\n\n/**\n * Uses a confirmation dialog in your application.\n * @param title Optional title of the confirmation dialog.\n * @param message Optional message to display in the confirmation dialog.\n * @param buttons Optional buttons to display in the confirmation dialog. If not provided, defaults to `DialogButtons.Ok`. \n * @returns A tuple containing function to show the dialog.\n */\nexport const useConfirmationDialog = (title?: string, message?: string, buttons?: DialogButtons): [ShowConfirmationDialog] => {\n const components = useContext<IDialogComponents>(DialogComponentsContext);\n\n return [\n async (delegateTitle?: string, delegateMessage?: string, delegateButtons?: DialogButtons) => {\n const request = new ConfirmationDialogRequest(\n delegateTitle ?? title ?? '',\n delegateMessage ?? message ?? '',\n delegateButtons ?? buttons ?? DialogButtons.Ok);\n const [result] = await components.showConfirmation(request);\n return result;\n }\n ];\n};"],"names":["useContext","DialogComponentsContext","ConfirmationDialogRequest","DialogButtons"],"mappings":";;;;;;;AAyBO,MAAM,qBAAqB,GAAG,CAAC,KAAc,EAAE,OAAgB,EAAE,OAAuB,KAA8B;AACzH,IAAA,MAAM,UAAU,GAAGA,gBAAU,CAAoBC,wCAAuB,CAAC;IAEzE,OAAO;AACH,QAAA,OAAO,aAAsB,EAAE,eAAwB,EAAE,eAA+B,KAAI;YACxF,MAAM,OAAO,GAAG,IAAIC,mDAAyB,CACzC,aAAa,IAAI,KAAK,IAAI,EAAE,EAC5B,eAAe,IAAI,OAAO,IAAI,EAAE,EAChC,eAAe,IAAI,OAAO,IAAIC,2BAAa,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC;AAC3D,YAAA,OAAO,MAAM;QACjB;KACH;AACL;;;;"}
@@ -0,0 +1,5 @@
1
+ import { DialogContextContent } from './DialogContext';
2
+ import { ComponentType, FC } from 'react';
3
+ import { ShowDialog } from './ShowDialog';
4
+ export declare function useDialog<TResponse = object, TProps = object>(DialogComponent: ComponentType<TProps>): [FC<TProps>, ShowDialog<TProps, TResponse>, DialogContextContent<TProps, TResponse>];
5
+ //# sourceMappingURL=useDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDialog.d.ts","sourceRoot":"","sources":["../../../dialogs/useDialog.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAiB,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGtE,OAAO,EAAiC,aAAa,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,wBAAgB,SAAS,CAAC,SAAS,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,EACzD,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,GACvC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAqCtF"}
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var DialogContext = require('./DialogContext.js');
5
+ var React = require('react');
6
+
7
+ function useDialog(DialogComponent) {
8
+ const [visible, setVisible] = React.useState(false);
9
+ const [dialogProps, setDialogProps] = React.useState();
10
+ const resolverRef = React.useRef(undefined);
11
+ const showDialog = React.useCallback((p) => {
12
+ setDialogProps(p);
13
+ setVisible(true);
14
+ return new Promise((resolve) => {
15
+ resolverRef.current = resolve;
16
+ });
17
+ }, []);
18
+ const closeDialog = React.useCallback((result, value) => {
19
+ setVisible(false);
20
+ resolverRef.current?.([result, value]);
21
+ resolverRef.current = undefined;
22
+ }, []);
23
+ const dialogContextValue = React.useRef(undefined);
24
+ dialogContextValue.current = React.useMemo(() => {
25
+ return new DialogContext.DialogContextContent(dialogProps, closeDialog);
26
+ }, [dialogProps, closeDialog]);
27
+ const DialogWrapper = (extraProps) => {
28
+ return visible ? (jsxRuntime.jsx(DialogContext.DialogContext.Provider, { value: dialogContextValue.current, children: jsxRuntime.jsx(DialogComponent, { ...extraProps, ...dialogProps, closeDialog: closeDialog }) })) : null;
29
+ };
30
+ return [DialogWrapper, showDialog, dialogContextValue.current];
31
+ }
32
+
33
+ exports.useDialog = useDialog;
34
+ //# sourceMappingURL=useDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDialog.js","sources":["../../../dialogs/useDialog.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DialogContext, DialogContextContent } from './DialogContext';\nimport { DialogResponse } from './DialogResponse';\nimport { DialogResult } from './DialogResult';\nimport { useCallback, useRef, useState, ComponentType, FC, useMemo } from 'react';\nimport { ShowDialog } from './ShowDialog';\n\n/**\n * Use a dialog component in you application. This hook manages the visibility and properties of the dialog.\n * @param DialogComponent The dialog component to use.\n * @returns A tuple containing the wrapped dialog component and a function to show the dialog. \n * The wrapped dialog component will receive the properties passed to it, excluding the `closeDialog` property.\n */\nexport function useDialog<TResponse = object, TProps = object>(\n DialogComponent: ComponentType<TProps>\n): [FC<TProps>, ShowDialog<TProps, TResponse>, DialogContextContent<TProps, TResponse>] {\n\n const [visible, setVisible] = useState(false);\n const [dialogProps, setDialogProps] = useState<TProps | undefined>();\n const resolverRef = useRef<((value: DialogResponse<TResponse>) => void) | undefined>(undefined);\n\n const showDialog = useCallback((p?: TProps) => {\n setDialogProps(p);\n setVisible(true);\n return new Promise<DialogResponse<TResponse>>((resolve) => {\n resolverRef.current = resolve;\n });\n }, []);\n\n const closeDialog = useCallback((result: DialogResult, value?: TResponse) => {\n setVisible(false);\n resolverRef.current?.([result, value]);\n resolverRef.current = undefined;\n }, []);\n\n const dialogContextValue = useRef<DialogContextContent<TProps, TResponse>>(undefined!);\n dialogContextValue.current = useMemo(() => {\n return new DialogContextContent(dialogProps!, closeDialog);\n }, [dialogProps, closeDialog]);\n\n const DialogWrapper: FC<TProps> = (extraProps) => {\n return visible ? (\n <DialogContext.Provider value={dialogContextValue.current as unknown as DialogContextContent<object, object>}>\n <DialogComponent\n {...extraProps}\n {...(dialogProps as TProps)}\n closeDialog={closeDialog} />\n </DialogContext.Provider>\n ) : null;\n };\n\n return [DialogWrapper, showDialog, dialogContextValue.current];\n}\n"],"names":["useState","useRef","useCallback","useMemo","DialogContextContent","_jsx","DialogContext"],"mappings":";;;;;;AAeM,SAAU,SAAS,CACrB,eAAsC,EAAA;IAGtC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;IAC7C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGA,cAAQ,EAAsB;AACpE,IAAA,MAAM,WAAW,GAAGC,YAAM,CAA2D,SAAS,CAAC;AAE/F,IAAA,MAAM,UAAU,GAAGC,iBAAW,CAAC,CAAC,CAAU,KAAI;QAC1C,cAAc,CAAC,CAAC,CAAC;QACjB,UAAU,CAAC,IAAI,CAAC;AAChB,QAAA,OAAO,IAAI,OAAO,CAA4B,CAAC,OAAO,KAAI;AACtD,YAAA,WAAW,CAAC,OAAO,GAAG,OAAO;AACjC,QAAA,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC;IAEN,MAAM,WAAW,GAAGA,iBAAW,CAAC,CAAC,MAAoB,EAAE,KAAiB,KAAI;QACxE,UAAU,CAAC,KAAK,CAAC;QACjB,WAAW,CAAC,OAAO,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACtC,QAAA,WAAW,CAAC,OAAO,GAAG,SAAS;IACnC,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,kBAAkB,GAAGD,YAAM,CAA0C,SAAU,CAAC;AACtF,IAAA,kBAAkB,CAAC,OAAO,GAAGE,aAAO,CAAC,MAAK;AACtC,QAAA,OAAO,IAAIC,kCAAoB,CAAC,WAAY,EAAE,WAAW,CAAC;AAC9D,IAAA,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAE9B,IAAA,MAAM,aAAa,GAAe,CAAC,UAAU,KAAI;AAC7C,QAAA,OAAO,OAAO,IACVC,cAAA,CAACC,2BAAa,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,kBAAkB,CAAC,OAA0D,EAAA,QAAA,EACxGD,cAAA,CAAC,eAAe,EAAA,EAAA,GACR,UAAU,EAAA,GACT,WAAsB,EAC3B,WAAW,EAAE,WAAW,EAAA,CAAI,GACX,IACzB,IAAI;AACZ,IAAA,CAAC;IAED,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC;AAClE;;;;"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { IIdentity } from '@cratis/arc/identity';
3
+ import { GetHttpHeaders } from '@cratis/arc';
4
+ export declare const IdentityProviderContext: React.Context<IIdentity<object>>;
5
+ export interface IdentityProviderProps {
6
+ children?: JSX.Element | JSX.Element[];
7
+ httpHeadersCallback?: GetHttpHeaders;
8
+ }
9
+ export declare const IdentityProvider: (props: IdentityProviderProps) => import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=IdentityProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentityProvider.d.ts","sourceRoot":"","sources":["../../../identity/IdentityProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAc7C,eAAO,MAAM,uBAAuB,kCAAyD,CAAC;AAE9F,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IACvC,mBAAmB,CAAC,EAAE,cAAc,CAAA;CACvC;AAED,eAAO,MAAM,gBAAgB,GAAI,OAAO,qBAAqB,4CAgC5D,CAAC"}
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var identity = require('@cratis/arc/identity');
6
+
7
+ const defaultIdentityContext = {
8
+ id: '',
9
+ name: '',
10
+ details: {},
11
+ isSet: false,
12
+ refresh: () => {
13
+ return new Promise((resolve, reject) => {
14
+ reject('Not implemented');
15
+ });
16
+ }
17
+ };
18
+ const IdentityProviderContext = React.createContext(defaultIdentityContext);
19
+ const IdentityProvider = (props) => {
20
+ const [context, setContext] = React.useState(defaultIdentityContext);
21
+ const wrapRefresh = (identity) => {
22
+ const originalRefresh = identity.refresh.bind(identity);
23
+ return {
24
+ ...identity,
25
+ refresh: () => {
26
+ return new Promise(resolve => {
27
+ originalRefresh().then(newIdentity => {
28
+ const wrappedIdentity = wrapRefresh(newIdentity);
29
+ setContext(wrappedIdentity);
30
+ resolve(wrappedIdentity);
31
+ });
32
+ });
33
+ }
34
+ };
35
+ };
36
+ React.useEffect(() => {
37
+ identity.IdentityProvider.setHttpHeadersCallback(props.httpHeadersCallback);
38
+ identity.IdentityProvider.getCurrent().then(identity => {
39
+ const wrappedIdentity = wrapRefresh(identity);
40
+ setContext(wrappedIdentity);
41
+ });
42
+ }, []);
43
+ return (jsxRuntime.jsx(IdentityProviderContext.Provider, { value: context, children: props.children }));
44
+ };
45
+
46
+ exports.IdentityProvider = IdentityProvider;
47
+ exports.IdentityProviderContext = IdentityProviderContext;
48
+ //# sourceMappingURL=IdentityProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentityProvider.js","sources":["../../../identity/IdentityProvider.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport { IIdentity } from '@cratis/arc/identity';\nimport { IdentityProvider as RootIdentityProvider } from '@cratis/arc/identity';\nimport { GetHttpHeaders } from '@cratis/arc';\n\nconst defaultIdentityContext: IIdentity = {\n id: '',\n name: '',\n details: {},\n isSet: false,\n refresh: () => {\n return new Promise((resolve, reject) => {\n reject('Not implemented');\n });\n }\n};\n\nexport const IdentityProviderContext = React.createContext<IIdentity>(defaultIdentityContext);\n\nexport interface IdentityProviderProps {\n children?: JSX.Element | JSX.Element[],\n httpHeadersCallback?: GetHttpHeaders\n}\n\nexport const IdentityProvider = (props: IdentityProviderProps) => {\n const [context, setContext] = useState<IIdentity>(defaultIdentityContext);\n\n const wrapRefresh = (identity: IIdentity): IIdentity => {\n const originalRefresh = identity.refresh.bind(identity);\n return {\n ...identity,\n refresh: () => {\n return new Promise<IIdentity>(resolve => {\n originalRefresh().then(newIdentity => {\n const wrappedIdentity = wrapRefresh(newIdentity);\n setContext(wrappedIdentity);\n resolve(wrappedIdentity);\n });\n });\n }\n };\n };\n\n useEffect(() => {\n RootIdentityProvider.setHttpHeadersCallback(props.httpHeadersCallback!);\n RootIdentityProvider.getCurrent().then(identity => {\n const wrappedIdentity = wrapRefresh(identity);\n setContext(wrappedIdentity);\n });\n }, []);\n\n return (\n <IdentityProviderContext.Provider value={context}>\n {props.children}\n </IdentityProviderContext.Provider>\n );\n};\n"],"names":["useState","useEffect","RootIdentityProvider","_jsx"],"mappings":";;;;;;AASA,MAAM,sBAAsB,GAAc;AACtC,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,IAAI,EAAE,EAAE;AACR,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,MAAK;QACV,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;YACnC,MAAM,CAAC,iBAAiB,CAAC;AAC7B,QAAA,CAAC,CAAC;IACN;CACH;AAEM,MAAM,uBAAuB,GAAG,KAAK,CAAC,aAAa,CAAY,sBAAsB;AAOrF,MAAM,gBAAgB,GAAG,CAAC,KAA4B,KAAI;IAC7D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAGA,cAAQ,CAAY,sBAAsB,CAAC;AAEzE,IAAA,MAAM,WAAW,GAAG,CAAC,QAAmB,KAAe;QACnD,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QACvD,OAAO;AACH,YAAA,GAAG,QAAQ;YACX,OAAO,EAAE,MAAK;AACV,gBAAA,OAAO,IAAI,OAAO,CAAY,OAAO,IAAG;AACpC,oBAAA,eAAe,EAAE,CAAC,IAAI,CAAC,WAAW,IAAG;AACjC,wBAAA,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC;wBAChD,UAAU,CAAC,eAAe,CAAC;wBAC3B,OAAO,CAAC,eAAe,CAAC;AAC5B,oBAAA,CAAC,CAAC;AACN,gBAAA,CAAC,CAAC;YACN;SACH;AACL,IAAA,CAAC;IAEDC,eAAS,CAAC,MAAK;AACX,QAAAC,yBAAoB,CAAC,sBAAsB,CAAC,KAAK,CAAC,mBAAoB,CAAC;QACvEA,yBAAoB,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAG;AAC9C,YAAA,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC;YAC7C,UAAU,CAAC,eAAe,CAAC;AAC/B,QAAA,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,QACIC,cAAA,CAAC,uBAAuB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,OAAO,YAC3C,KAAK,CAAC,QAAQ,EAAA,CACgB;AAE3C;;;;;"}
@@ -0,0 +1,3 @@
1
+ export * from './IdentityProvider';
2
+ export * from './useIdentity';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../identity/index.ts"],"names":[],"mappings":"AAGA,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ var IdentityProvider = require('./IdentityProvider.js');
4
+ var useIdentity = require('./useIdentity.js');
5
+
6
+
7
+
8
+ exports.IdentityProvider = IdentityProvider.IdentityProvider;
9
+ exports.IdentityProviderContext = IdentityProvider.IdentityProviderContext;
10
+ exports.useIdentity = useIdentity.useIdentity;
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,3 @@
1
+ import { IIdentity } from '@cratis/arc/identity';
2
+ export declare function useIdentity<TDetails = object>(defaultDetails?: TDetails | undefined | null): IIdentity<TDetails>;
3
+ //# sourceMappingURL=useIdentity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIdentity.d.ts","sourceRoot":"","sources":["../../../identity/useIdentity.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAOjD,wBAAgB,WAAW,CAAC,QAAQ,GAAG,MAAM,EAAE,cAAc,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAMhH"}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var IdentityProvider = require('./IdentityProvider.js');
5
+
6
+ function useIdentity(defaultDetails) {
7
+ const context = React.useContext(IdentityProvider.IdentityProviderContext);
8
+ if (context.isSet === false && defaultDetails !== undefined) {
9
+ context.details = defaultDetails;
10
+ }
11
+ return context;
12
+ }
13
+
14
+ exports.useIdentity = useIdentity;
15
+ //# sourceMappingURL=useIdentity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIdentity.js","sources":["../../../identity/useIdentity.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport React from 'react';\nimport { IdentityProviderContext } from './IdentityProvider';\nimport { IIdentity } from '@cratis/arc/identity';\n\n/**\n * Hook to get the identity context.\n * @param defaultDetails Optional default details to use if the context is not set.\n * @returns An identity context.\n */\nexport function useIdentity<TDetails = object>(defaultDetails?: TDetails | undefined | null): IIdentity<TDetails> {\n const context = React.useContext(IdentityProviderContext) as IIdentity<TDetails>;\n if (context.isSet === false && defaultDetails !== undefined) {\n context.details = defaultDetails!;\n }\n return context;\n}\n"],"names":["IdentityProviderContext"],"mappings":";;;;;AAYM,SAAU,WAAW,CAAoB,cAA4C,EAAA;IACvF,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAACA,wCAAuB,CAAwB;IAChF,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,cAAc,KAAK,SAAS,EAAE;AACzD,QAAA,OAAO,CAAC,OAAO,GAAG,cAAe;IACrC;AACA,IAAA,OAAO,OAAO;AAClB;;;;"}
@@ -0,0 +1,9 @@
1
+ import * as commands from './commands';
2
+ import * as dialogs from './dialogs';
3
+ import * as identity from './identity';
4
+ import * as queries from './queries';
5
+ export * from './Arc';
6
+ export * from './ArcContext';
7
+ export * from './WellKnownBindings';
8
+ export { commands, dialogs, identity, queries };
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AAEpC,OAAO,EACH,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,OAAO,EACV,CAAC"}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var index = require('./commands/index.js');
4
+ var index$1 = require('./dialogs/index.js');
5
+ var index$2 = require('./identity/index.js');
6
+ var index$3 = require('./queries/index.js');
7
+ var Arc = require('./Arc.js');
8
+ var ArcContext = require('./ArcContext.js');
9
+ var WellKnownBindings = require('./WellKnownBindings.js');
10
+
11
+
12
+
13
+ exports.commands = index;
14
+ exports.dialogs = index$1;
15
+ exports.identity = index$2;
16
+ exports.queries = index$3;
17
+ exports.Arc = Arc.Arc;
18
+ exports.ArcContext = ArcContext.ArcContext;
19
+ exports.WellKnownBindings = WellKnownBindings.WellKnownBindings;
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export type SetPage = (page: number) => Promise<void>;
2
+ //# sourceMappingURL=SetPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetPage.d.ts","sourceRoot":"","sources":["../../../queries/SetPage.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type SetPageSize = (pageSize: number) => Promise<void>;
2
+ //# sourceMappingURL=SetPageSize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetPageSize.d.ts","sourceRoot":"","sources":["../../../queries/SetPageSize.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Sorting } from '@cratis/arc/queries';
2
+ export type SetSorting = (sorting: Sorting) => Promise<void>;
3
+ //# sourceMappingURL=SetSorting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetSorting.d.ts","sourceRoot":"","sources":["../../../queries/SetSorting.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAK9C,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './SetPage';
2
+ export * from './SetPageSize';
3
+ export * from './SetSorting';
4
+ export * from './useObservableQuery';
5
+ export * from './useQuery';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../queries/index.ts"],"names":[],"mappings":"AAGA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ var useObservableQuery = require('./useObservableQuery.js');
4
+ var useQuery = require('./useQuery.js');
5
+
6
+
7
+
8
+ exports.useObservableQuery = useObservableQuery.useObservableQuery;
9
+ exports.useObservableQueryWithPaging = useObservableQuery.useObservableQueryWithPaging;
10
+ exports.useQuery = useQuery.useQuery;
11
+ exports.useQueryWithPaging = useQuery.useQueryWithPaging;
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -0,0 +1,16 @@
1
+ import { QueryResultWithState, IObservableQueryFor, Sorting, Paging } from '@cratis/arc/queries';
2
+ import { Constructor } from '@cratis/fundamentals';
3
+ import { SetSorting } from './SetSorting';
4
+ import { SetPage } from './SetPage';
5
+ import { SetPageSize } from './SetPageSize';
6
+ export declare function useObservableQuery<TDataType, TQuery extends IObservableQueryFor<TDataType>, TArguments = object>(query: Constructor<TQuery>, args?: TArguments, sorting?: Sorting): [
7
+ QueryResultWithState<TDataType>,
8
+ SetSorting
9
+ ];
10
+ export declare function useObservableQueryWithPaging<TDataType, TQuery extends IObservableQueryFor<TDataType>, TArguments = object>(query: Constructor<TQuery>, paging: Paging, args?: TArguments, sorting?: Sorting): [
11
+ QueryResultWithState<TDataType>,
12
+ SetSorting,
13
+ SetPage,
14
+ SetPageSize
15
+ ];
16
+ //# sourceMappingURL=useObservableQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useObservableQuery.d.ts","sourceRoot":"","sources":["../../../queries/useObservableQuery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAuD5C,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,SAAS,mBAAmB,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,GAC9K;IAAC,oBAAoB,CAAC,SAAS,CAAC;IAAE,UAAU;CAAC,CAGhD;AAYD,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,SAAS,mBAAmB,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,GACxM;IAAC,oBAAoB,CAAC,SAAS,CAAC;IAAE,UAAU;IAAE,OAAO;IAAE,WAAW;CAAC,CAEtE"}
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ var queries = require('@cratis/arc/queries');
4
+ var React = require('react');
5
+ var ArcContext = require('../ArcContext.js');
6
+
7
+ function useObservableQueryInternal(query, sorting, paging, args) {
8
+ const [currentPaging, setCurrentPaging] = React.useState(paging ?? queries.Paging.noPaging);
9
+ const [currentSorting, setCurrentSorting] = React.useState(sorting ?? queries.Sorting.none);
10
+ const arc = React.useContext(ArcContext.ArcContext);
11
+ const queryInstance = React.useRef(null);
12
+ queryInstance.current = React.useMemo(() => {
13
+ const instance = new query();
14
+ instance.paging = currentPaging;
15
+ instance.sorting = currentSorting;
16
+ instance.setMicroservice(arc.microservice);
17
+ instance.setApiBasePath(arc.apiBasePath ?? '');
18
+ instance.setOrigin(arc.origin ?? '');
19
+ return instance;
20
+ }, [currentPaging, currentSorting]);
21
+ const [result, setResult] = React.useState(queries.QueryResultWithState.empty(queryInstance.current.defaultValue));
22
+ const argumentsDependency = queryInstance.current.requiredRequestParameters.map(_ => args?.[_]);
23
+ React.useEffect(() => {
24
+ const subscription = queryInstance.current.subscribe(response => {
25
+ setResult(queries.QueryResultWithState.fromQueryResult(response, false));
26
+ }, args);
27
+ return () => {
28
+ subscription.unsubscribe();
29
+ };
30
+ }, [...argumentsDependency, ...[currentPaging, currentSorting]]);
31
+ return [
32
+ result,
33
+ async (sorting) => {
34
+ setCurrentSorting(sorting);
35
+ },
36
+ async (page) => {
37
+ setCurrentPaging(new queries.Paging(page, currentPaging.pageSize));
38
+ },
39
+ async (pageSize) => {
40
+ setCurrentPaging(new queries.Paging(currentPaging.page, pageSize));
41
+ }
42
+ ];
43
+ }
44
+ function useObservableQuery(query, args, sorting) {
45
+ const [result, setSorting] = useObservableQueryInternal(query, sorting, queries.Paging.noPaging, args);
46
+ return [result, setSorting];
47
+ }
48
+ function useObservableQueryWithPaging(query, paging, args, sorting) {
49
+ return useObservableQueryInternal(query, sorting, paging, args);
50
+ }
51
+
52
+ exports.useObservableQuery = useObservableQuery;
53
+ exports.useObservableQueryWithPaging = useObservableQueryWithPaging;
54
+ //# sourceMappingURL=useObservableQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useObservableQuery.js","sources":["../../../queries/useObservableQuery.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { QueryResultWithState, IObservableQueryFor, Sorting, Paging } from '@cratis/arc/queries';\nimport { Constructor } from '@cratis/fundamentals';\nimport { useState, useEffect, useContext, useRef, useMemo } from 'react';\nimport { SetSorting } from './SetSorting';\nimport { SetPage } from './SetPage';\nimport { SetPageSize } from './SetPageSize';\nimport { ArcContext } from '../ArcContext';\n\nfunction useObservableQueryInternal<TDataType, TQuery extends IObservableQueryFor<TDataType>, TArguments = object>(query: Constructor<TQuery>, sorting?: Sorting, paging?: Paging, args?: TArguments):\n [QueryResultWithState<TDataType>, SetSorting, SetPage, SetPageSize] {\n const [currentPaging, setCurrentPaging] = useState<Paging>(paging ?? Paging.noPaging);\n const [currentSorting, setCurrentSorting] = useState<Sorting>(sorting ?? Sorting.none);\n const arc = useContext(ArcContext);\n const queryInstance = useRef<TQuery | null>(null);\n\n queryInstance.current = useMemo(() => {\n const instance = new query() as TQuery;\n instance.paging = currentPaging;\n instance.sorting = currentSorting;\n instance.setMicroservice(arc.microservice);\n instance.setApiBasePath(arc.apiBasePath ?? '');\n instance.setOrigin(arc.origin ?? '');\n return instance;\n }, [currentPaging, currentSorting]);\n\n const [result, setResult] = useState<QueryResultWithState<TDataType>>(QueryResultWithState.empty(queryInstance.current.defaultValue));\n const argumentsDependency = queryInstance.current.requiredRequestParameters.map(_ => args?.[_]);\n\n useEffect(() => {\n const subscription = queryInstance.current!.subscribe(response => {\n setResult(QueryResultWithState.fromQueryResult(response, false));\n }, args as object);\n\n return () => {\n subscription.unsubscribe();\n };\n }, [...argumentsDependency, ...[currentPaging, currentSorting]]);\n\n return [\n result,\n async (sorting: Sorting) => {\n setCurrentSorting(sorting);\n },\n async (page: number) => {\n setCurrentPaging(new Paging(page, currentPaging.pageSize));\n },\n async (pageSize: number) => {\n setCurrentPaging(new Paging(currentPaging.page, pageSize));\n }];\n}\n\n/**\n * React hook for working with {@link IObservableQueryFor} within the state management of React.\n * @template TDataType Type of model the query is for.\n * @template TQuery Type of observable query to use.\n * @template TArguments Optional: Arguments for the query, if any\n * @param query Query type constructor.\n * @param args Optional: Arguments for the query, if any\n * @returns Tuple of {@link QueryResultWithState} and a {@link PerformQuery} delegate.\n */\nexport function useObservableQuery<TDataType, TQuery extends IObservableQueryFor<TDataType>, TArguments = object>(query: Constructor<TQuery>, args?: TArguments, sorting?: Sorting):\n [QueryResultWithState<TDataType>, SetSorting] {\n const [result, setSorting] = useObservableQueryInternal<TDataType, TQuery, TArguments>(query, sorting, Paging.noPaging, args);\n return [result, setSorting];\n}\n\n/**\n * React hook for working with {@link IObservableQueryFor} within the state management of React for queries with paging.\n * @template TDataType Type of model the query is for.\n * @template TQuery Type of observable query to use.\n * @template TArguments Optional: Arguments for the query, if any\n * @param query Query type constructor.\n * @param args Optional: Arguments for the query, if any\n * @param paging Paging information.\n * @returns Tuple of {@link QueryResultWithState} and a {@link PerformQuery} delegate.\n */\nexport function useObservableQueryWithPaging<TDataType, TQuery extends IObservableQueryFor<TDataType>, TArguments = object>(query: Constructor<TQuery>, paging: Paging, args?: TArguments, sorting?: Sorting):\n [QueryResultWithState<TDataType>, SetSorting, SetPage, SetPageSize] {\n return useObservableQueryInternal<TDataType, TQuery, TArguments>(query, sorting, paging, args);\n}\n"],"names":["useState","Paging","Sorting","useContext","ArcContext","useRef","useMemo","QueryResultWithState","useEffect"],"mappings":";;;;;;AAWA,SAAS,0BAA0B,CAAgF,KAA0B,EAAE,OAAiB,EAAE,MAAe,EAAE,IAAiB,EAAA;AAEhM,IAAA,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGA,cAAQ,CAAS,MAAM,IAAIC,cAAM,CAAC,QAAQ,CAAC;AACrF,IAAA,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAGD,cAAQ,CAAU,OAAO,IAAIE,eAAO,CAAC,IAAI,CAAC;AACtF,IAAA,MAAM,GAAG,GAAGC,gBAAU,CAACC,qBAAU,CAAC;AAClC,IAAA,MAAM,aAAa,GAAGC,YAAM,CAAgB,IAAI,CAAC;AAEjD,IAAA,aAAa,CAAC,OAAO,GAAGC,aAAO,CAAC,MAAK;AACjC,QAAA,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAY;AACtC,QAAA,QAAQ,CAAC,MAAM,GAAG,aAAa;AAC/B,QAAA,QAAQ,CAAC,OAAO,GAAG,cAAc;AACjC,QAAA,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC;QAC1C,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QAC9C,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;AACpC,QAAA,OAAO,QAAQ;AACnB,IAAA,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AAEnC,IAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGN,cAAQ,CAAkCO,4BAAoB,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACrI,MAAM,mBAAmB,GAAG,aAAa,CAAC,OAAO,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;IAE/FC,eAAS,CAAC,MAAK;QACX,MAAM,YAAY,GAAG,aAAa,CAAC,OAAQ,CAAC,SAAS,CAAC,QAAQ,IAAG;YAC7D,SAAS,CAACD,4BAAoB,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC,EAAE,IAAc,CAAC;AAElB,QAAA,OAAO,MAAK;YACR,YAAY,CAAC,WAAW,EAAE;AAC9B,QAAA,CAAC;AACL,IAAA,CAAC,EAAE,CAAC,GAAG,mBAAmB,EAAE,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;IAEhE,OAAO;QACH,MAAM;QACN,OAAO,OAAgB,KAAI;YACvB,iBAAiB,CAAC,OAAO,CAAC;QAC9B,CAAC;QACD,OAAO,IAAY,KAAI;YACnB,gBAAgB,CAAC,IAAIN,cAAM,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,QAAgB,KAAI;YACvB,gBAAgB,CAAC,IAAIA,cAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9D;KAAE;AACV;SAWgB,kBAAkB,CAAgF,KAA0B,EAAE,IAAiB,EAAE,OAAiB,EAAA;AAE9K,IAAA,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,0BAA0B,CAAgC,KAAK,EAAE,OAAO,EAAEA,cAAM,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC7H,IAAA,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC;AAC/B;AAYM,SAAU,4BAA4B,CAAgF,KAA0B,EAAE,MAAc,EAAE,IAAiB,EAAE,OAAiB,EAAA;IAExM,OAAO,0BAA0B,CAAgC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC;AAClG;;;;;"}
@@ -0,0 +1,19 @@
1
+ import { IQueryFor, QueryResultWithState, Paging, Sorting } from '@cratis/arc/queries';
2
+ import { Constructor } from '@cratis/fundamentals';
3
+ import { SetSorting } from './SetSorting';
4
+ import { SetPage } from './SetPage';
5
+ import { SetPageSize } from './SetPageSize';
6
+ export type PerformQuery<TArguments = object> = (args?: TArguments) => Promise<void>;
7
+ export declare function useQuery<TDataType, TQuery extends IQueryFor<TDataType>, TArguments = object>(query: Constructor<TQuery>, args?: TArguments, sorting?: Sorting): [
8
+ QueryResultWithState<TDataType>,
9
+ PerformQuery<TArguments>,
10
+ SetSorting
11
+ ];
12
+ export declare function useQueryWithPaging<TDataType, TQuery extends IQueryFor<TDataType>, TArguments = object>(query: Constructor<TQuery>, paging: Paging, args?: TArguments, sorting?: Sorting): [
13
+ QueryResultWithState<TDataType>,
14
+ PerformQuery<TArguments>,
15
+ SetSorting,
16
+ SetPage,
17
+ SetPageSize
18
+ ];
19
+ //# sourceMappingURL=useQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../../queries/useQuery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAe,MAAM,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,MAAM,MAAM,YAAY,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AA+ErF,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,SAAS,SAAS,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,GAC1J;IAAC,oBAAoB,CAAC,SAAS,CAAC;IAAE,YAAY,CAAC,UAAU,CAAC;IAAE,UAAU;CAAC,CAG1E;AAYD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,SAAS,SAAS,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,GACpL;IAAC,oBAAoB,CAAC,SAAS,CAAC;IAAE,YAAY,CAAC,UAAU,CAAC;IAAE,UAAU;IAAE,OAAO;IAAE,WAAW;CAAC,CAEhG"}