@powerhousedao/contributor-billing 0.1.27 → 0.1.30

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 (390) hide show
  1. package/README.md +165 -8
  2. package/dist/document-models/billing-statement/actions.d.ts +1 -0
  3. package/dist/document-models/billing-statement/actions.d.ts.map +1 -1
  4. package/dist/document-models/billing-statement/gen/document-model.d.ts.map +1 -1
  5. package/dist/document-models/billing-statement/gen/document-model.js +58 -47
  6. package/dist/document-models/billing-statement/gen/document-schema.d.ts +38 -38
  7. package/dist/document-models/billing-statement/gen/document-schema.d.ts.map +1 -1
  8. package/dist/document-models/billing-statement/gen/line-items/actions.d.ts +6 -2
  9. package/dist/document-models/billing-statement/gen/line-items/actions.d.ts.map +1 -1
  10. package/dist/document-models/billing-statement/gen/line-items/creators.d.ts +3 -2
  11. package/dist/document-models/billing-statement/gen/line-items/creators.d.ts.map +1 -1
  12. package/dist/document-models/billing-statement/gen/line-items/creators.js +2 -1
  13. package/dist/document-models/billing-statement/gen/line-items/operations.d.ts +2 -1
  14. package/dist/document-models/billing-statement/gen/line-items/operations.d.ts.map +1 -1
  15. package/dist/document-models/billing-statement/gen/ph-factories.js +1 -1
  16. package/dist/document-models/billing-statement/gen/reducer.d.ts.map +1 -1
  17. package/dist/document-models/billing-statement/gen/reducer.js +5 -1
  18. package/dist/document-models/billing-statement/gen/schema/types.d.ts +3 -0
  19. package/dist/document-models/billing-statement/gen/schema/types.d.ts.map +1 -1
  20. package/dist/document-models/billing-statement/gen/schema/zod.d.ts +2 -1
  21. package/dist/document-models/billing-statement/gen/schema/zod.d.ts.map +1 -1
  22. package/dist/document-models/billing-statement/gen/schema/zod.js +5 -0
  23. package/dist/document-models/billing-statement/gen/utils.js +2 -2
  24. package/dist/document-models/billing-statement/src/reducers/general.d.ts.map +1 -1
  25. package/dist/document-models/billing-statement/src/reducers/general.js +5 -4
  26. package/dist/document-models/billing-statement/src/reducers/line-items.d.ts.map +1 -1
  27. package/dist/document-models/billing-statement/src/reducers/line-items.js +7 -2
  28. package/dist/document-models/billing-statement/src/reducers/tags.d.ts.map +1 -1
  29. package/dist/document-models/billing-statement/src/reducers/tags.js +1 -1
  30. package/dist/document-models/billing-statement/src/tests/document-model.test.d.ts +4 -0
  31. package/dist/document-models/billing-statement/src/tests/document-model.test.d.ts.map +1 -1
  32. package/dist/document-models/billing-statement/src/tests/document-model.test.js +94 -7
  33. package/dist/document-models/billing-statement/src/tests/general.test.d.ts +2 -1
  34. package/dist/document-models/billing-statement/src/tests/general.test.d.ts.map +1 -1
  35. package/dist/document-models/billing-statement/src/tests/general.test.js +33 -88
  36. package/dist/document-models/billing-statement/src/tests/line-items.test.js +22 -125
  37. package/dist/document-models/billing-statement/src/tests/tags.test.js +13 -47
  38. package/dist/document-models/document-models.js +2 -2
  39. package/dist/document-models/expense-report/gen/document-model.d.ts.map +1 -1
  40. package/dist/document-models/expense-report/gen/document-model.js +48 -48
  41. package/dist/document-models/expense-report/gen/document-schema.d.ts +6 -6
  42. package/dist/document-models/expense-report/gen/utils.js +1 -1
  43. package/dist/document-models/expense-report/src/tests/document-model.test.d.ts +4 -0
  44. package/dist/document-models/expense-report/src/tests/document-model.test.d.ts.map +1 -1
  45. package/dist/document-models/expense-report/src/tests/document-model.test.js +94 -8
  46. package/dist/document-models/expense-report/src/tests/wallet.test.js +145 -10
  47. package/dist/document-models/index.d.ts +2 -6
  48. package/dist/document-models/index.d.ts.map +1 -1
  49. package/dist/document-models/index.js +2 -6
  50. package/dist/document-models/integrations/gen/document-model.js +33 -33
  51. package/dist/document-models/integrations/gen/document-schema.d.ts +6 -6
  52. package/dist/document-models/integrations/gen/utils.js +1 -1
  53. package/dist/document-models/integrations/src/reducers/integrations.d.ts.map +1 -1
  54. package/dist/document-models/integrations/src/reducers/integrations.js +9 -32
  55. package/dist/document-models/integrations/src/tests/document-model.test.d.ts +4 -0
  56. package/dist/document-models/integrations/src/tests/document-model.test.d.ts.map +1 -1
  57. package/dist/document-models/integrations/src/tests/document-model.test.js +91 -5
  58. package/dist/document-models/integrations/src/tests/integrations.test.js +21 -46
  59. package/dist/document-models/invoice/gen/document-model.js +147 -147
  60. package/dist/document-models/invoice/gen/document-schema.d.ts +127 -127
  61. package/dist/document-models/invoice/gen/document-schema.d.ts.map +1 -1
  62. package/dist/document-models/invoice/gen/ph-factories.d.ts.map +1 -1
  63. package/dist/document-models/invoice/gen/ph-factories.js +16 -122
  64. package/dist/document-models/invoice/gen/schema/types.d.ts +4 -4
  65. package/dist/document-models/invoice/gen/schema/types.d.ts.map +1 -1
  66. package/dist/document-models/invoice/gen/schema/zod.d.ts.map +1 -1
  67. package/dist/document-models/invoice/gen/schema/zod.js +4 -4
  68. package/dist/document-models/invoice/gen/utils.d.ts.map +1 -1
  69. package/dist/document-models/invoice/gen/utils.js +17 -123
  70. package/dist/document-models/invoice/src/reducers/general.d.ts.map +1 -1
  71. package/dist/document-models/invoice/src/reducers/general.js +34 -10
  72. package/dist/document-models/invoice/src/reducers/items.d.ts.map +1 -1
  73. package/dist/document-models/invoice/src/reducers/items.js +7 -7
  74. package/dist/document-models/invoice/src/reducers/parties.d.ts.map +1 -1
  75. package/dist/document-models/invoice/src/reducers/parties.js +96 -50
  76. package/dist/document-models/invoice/src/reducers/transitions.d.ts.map +1 -1
  77. package/dist/document-models/invoice/src/reducers/transitions.js +69 -53
  78. package/dist/document-models/invoice/src/tests/document-model.test.d.ts +4 -0
  79. package/dist/document-models/invoice/src/tests/document-model.test.d.ts.map +1 -1
  80. package/dist/document-models/invoice/src/tests/document-model.test.js +91 -4
  81. package/dist/document-models/invoice/src/tests/general.test.js +24 -26
  82. package/dist/document-models/invoice/src/tests/items.test.js +37 -17
  83. package/dist/document-models/invoice/src/tests/parties.test.js +32 -26
  84. package/dist/document-models/invoice/src/tests/transitions.test.js +52 -500
  85. package/dist/document-models/invoice/utils/statusTransitions.d.ts.map +1 -1
  86. package/dist/document-models/invoice/utils/statusTransitions.js +10 -10
  87. package/dist/editors/billing-statement/components/lineItemsTable.d.ts.map +1 -1
  88. package/dist/editors/billing-statement/components/lineItemsTable.js +32 -23
  89. package/dist/editors/billing-statement/components/objectSetTable.d.ts.map +1 -1
  90. package/dist/editors/billing-statement/components/objectSetTable.js +1 -2
  91. package/dist/editors/billing-statement/editor.d.ts +4 -0
  92. package/dist/editors/billing-statement/editor.d.ts.map +1 -1
  93. package/dist/editors/billing-statement/editor.js +34 -16
  94. package/dist/editors/billing-statement/lineItemTags/lineItemTags.d.ts.map +1 -1
  95. package/dist/editors/billing-statement/lineItemTags/lineItemTags.js +36 -37
  96. package/dist/editors/billing-statement/lineItemTags/tagMapping.d.ts.map +1 -1
  97. package/dist/editors/billing-statement/lineItemTags/tagMapping.js +28 -10
  98. package/dist/editors/clean-new-editor/components/CreateDocument.d.ts +6 -0
  99. package/dist/editors/clean-new-editor/components/CreateDocument.d.ts.map +1 -0
  100. package/dist/editors/clean-new-editor/components/CreateDocument.js +18 -0
  101. package/dist/editors/clean-new-editor/components/DriveContents.d.ts +3 -0
  102. package/dist/editors/clean-new-editor/components/DriveContents.d.ts.map +1 -0
  103. package/dist/editors/clean-new-editor/components/DriveContents.js +10 -0
  104. package/dist/editors/clean-new-editor/components/DriveExplorer.d.ts +7 -0
  105. package/dist/editors/clean-new-editor/components/DriveExplorer.d.ts.map +1 -0
  106. package/dist/editors/clean-new-editor/components/DriveExplorer.js +16 -0
  107. package/dist/editors/clean-new-editor/components/EmptyState.d.ts +3 -0
  108. package/dist/editors/clean-new-editor/components/EmptyState.d.ts.map +1 -0
  109. package/dist/editors/clean-new-editor/components/EmptyState.js +10 -0
  110. package/dist/editors/clean-new-editor/components/Files.d.ts +3 -0
  111. package/dist/editors/clean-new-editor/components/Files.d.ts.map +1 -0
  112. package/dist/editors/clean-new-editor/components/Files.js +12 -0
  113. package/dist/editors/clean-new-editor/components/FolderTree.d.ts +6 -0
  114. package/dist/editors/clean-new-editor/components/FolderTree.d.ts.map +1 -0
  115. package/dist/editors/clean-new-editor/components/FolderTree.js +65 -0
  116. package/dist/editors/clean-new-editor/components/Folders.d.ts +3 -0
  117. package/dist/editors/clean-new-editor/components/Folders.d.ts.map +1 -0
  118. package/dist/editors/clean-new-editor/components/Folders.js +12 -0
  119. package/dist/editors/clean-new-editor/components/NavigationBreadcrumbs.d.ts +3 -0
  120. package/dist/editors/clean-new-editor/components/NavigationBreadcrumbs.d.ts.map +1 -0
  121. package/dist/editors/clean-new-editor/components/NavigationBreadcrumbs.js +6 -0
  122. package/dist/editors/clean-new-editor/config.d.ts +4 -0
  123. package/dist/editors/clean-new-editor/config.d.ts.map +1 -0
  124. package/dist/editors/clean-new-editor/config.js +5 -0
  125. package/dist/editors/clean-new-editor/editor.d.ts +4 -0
  126. package/dist/editors/clean-new-editor/editor.d.ts.map +1 -0
  127. package/dist/editors/clean-new-editor/editor.js +11 -0
  128. package/dist/editors/clean-new-editor/module.d.ts +3 -0
  129. package/dist/editors/clean-new-editor/module.d.ts.map +1 -0
  130. package/dist/editors/clean-new-editor/module.js +10 -0
  131. package/dist/editors/contributor-billing/components/ConfirmationModal.d.ts +14 -0
  132. package/dist/editors/contributor-billing/components/ConfirmationModal.d.ts.map +1 -0
  133. package/dist/editors/contributor-billing/components/ConfirmationModal.js +6 -0
  134. package/dist/editors/contributor-billing/components/CreateDocument.d.ts +6 -0
  135. package/dist/editors/contributor-billing/components/CreateDocument.d.ts.map +1 -0
  136. package/dist/editors/contributor-billing/components/CreateDocument.js +18 -0
  137. package/dist/editors/contributor-billing/components/DriveContents.d.ts +3 -0
  138. package/dist/editors/contributor-billing/components/DriveContents.d.ts.map +1 -0
  139. package/dist/editors/contributor-billing/components/DriveContents.js +10 -0
  140. package/dist/editors/contributor-billing/components/DriveExplorer.d.ts +3 -3
  141. package/dist/editors/contributor-billing/components/DriveExplorer.d.ts.map +1 -1
  142. package/dist/editors/contributor-billing/components/DriveExplorer.js +13 -180
  143. package/dist/editors/contributor-billing/components/EmptyState.d.ts +3 -0
  144. package/dist/editors/contributor-billing/components/EmptyState.d.ts.map +1 -0
  145. package/dist/editors/contributor-billing/components/EmptyState.js +10 -0
  146. package/dist/editors/contributor-billing/components/Files.d.ts +3 -0
  147. package/dist/editors/contributor-billing/components/Files.d.ts.map +1 -0
  148. package/dist/editors/contributor-billing/components/Files.js +12 -0
  149. package/dist/editors/contributor-billing/components/FolderTree.d.ts +6 -0
  150. package/dist/editors/contributor-billing/components/FolderTree.d.ts.map +1 -0
  151. package/dist/editors/contributor-billing/components/FolderTree.js +65 -0
  152. package/dist/editors/contributor-billing/components/Folders.d.ts +3 -0
  153. package/dist/editors/contributor-billing/components/Folders.d.ts.map +1 -0
  154. package/dist/editors/contributor-billing/components/Folders.js +12 -0
  155. package/dist/editors/contributor-billing/components/HeaderControls.d.ts +38 -0
  156. package/dist/editors/contributor-billing/components/HeaderControls.d.ts.map +1 -0
  157. package/dist/editors/contributor-billing/components/HeaderControls.js +124 -0
  158. package/dist/editors/contributor-billing/components/HeaderStats.d.ts.map +1 -0
  159. package/dist/editors/contributor-billing/components/{InvoiceTable/HeaderStats.js → HeaderStats.js} +1 -1
  160. package/dist/editors/contributor-billing/components/InvoiceTable.d.ts +22 -0
  161. package/dist/editors/contributor-billing/components/InvoiceTable.d.ts.map +1 -0
  162. package/dist/editors/contributor-billing/components/InvoiceTable.js +399 -0
  163. package/dist/editors/contributor-billing/components/InvoiceTableContainer.d.ts +6 -0
  164. package/dist/editors/contributor-billing/components/InvoiceTableContainer.d.ts.map +1 -0
  165. package/dist/editors/contributor-billing/components/InvoiceTableContainer.js +111 -0
  166. package/dist/editors/contributor-billing/components/InvoiceTableRow.d.ts +32 -0
  167. package/dist/editors/contributor-billing/components/InvoiceTableRow.d.ts.map +1 -0
  168. package/dist/editors/contributor-billing/components/InvoiceTableRow.js +55 -0
  169. package/dist/editors/contributor-billing/components/InvoiceTableSection.d.ts +13 -0
  170. package/dist/editors/contributor-billing/components/InvoiceTableSection.d.ts.map +1 -0
  171. package/dist/editors/contributor-billing/components/InvoiceTableSection.js +16 -0
  172. package/dist/editors/contributor-billing/components/NavigationBreadcrumbs.d.ts +3 -0
  173. package/dist/editors/contributor-billing/components/NavigationBreadcrumbs.d.ts.map +1 -0
  174. package/dist/editors/contributor-billing/components/NavigationBreadcrumbs.js +6 -0
  175. package/dist/editors/contributor-billing/config.d.ts +1 -0
  176. package/dist/editors/contributor-billing/config.d.ts.map +1 -1
  177. package/dist/editors/contributor-billing/config.js +4 -1
  178. package/dist/editors/contributor-billing/editor.d.ts +1 -0
  179. package/dist/editors/contributor-billing/editor.d.ts.map +1 -1
  180. package/dist/editors/contributor-billing/editor.js +4 -1
  181. package/dist/editors/contributor-billing/module.d.ts +1 -1
  182. package/dist/editors/contributor-billing/module.d.ts.map +1 -1
  183. package/dist/editors/contributor-billing/module.js +3 -2
  184. package/dist/editors/contributor-billing/utils/exchangeRate.d.ts +15 -0
  185. package/dist/editors/contributor-billing/utils/exchangeRate.d.ts.map +1 -0
  186. package/dist/editors/contributor-billing/utils/exchangeRate.js +122 -0
  187. package/dist/editors/editors.js +2 -2
  188. package/dist/editors/expense-report/components/AddBillingStatementModal.d.ts.map +1 -1
  189. package/dist/editors/expense-report/editor.js +8 -8
  190. package/dist/editors/index.d.ts +2 -2
  191. package/dist/editors/index.d.ts.map +1 -1
  192. package/dist/editors/index.js +2 -2
  193. package/dist/editors/integrations/components/EditName.d.ts +3 -0
  194. package/dist/editors/integrations/components/EditName.d.ts.map +1 -0
  195. package/dist/editors/integrations/components/EditName.js +31 -0
  196. package/dist/editors/integrations/editor.d.ts +2 -4
  197. package/dist/editors/integrations/editor.d.ts.map +1 -1
  198. package/dist/editors/integrations/editor.js +5 -132
  199. package/dist/editors/integrations/module.d.ts +1 -0
  200. package/dist/editors/integrations/module.d.ts.map +1 -1
  201. package/dist/editors/integrations/module.js +3 -2
  202. package/dist/editors/invoice/components/confirmationModal.js +1 -1
  203. package/dist/editors/invoice/components/countryForm.d.ts.map +1 -1
  204. package/dist/editors/invoice/components/countryForm.js +1 -1
  205. package/dist/editors/invoice/components/currencyForm.d.ts.map +1 -1
  206. package/dist/editors/invoice/components/currencyForm.js +1 -1
  207. package/dist/editors/invoice/components/datePicker.d.ts +1 -1
  208. package/dist/editors/invoice/components/datePicker.d.ts.map +1 -1
  209. package/dist/editors/invoice/components/datePicker.js +1 -1
  210. package/dist/editors/invoice/components/inputField.d.ts.map +1 -1
  211. package/dist/editors/invoice/components/inputField.js +3 -2
  212. package/dist/editors/invoice/components/lineItemMobileModal.d.ts.map +1 -1
  213. package/dist/editors/invoice/components/lineItemMobileModal.js +1 -1
  214. package/dist/editors/invoice/components/numberForm.d.ts.map +1 -1
  215. package/dist/editors/invoice/components/selectField.js +7 -7
  216. package/dist/editors/invoice/components/statusModalComponents.d.ts.map +1 -1
  217. package/dist/editors/invoice/components/statusModalComponents.js +27 -3
  218. package/dist/editors/invoice/editor.d.ts +1 -4
  219. package/dist/editors/invoice/editor.d.ts.map +1 -1
  220. package/dist/editors/invoice/editor.js +102 -40
  221. package/dist/editors/invoice/exportUBL.d.ts.map +1 -1
  222. package/dist/editors/invoice/exportUBL.js +35 -18
  223. package/dist/editors/invoice/ingestPDF.d.ts.map +1 -1
  224. package/dist/editors/invoice/ingestPDF.js +15 -9
  225. package/dist/editors/invoice/invoiceToGnosis.js +2 -2
  226. package/dist/editors/invoice/legalEntity/bankSection.d.ts.map +1 -1
  227. package/dist/editors/invoice/legalEntity/bankSection.js +19 -10
  228. package/dist/editors/invoice/legalEntity/legalEntity.d.ts +4 -0
  229. package/dist/editors/invoice/legalEntity/legalEntity.d.ts.map +1 -1
  230. package/dist/editors/invoice/legalEntity/legalEntity.js +66 -2
  231. package/dist/editors/invoice/legalEntity/walletSection.d.ts.map +1 -1
  232. package/dist/editors/invoice/legalEntity/walletSection.js +3 -3
  233. package/dist/editors/invoice/lineItemTags/lineItemTags.d.ts.map +1 -1
  234. package/dist/editors/invoice/lineItemTags/lineItemTags.js +1 -1
  235. package/dist/editors/invoice/lineItemTags/tagMobileModal.d.ts.map +1 -1
  236. package/dist/editors/invoice/lineItemTags/tagMobileModal.js +4 -3
  237. package/dist/editors/invoice/lineItems.d.ts.map +1 -1
  238. package/dist/editors/invoice/module.d.ts +1 -0
  239. package/dist/editors/invoice/module.d.ts.map +1 -1
  240. package/dist/editors/invoice/module.js +2 -1
  241. package/dist/editors/invoice/requestFinance.js +3 -3
  242. package/dist/editors/invoice/uploadPdfChunked.d.ts.map +1 -1
  243. package/dist/editors/invoice/uploadPdfChunked.js +5 -4
  244. package/dist/editors/invoice/utils/utils.d.ts.map +1 -1
  245. package/dist/editors/invoice/utils/utils.js +5 -4
  246. package/dist/editors/invoice/validation/validationHandler.d.ts.map +1 -1
  247. package/dist/editors/invoice/validation/validationHandler.js +11 -5
  248. package/dist/editors/invoice/validation/validationManager.d.ts +2 -2
  249. package/dist/editors/invoice/validation/validationManager.d.ts.map +1 -1
  250. package/dist/editors/invoice/validation/validationManager.js +5 -5
  251. package/dist/editors/invoice/validation/validationRules.d.ts.map +1 -1
  252. package/dist/editors/invoice/validation/validationRules.js +178 -178
  253. package/dist/index.d.ts +2 -2
  254. package/dist/index.d.ts.map +1 -1
  255. package/dist/index.js +4 -2
  256. package/dist/old-contributor-billing/components/DriveExplorer.d.ts +7 -0
  257. package/dist/old-contributor-billing/components/DriveExplorer.d.ts.map +1 -0
  258. package/dist/old-contributor-billing/components/DriveExplorer.js +184 -0
  259. package/dist/old-contributor-billing/components/InvoiceTable/HeaderControls.d.ts.map +1 -0
  260. package/dist/old-contributor-billing/components/InvoiceTable/HeaderStats.d.ts +2 -0
  261. package/dist/old-contributor-billing/components/InvoiceTable/HeaderStats.d.ts.map +1 -0
  262. package/dist/old-contributor-billing/components/InvoiceTable/HeaderStats.js +73 -0
  263. package/dist/old-contributor-billing/components/InvoiceTable/InvoiceTable.d.ts.map +1 -0
  264. package/dist/old-contributor-billing/components/InvoiceTable/InvoiceTableRow.d.ts.map +1 -0
  265. package/dist/old-contributor-billing/components/InvoiceTable/InvoiceTableSection.d.ts.map +1 -0
  266. package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/InvoiceTableSection.js +1 -1
  267. package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/RowActionMenu.d.ts +1 -1
  268. package/dist/old-contributor-billing/components/InvoiceTable/RowActionMenu.d.ts.map +1 -0
  269. package/dist/old-contributor-billing/components/InvoiceTable/RowActionMenu.js +2 -0
  270. package/dist/old-contributor-billing/config.d.ts +3 -0
  271. package/dist/old-contributor-billing/config.d.ts.map +1 -0
  272. package/dist/old-contributor-billing/config.js +4 -0
  273. package/dist/old-contributor-billing/editor.d.ts +3 -0
  274. package/dist/old-contributor-billing/editor.d.ts.map +1 -0
  275. package/dist/old-contributor-billing/editor.js +8 -0
  276. package/dist/old-contributor-billing/module.d.ts +3 -0
  277. package/dist/old-contributor-billing/module.d.ts.map +1 -0
  278. package/dist/old-contributor-billing/module.js +9 -0
  279. package/dist/old-contributor-billing/util.d.ts.map +1 -0
  280. package/dist/{editors/contributor-billing → old-contributor-billing}/util.js +11 -9
  281. package/dist/powerhouse.manifest.json +6 -41
  282. package/dist/processors/index.d.ts +1 -6
  283. package/dist/processors/index.d.ts.map +1 -1
  284. package/dist/processors/index.js +1 -18
  285. package/dist/scripts/contributor-billing/createExpenseReportCsv.d.ts.map +1 -1
  286. package/dist/scripts/contributor-billing/createExpenseReportCsv.js +24 -24
  287. package/dist/scripts/contributor-billing/createXeroCsv.d.ts.map +1 -1
  288. package/dist/scripts/contributor-billing/createXeroCsv.js +52 -46
  289. package/dist/scripts/invoice/autoTagging.d.ts +1 -1
  290. package/dist/scripts/invoice/autoTagging.d.ts.map +1 -1
  291. package/dist/scripts/invoice/autoTagging.js +168 -138
  292. package/dist/scripts/invoice/exampleBatchTxn.js +16 -16
  293. package/dist/scripts/invoice/gnosisTransactionBuilder.d.ts.map +1 -1
  294. package/dist/scripts/invoice/gnosisTransactionBuilder.js +32 -25
  295. package/dist/scripts/invoice/pdfToClaudeAI.d.ts.map +1 -1
  296. package/dist/scripts/invoice/pdfToClaudeAI.js +36 -30
  297. package/dist/scripts/invoice/requestFinance.d.ts.map +1 -1
  298. package/dist/scripts/invoice/requestFinance.js +13 -13
  299. package/dist/style.css +407 -13659
  300. package/dist/subgraphs/billing-statement/resolvers.d.ts +1 -1
  301. package/dist/subgraphs/billing-statement/resolvers.d.ts.map +1 -1
  302. package/dist/subgraphs/billing-statement/resolvers.js +16 -5
  303. package/dist/subgraphs/billing-statement/schema.d.ts.map +1 -1
  304. package/dist/subgraphs/billing-statement/schema.js +12 -67
  305. package/dist/subgraphs/expense-report/resolvers.d.ts +1 -1
  306. package/dist/subgraphs/expense-report/resolvers.d.ts.map +1 -1
  307. package/dist/subgraphs/expense-report/resolvers.js +4 -5
  308. package/dist/subgraphs/expense-report/schema.d.ts.map +1 -1
  309. package/dist/subgraphs/expense-report/schema.js +5 -48
  310. package/dist/subgraphs/index.d.ts +1 -0
  311. package/dist/subgraphs/index.d.ts.map +1 -1
  312. package/dist/subgraphs/index.js +1 -0
  313. package/dist/subgraphs/integrations/resolvers.d.ts +1 -1
  314. package/dist/subgraphs/integrations/resolvers.d.ts.map +1 -1
  315. package/dist/subgraphs/integrations/resolvers.js +4 -5
  316. package/dist/subgraphs/integrations/schema.d.ts.map +1 -1
  317. package/dist/subgraphs/integrations/schema.js +3 -43
  318. package/dist/subgraphs/invoice/index.d.ts.map +1 -1
  319. package/dist/subgraphs/invoice/index.js +1 -20
  320. package/dist/subgraphs/invoice/resolvers.d.ts +1 -1
  321. package/dist/subgraphs/invoice/resolvers.d.ts.map +1 -1
  322. package/dist/subgraphs/invoice/resolvers.js +4 -9
  323. package/dist/subgraphs/invoice/schema.d.ts.map +1 -1
  324. package/dist/subgraphs/invoice/schema.js +14 -232
  325. package/dist/subgraphs/{invoice → invoice-addon}/customResolvers.d.ts +1 -1
  326. package/dist/subgraphs/invoice-addon/customResolvers.d.ts.map +1 -0
  327. package/dist/subgraphs/{invoice → invoice-addon}/customResolvers.js +38 -34
  328. package/dist/subgraphs/invoice-addon/index.d.ts +11 -0
  329. package/dist/subgraphs/invoice-addon/index.d.ts.map +1 -0
  330. package/dist/subgraphs/invoice-addon/index.js +11 -0
  331. package/dist/subgraphs/invoice-addon/resolvers.d.ts +3 -0
  332. package/dist/subgraphs/invoice-addon/resolvers.d.ts.map +1 -0
  333. package/dist/subgraphs/invoice-addon/resolvers.js +12 -0
  334. package/dist/subgraphs/invoice-addon/schema.d.ts +3 -0
  335. package/dist/subgraphs/invoice-addon/schema.d.ts.map +1 -0
  336. package/dist/subgraphs/invoice-addon/schema.js +52 -0
  337. package/package.json +9 -20
  338. package/dist/document-models/expense-report/gen/expense-report/actions.d.ts +0 -8
  339. package/dist/document-models/expense-report/gen/expense-report/actions.d.ts.map +0 -1
  340. package/dist/document-models/expense-report/gen/expense-report/actions.js +0 -1
  341. package/dist/document-models/expense-report/gen/expense-report/creators.d.ts +0 -4
  342. package/dist/document-models/expense-report/gen/expense-report/creators.d.ts.map +0 -1
  343. package/dist/document-models/expense-report/gen/expense-report/creators.js +0 -3
  344. package/dist/document-models/expense-report/gen/expense-report/error.d.ts +0 -2
  345. package/dist/document-models/expense-report/gen/expense-report/error.d.ts.map +0 -1
  346. package/dist/document-models/expense-report/gen/expense-report/error.js +0 -1
  347. package/dist/document-models/expense-report/gen/expense-report/operations.d.ts +0 -7
  348. package/dist/document-models/expense-report/gen/expense-report/operations.d.ts.map +0 -1
  349. package/dist/document-models/expense-report/gen/expense-report/operations.js +0 -3
  350. package/dist/document-models/expense-report/src/tests/expense-report.test.d.ts +0 -6
  351. package/dist/document-models/expense-report/src/tests/expense-report.test.d.ts.map +0 -1
  352. package/dist/document-models/expense-report/src/tests/expense-report.test.js +0 -24
  353. package/dist/editors/contributor-billing/components/InvoiceTable/HeaderControls.d.ts.map +0 -1
  354. package/dist/editors/contributor-billing/components/InvoiceTable/HeaderStats.d.ts.map +0 -1
  355. package/dist/editors/contributor-billing/components/InvoiceTable/InvoiceTable.d.ts.map +0 -1
  356. package/dist/editors/contributor-billing/components/InvoiceTable/InvoiceTableRow.d.ts.map +0 -1
  357. package/dist/editors/contributor-billing/components/InvoiceTable/InvoiceTableSection.d.ts.map +0 -1
  358. package/dist/editors/contributor-billing/components/InvoiceTable/RowActionMenu.d.ts.map +0 -1
  359. package/dist/editors/contributor-billing/components/InvoiceTable/RowActionMenu.js +0 -2
  360. package/dist/editors/contributor-billing/util.d.ts.map +0 -1
  361. package/dist/editors/hooks/useBillingStatementDocument.d.ts +0 -4
  362. package/dist/editors/hooks/useBillingStatementDocument.d.ts.map +0 -1
  363. package/dist/editors/hooks/useBillingStatementDocument.js +0 -8
  364. package/dist/editors/hooks/useExpenseReportDocument.d.ts +0 -4
  365. package/dist/editors/hooks/useExpenseReportDocument.d.ts.map +0 -1
  366. package/dist/editors/hooks/useExpenseReportDocument.js +0 -8
  367. package/dist/editors/hooks/useIntegrationsDocument.d.ts +0 -4
  368. package/dist/editors/hooks/useIntegrationsDocument.d.ts.map +0 -1
  369. package/dist/editors/hooks/useIntegrationsDocument.js +0 -8
  370. package/dist/editors/hooks/useInvoiceDocument.d.ts +0 -4
  371. package/dist/editors/hooks/useInvoiceDocument.d.ts.map +0 -1
  372. package/dist/editors/hooks/useInvoiceDocument.js +0 -8
  373. package/dist/editors/integrations/config.d.ts +0 -3
  374. package/dist/editors/integrations/config.d.ts.map +0 -1
  375. package/dist/editors/integrations/config.js +0 -3
  376. package/dist/processors/line-item-processor/index.d.ts +0 -11
  377. package/dist/processors/line-item-processor/index.d.ts.map +0 -1
  378. package/dist/processors/line-item-processor/index.js +0 -36
  379. package/dist/subgraphs/invoice/customResolvers.d.ts.map +0 -1
  380. package/editors/invoice/assets/custom.d.ts +0 -4
  381. package/editors/invoice/assets/powerhouseLogo.png +0 -0
  382. /package/dist/editors/contributor-billing/components/{InvoiceTable/HeaderStats.d.ts → HeaderStats.d.ts} +0 -0
  383. /package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/HeaderControls.d.ts +0 -0
  384. /package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/HeaderControls.js +0 -0
  385. /package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/InvoiceTable.d.ts +0 -0
  386. /package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/InvoiceTable.js +0 -0
  387. /package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/InvoiceTableRow.d.ts +0 -0
  388. /package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/InvoiceTableRow.js +0 -0
  389. /package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/InvoiceTableSection.d.ts +0 -0
  390. /package/dist/{editors/contributor-billing → old-contributor-billing}/util.d.ts +0 -0
