@dwidge/json-forms-expo 0.0.2

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 (301) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +30 -0
  3. package/dist/cjs/FileAttachment/AttachmentEdit.js +14 -0
  4. package/dist/cjs/FileAttachment/AttachmentEdit.js.map +1 -0
  5. package/dist/cjs/FileAttachment/AttachmentListEdit.js +21 -0
  6. package/dist/cjs/FileAttachment/AttachmentListEdit.js.map +1 -0
  7. package/dist/cjs/FileAttachment/AttachmentListView.js +13 -0
  8. package/dist/cjs/FileAttachment/AttachmentListView.js.map +1 -0
  9. package/dist/cjs/FileAttachment/AttachmentScreen.js +14 -0
  10. package/dist/cjs/FileAttachment/AttachmentScreen.js.map +1 -0
  11. package/dist/cjs/FileAttachment/AttachmentView.js +14 -0
  12. package/dist/cjs/FileAttachment/AttachmentView.js.map +1 -0
  13. package/dist/cjs/FileAttachment/index.js +24 -0
  14. package/dist/cjs/FileAttachment/index.js.map +1 -0
  15. package/dist/cjs/FileAttachment/useFileAttachmentUrl.js +12 -0
  16. package/dist/cjs/FileAttachment/useFileAttachmentUrl.js.map +1 -0
  17. package/dist/cjs/FileAttachment/useFileUrl.js +11 -0
  18. package/dist/cjs/FileAttachment/useFileUrl.js.map +1 -0
  19. package/dist/cjs/Form/EditFormAttachmentScreen.js +61 -0
  20. package/dist/cjs/Form/EditFormAttachmentScreen.js.map +1 -0
  21. package/dist/cjs/Form/FormEdit.js +12 -0
  22. package/dist/cjs/Form/FormEdit.js.map +1 -0
  23. package/dist/cjs/Form/FormEditScreen.js +29 -0
  24. package/dist/cjs/Form/FormEditScreen.js.map +1 -0
  25. package/dist/cjs/Form/FormListEdit.js +22 -0
  26. package/dist/cjs/Form/FormListEdit.js.map +1 -0
  27. package/dist/cjs/Form/FormListScreen.js +28 -0
  28. package/dist/cjs/Form/FormListScreen.js.map +1 -0
  29. package/dist/cjs/Form/FormListView.js +18 -0
  30. package/dist/cjs/Form/FormListView.js.map +1 -0
  31. package/dist/cjs/Form/FormSelectScreen.js +21 -0
  32. package/dist/cjs/Form/FormSelectScreen.js.map +1 -0
  33. package/dist/cjs/Form/FormSelectView.js +16 -0
  34. package/dist/cjs/Form/FormSelectView.js.map +1 -0
  35. package/dist/cjs/Form/FormView.js +12 -0
  36. package/dist/cjs/Form/FormView.js.map +1 -0
  37. package/dist/cjs/Form/index.js +26 -0
  38. package/dist/cjs/Form/index.js.map +1 -0
  39. package/dist/cjs/FormAttachment/FormAttachmentEdit.js +30 -0
  40. package/dist/cjs/FormAttachment/FormAttachmentEdit.js.map +1 -0
  41. package/dist/cjs/FormAttachment/FormAttachmentEditScreen.js +15 -0
  42. package/dist/cjs/FormAttachment/FormAttachmentEditScreen.js.map +1 -0
  43. package/dist/cjs/FormAttachment/FormAttachmentListEdit.js +27 -0
  44. package/dist/cjs/FormAttachment/FormAttachmentListEdit.js.map +1 -0
  45. package/dist/cjs/FormAttachment/FormAttachmentListScreen.js +31 -0
  46. package/dist/cjs/FormAttachment/FormAttachmentListScreen.js.map +1 -0
  47. package/dist/cjs/FormAttachment/FormAttachmentListView.js +21 -0
  48. package/dist/cjs/FormAttachment/FormAttachmentListView.js.map +1 -0
  49. package/dist/cjs/FormAttachment/FormAttachmentView.js +15 -0
  50. package/dist/cjs/FormAttachment/FormAttachmentView.js.map +1 -0
  51. package/dist/cjs/FormAttachment/index.js +23 -0
  52. package/dist/cjs/FormAttachment/index.js.map +1 -0
  53. package/dist/cjs/hooks/FileApi.js +15 -0
  54. package/dist/cjs/hooks/FileApi.js.map +1 -0
  55. package/dist/cjs/hooks/FileAttachmentApi.js +13 -0
  56. package/dist/cjs/hooks/FileAttachmentApi.js.map +1 -0
  57. package/dist/cjs/hooks/FormApi.js +13 -0
  58. package/dist/cjs/hooks/FormApi.js.map +1 -0
  59. package/dist/cjs/hooks/FormAttachmentApi.js +12 -0
  60. package/dist/cjs/hooks/FormAttachmentApi.js.map +1 -0
  61. package/dist/cjs/hooks/FormsContext.js +30 -0
  62. package/dist/cjs/hooks/FormsContext.js.map +1 -0
  63. package/dist/cjs/hooks/createApi.js +40 -0
  64. package/dist/cjs/hooks/createApi.js.map +1 -0
  65. package/dist/cjs/hooks/index.js +27 -0
  66. package/dist/cjs/hooks/index.js.map +1 -0
  67. package/dist/cjs/hooks/useCreateBlankAttachment.js +21 -0
  68. package/dist/cjs/hooks/useCreateBlankAttachment.js.map +1 -0
  69. package/dist/cjs/hooks/useCreateBlankForm.js +12 -0
  70. package/dist/cjs/hooks/useCreateBlankForm.js.map +1 -0
  71. package/dist/cjs/hooks/useCreateBlankFormAttachment.js +14 -0
  72. package/dist/cjs/hooks/useCreateBlankFormAttachment.js.map +1 -0
  73. package/dist/cjs/hooks/useParams.js +8 -0
  74. package/dist/cjs/hooks/useParams.js.map +1 -0
  75. package/dist/cjs/index.js +22 -0
  76. package/dist/cjs/index.js.map +1 -0
  77. package/dist/cjs/package.json +3 -0
  78. package/dist/cjs/types/File2.js +3 -0
  79. package/dist/cjs/types/File2.js.map +1 -0
  80. package/dist/cjs/types/FileAttachment.js +3 -0
  81. package/dist/cjs/types/FileAttachment.js.map +1 -0
  82. package/dist/cjs/types/Form1.js +3 -0
  83. package/dist/cjs/types/Form1.js.map +1 -0
  84. package/dist/cjs/types/FormAttachment.js +3 -0
  85. package/dist/cjs/types/FormAttachment.js.map +1 -0
  86. package/dist/cjs/types/index.js +21 -0
  87. package/dist/cjs/types/index.js.map +1 -0
  88. package/dist/esm/FileAttachment/AttachmentEdit.js +10 -0
  89. package/dist/esm/FileAttachment/AttachmentEdit.js.map +1 -0
  90. package/dist/esm/FileAttachment/AttachmentListEdit.js +14 -0
  91. package/dist/esm/FileAttachment/AttachmentListEdit.js.map +1 -0
  92. package/dist/esm/FileAttachment/AttachmentListView.js +9 -0
  93. package/dist/esm/FileAttachment/AttachmentListView.js.map +1 -0
  94. package/dist/esm/FileAttachment/AttachmentScreen.js +10 -0
  95. package/dist/esm/FileAttachment/AttachmentScreen.js.map +1 -0
  96. package/dist/esm/FileAttachment/AttachmentView.js +10 -0
  97. package/dist/esm/FileAttachment/AttachmentView.js.map +1 -0
  98. package/dist/esm/FileAttachment/index.js +8 -0
  99. package/dist/esm/FileAttachment/index.js.map +1 -0
  100. package/dist/esm/FileAttachment/useFileAttachmentUrl.js +8 -0
  101. package/dist/esm/FileAttachment/useFileAttachmentUrl.js.map +1 -0
  102. package/dist/esm/FileAttachment/useFileUrl.js +7 -0
  103. package/dist/esm/FileAttachment/useFileUrl.js.map +1 -0
  104. package/dist/esm/Form/EditFormAttachmentScreen.js +57 -0
  105. package/dist/esm/Form/EditFormAttachmentScreen.js.map +1 -0
  106. package/dist/esm/Form/FormEdit.js +8 -0
  107. package/dist/esm/Form/FormEdit.js.map +1 -0
  108. package/dist/esm/Form/FormEditScreen.js +25 -0
  109. package/dist/esm/Form/FormEditScreen.js.map +1 -0
  110. package/dist/esm/Form/FormListEdit.js +15 -0
  111. package/dist/esm/Form/FormListEdit.js.map +1 -0
  112. package/dist/esm/Form/FormListScreen.js +24 -0
  113. package/dist/esm/Form/FormListScreen.js.map +1 -0
  114. package/dist/esm/Form/FormListView.js +11 -0
  115. package/dist/esm/Form/FormListView.js.map +1 -0
  116. package/dist/esm/Form/FormSelectScreen.js +17 -0
  117. package/dist/esm/Form/FormSelectScreen.js.map +1 -0
  118. package/dist/esm/Form/FormSelectView.js +12 -0
  119. package/dist/esm/Form/FormSelectView.js.map +1 -0
  120. package/dist/esm/Form/FormView.js +8 -0
  121. package/dist/esm/Form/FormView.js.map +1 -0
  122. package/dist/esm/Form/index.js +10 -0
  123. package/dist/esm/Form/index.js.map +1 -0
  124. package/dist/esm/FormAttachment/FormAttachmentEdit.js +26 -0
  125. package/dist/esm/FormAttachment/FormAttachmentEdit.js.map +1 -0
  126. package/dist/esm/FormAttachment/FormAttachmentEditScreen.js +11 -0
  127. package/dist/esm/FormAttachment/FormAttachmentEditScreen.js.map +1 -0
  128. package/dist/esm/FormAttachment/FormAttachmentListEdit.js +20 -0
  129. package/dist/esm/FormAttachment/FormAttachmentListEdit.js.map +1 -0
  130. package/dist/esm/FormAttachment/FormAttachmentListScreen.js +27 -0
  131. package/dist/esm/FormAttachment/FormAttachmentListScreen.js.map +1 -0
  132. package/dist/esm/FormAttachment/FormAttachmentListView.js +14 -0
  133. package/dist/esm/FormAttachment/FormAttachmentListView.js.map +1 -0
  134. package/dist/esm/FormAttachment/FormAttachmentView.js +11 -0
  135. package/dist/esm/FormAttachment/FormAttachmentView.js.map +1 -0
  136. package/dist/esm/FormAttachment/index.js +7 -0
  137. package/dist/esm/FormAttachment/index.js.map +1 -0
  138. package/dist/esm/hooks/FileApi.js +12 -0
  139. package/dist/esm/hooks/FileApi.js.map +1 -0
  140. package/dist/esm/hooks/FileAttachmentApi.js +10 -0
  141. package/dist/esm/hooks/FileAttachmentApi.js.map +1 -0
  142. package/dist/esm/hooks/FormApi.js +10 -0
  143. package/dist/esm/hooks/FormApi.js.map +1 -0
  144. package/dist/esm/hooks/FormAttachmentApi.js +9 -0
  145. package/dist/esm/hooks/FormAttachmentApi.js.map +1 -0
  146. package/dist/esm/hooks/FormsContext.js +26 -0
  147. package/dist/esm/hooks/FormsContext.js.map +1 -0
  148. package/dist/esm/hooks/createApi.js +36 -0
  149. package/dist/esm/hooks/createApi.js.map +1 -0
  150. package/dist/esm/hooks/index.js +11 -0
  151. package/dist/esm/hooks/index.js.map +1 -0
  152. package/dist/esm/hooks/useCreateBlankAttachment.js +14 -0
  153. package/dist/esm/hooks/useCreateBlankAttachment.js.map +1 -0
  154. package/dist/esm/hooks/useCreateBlankForm.js +8 -0
  155. package/dist/esm/hooks/useCreateBlankForm.js.map +1 -0
  156. package/dist/esm/hooks/useCreateBlankFormAttachment.js +10 -0
  157. package/dist/esm/hooks/useCreateBlankFormAttachment.js.map +1 -0
  158. package/dist/esm/hooks/useParams.js +4 -0
  159. package/dist/esm/hooks/useParams.js.map +1 -0
  160. package/dist/esm/index.js +6 -0
  161. package/dist/esm/index.js.map +1 -0
  162. package/dist/esm/package.json +3 -0
  163. package/dist/esm/types/File2.js +2 -0
  164. package/dist/esm/types/File2.js.map +1 -0
  165. package/dist/esm/types/FileAttachment.js +2 -0
  166. package/dist/esm/types/FileAttachment.js.map +1 -0
  167. package/dist/esm/types/Form1.js +2 -0
  168. package/dist/esm/types/Form1.js.map +1 -0
  169. package/dist/esm/types/FormAttachment.js +2 -0
  170. package/dist/esm/types/FormAttachment.js.map +1 -0
  171. package/dist/esm/types/index.js +5 -0
  172. package/dist/esm/types/index.js.map +1 -0
  173. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  174. package/dist/tsconfig.tsbuildinfo +1 -0
  175. package/dist/types/FileAttachment/AttachmentEdit.d.ts +6 -0
  176. package/dist/types/FileAttachment/AttachmentEdit.d.ts.map +1 -0
  177. package/dist/types/FileAttachment/AttachmentListEdit.d.ts +9 -0
  178. package/dist/types/FileAttachment/AttachmentListEdit.d.ts.map +1 -0
  179. package/dist/types/FileAttachment/AttachmentListView.d.ts +9 -0
  180. package/dist/types/FileAttachment/AttachmentListView.d.ts.map +1 -0
  181. package/dist/types/FileAttachment/AttachmentScreen.d.ts +8 -0
  182. package/dist/types/FileAttachment/AttachmentScreen.d.ts.map +1 -0
  183. package/dist/types/FileAttachment/AttachmentView.d.ts +6 -0
  184. package/dist/types/FileAttachment/AttachmentView.d.ts.map +1 -0
  185. package/dist/types/FileAttachment/index.d.ts +8 -0
  186. package/dist/types/FileAttachment/index.d.ts.map +1 -0
  187. package/dist/types/FileAttachment/useFileAttachmentUrl.d.ts +2 -0
  188. package/dist/types/FileAttachment/useFileAttachmentUrl.d.ts.map +1 -0
  189. package/dist/types/FileAttachment/useFileUrl.d.ts +2 -0
  190. package/dist/types/FileAttachment/useFileUrl.d.ts.map +1 -0
  191. package/dist/types/Form/EditFormAttachmentScreen.d.ts +40 -0
  192. package/dist/types/Form/EditFormAttachmentScreen.d.ts.map +1 -0
  193. package/dist/types/Form/FormEdit.d.ts +4 -0
  194. package/dist/types/Form/FormEdit.d.ts.map +1 -0
  195. package/dist/types/Form/FormEditScreen.d.ts +4 -0
  196. package/dist/types/Form/FormEditScreen.d.ts.map +1 -0
  197. package/dist/types/Form/FormListEdit.d.ts +6 -0
  198. package/dist/types/Form/FormListEdit.d.ts.map +1 -0
  199. package/dist/types/Form/FormListScreen.d.ts +8 -0
  200. package/dist/types/Form/FormListScreen.d.ts.map +1 -0
  201. package/dist/types/Form/FormListView.d.ts +5 -0
  202. package/dist/types/Form/FormListView.d.ts.map +1 -0
  203. package/dist/types/Form/FormSelectScreen.d.ts +6 -0
  204. package/dist/types/Form/FormSelectScreen.d.ts.map +1 -0
  205. package/dist/types/Form/FormSelectView.d.ts +8 -0
  206. package/dist/types/Form/FormSelectView.d.ts.map +1 -0
  207. package/dist/types/Form/FormView.d.ts +5 -0
  208. package/dist/types/Form/FormView.d.ts.map +1 -0
  209. package/dist/types/Form/index.d.ts +10 -0
  210. package/dist/types/Form/index.d.ts.map +1 -0
  211. package/dist/types/FormAttachment/FormAttachmentEdit.d.ts +9 -0
  212. package/dist/types/FormAttachment/FormAttachmentEdit.d.ts.map +1 -0
  213. package/dist/types/FormAttachment/FormAttachmentEditScreen.d.ts +5 -0
  214. package/dist/types/FormAttachment/FormAttachmentEditScreen.d.ts.map +1 -0
  215. package/dist/types/FormAttachment/FormAttachmentListEdit.d.ts +11 -0
  216. package/dist/types/FormAttachment/FormAttachmentListEdit.d.ts.map +1 -0
  217. package/dist/types/FormAttachment/FormAttachmentListScreen.d.ts +7 -0
  218. package/dist/types/FormAttachment/FormAttachmentListScreen.d.ts.map +1 -0
  219. package/dist/types/FormAttachment/FormAttachmentListView.d.ts +5 -0
  220. package/dist/types/FormAttachment/FormAttachmentListView.d.ts.map +1 -0
  221. package/dist/types/FormAttachment/FormAttachmentView.d.ts +6 -0
  222. package/dist/types/FormAttachment/FormAttachmentView.d.ts.map +1 -0
  223. package/dist/types/FormAttachment/index.d.ts +7 -0
  224. package/dist/types/FormAttachment/index.d.ts.map +1 -0
  225. package/dist/types/hooks/FileApi.d.ts +35 -0
  226. package/dist/types/hooks/FileApi.d.ts.map +1 -0
  227. package/dist/types/hooks/FileAttachmentApi.d.ts +35 -0
  228. package/dist/types/hooks/FileAttachmentApi.d.ts.map +1 -0
  229. package/dist/types/hooks/FormApi.d.ts +35 -0
  230. package/dist/types/hooks/FormApi.d.ts.map +1 -0
  231. package/dist/types/hooks/FormAttachmentApi.d.ts +35 -0
  232. package/dist/types/hooks/FormAttachmentApi.d.ts.map +1 -0
  233. package/dist/types/hooks/FormsContext.d.ts +20 -0
  234. package/dist/types/hooks/FormsContext.d.ts.map +1 -0
  235. package/dist/types/hooks/createApi.d.ts +36 -0
  236. package/dist/types/hooks/createApi.d.ts.map +1 -0
  237. package/dist/types/hooks/index.d.ts +11 -0
  238. package/dist/types/hooks/index.d.ts.map +1 -0
  239. package/dist/types/hooks/useCreateBlankAttachment.d.ts +10 -0
  240. package/dist/types/hooks/useCreateBlankAttachment.d.ts.map +1 -0
  241. package/dist/types/hooks/useCreateBlankForm.d.ts +6 -0
  242. package/dist/types/hooks/useCreateBlankForm.d.ts.map +1 -0
  243. package/dist/types/hooks/useCreateBlankFormAttachment.d.ts +13 -0
  244. package/dist/types/hooks/useCreateBlankFormAttachment.d.ts.map +1 -0
  245. package/dist/types/hooks/useParams.d.ts +7 -0
  246. package/dist/types/hooks/useParams.d.ts.map +1 -0
  247. package/dist/types/index.d.ts +6 -0
  248. package/dist/types/index.d.ts.map +1 -0
  249. package/dist/types/types/File2.d.ts +16 -0
  250. package/dist/types/types/File2.d.ts.map +1 -0
  251. package/dist/types/types/FileAttachment.d.ts +10 -0
  252. package/dist/types/types/FileAttachment.d.ts.map +1 -0
  253. package/dist/types/types/Form1.d.ts +14 -0
  254. package/dist/types/types/Form1.d.ts.map +1 -0
  255. package/dist/types/types/FormAttachment.d.ts +13 -0
  256. package/dist/types/types/FormAttachment.d.ts.map +1 -0
  257. package/dist/types/types/index.d.ts +5 -0
  258. package/dist/types/types/index.d.ts.map +1 -0
  259. package/package.json +73 -0
  260. package/src/FileAttachment/AttachmentEdit.tsx +14 -0
  261. package/src/FileAttachment/AttachmentListEdit.tsx +45 -0
  262. package/src/FileAttachment/AttachmentListView.tsx +12 -0
  263. package/src/FileAttachment/AttachmentScreen.tsx +21 -0
  264. package/src/FileAttachment/AttachmentView.tsx +14 -0
  265. package/src/FileAttachment/index.ts +7 -0
  266. package/src/FileAttachment/useFileAttachmentUrl.ts +15 -0
  267. package/src/FileAttachment/useFileUrl.ts +12 -0
  268. package/src/Form/EditFormAttachmentScreen.tsx +101 -0
  269. package/src/Form/FormEdit.tsx +15 -0
  270. package/src/Form/FormEditScreen.tsx +54 -0
  271. package/src/Form/FormListEdit.tsx +32 -0
  272. package/src/Form/FormListScreen.tsx +54 -0
  273. package/src/Form/FormListView.tsx +23 -0
  274. package/src/Form/FormSelectScreen.tsx +49 -0
  275. package/src/Form/FormSelectView.tsx +31 -0
  276. package/src/Form/FormView.tsx +11 -0
  277. package/src/Form/index.ts +9 -0
  278. package/src/FormAttachment/FormAttachmentEdit.tsx +72 -0
  279. package/src/FormAttachment/FormAttachmentEditScreen.tsx +21 -0
  280. package/src/FormAttachment/FormAttachmentListEdit.tsx +40 -0
  281. package/src/FormAttachment/FormAttachmentListScreen.tsx +62 -0
  282. package/src/FormAttachment/FormAttachmentListView.tsx +30 -0
  283. package/src/FormAttachment/FormAttachmentView.tsx +25 -0
  284. package/src/FormAttachment/index.ts +6 -0
  285. package/src/hooks/FileApi.ts +13 -0
  286. package/src/hooks/FileAttachmentApi.ts +11 -0
  287. package/src/hooks/FormApi.ts +11 -0
  288. package/src/hooks/FormAttachmentApi.ts +10 -0
  289. package/src/hooks/FormsContext.ts +29 -0
  290. package/src/hooks/createApi.ts +65 -0
  291. package/src/hooks/index.ts +10 -0
  292. package/src/hooks/useCreateBlankAttachment.ts +24 -0
  293. package/src/hooks/useCreateBlankForm.ts +12 -0
  294. package/src/hooks/useCreateBlankFormAttachment.ts +20 -0
  295. package/src/hooks/useParams.ts +9 -0
  296. package/src/index.ts +5 -0
  297. package/src/types/File2.ts +19 -0
  298. package/src/types/FileAttachment.ts +9 -0
  299. package/src/types/Form1.ts +17 -0
  300. package/src/types/FormAttachment.ts +19 -0
  301. package/src/types/index.ts +4 -0