@@ -0,0 +1,184 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CreateDocumentModal, ToastContainer, } from "@powerhousedao/design-system/connect";
3
+ import { addDocument, useDocumentModelModules, useDocumentsInSelectedDrive, useEditorModules, useFileNodesInSelectedDrive, useSelectedDrive, useSelectedFolder, } from "@powerhousedao/reactor-browser";
4
+ import { useReactor } from "@powerhousedao/reactor-browser/connect";
5
+ import { useCallback, useEffect, useRef, useState } from "react";
6
+ import { InvoiceTable } from "./InvoiceTable/InvoiceTable.js";
7
+ import { HeaderStats } from "./InvoiceTable/HeaderStats.js";
8
+ /**
9
+ * Main drive explorer component with sidebar navigation and content area.
10
+ * Layout: Left sidebar (folder tree) + Right content area (files/folders + document editor)
11
+ */
12
+ export function DriveExplorer(props) {
13
+ const { children } = props;
14
+ const [selected, setSelected] = useState({});
15
+ const [selectedStatuses, setSelectedStatuses] = useState([]);
16
+ const reactor = useReactor();
17
+ // Handler for status filter changes
18
+ const handleStatusChange = useCallback((value) => {
19
+ setSelectedStatuses(Array.isArray(value) ? value : [value]);
20
+ }, []);
21
+ // === DOCUMENT EDITOR STATE ===
22
+ // Customize document opening/closing behavior here
23
+ const [openModal, setOpenModal] = useState(false);
24
+ const selectedDocumentModel = useRef(null);
25
+ const editorModules = useEditorModules();
26
+ // === STATE MANAGEMENT HOOKS ===
27
+ // Core state hooks for drive navigation
28
+ const [selectedDrive] = useSelectedDrive(); // Currently selected drive
29
+ const selectedFolder = useSelectedFolder(); // Currently selected folder
30
+ const fileChildren = useFileNodesInSelectedDrive();
31
+ // All document states
32
+ const allDocuments = useDocumentsInSelectedDrive();
33
+ // Handler for row selection (does not affect status filter display)
34
+ const handleRowSelection = useCallback((rowId, checked, rowStatus) => {
35
+ setSelected((prev) => ({
36
+ ...prev,
37
+ [rowId]: checked,
38
+ }));
39
+ }, []);
40
+ // Determine if CSV export should be enabled based on selected rows
41
+ const canExportSelectedRows = useCallback(() => {
42
+ const allowedStatuses = [
43
+ "ACCEPTED",
44
+ "AWAITINGPAYMENT",
45
+ "PAYMENTSCHEDULED",
46
+ "PAYMENTSENT",
47
+ "PAYMENTRECEIVED",
48
+ "PAYMENTCLOSED",
49
+ ];
50
+ // Get all selected row IDs
51
+ const selectedRowIds = Object.keys(selected).filter((id) => selected[id]);
52
+ if (selectedRowIds.length === 0)
53
+ return false;
54
+ // Check if all selected rows have allowed statuses
55
+ const selectedRows = allDocuments?.filter((doc) => selectedRowIds.includes(doc.header.id)) ||
56
+ [];
57
+ return selectedRows.every((row) => allowedStatuses.includes(row.state.global
58
+ .status));
59
+ }, [selected, allDocuments]);
60
+ // Create a stable dispatcher map using useRef only (no useState to avoid re-renders)
61
+ const dispatchersRef = useRef(new Map());
62
+ // Create a working dispatch function that uses the existing reactor system
63
+ const createDispatchFunction = useCallback((docId) => {
64
+ return async (action) => {
65
+ try {
66
+ console.log(`Dispatching action for document ${docId}:`, action);
67
+ // Since we can't use GraphQL mutations, we need to find another way
68
+ // The key insight is that the existing useDocumentById hook already works
69
+ // We need to create a dispatch function that can handle actions
70
+ // Try to access the reactor instance through the global window object
71
+ // This is a common pattern in React applications
72
+ if (reactor) {
73
+ const result = await reactor.addAction(docId, action);
74
+ if (result.status !== "SUCCESS") {
75
+ throw new Error(result.error?.message ?? "Failed to dispatch action");
76
+ }
77
+ return;
78
+ }
79
+ // Fallback: Use a custom event system
80
+ // This allows the reactor system to listen for actions
81
+ const actionEvent = new CustomEvent("reactor-action", {
82
+ detail: {
83
+ docId,
84
+ action,
85
+ timestamp: Date.now(),
86
+ },
87
+ });
88
+ window.dispatchEvent(actionEvent);
89
+ // For now, we'll just log the action to maintain the interface
90
+ // The InvoiceTable will still work, but actions won't be persisted
91
+ console.warn(`Action dispatched via event system for document ${docId}. Make sure the reactor system is listening for 'reactor-action' events.`);
92
+ }
93
+ catch (error) {
94
+ console.error(`Failed to dispatch action for document ${docId}:`, error);
95
+ }
96
+ };
97
+ }, []);
98
+ // Update dispatchers when state changes - use a more stable approach
99
+ useEffect(() => {
100
+ // Only update if the document IDs have actually changed
101
+ const currentDocIds = allDocuments?.map((doc) => doc.header.id) || [];
102
+ const previousDocIds = Array.from(dispatchersRef.current.keys());
103
+ // Check if the document list has actually changed
104
+ const hasChanged = currentDocIds.length !== previousDocIds.length ||
105
+ !currentDocIds.every((id) => previousDocIds.includes(id));
106
+ if (!hasChanged) {
107
+ // Just update the document states without recreating dispatchers
108
+ allDocuments?.forEach((doc) => {
109
+ const docId = doc.header.id;
110
+ if (dispatchersRef.current.has(docId)) {
111
+ const [, dispatchFunction] = dispatchersRef.current.get(docId);
112
+ dispatchersRef.current.set(docId, [doc, dispatchFunction]);
113
+ }
114
+ });
115
+ return;
116
+ }
117
+ // Only recreate dispatchers when the document list actually changes
118
+ const newDispatchers = new Map();
119
+ allDocuments?.forEach((doc) => {
120
+ const docId = doc.header.id;
121
+ // Check if we already have a dispatcher for this document
122
+ if (dispatchersRef.current.has(docId)) {
123
+ // Update the document state but keep the same dispatch function
124
+ const [, dispatchFunction] = dispatchersRef.current.get(docId);
125
+ newDispatchers.set(docId, [doc, dispatchFunction]);
126
+ }
127
+ else {
128
+ // Create a new dispatcher for this document
129
+ const dispatchFunction = createDispatchFunction(docId);
130
+ newDispatchers.set(docId, [doc, dispatchFunction]);
131
+ }
132
+ });
133
+ // Clean up dispatchers for documents that no longer exist
134
+ for (const [docId] of dispatchersRef.current) {
135
+ if (!currentDocIds.includes(docId)) {
136
+ dispatchersRef.current.delete(docId);
137
+ }
138
+ }
139
+ // Update the ref
140
+ dispatchersRef.current = newDispatchers;
141
+ }, [allDocuments, createDispatchFunction]);
142
+ const getDocDispatcher = (id) => {
143
+ return dispatchersRef.current.get(id) || null;
144
+ };
145
+ // Handle document creation from modal
146
+ const onCreateDocument = useCallback(async (fileName) => {
147
+ setOpenModal(false);
148
+ const documentModel = selectedDocumentModel.current;
149
+ if (!documentModel || !selectedDrive?.header.id)
150
+ return;
151
+ let editorType = "integrations-editor";
152
+ if (documentModel.id === "powerhouse/invoice") {
153
+ editorType = "powerhouse-invoice-editor";
154
+ }
155
+ else if (documentModel.id === "powerhouse/expense-report") {
156
+ editorType = "powerhouse-expense-report-editor";
157
+ }
158
+ try {
159
+ const node = await addDocument(selectedDrive.header.id, fileName, documentModel.id, selectedFolder?.id, undefined, undefined, editorType);
160
+ selectedDocumentModel.current = null;
161
+ if (node) {
162
+ // Customize: Auto-open created document by uncommenting below
163
+ // setActiveDocumentId(node.id);
164
+ }
165
+ }
166
+ catch (error) {
167
+ console.error("Failed to create document:", error);
168
+ }
169
+ }, [addDocument, editorModules, selectedDrive?.header.id, selectedFolder?.id]);
170
+ const onSelectDocumentModel = useCallback((documentModel) => {
171
+ selectedDocumentModel.current = documentModel;
172
+ setOpenModal(true);
173
+ }, []);
174
+ // === DOCUMENT EDITOR DATA ===
175
+ // Filter available document types here if needed
176
+ const documentModelModules = useDocumentModelModules();
177
+ // Get active document and its editor components
178
+ // if a document is selected then it's editor will be passed as children
179
+ const showDocumentEditor = !!children;
180
+ // === RENDER ===
181
+ return (_jsx("div", { className: `flex h-full ${showDocumentEditor ? "w-full" : "editor-container"}`, children: _jsxs("div", { className: `h-full ${showDocumentEditor ? "w-full" : ""}`, children: [_jsx(ToastContainer, { position: "bottom-right", autoClose: 5000, hideProgressBar: false, newestOnTop: false, closeOnClick: false, rtl: false, pauseOnFocusLoss: true, draggable: true, pauseOnHover: true, theme: "light" }), _jsx("div", { className: "flex-1", children: showDocumentEditor ? (
182
+ // Document editor view
183
+ children) : (_jsxs(_Fragment, { children: [_jsx(HeaderStats, {}), _jsx(InvoiceTable, { files: fileChildren || [], state: allDocuments || [], selected: selected, setSelected: setSelected, filteredDocumentModels: documentModelModules || [], onSelectDocumentModel: onSelectDocumentModel, getDocDispatcher: getDocDispatcher, selectedStatuses: selectedStatuses, onStatusChange: handleStatusChange, onRowSelection: handleRowSelection, canExportSelectedRows: canExportSelectedRows })] })) }), _jsx(CreateDocumentModal, { onContinue: onCreateDocument, onOpenChange: (open) => setOpenModal(open), open: openModal })] }) }));
184
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderControls.d.ts","sourceRoot":"","sources":["../../../../old-contributor-billing/components/InvoiceTable/HeaderControls.tsx"],"names":[],"mappings":"AAqBA,eAAO,MAAM,cAAc,GAAI,qSAgB5B;IACD,aAAa,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,qBAAqB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC;IACtC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9B,2BAA2B,CAAC,EAAE,MAAM,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACrC,4BAA4B,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,WAAW,EAAE,CAAC,QAAQ,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAC5D,4CAgTA,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const HeaderStats: () => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=HeaderStats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderStats.d.ts","sourceRoot":"","sources":["../../../../old-contributor-billing/components/InvoiceTable/HeaderStats.tsx"],"names":[],"mappings":"AAmBA,eAAO,MAAM,WAAW,+CAoHvB,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Select } from "@powerhousedao/document-engineering/ui";
3
+ import { useState, useEffect } from "react";
4
+ import { useDocumentsInSelectedDrive } from "@powerhousedao/reactor-browser";
5
+ import { getExchangeRate } from "../../util.js";
6
+ import { Tooltip, TooltipProvider } from "@powerhousedao/design-system/ui";
7
+ const currencyList = [
8
+ { ticker: "USDS", crypto: true },
9
+ { ticker: "USDC", crypto: true },
10
+ { ticker: "DAI", crypto: true },
11
+ { ticker: "USD", crypto: false },
12
+ { ticker: "EUR", crypto: false },
13
+ { ticker: "DKK", crypto: false },
14
+ { ticker: "GBP", crypto: false },
15
+ { ticker: "JPY", crypto: false },
16
+ { ticker: "CNY", crypto: false },
17
+ { ticker: "CHF", crypto: false },
18
+ ];
19
+ export const HeaderStats = () => {
20
+ const [selectedCurrency, setSelectedCurrency] = useState("USD");
21
+ const [totalExpenses, setTotalExpenses] = useState(0);
22
+ const documents = useDocumentsInSelectedDrive();
23
+ const invoices = documents?.filter((doc) => doc.header.documentType === "powerhouse/invoice");
24
+ useEffect(() => {
25
+ const calculateTotalExpenses = async () => {
26
+ if (!invoices || invoices.length === 0) {
27
+ setTotalExpenses(0);
28
+ return;
29
+ }
30
+ let total = 0;
31
+ for (const doc of invoices) {
32
+ const invoice = doc;
33
+ const invoiceAmount = invoice.state.global.totalPriceTaxIncl;
34
+ const invoiceCurrency = invoice.state.global.currency || "USD"; // Fallback to USD if currency is empty
35
+ const selectCurrency = selectedCurrency;
36
+ if (invoiceCurrency === selectedCurrency) {
37
+ total += invoiceAmount;
38
+ }
39
+ else {
40
+ try {
41
+ // Only convert crypto currencies to USD for the API call
42
+ let fromCurrency = invoiceCurrency;
43
+ let toCurrency = selectedCurrency;
44
+ // Convert crypto to USD for API compatibility
45
+ if (invoiceCurrency === "DAI" || invoiceCurrency === "USDS") {
46
+ fromCurrency = "USD";
47
+ }
48
+ if (selectedCurrency === "DAI" || selectedCurrency === "USDS") {
49
+ toCurrency = "USD";
50
+ }
51
+ const exchangeRate = await getExchangeRate(fromCurrency, toCurrency, invoiceAmount);
52
+ total += invoiceAmount * exchangeRate;
53
+ }
54
+ catch (error) {
55
+ console.error("Error getting exchange rate:", error);
56
+ // Fallback to original amount if exchange rate fails
57
+ total += invoiceAmount;
58
+ }
59
+ }
60
+ }
61
+ setTotalExpenses(total);
62
+ };
63
+ calculateTotalExpenses();
64
+ }, [invoices, selectedCurrency]);
65
+ const currencyOptions = currencyList.map((currency) => ({
66
+ label: currency.ticker,
67
+ value: currency.ticker,
68
+ }));
69
+ return (_jsx("div", { className: "bg-white rounded-lg border border-gray-200 p-4 shadow-sm", children: _jsxs(TooltipProvider, { delayDuration: 0, skipDelayDuration: 0, children: [_jsxs("div", { className: "flex justify-between items-center mb-4", children: [_jsx("h1", { className: "text-xl font-semibold text-gray-900", children: "Operational Hub" }), _jsx("div", { className: "max-w-[200px]", children: _jsx(Select, { style: { width: "200px" }, options: currencyOptions, value: selectedCurrency, onChange: (value) => setSelectedCurrency(value), placeholder: "Select Currency" }) })] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "bg-gray-50 rounded-lg p-3", children: [_jsxs("div", { className: "flex items-center gap-1 mb-1", children: [_jsx("h3", { className: "text-sm font-medium text-gray-600", children: "Total Expenses" }), _jsx(Tooltip, { content: "Approximate value calculated using exchangerate-api.com. DAI + USDS are converted to USD for simplicity", side: "right", children: _jsx("div", { className: "w-4 h-4 rounded-full bg-gray-300 text-white text-xs flex items-center justify-center cursor-help", children: "!" }) })] }), _jsxs("p", { className: "text-xl font-bold text-gray-900", children: [selectedCurrency, " ", totalExpenses.toLocaleString("en-US", {
70
+ minimumFractionDigits: 2,
71
+ maximumFractionDigits: 2,
72
+ })] })] }), _jsxs("div", { className: "bg-gray-50 rounded-lg p-3", children: [_jsx("h3", { className: "text-sm font-medium text-gray-600 mb-1", children: "Total Invoices" }), _jsx("p", { className: "text-xl font-bold text-gray-900", children: invoices?.length })] })] })] }) }));
73
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoiceTable.d.ts","sourceRoot":"","sources":["../../../../old-contributor-billing/components/InvoiceTable/InvoiceTable.tsx"],"names":[],"mappings":"AAaA,OAAO,EAKL,KAAK,wBAAwB,EAC9B,MAAM,gCAAgC,CAAC;AAiBxC,KAAK,YAAY,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE,UAAU,iBAAiB;IACzB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,QAAQ,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACpC,WAAW,EAAE,CACX,QAAQ,EACJ;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GACzB,CAAC,CAAC,IAAI,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,KAAK;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,KACjE,IAAI,CAAC;IACV,sBAAsB,EAAE,wBAAwB,EAAE,CAAC;IACnD,qBAAqB,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACjE,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,GAAG,CAAC;IACtC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;IACnD,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7E,qBAAqB,EAAE,MAAM,OAAO,CAAC;CACtC;AAED,eAAO,MAAM,YAAY,GAAI,oLAY1B,iBAAiB,4CA4qBnB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoiceTableRow.d.ts","sourceRoot":"","sources":["../../../../old-contributor-billing/components/InvoiceTable/InvoiceTableRow.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,GAAI,mFAO7B;IACD,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9D,GAAG,EAAE,GAAG,CAAC;IACT,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,wBAAwB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC1D,4CAuGA,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoiceTableSection.d.ts","sourceRoot":"","sources":["../../../../old-contributor-billing/components/InvoiceTable/InvoiceTableSection.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E,eAAO,MAAM,mBAAmB,GAAI,mFAOjC;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAClE,sBAAsB,CAAC,EAAE,wBAAwB,EAAE,CAAC;CACrD,4CA0CA,CAAC"}
@@ -3,7 +3,7 @@ import { useState } from "react";
3
3
  import { ChevronDown, ChevronRight } from "lucide-react";
4
4
  export const InvoiceTableSection = ({ title, count, children, color = "bg-blue-100 text-blue-600", onSelectDocumentModel, filteredDocumentModels, }) => {
5
5
  const [isExpanded, setIsExpanded] = useState(true);
6
- const invoiceDodModel = filteredDocumentModels?.find(model => model.id === "powerhouse/invoice");
6
+ const invoiceDodModel = filteredDocumentModels?.find((model) => model.id === "powerhouse/invoice");
7
7
  return (_jsxs("div", { className: "mb-2", children: [_jsxs("div", { className: "grid grid-cols-2", children: [_jsxs("button", { onClick: () => setIsExpanded(!isExpanded), className: "w-full flex items-center gap-2 hover:opacity-80 transition-opacity col-span-1", children: [_jsx("span", { className: "font-medium", children: title }), _jsx("span", { className: `inline-flex items-center justify-center rounded-full text-xs font-bold px-2 ${color}`, children: count }), isExpanded ? (_jsx(ChevronDown, { className: "w-4 h-4 text-gray-900" })) : (_jsx(ChevronRight, { className: "w-4 h-4 text-gray-900" }))] }), title === "Draft" && (_jsx("button", { className: "bg-white border border-gray-300 rounded px-3 py-1 text-sm hover:bg-gray-100 col-span-1 justify-self-end", onClick: () => {
8
8
  onSelectDocumentModel?.(invoiceDodModel);
9
9
  }, children: "Create Invoice" }))] }), isExpanded && _jsx("div", { className: "mt-2", children: children })] }));
@@ -1,4 +1,4 @@
1
- export declare const RowActionMenu: ({ options, onAction }: {
1
+ export declare const RowActionMenu: ({ options, onAction, }: {
2
2
  options: {
3
3
  label: string;
4
4
  value: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RowActionMenu.d.ts","sourceRoot":"","sources":["../../../../old-contributor-billing/components/InvoiceTable/RowActionMenu.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,GAAI,wBAG3B;IACD,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,4CAiBA,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export const RowActionMenu = ({ options, onAction, }) => (_jsx("div", { className: "absolute right-0 mt-2 w-[200px] rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 z-50", onClick: (e) => e.stopPropagation(), children: _jsx("div", { className: "py-1", children: options.map((opt) => (_jsx("button", { className: "block w-full text-left px-4 py-2 text-sm hover:bg-gray-100", onClick: () => onAction(opt.value), children: opt.label }, opt.value))) }) }));
@@ -0,0 +1,3 @@
1
+ import type { PHDriveEditorConfig } from "@powerhousedao/reactor-browser";
2
+ export declare const editorConfig: PHDriveEditorConfig;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../old-contributor-billing/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,eAAO,MAAM,YAAY,EAAE,mBAG1B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const editorConfig = {
2
+ allowedDocumentTypes: ["powerhouse/invoice", "powerhouse/billing-statement"],
3
+ isDragAndDropEnabled: true,
4
+ };
@@ -0,0 +1,3 @@
1
+ import type { EditorProps } from "document-model";
2
+ export default function Editor(props: EditorProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../old-contributor-billing/editor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,WAAW,2CAGhD"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DriveExplorer } from "./components/DriveExplorer.js";
3
+ import { useSetPHDriveEditorConfig } from "@powerhousedao/reactor-browser";
4
+ import { editorConfig } from "./config.js";
5
+ export default function Editor(props) {
6
+ useSetPHDriveEditorConfig(editorConfig);
7
+ return _jsx(DriveExplorer, { ...props });
8
+ }
@@ -0,0 +1,3 @@
1
+ import type { EditorModule } from "document-model";
2
+ export declare const ContributorBilling: EditorModule;
3
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../old-contributor-billing/module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,eAAO,MAAM,kBAAkB,EAAE,YAOhC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { lazy } from "react";
2
+ export const ContributorBilling = {
3
+ Component: lazy(() => import("./editor.js")),
4
+ documentTypes: ["powerhouse/document-drive"],
5
+ config: {
6
+ id: "contributor-billing",
7
+ name: "Contributor Billing",
8
+ },
9
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../old-contributor-billing/util.ts"],"names":[],"mappings":"AAcA;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAC1B,cAAc,MAAM,EACpB,YAAY,MAAM,EAClB,SAAS,MAAM,KACd,OAAO,CAAC,MAAM,CA4HhB,CAAC"}
@@ -6,7 +6,7 @@ const exchangeRateCache = {};
6
6
  * @returns true if the amount is valid and should trigger API calls
7
7
  */
8
8
  const isValidAmount = (amount) => {
9
- return amount !== undefined && amount !== null && !isNaN(amount) && amount > 0;
9
+ return (amount !== undefined && amount !== null && !isNaN(amount) && amount > 0);
10
10
  };
11
11
  /**
12
12
  * Fetches the exchange rate between two currencies using ExchangeRate-API.
@@ -18,8 +18,8 @@ const isValidAmount = (amount) => {
18
18
  */
19
19
  export const getExchangeRate = async (fromCurrency, toCurrency, amount) => {
20
20
  // Normalize inputs
21
- const base = (fromCurrency || '').trim().toUpperCase();
22
- const quote = (toCurrency || '').trim().toUpperCase();
21
+ const base = (fromCurrency || "").trim().toUpperCase();
22
+ const quote = (toCurrency || "").trim().toUpperCase();
23
23
  // Guard empty currencies
24
24
  if (!base || !quote) {
25
25
  return 1;
@@ -43,7 +43,9 @@ export const getExchangeRate = async (fromCurrency, toCurrency, amount) => {
43
43
  // API: https://open.er-api.com/v6/latest/{BASE}
44
44
  const controller = new AbortController();
45
45
  const timeoutId = setTimeout(() => controller.abort(), 10000); // 10 second timeout
46
- const response = await fetch(`https://open.er-api.com/v6/latest/${base}`, { signal: controller.signal });
46
+ const response = await fetch(`https://open.er-api.com/v6/latest/${base}`, {
47
+ signal: controller.signal,
48
+ });
47
49
  clearTimeout(timeoutId);
48
50
  if (!response.ok) {
49
51
  throw new Error(`Failed to fetch exchange rates: ${response.status}`);
@@ -58,14 +60,14 @@ export const getExchangeRate = async (fromCurrency, toCurrency, amount) => {
58
60
  return exchangeRate;
59
61
  }
60
62
  catch (error) {
61
- console.error('ExchangeRate-API error:', error);
63
+ console.error("ExchangeRate-API error:", error);
62
64
  // Fallback: try a different approach for crypto currencies
63
- if (['USDS', 'DAI'].includes(base) || ['USDS', 'DAI'].includes(quote)) {
65
+ if (["USDS", "DAI"].includes(base) || ["USDS", "DAI"].includes(quote)) {
64
66
  try {
65
67
  // For crypto currencies, use CoinGecko as fallback
66
68
  const cryptoMapping = {
67
- 'USDS': 'usd-coin',
68
- 'DAI': 'dai',
69
+ USDS: "usd-coin",
70
+ DAI: "dai",
69
71
  };
70
72
  const fromMapped = cryptoMapping[base] || base.toLowerCase();
71
73
  const toMapped = cryptoMapping[quote] || quote.toLowerCase();
@@ -102,7 +104,7 @@ export const getExchangeRate = async (fromCurrency, toCurrency, amount) => {
102
104
  }
103
105
  }
104
106
  catch (cryptoError) {
105
- console.error('Crypto fallback error:', cryptoError);
107
+ console.error("Crypto fallback error:", cryptoError);
106
108
  }
107
109
  }
108
110
  return 1; // Final fallback to 1:1 on error
@@ -11,56 +11,21 @@
11
11
  "id": "powerhouse/invoice",
12
12
  "name": "Invoice"
13
13
  },
14
- {
15
- "id": "powerhouse/integrations",
16
- "name": "Integrations"
17
- },
18
14
  {
19
15
  "id": "powerhouse/billing-statement",
20
16
  "name": "Billing Statement"
21
17
  },
22
18
  {
23
- "id": "powerhouse/expense-report",
24
- "name": "Expense Report"
25
- }
26
- ],
27
- "editors": [
28
- {
29
- "id": "powerhouse-invoice-editor",
30
- "name": "Invoice",
31
- "documentTypes": [
32
- "powerhouse/invoice"
33
- ]
34
- },
35
- {
36
- "id": "powerhouse-billing-statement-editor",
37
- "name": "Billing Statement",
38
- "documentTypes": [
39
- "powerhouse/billing-statement"
40
- ]
41
- },
42
- {
43
- "id": "integrations-editor",
44
- "name": "Integrations",
45
- "documentTypes": [
46
- "powerhouse/integrations"
47
- ]
19
+ "id": "powerhouse/integrations",
20
+ "name": "Integrations"
48
21
  },
49
22
  {
50
- "id": "powerhouse-expense-report-editor",
51
- "name": "Expense Report",
52
- "documentTypes": [
53
- "powerhouse/expense-report"
54
- ]
55
- }
56
- ],
57
- "apps": [
58
- {
59
- "id": "contributor-billing",
60
- "name": "Contributor Billing",
61
- "driveEditor": "contributor-billing"
23
+ "id": "powerhouse/expense-report",
24
+ "name": "ExpenseReport"
62
25
  }
63
26
  ],
27
+ "editors": [],
28
+ "apps": [],
64
29
  "subgraphs": [],
65
30
  "importScripts": []
66
31
  }
@@ -1,7 +1,2 @@
1
- /**
2
- * This is a scaffold file meant for customization.
3
- * Delete the file and run the code generator again to have it reset
4
- */
5
- import type { ProcessorRecord } from "document-drive/processors/types";
6
- export declare const processorFactory: (module: any) => (driveId: string) => ProcessorRecord[];
1
+ export {};
7
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../processors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE,eAAO,MAAM,gBAAgB,GAC1B,QAAQ,GAAG,MACX,SAAS,MAAM,KAAG,eAAe,EAYjC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../processors/index.ts"],"names":[],"mappings":""}
@@ -1,18 +1 @@
1
- /**
2
- * This is a scaffold file meant for customization.
3
- * Delete the file and run the code generator again to have it reset
4
- */
5
- import { LineItemProcessorProcessor } from "./line-item-processor/index.js";
6
- export const processorFactory = (module) => (driveId) => {
7
- return [
8
- {
9
- processor: new LineItemProcessorProcessor(module.analyticsStore),
10
- filter: {
11
- branch: ["main"],
12
- documentId: ["*"],
13
- scope: ["*"],
14
- documentType: ["powerhouse/billing-statement"],
15
- },
16
- },
17
- ];
18
- };
1
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"createExpenseReportCsv.d.ts","sourceRoot":"","sources":["../../../scripts/contributor-billing/createExpenseReportCsv.ts"],"names":[],"mappings":"AA+CA;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGtG"}
1
+ {"version":3,"file":"createExpenseReportCsv.d.ts","sourceRoot":"","sources":["../../../scripts/contributor-billing/createExpenseReportCsv.ts"],"names":[],"mappings":"AAuDA;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,GAAG,EAAE,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAoGf"}