@@ -0,0 +1,8 @@
1
+ export * from "./AttachmentEdit";
2
+ export * from "./AttachmentListEdit";
3
+ export * from "./AttachmentListView";
4
+ export * from "./AttachmentScreen";
5
+ export * from "./AttachmentView";
6
+ export * from "./useFileAttachmentUrl";
7
+ export * from "./useFileUrl";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/FileAttachment/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ // Copyright DWJ 2024.
2
+ // Distributed under the Boost Software License, Version 1.0.
3
+ // https://www.boost.org/LICENSE_1_0.txt
4
+ import { FileApi } from "../hooks/FileApi";
5
+ import { FileAttachmentApi } from "../hooks/FileAttachmentApi";
6
+ export const useFileAttachmentUrl = (attachmentId) => useFileAttachmentUrlInternal(attachmentId);
7
+ const useFileAttachmentUrlInternal = (attachmentId, attachment = FileAttachmentApi.useGetItem(attachmentId), file = FileApi.useGetItem(attachment?.FileId)) => file?.getUrl;
8
+ //# sourceMappingURL=useFileAttachmentUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFileAttachmentUrl.js","sourceRoot":"","sources":["../../../src/FileAttachment/useFileAttachmentUrl.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,YAAqB,EACM,EAAE,CAAC,4BAA4B,CAAC,YAAY,CAAC,CAAC;AAC3E,MAAM,4BAA4B,GAAG,CACnC,YAAqB,EACrB,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,YAAY,CAAC,EACvD,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,EAC7C,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC"}
@@ -0,0 +1,7 @@
1
+ // Copyright DWJ 2024.
2
+ // Distributed under the Boost Software License, Version 1.0.
3
+ // https://www.boost.org/LICENSE_1_0.txt
4
+ import { FileApi } from "../hooks/FileApi";
5
+ export const useFileUrl = (fileId) => useFileUrlInternal(fileId);
6
+ const useFileUrlInternal = (fileId, file = FileApi.useGetItem(fileId)) => file?.getUrl;
7
+ //# sourceMappingURL=useFileUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFileUrl.js","sourceRoot":"","sources":["../../../src/FileAttachment/useFileUrl.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAe,EAA6B,EAAE,CACvE,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,kBAAkB,GAAG,CACzB,MAAe,EACf,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EACjC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Copyright DWJ 2024.
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // https://www.boost.org/LICENSE_1_0.txt
5
+ import { StyledHeader } from "@dwidge/components-expo";
6
+ import { CenterView, ScreenView, ScrollView, StyledText, } from "@dwidge/components-rnw";
7
+ import { JSONSchemaForm } from "@dwidge/json-schema-form-rnw";
8
+ import { useState } from "react";
9
+ import { z } from "zod";
10
+ const useFormId = () => "123";
11
+ const useForm = (id) => useState({
12
+ title: "untitled",
13
+ fields: [],
14
+ });
15
+ const formSchema = {
16
+ type: "object",
17
+ properties: {
18
+ title: {
19
+ type: "string",
20
+ title: "Name",
21
+ },
22
+ fields: {
23
+ type: "array",
24
+ title: "Fields",
25
+ items: {
26
+ type: "object",
27
+ properties: {
28
+ title: {
29
+ type: "string",
30
+ title: "Name",
31
+ },
32
+ type: {
33
+ type: "string",
34
+ enum: ["string", "number", "boolean"],
35
+ title: "Type",
36
+ },
37
+ required: {
38
+ type: "boolean",
39
+ title: "Required",
40
+ },
41
+ },
42
+ required: ["title", "type", "required"],
43
+ },
44
+ },
45
+ },
46
+ required: ["title", "fields"],
47
+ };
48
+ const JsonFormSchema = z.object({
49
+ jsonSchema: z.string(),
50
+ uiSchema: z.string(),
51
+ });
52
+ const Form = z.object({
53
+ id: z.string(),
54
+ schema: JsonFormSchema,
55
+ });
56
+ export const EditFormAttachmentScreen = ({ form: [form, setForm] = useForm(useFormId()), }) => (_jsxs(ScreenView, { children: [_jsx(StyledHeader, { title: "Edit Form" }), form == null || !form ? (_jsx(CenterView, { children: _jsx(StyledText, { children: form === null ? "The form does not exist." : "Loading..." }) })) : (_jsx(ScrollView, { flex: true, gap: true, wide: true, pad: true, selfcenter: true, children: _jsx(JSONSchemaForm, { name: "FormSchema", schema: formSchema, value: form, onChange: setForm }) }))] }));
57
+ //# sourceMappingURL=EditFormAttachmentScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditFormAttachmentScreen.js","sourceRoot":"","sources":["../../../src/Form/EditFormAttachmentScreen.tsx"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;AAC9B,MAAM,OAAO,GAAG,CAAC,EAAW,EAAE,EAAE,CAC9B,QAAQ,CAA0B;IAChC,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,EAAE;CACX,CAAC,CAAC;AAaL,MAAM,UAAU,GAA6B;IAC3C,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,MAAM;SACd;QACD,MAAM,EAAE;YACN,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,MAAM;qBACd;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;wBACrC,KAAK,EAAE,MAAM;qBACd;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,UAAU;qBAClB;iBACF;gBACD,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC;aACxC;SACF;KACF;IACD,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;CAC9B,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;IACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,cAAc;CACvB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,GAC7C,EAAE,EAAE,CAAC,CACJ,MAAC,UAAU,eACT,KAAC,YAAY,IAAC,KAAK,EAAC,WAAW,GAAG,EACjC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACvB,KAAC,UAAU,cACT,KAAC,UAAU,cACR,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,YAAY,GAC/C,GACF,CACd,CAAC,CAAC,CAAC,CACF,KAAC,UAAU,IAAC,IAAI,QAAC,GAAG,QAAC,IAAI,QAAC,GAAG,QAAC,UAAU,kBACtC,KAAC,cAAc,IACb,IAAI,EAAC,YAAY,EACjB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,OAAO,GACjB,GACS,CACd,IACU,CACd,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Copyright DWJ 2024.
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // https://www.boost.org/LICENSE_1_0.txt
5
+ import { StyledLoader, StyledText, StyledView } from "@dwidge/components-rnw";
6
+ import { FormApi } from "../hooks/FormApi";
7
+ export const FormCard = ({ form = FormApi.useGetItem() }) => form ? (_jsx(StyledView, { flex: true, card: true, row: true, children: _jsx(StyledText, { children: form.name ?? "untitled" }) })) : (_jsx(StyledLoader, {}));
8
+ //# sourceMappingURL=FormEdit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormEdit.js","sourceRoot":"","sources":["../../../src/Form/FormEdit.tsx"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAC1D,IAAI,CAAC,CAAC,CAAC,CACL,KAAC,UAAU,IAAC,IAAI,QAAC,IAAI,QAAC,GAAG,kBACvB,KAAC,UAAU,cAAE,IAAI,CAAC,IAAI,IAAI,UAAU,GAAc,GACvC,CACd,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,KAAG,CACjB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Copyright DWJ 2024.
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // https://www.boost.org/LICENSE_1_0.txt
5
+ import { StyledHeader } from "@dwidge/components-expo";
6
+ import { CenterView, ScreenView, ScrollView, StyledText, } from "@dwidge/components-rnw";
7
+ import { defaultFormSchemaString, FormDesigner, FormSchema, } from "@dwidge/json-forms-designer";
8
+ import { FormApi } from "../hooks/FormApi";
9
+ import { useParams } from "../hooks/useParams";
10
+ export const FormEditScreen = ({ form: [form, setForm] = FormApi.useItem(useParams().FormId), }) => (_jsxs(ScreenView, { children: [_jsx(StyledHeader, { title: ["Form", form?.name].filter(Boolean).join(" - ") }), form == null || !form ? (_jsx(CenterView, { children: _jsx(StyledText, { children: form === null ? "The form does not exist." : "Loading..." }) })) : (_jsx(ScrollView, { flex: true, gap: true, wide: true, pad: true, selfcenter: true, children: _jsx(FormDesigner, { schemaString: [
11
+ form.schema ?? defaultFormSchemaString,
12
+ setForm &&
13
+ ((updater) => {
14
+ const next = typeof updater === "function"
15
+ ? updater(form.schema ?? defaultFormSchemaString)
16
+ : updater;
17
+ const parsed = FormSchema.parse(JSON.parse(next));
18
+ setForm?.((prev) => ({
19
+ ...prev,
20
+ name: parsed.schema.title,
21
+ schema: next,
22
+ }));
23
+ }),
24
+ ] }) }))] }));
25
+ //# sourceMappingURL=FormEditScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormEditScreen.js","sourceRoot":"","sources":["../../../src/Form/FormEditScreen.tsx"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,uBAAuB,EACvB,YAAY,EACZ,UAAU,GACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,GAC5D,EAAE,EAAE,CAAC,CACJ,MAAC,UAAU,eACT,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAI,EACxE,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACvB,KAAC,UAAU,cACT,KAAC,UAAU,cACR,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,YAAY,GAC/C,GACF,CACd,CAAC,CAAC,CAAC,CACF,KAAC,UAAU,IAAC,IAAI,QAAC,GAAG,QAAC,IAAI,QAAC,GAAG,QAAC,UAAU,kBACtC,KAAC,YAAY,IACX,YAAY,EAAE;oBACZ,IAAI,CAAC,MAAM,IAAI,uBAAuB;oBACtC,OAAO;wBACL,CAAC,CAAC,OAAO,EAAE,EAAE;4BACX,MAAM,IAAI,GACR,OAAO,OAAO,KAAK,UAAU;gCAC3B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,uBAAuB,CAAC;gCACjD,CAAC,CAAC,OAAO,CAAC;4BACd,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;4BAClD,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gCACnB,GAAG,IAAI;gCACP,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;gCACzB,MAAM,EAAE,IAAI;6BACb,CAAC,CAAC,CAAC;wBACN,CAAC,CAAC;iBACL,GACD,GACS,CACd,IACU,CACd,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Copyright DWJ 2024.
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // https://www.boost.org/LICENSE_1_0.txt
5
+ import { UnstyledList, viewStyles } from "@dwidge/components-rnw";
6
+ import { useNavAction2 } from "@dwidge/hooks-expo";
7
+ import assert from "assert";
8
+ import { useState } from "react";
9
+ import { FormApi } from "../hooks/FormApi";
10
+ import { useNavRoutes } from "../hooks/FormsContext";
11
+ import { FormCard } from "./FormEdit";
12
+ export const FormListEdit = ({ elements = FormApi.useGetList(), selection: [selection, setSelection] = useState([]), onPress = useNavAction2(useNavRoutes().FORM_EDIT_SCREEN, async (id) => ({
13
+ FormId: id,
14
+ })), }) => (_jsx(UnstyledList, { items: elements, keyExtractor: (item) => (assert(item.id), item.id), selection: [selection, setSelection], render: (item) => _jsx(FormCard, { form: item }), selectStyle: viewStyles.select, style: viewStyles.unselect, onPress: onPress }));
15
+ //# sourceMappingURL=FormListEdit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormListEdit.js","sourceRoot":"","sources":["../../../src/Form/FormListEdit.tsx"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,EAC/B,SAAS,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,EAC7D,OAAO,GAAG,aAAa,CACrB,YAAY,EAAE,CAAC,gBAAgB,EAC/B,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,CAAC;IACrB,MAAM,EAAE,EAAE;CACX,CAAC,CACH,GACF,EAAE,EAAE,CAAC,CACJ,KAAC,YAAY,IACX,KAAK,EAAE,QAAQ,EACf,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAClD,SAAS,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,EACpC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,GAAI,EAC1C,WAAW,EAAE,UAAU,CAAC,MAAM,EAC9B,KAAK,EAAE,UAAU,CAAC,QAAQ,EAC1B,OAAO,EAAE,OAAO,GAChB,CACH,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Copyright DWJ 2024.
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // https://www.boost.org/LICENSE_1_0.txt
5
+ import { StyledHeader } from "@dwidge/components-expo";
6
+ import { CenterView, ScreenView, ScrollView, StyledFontAwesome, StyledView, } from "@dwidge/components-rnw";
7
+ import { useMemoState } from "@dwidge/hooks-react";
8
+ import { TouchableOpacity } from "react-native";
9
+ import { FormApi } from "../hooks/FormApi";
10
+ import { FormListEdit } from "./FormListEdit";
11
+ import { useCreateBlankForm } from "../hooks/useCreateBlankForm";
12
+ export const FormListScreen = ({ onCreate = useCreateBlankForm(), onDeleteList = FormApi.useDeleteList(), selection = useMemoState([]), }) => (_jsxs(ScreenView, { children: [_jsx(StyledHeader, { title: "Forms", actions: [
13
+ {
14
+ icon: "remove-circle",
15
+ onPress: onDeleteList && selection[0].length
16
+ ? () => onDeleteList(selection[0].map((id) => ({ id })))
17
+ : undefined,
18
+ },
19
+ {
20
+ icon: "add-circle",
21
+ onPress: onCreate,
22
+ },
23
+ ] }), _jsx(ScrollView, { gap: true, pad: true, children: _jsxs(StyledView, { flex: true, column: true, children: [_jsx(StyledView, { children: _jsx(FormListEdit, { selection: selection }) }), _jsx(TouchableOpacity, { style: { flex: 1 }, onPress: onCreate, children: _jsx(CenterView, { row: true, gap: true, children: _jsx(StyledFontAwesome, { name: "plus", size: 30 }) }) })] }) })] }));
24
+ //# sourceMappingURL=FormListScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormListScreen.js","sourceRoot":"","sources":["../../../src/Form/FormListScreen.tsx"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,QAAQ,GAAG,kBAAkB,EAAE,EAC/B,YAAY,GAAG,OAAO,CAAC,aAAa,EAAE,EACtC,SAAS,GAAG,YAAY,CAAW,EAAE,CAAC,GACvC,EAAE,EAAE,CAAC,CACJ,MAAC,UAAU,eACT,KAAC,YAAY,IACX,KAAK,EAAC,OAAO,EACb,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,eAAe;oBACrB,OAAO,EACL,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM;wBACjC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;wBACxD,CAAC,CAAC,SAAS;iBAChB;gBACD;oBACE,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,QAAQ;iBAClB;aACF,GACD,EACF,KAAC,UAAU,IAAC,GAAG,QAAC,GAAG,kBACjB,MAAC,UAAU,IAAC,IAAI,QAAC,MAAM,mBACrB,KAAC,UAAU,cACT,KAAC,YAAY,IAAC,SAAS,EAAE,SAAS,GAAI,GAC3B,EACb,KAAC,gBAAgB,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,YACrD,KAAC,UAAU,IAAC,GAAG,QAAC,GAAG,kBACjB,KAAC,iBAAiB,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,EAAE,GAAI,GAChC,GACI,IACR,GACF,IACF,CACd,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Copyright DWJ 2024.
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // https://www.boost.org/LICENSE_1_0.txt
5
+ import { UnstyledList, viewStyles } from "@dwidge/components-rnw";
6
+ import assert from "assert";
7
+ import { useState } from "react";
8
+ import { FormApi } from "../hooks/FormApi";
9
+ import { FormView } from "./FormView";
10
+ export const FormListView = ({ elements = FormApi.useGetList(), selection: [selection, setSelection] = useState([]), }) => (_jsx(UnstyledList, { items: elements, keyExtractor: (item) => (assert(item.id), item.id), selection: [selection, setSelection], render: (item) => _jsx(FormView, { form: item }), selectStyle: viewStyles.select, style: viewStyles.unselect }));
11
+ //# sourceMappingURL=FormListView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormListView.js","sourceRoot":"","sources":["../../../src/Form/FormListView.tsx"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,EAC/B,SAAS,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,GAC9D,EAAE,EAAE,CAAC,CACJ,KAAC,YAAY,IACX,KAAK,EAAE,QAAQ,EACf,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAClD,SAAS,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,EACpC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,GAAI,EAC1C,WAAW,EAAE,UAAU,CAAC,MAAM,EAC9B,KAAK,EAAE,UAAU,CAAC,QAAQ,GAC1B,CACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Copyright DWJ 2024.
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // https://www.boost.org/LICENSE_1_0.txt
5
+ import { useState } from "react";
6
+ import { ScreenView, ScrollView, StyledText, StyledView, } from "@dwidge/components-rnw";
7
+ import { useNavAction2 } from "@dwidge/hooks-expo";
8
+ import { StyledButton } from "@dwidge/components-rnw";
9
+ import { FormSelectView } from "./FormSelectView";
10
+ import { useNavRoutes } from "../hooks/FormsContext";
11
+ import { StyledHeader } from "@dwidge/components-expo";
12
+ import { useCreateBlankFormAttachment } from "../hooks/useCreateBlankFormAttachment";
13
+ const useOnSelectForm = () => useNavAction2(useNavRoutes().FORM_ATTACHMENT_EDIT_SCREEN, useCreateBlankFormAttachment({}));
14
+ export const FormSelectScreen = ({ onSelectForm = useOnSelectForm(), selected: [selected, setSelected] = useState([]), }) => (_jsxs(ScreenView, { children: [_jsx(StyledHeader, { title: "Select Form" }), _jsxs(ScrollView, { gap: true, pad: true, children: [_jsx(StyledView, { children: _jsx(StyledText, { center: true, children: "Select from the list of forms below, or use the search option above." }) }), _jsx(FormSelectView, { selected: [selected, setSelected] }), _jsx(StyledButton, { onPress: selected.length > 0 && onSelectForm
15
+ ? () => onSelectForm(selected.map((id) => ({ id })))
16
+ : undefined, children: "Select Form" })] })] }));
17
+ //# sourceMappingURL=FormSelectScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormSelectScreen.js","sourceRoot":"","sources":["../../../src/Form/FormSelectScreen.tsx"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAErF,MAAM,eAAe,GAAG,GAAG,EAAE,CAC3B,aAAa,CACX,YAAY,EAAE,CAAC,2BAA2B,EAC1C,4BAA4B,CAAC,EAAE,CAAC,CACjC,CAAC;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,YAAY,GAAG,eAAe,EAAE,EAChC,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,GAC3D,EAAE,EAAE,CAAC,CACJ,MAAC,UAAU,eACT,KAAC,YAAY,IAAC,KAAK,EAAC,aAAa,GAAG,EACpC,MAAC,UAAU,IAAC,GAAG,QAAC,GAAG,mBACjB,KAAC,UAAU,cACT,KAAC,UAAU,IAAC,MAAM,2FAEL,GACF,EACb,KAAC,cAAc,IAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAI,EACrD,KAAC,YAAY,IACX,OAAO,EACL,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY;wBACjC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;wBACpD,CAAC,CAAC,SAAS,4BAIF,IACJ,IACF,CACd,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Copyright DWJ 2024.
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // https://www.boost.org/LICENSE_1_0.txt
5
+ import { StyledButton } from "@dwidge/components-rnw";
6
+ import { useState } from "react";
7
+ import { FormApi } from "../hooks/FormApi";
8
+ import { FormListView } from "./FormListView";
9
+ export const FormSelectView = ({ formList = FormApi.useGetList(), selected: [selected, setSelected] = useState([]), searchValue: [searchValue, setSearchValue] = useState(""), createFormList = FormApi.useCreateList(), }) => (_jsxs(_Fragment, { children: [_jsx(FormListView, { elements: searchValue
10
+ ? formList?.filter((form) => form.name?.toLowerCase().includes(searchValue.toLowerCase()))
11
+ : formList, selection: [selected, setSelected] }), _jsx(StyledButton, { onPress: createFormList && (() => createFormList([{}])), children: "Create New Form" })] }));
12
+ //# sourceMappingURL=FormSelectView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormSelectView.js","sourceRoot":"","sources":["../../../src/Form/FormSelectView.tsx"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAa,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,EAC/B,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,EAC1D,WAAW,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,EACzD,cAAc,GAAG,OAAO,CAAC,aAAa,EAAE,GACzC,EAAa,EAAE,CAAC,CACf,8BACE,KAAC,YAAY,IACX,QAAQ,EACN,WAAW;gBACT,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACxB,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAC7D;gBACH,CAAC,CAAC,QAAQ,EAEd,SAAS,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,GAClC,EACF,KAAC,YAAY,IAAC,OAAO,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gCAEtD,IACd,CACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Copyright DWJ 2024.
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // https://www.boost.org/LICENSE_1_0.txt
5
+ import { StyledText } from "@dwidge/components-rnw";
6
+ import { FormApi } from "../hooks/FormApi";
7
+ export const FormView = ({ form = FormApi.useGetItem(), onPress = () => { }, }) => _jsx(StyledText, { children: form?.name || "untitled" });
8
+ //# sourceMappingURL=FormView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormView.js","sourceRoot":"","sources":["../../../src/Form/FormView.tsx"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,IAAI,GAAG,OAAO,CAAC,UAAU,EAAE,EAC3B,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,GACnB,EAAE,EAAE,CAAC,KAAC,UAAU,cAAE,IAAI,EAAE,IAAI,IAAI,UAAU,GAAc,CAAC"}
@@ -0,0 +1,10 @@
1
+ export * from "./EditFormAttachmentScreen";
2
+ export * from "./FormEdit";
3
+ export * from "./FormEditScreen";
4
+ export * from "./FormListEdit";
5
+ export * from "./FormListScreen";
6
+ export * from "./FormListView";
7
+ export * from "./FormSelectScreen";
8
+ export * from "./FormSelectView";
9
+ export * from "./FormView";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Form/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Copyright DWJ 2024.
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // https://www.boost.org/LICENSE_1_0.txt
5
+ import { StyledButton, StyledLoader, StyledText } from "@dwidge/components-rnw";
6
+ import { useNavAction2 } from "@dwidge/hooks-expo";
7
+ import { defaultFormSchemaString, defaultJsonFormDataString, FormSubmit, } from "@dwidge/json-forms-designer";
8
+ import { useContext } from "react";
9
+ import { AttachmentListEdit } from "../FileAttachment/AttachmentListEdit";
10
+ import { FormApi } from "../hooks/FormApi";
11
+ import { FormAttachmentApi } from "../hooks/FormAttachmentApi";
12
+ import { FormsContext } from "../hooks/FormsContext";
13
+ import { useParams } from "../hooks/useParams";
14
+ export const FormAttachmentEdit = ({ id = useParams().FormAttachmentId, formAttachment: [formAttachment, setFormAttachment,] = FormAttachmentApi.useItem(id), form = FormApi.useGetItem(formAttachment?.FormId), onEditForm = useNavAction2(useContext(FormsContext).routes.FORM_EDIT_SCREEN, async (key) => ({
15
+ FormId: key,
16
+ })), onSaveForm = useNavAction2(useContext(FormsContext).routes.FORM_ATTACHMENT_LIST_SCREEN, async () => ({})), }) => formAttachment === undefined || form === undefined ? (_jsx(StyledLoader, {})) : formAttachment === null || form === null ? (_jsx(StyledText, { children: "No form" })) : form.schema ? (_jsxs(_Fragment, { children: [_jsx(FormSubmit, { dataString: [
17
+ formAttachment.data ?? defaultJsonFormDataString,
18
+ setFormAttachment &&
19
+ ((data) => setFormAttachment((prev) => ({
20
+ ...prev,
21
+ data: typeof data === "function"
22
+ ? data(prev?.data ?? defaultJsonFormDataString)
23
+ : data,
24
+ }))),
25
+ ], schemaString: [form.schema ?? defaultFormSchemaString] }), _jsx(AttachmentListEdit, { ids: { FormAttachmentId: formAttachment.id } }), _jsx(StyledButton, { onPress: onSaveForm, children: "Save" })] })) : (_jsxs(_Fragment, { children: [_jsx(StyledText, { children: "This form has not been created yet." }), onEditForm && (_jsx(StyledButton, { onPress: () => onEditForm(form.id), children: "Edit Form" }))] }));
26
+ //# sourceMappingURL=FormAttachmentEdit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormAttachmentEdit.js","sourceRoot":"","sources":["../../../src/FormAttachment/FormAttachmentEdit.tsx"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,UAAU,GACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,EAAE,GAAG,SAAS,EAAE,CAAC,gBAAgB,EACjC,cAAc,EAAE,CACd,cAAc,EACd,iBAAiB,EAClB,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,EACjC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,EACjD,UAAU,GAAG,aAAa,CACxB,UAAU,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,gBAAgB,EAChD,KAAK,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG;CACZ,CAAC,CACH,EACD,UAAU,GAAG,aAAa,CACxB,UAAU,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,2BAA2B,EAC3D,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CACjB,GACF,EAAE,EAAE,CACH,cAAc,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CACnD,KAAC,YAAY,KAAG,CACjB,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAC7C,KAAC,UAAU,0BAAqB,CACjC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAChB,8BACE,KAAC,UAAU,IACT,UAAU,EAAE;gBACV,cAAc,CAAC,IAAI,IAAI,yBAAyB;gBAChD,iBAAiB;oBACf,CAAC,CAAC,IAAI,EAAE,EAAE,CACR,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC3B,GAAG,IAAI;wBACP,IAAI,EACF,OAAO,IAAI,KAAK,UAAU;4BACxB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,yBAAyB,CAAC;4BAC/C,CAAC,CAAC,IAAI;qBACX,CAAC,CAAC,CAAC;aACT,EACD,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,uBAAuB,CAAC,GACtD,EACF,KAAC,kBAAkB,IAAC,GAAG,EAAE,EAAE,gBAAgB,EAAE,cAAc,CAAC,EAAE,EAAE,GAAI,EACpE,KAAC,YAAY,IAAC,OAAO,EAAE,UAAU,qBAAqB,IACrD,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,UAAU,sDAAiD,EAC3D,UAAU,IAAI,CACb,KAAC,YAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAG,CAAC,0BAElC,CAChB,IACA,CACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Copyright DWJ 2024.
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // https://www.boost.org/LICENSE_1_0.txt
5
+ import { StyledHeader } from "@dwidge/components-expo";
6
+ import { ScreenView, ScrollView } from "@dwidge/components-rnw";
7
+ import { FormApi } from "../hooks/FormApi";
8
+ import { FormAttachmentApi } from "../hooks/FormAttachmentApi";
9
+ import { FormAttachmentEdit } from "./FormAttachmentEdit";
10
+ export const FormAttachmentEditScreen = ({ formAttachment = FormAttachmentApi.useGetItem(), form = FormApi.useGetItem(formAttachment?.FormId), }) => (_jsxs(ScreenView, { children: [_jsx(StyledHeader, { title: ["Form", form?.name].filter(Boolean).join(" - ") }), _jsx(ScrollView, { flex: true, gap: true, pad: true, children: _jsx(FormAttachmentEdit, {}) })] }));
11
+ //# sourceMappingURL=FormAttachmentEditScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormAttachmentEditScreen.js","sourceRoot":"","sources":["../../../src/FormAttachment/FormAttachmentEditScreen.tsx"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,cAAc,GAAG,iBAAiB,CAAC,UAAU,EAAE,EAC/C,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,GAClD,EAAE,EAAE,CAAC,CACJ,MAAC,UAAU,eACT,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAI,EACzE,KAAC,UAAU,IAAC,IAAI,QAAC,GAAG,QAAC,GAAG,kBACtB,KAAC,kBAAkB,KAAG,GACX,IACF,CACd,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Copyright DWJ 2024.
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // https://www.boost.org/LICENSE_1_0.txt
5
+ import { StyledView, UnstyledList, viewStyles } from "@dwidge/components-rnw";
6
+ import { useNavAction2 } from "@dwidge/hooks-expo";
7
+ import { useMemoState } from "@dwidge/hooks-react";
8
+ import assert from "assert";
9
+ import { useParams } from "../hooks";
10
+ import { FormAttachmentApi } from "../hooks/FormAttachmentApi";
11
+ import { useNavRoutes } from "../hooks/FormsContext";
12
+ import { FormAttachmentView } from "./FormAttachmentView";
13
+ export const FormAttachmentListEdit = ({ ids = useParams(), elements = FormAttachmentApi.useGetList({
14
+ id: undefined,
15
+ data: undefined,
16
+ ...ids,
17
+ }), selection: [selection, setSelection] = useMemoState([]), onPress = useNavAction2(useNavRoutes().FORM_ATTACHMENT_EDIT_SCREEN, async (id) => ({
18
+ FormAttachmentId: id,
19
+ })), }) => (_jsx(StyledView, { column: true, children: _jsx(UnstyledList, { items: elements, keyExtractor: (item) => (assert(item.id), item.id), selection: [selection, setSelection], render: (item) => _jsx(FormAttachmentView, { id: item.id }), selectStyle: viewStyles.select, style: viewStyles.unselect, onPress: onPress }) }));
20
+ //# sourceMappingURL=FormAttachmentListEdit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormAttachmentListEdit.js","sourceRoot":"","sources":["../../../src/FormAttachment/FormAttachmentListEdit.tsx"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACrC,GAAG,GAAG,SAAS,EAAE,EACjB,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC;IACtC,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,SAAS;IACf,GAAG,GAAG;CACP,CAAC,EACF,SAAS,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,YAAY,CAAW,EAAE,CAAC,EACjE,OAAO,GAAG,aAAa,CACrB,YAAY,EAAE,CAAC,2BAA2B,EAC1C,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,CAAC;IACrB,gBAAgB,EAAE,EAAE;CACrB,CAAC,CACH,GACF,EAAE,EAAE,CAAC,CACJ,KAAC,UAAU,IAAC,MAAM,kBAChB,KAAC,YAAY,IACX,KAAK,EAAE,QAAQ,EACf,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAClD,SAAS,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,EACpC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,kBAAkB,IAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAI,EACrD,WAAW,EAAE,UAAU,CAAC,MAAM,EAC9B,KAAK,EAAE,UAAU,CAAC,QAAQ,EAC1B,OAAO,EAAE,OAAO,GAChB,GACS,CACd,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Copyright DWJ 2024.
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // https://www.boost.org/LICENSE_1_0.txt
5
+ import { StyledHeader } from "@dwidge/components-expo";
6
+ import { CenterView, ScreenView, ScrollView, StyledFontAwesome, } from "@dwidge/components-rnw";
7
+ import { useNavAction2 } from "@dwidge/hooks-expo";
8
+ import { useMemoState } from "@dwidge/hooks-react";
9
+ import { TouchableOpacity } from "react-native";
10
+ import { FormAttachmentApi } from "../hooks/FormAttachmentApi";
11
+ import { useNavRoutes } from "../hooks/FormsContext";
12
+ import { FormAttachmentListEdit } from "./FormAttachmentListEdit";
13
+ export const FormAttachmentListScreen = ({ onCreateAttachment = useNavAction2(useNavRoutes().FORM_SELECT_SCREEN, async () => ({})), onEditAttachment = useNavAction2(useNavRoutes().FORM_ATTACHMENT_EDIT_SCREEN, async (key) => ({
14
+ FormAttachmentId: key,
15
+ })), onDeleteAttachmentList = FormAttachmentApi.useDeleteList(), selection = useMemoState([]), }) => (_jsxs(ScreenView, { children: [_jsx(StyledHeader, { title: "Manage Forms", actions: [
16
+ {
17
+ icon: "remove-circle",
18
+ onPress: onDeleteAttachmentList && selection[0].length
19
+ ? () => onDeleteAttachmentList(selection[0].map((id) => ({ id })))
20
+ : undefined,
21
+ },
22
+ {
23
+ icon: "add-circle",
24
+ onPress: onCreateAttachment,
25
+ },
26
+ ] }), _jsxs(ScrollView, { gap: true, children: [_jsx(FormAttachmentListEdit, { selection: selection, onPress: onEditAttachment }), _jsx(TouchableOpacity, { style: { flex: 1 }, onPress: onCreateAttachment, children: _jsx(CenterView, { row: true, gap: true, children: _jsx(StyledFontAwesome, { name: "plus", size: 30 }) }) })] })] }));
27
+ //# sourceMappingURL=FormAttachmentListScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormAttachmentListScreen.js","sourceRoot":"","sources":["../../../src/FormAttachment/FormAttachmentListScreen.tsx"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,kBAAkB,GAAG,aAAa,CAChC,YAAY,EAAE,CAAC,kBAAkB,EACjC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CACjB,EACD,gBAAgB,GAAG,aAAa,CAC9B,YAAY,EAAE,CAAC,2BAA2B,EAC1C,KAAK,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC;IACtB,gBAAgB,EAAE,GAAG;CACtB,CAAC,CACH,EACD,sBAAsB,GAAG,iBAAiB,CAAC,aAAa,EAAE,EAC1D,SAAS,GAAG,YAAY,CAAW,EAAE,CAAC,GACvC,EAAE,EAAE,CAAC,CACJ,MAAC,UAAU,eACT,KAAC,YAAY,IACX,KAAK,EAAC,cAAc,EACpB,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,eAAe;oBACrB,OAAO,EACL,sBAAsB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM;wBAC3C,CAAC,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;wBAClE,CAAC,CAAC,SAAS;iBAChB;gBACD;oBACE,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,kBAAkB;iBAC5B;aACF,GACD,EACF,MAAC,UAAU,IAAC,GAAG,mBACb,KAAC,sBAAsB,IACrB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,gBAAgB,GACzB,EACF,KAAC,gBAAgB,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,kBAAkB,YAC/D,KAAC,UAAU,IAAC,GAAG,QAAC,GAAG,kBACjB,KAAC,iBAAiB,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,EAAE,GAAI,GAChC,GACI,IACR,IACF,CACd,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Copyright DWJ 2024.
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // https://www.boost.org/LICENSE_1_0.txt
5
+ import { UnstyledList, viewStyles } from "@dwidge/components-rnw";
6
+ import { useNavAction2 } from "@dwidge/hooks-expo";
7
+ import assert from "assert";
8
+ import { FormAttachmentApi } from "../hooks/FormAttachmentApi";
9
+ import { useNavRoutes } from "../hooks/FormsContext";
10
+ import { FormAttachmentView } from "./FormAttachmentView";
11
+ export const FormAttachmentListView = ({ attachments = FormAttachmentApi.useGetList({}), onPressItem = useNavAction2(useNavRoutes().FORM_ATTACHMENT_EDIT_SCREEN, async (id) => ({
12
+ FormAttachmentId: id,
13
+ })), }) => (_jsx(UnstyledList, { items: attachments, keyExtractor: (item) => (assert(item.id), item.id), selection: [[], () => { }], render: (item) => _jsx(FormAttachmentView, { id: item.id }), selectStyle: viewStyles.select, style: viewStyles.unselect, onPress: onPressItem }));
14
+ //# sourceMappingURL=FormAttachmentListView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormAttachmentListView.js","sourceRoot":"","sources":["../../../src/FormAttachment/FormAttachmentListView.tsx"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACrC,WAAW,GAAG,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC,EAC9C,WAAW,GAAG,aAAa,CACzB,YAAY,EAAE,CAAC,2BAA2B,EAC1C,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,CAAC;IACrB,gBAAgB,EAAE,EAAE;CACrB,CAAC,CACH,GACF,EAAE,EAAE,CAAC,CACJ,KAAC,YAAY,IACX,KAAK,EAAE,WAAW,EAClB,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAClD,SAAS,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,EACzB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,kBAAkB,IAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAI,EACrD,WAAW,EAAE,UAAU,CAAC,MAAM,EAC9B,KAAK,EAAE,UAAU,CAAC,QAAQ,EAC1B,OAAO,EAAE,WAAW,GACpB,CACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Copyright DWJ 2024.
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // https://www.boost.org/LICENSE_1_0.txt
5
+ import { StyledDate } from "@dwidge/components-expo";
6
+ import { StyledLoader, StyledText, StyledView } from "@dwidge/components-rnw";
7
+ import { FormApi } from "../hooks/FormApi";
8
+ import { FormAttachmentApi } from "../hooks/FormAttachmentApi";
9
+ import { useParams } from "../hooks/useParams";
10
+ export const FormAttachmentView = ({ id = useParams().FormAttachmentId, attachment: [attachment, setAttachment] = FormAttachmentApi.useItem(id), form = FormApi.useGetItem(attachment?.FormId), }) => attachment && form ? (_jsxs(StyledView, { space: true, outline: true, gap: true, pad: true, flex: true, children: [_jsx(StyledText, { children: form.name || "untitled" }), attachment.createdAt && (_jsx(StyledDate, { children: attachment.createdAt * 1000 }))] })) : (_jsx(StyledLoader, {}));
11
+ //# sourceMappingURL=FormAttachmentView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormAttachmentView.js","sourceRoot":"","sources":["../../../src/FormAttachment/FormAttachmentView.tsx"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,EAAE,GAAG,SAAS,EAAE,CAAC,gBAAgB,EACjC,UAAU,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,EACvE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,GAC9C,EAAE,EAAE,CACH,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CACnB,MAAC,UAAU,IAAC,KAAK,QAAC,OAAO,QAAC,GAAG,QAAC,GAAG,QAAC,IAAI,mBACpC,KAAC,UAAU,cAAE,IAAI,CAAC,IAAI,IAAI,UAAU,GAAc,EACjD,UAAU,CAAC,SAAS,IAAI,CACvB,KAAC,UAAU,cAAE,UAAU,CAAC,SAAS,GAAG,IAAI,GAAc,CACvD,IACU,CACd,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,KAAG,CACjB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from "./FormAttachmentEdit";
2
+ export * from "./FormAttachmentEditScreen";
3
+ export * from "./FormAttachmentListEdit";
4
+ export * from "./FormAttachmentListScreen";
5
+ export * from "./FormAttachmentListView";
6
+ export * from "./FormAttachmentView";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/FormAttachment/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { createApi } from "./createApi.js";
2
+ export const FileApi = createApi({
3
+ id: undefined,
4
+ createdAt: undefined,
5
+ createdBy: undefined,
6
+ size: undefined,
7
+ mime: undefined,
8
+ sha256: undefined,
9
+ putUrl: undefined,
10
+ getUrl: undefined,
11
+ });
12
+ //# sourceMappingURL=FileApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileApi.js","sourceRoot":"","sources":["../../../src/hooks/FileApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAQ;IACtC,EAAE,EAAE,SAAS;IACb,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;CAClB,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { createApi } from "./createApi.js";
2
+ export const FileAttachmentApi = createApi({
3
+ id: undefined,
4
+ createdAt: undefined,
5
+ createdBy: undefined,
6
+ FileId: undefined,
7
+ FormId: undefined,
8
+ FormAttachmentId: undefined,
9
+ });
10
+ //# sourceMappingURL=FileAttachmentApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileAttachmentApi.js","sourceRoot":"","sources":["../../../src/hooks/FileAttachmentApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAiB;IACzD,EAAE,EAAE,SAAS;IACb,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,gBAAgB,EAAE,SAAS;CAC5B,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { createApi } from "./createApi.js";
2
+ export const FormApi = createApi({
3
+ id: undefined,
4
+ createdAt: undefined,
5
+ createdBy: undefined,
6
+ name: undefined,
7
+ type: undefined,
8
+ schema: undefined,
9
+ });
10
+ //# sourceMappingURL=FormApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormApi.js","sourceRoot":"","sources":["../../../src/hooks/FormApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAQ;IACtC,EAAE,EAAE,SAAS;IACb,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;CAClB,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { createApi } from "./createApi.js";
2
+ export const FormAttachmentApi = createApi({
3
+ id: undefined,
4
+ createdAt: undefined,
5
+ createdBy: undefined,
6
+ FormId: undefined,
7
+ data: undefined,
8
+ });
9
+ //# sourceMappingURL=FormAttachmentApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormAttachmentApi.js","sourceRoot":"","sources":["../../../src/hooks/FormAttachmentApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAkB;IAC1D,EAAE,EAAE,SAAS;IACb,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;CAChB,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ // Copyright DWJ 2024.
2
+ // Distributed under the Boost Software License, Version 1.0.
3
+ // https://www.boost.org/LICENSE_1_0.txt
4
+ import { useLocalSearchParams } from "expo-router";
5
+ import { createContext, useContext } from "react";
6
+ import { z } from "zod";
7
+ export const FormsContext = createContext({
8
+ routes: {
9
+ FORM_ATTACHMENT_LIST_SCREEN: "",
10
+ FORM_ATTACHMENT_EDIT_SCREEN: "",
11
+ FORM_EDIT_SCREEN: "",
12
+ FORM_SELECT_SCREEN: "",
13
+ },
14
+ useParams: () => z
15
+ .object({
16
+ FormId: z.coerce.string().nullable(),
17
+ FormAttachmentId: z.coerce.string().nullable(),
18
+ AttachmentId: z.coerce.string().nullable(),
19
+ })
20
+ .partial()
21
+ .parse({
22
+ ...useLocalSearchParams(),
23
+ }),
24
+ });
25
+ export const useNavRoutes = () => useContext(FormsContext).routes;
26
+ //# sourceMappingURL=FormsContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormsContext.js","sourceRoot":"","sources":["../../../src/hooks/FormsContext.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,6DAA6D;AAC7D,wCAAwC;AAExC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;IACxC,MAAM,EAAE;QACN,2BAA2B,EAAE,EAAE;QAC/B,2BAA2B,EAAE,EAAE;QAC/B,gBAAgB,EAAE,EAAE;QACpB,kBAAkB,EAAE,EAAE;KACvB;IACD,SAAS,EAAE,GAAG,EAAE,CACd,CAAC;SACE,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACpC,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9C,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC3C,CAAC;SACD,OAAO,EAAE;SACT,KAAK,CAAC;QACL,GAAG,oBAAoB,EAAE;KAC1B,CAAkD;CACxD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { useAsyncSaveState } from "@dwidge/hooks-react";
2
+ import { createContext, useContext } from "react";
3
+ import { useParams } from "./useParams";
4
+ export const createApi = (defaultFilter = {}) => {
5
+ getList: (filter) => Promise;
6
+ setList: (list) => Promise;
7
+ createList: (list) => Promise;
8
+ updateList: (list) => Promise;
9
+ deleteList: (list) => Promise;
10
+ getItem: (item) => Promise;
11
+ updateItem: (item) => Promise;
12
+ deleteItem: (item) => Promise;
13
+ const message = "createApiW1: Please wrap App with <Context.Provider value={{}}></Context.Provider>";
14
+ const Context = createContext({
15
+ useGetList: () => (console.warn(message), undefined),
16
+ useCreateList: () => (console.warn(message), undefined),
17
+ useDeleteList: () => (console.warn(message), undefined),
18
+ useGetItem: () => (console.warn(message), undefined),
19
+ useItem: () => (console.warn(message), []),
20
+ });
21
+ const useGetList = (filter = {}, ids = useParams()) => useContext(Context).useGetList({ ...ids, ...defaultFilter, ...filter });
22
+ const useCreateList = () => useContext(Context).useCreateList();
23
+ const useDeleteList = () => useContext(Context).useDeleteList();
24
+ const useGetItem = (id, ids = useParams()) => useContext(Context).useGetItem(id ? { ...ids, ...defaultFilter, id } : undefined);
25
+ const useItem = (id, ids = useParams()) => useAsyncSaveState(useContext(Context).useItem(id ? { ...ids, ...defaultFilter, id } : undefined));
26
+ return {
27
+ Context,
28
+ Provider: Context.Provider,
29
+ useGetList,
30
+ useGetItem,
31
+ useItem,
32
+ useCreateList,
33
+ useDeleteList,
34
+ };
35
+ };
36
+ //# sourceMappingURL=createApi.js.map