@powerhousedao/design-system 1.4.2 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/dist/assets/icon-components/ArrowFilledRight.js.map +1 -1
  2. package/dist/assets/icon-components/ArrowLeft.js.map +1 -1
  3. package/dist/assets/icon-components/ArrowUp.js.map +1 -1
  4. package/dist/assets/icon-components/BarChart.js.map +1 -1
  5. package/dist/assets/icon-components/BaseArrowLeft.js.map +1 -1
  6. package/dist/assets/icon-components/BaseArrowRight.js.map +1 -1
  7. package/dist/assets/icon-components/Braces.js.map +1 -1
  8. package/dist/assets/icon-components/Branch.js.map +1 -1
  9. package/dist/assets/icon-components/BrickGlobe.js.map +1 -1
  10. package/dist/assets/icon-components/Briefcase.js.map +1 -1
  11. package/dist/assets/icon-components/Calendar.js.map +1 -1
  12. package/dist/assets/icon-components/Caret.js.map +1 -1
  13. package/dist/assets/icon-components/CaretDown.js.map +1 -1
  14. package/dist/assets/icon-components/Check.js.map +1 -1
  15. package/dist/assets/icon-components/CheckCircle.js.map +1 -1
  16. package/dist/assets/icon-components/CheckCircleFill.js.map +1 -1
  17. package/dist/assets/icon-components/ChevronDown.js.map +1 -1
  18. package/dist/assets/icon-components/Circle.js.map +1 -1
  19. package/dist/assets/icon-components/ClockFill.js.map +1 -1
  20. package/dist/assets/icon-components/CloudSlash.js.map +1 -1
  21. package/dist/assets/icon-components/Collapse.js.map +1 -1
  22. package/dist/assets/icon-components/Connect.js.map +1 -1
  23. package/dist/assets/icon-components/Drive.js.map +1 -1
  24. package/dist/assets/icon-components/Ellipsis.js.map +1 -1
  25. package/dist/assets/icon-components/Error.js.map +1 -1
  26. package/dist/assets/icon-components/Exclamation.js.map +1 -1
  27. package/dist/assets/icon-components/FilesEarmark.js.map +1 -1
  28. package/dist/assets/icon-components/FolderClose.js.map +1 -1
  29. package/dist/assets/icon-components/FolderOpen.js.map +1 -1
  30. package/dist/assets/icon-components/FolderPlus.js.map +1 -1
  31. package/dist/assets/icon-components/Gear.js.map +1 -1
  32. package/dist/assets/icon-components/Globe.js.map +1 -1
  33. package/dist/assets/icon-components/Hdd.js.map +1 -1
  34. package/dist/assets/icon-components/History.js.map +1 -1
  35. package/dist/assets/icon-components/InfoSquare.js.map +1 -1
  36. package/dist/assets/icon-components/Link.js.map +1 -1
  37. package/dist/assets/icon-components/Lock.js.map +1 -1
  38. package/dist/assets/icon-components/M.js.map +1 -1
  39. package/dist/assets/icon-components/Pencil.js.map +1 -1
  40. package/dist/assets/icon-components/People.js.map +1 -1
  41. package/dist/assets/icon-components/Person.js.map +1 -1
  42. package/dist/assets/icon-components/Plus.js.map +1 -1
  43. package/dist/assets/icon-components/PlusCircle.js.map +1 -1
  44. package/dist/assets/icon-components/PowerhouseLogoSmall.js.map +1 -1
  45. package/dist/assets/icon-components/Project.js.map +1 -1
  46. package/dist/assets/icon-components/RedoArrow.js.map +1 -1
  47. package/dist/assets/icon-components/Renown.js.map +1 -1
  48. package/dist/assets/icon-components/RenownHover.js.map +1 -1
  49. package/dist/assets/icon-components/Ring.js.map +1 -1
  50. package/dist/assets/icon-components/Save.js.map +1 -1
  51. package/dist/assets/icon-components/Search.js.map +1 -1
  52. package/dist/assets/icon-components/Server.js.map +1 -1
  53. package/dist/assets/icon-components/Settings.js.map +1 -1
  54. package/dist/assets/icon-components/Synced.js.map +1 -1
  55. package/dist/assets/icon-components/Syncing.js.map +1 -1
  56. package/dist/assets/icon-components/Trash.js.map +1 -1
  57. package/dist/assets/icon-components/TrashFill.js.map +1 -1
  58. package/dist/assets/icon-components/VariantArrowLeft.js.map +1 -1
  59. package/dist/assets/icon-components/VerticalDots.js.map +1 -1
  60. package/dist/assets/icon-components/WarningFill.js.map +1 -1
  61. package/dist/assets/icon-components/Xmark.js.map +1 -1
  62. package/dist/assets/icon-components/XmarkLight.js.map +1 -1
  63. package/dist/connect/components/animated-loader/animated-loader.js.map +1 -1
  64. package/dist/connect/components/breadcrumbs/breadcrumbs.js.map +1 -1
  65. package/dist/connect/components/combobox/combobox.js.map +1 -1
  66. package/dist/connect/components/cookie-banner/cookie-banner.js.map +1 -1
  67. package/dist/connect/components/date-time-input/date-time-local-input.js.map +1 -1
  68. package/dist/connect/components/default-editor-loader/default-editor-loader.js.map +1 -1
  69. package/dist/connect/components/disclosure/disclosure.js.map +1 -1
  70. package/dist/connect/components/divider/divider.js.map +1 -1
  71. package/dist/connect/components/document-toolbar/document-toolbar.js.map +1 -1
  72. package/dist/connect/components/drive-view/drive-view.js.map +1 -1
  73. package/dist/connect/components/dropdown-menu/dropdown-menu.js.map +1 -1
  74. package/dist/connect/components/editor-action-buttons/editor-action-buttons.js.map +1 -1
  75. package/dist/connect/components/editor-undo-redo-buttons/editor-undo-redo-buttons.js.map +1 -1
  76. package/dist/connect/components/ens-avatar/ens-avatar.js.map +1 -1
  77. package/dist/connect/components/file-item/file-item.js +7 -7
  78. package/dist/connect/components/file-item/file-item.js.map +1 -1
  79. package/dist/connect/components/folder-item/folder-item.js.map +1 -1
  80. package/dist/connect/components/footer/footer-link.js.map +1 -1
  81. package/dist/connect/components/footer/footer.js.map +1 -1
  82. package/dist/connect/components/form/add-local-drive-form.js.map +1 -1
  83. package/dist/connect/components/form/add-remote-drive-form.js.map +1 -1
  84. package/dist/connect/components/form/drive-settings-form.js.map +1 -1
  85. package/dist/connect/components/form/inputs/available-offline-toggle.js.map +1 -1
  86. package/dist/connect/components/form/inputs/delete-drive.js.map +1 -1
  87. package/dist/connect/components/form/inputs/drive-name-input.js.map +1 -1
  88. package/dist/connect/components/form/inputs/drive-name.js.map +1 -1
  89. package/dist/connect/components/form/inputs/label.js.map +1 -1
  90. package/dist/connect/components/form/inputs/location-info.js.map +1 -1
  91. package/dist/connect/components/form/inputs/sharing-type-form-input.js.map +1 -1
  92. package/dist/connect/components/form-input/form-input.js.map +1 -1
  93. package/dist/connect/components/loading-screen/loading-screen.js.map +1 -1
  94. package/dist/connect/components/modal/add-local-drive-modal.js.map +1 -1
  95. package/dist/connect/components/modal/add-remote-drive-modal.js.map +1 -1
  96. package/dist/connect/components/modal/confirmation-modal.js.map +1 -1
  97. package/dist/connect/components/modal/create-document-modal.js +28 -24
  98. package/dist/connect/components/modal/create-document-modal.js.map +1 -1
  99. package/dist/connect/components/modal/delete-drive-modal.js.map +1 -1
  100. package/dist/connect/components/modal/delete-item-modal.js.map +1 -1
  101. package/dist/connect/components/modal/drive-settings-modal.js.map +1 -1
  102. package/dist/connect/components/modal/read-required-modal.js.map +1 -1
  103. package/dist/connect/components/modal/settings-modal/clear-storage-row.js.map +1 -1
  104. package/dist/connect/components/modal/settings-modal/dependency-versions/dependency-versions.js.map +1 -1
  105. package/dist/connect/components/modal/settings-modal/document-select-row.js.map +1 -1
  106. package/dist/connect/components/modal/settings-modal/row.js.map +1 -1
  107. package/dist/connect/components/modal/settings-modal/settings-modal.js.map +1 -1
  108. package/dist/connect/components/modal/upgrade-drive-modal.js.map +1 -1
  109. package/dist/connect/components/node-input/node-input.js.map +1 -1
  110. package/dist/connect/components/revision-history/header/branch.js.map +1 -1
  111. package/dist/connect/components/revision-history/header/doc-id.js.map +1 -1
  112. package/dist/connect/components/revision-history/header/header.js.map +1 -1
  113. package/dist/connect/components/revision-history/header/scope.js.map +1 -1
  114. package/dist/connect/components/revision-history/revision/address.js.map +1 -1
  115. package/dist/connect/components/revision-history/revision/errors.js.map +1 -1
  116. package/dist/connect/components/revision-history/revision/operation.js.map +1 -1
  117. package/dist/connect/components/revision-history/revision/revision-number.js.map +1 -1
  118. package/dist/connect/components/revision-history/revision/revision.js.map +1 -1
  119. package/dist/connect/components/revision-history/revision/signature.js.map +1 -1
  120. package/dist/connect/components/revision-history/revision/timestamp.js.map +1 -1
  121. package/dist/connect/components/revision-history/revision-history.js.map +1 -1
  122. package/dist/connect/components/revision-history/skip/skip.js.map +1 -1
  123. package/dist/connect/components/revision-history/timeline/day.js.map +1 -1
  124. package/dist/connect/components/revision-history/timeline/timeline.js.map +1 -1
  125. package/dist/connect/components/revision-history/utils.js.map +1 -1
  126. package/dist/connect/components/search-bar/filter-item.js.map +1 -1
  127. package/dist/connect/components/search-bar/search-bar.js.map +1 -1
  128. package/dist/connect/components/select/select.js.map +1 -1
  129. package/dist/connect/components/sidebar/sidebar-footer.js.map +1 -1
  130. package/dist/connect/components/sidebar/sidebar-header.js.map +1 -1
  131. package/dist/connect/components/sidebar/sidebar-login.js.map +1 -1
  132. package/dist/connect/components/sidebar/sidebar-user.js.map +1 -1
  133. package/dist/connect/components/sidebar/sidebar.js.map +1 -1
  134. package/dist/connect/components/status-icon/sync-status-icon.js.map +1 -1
  135. package/dist/connect/components/toast/toast.js.map +1 -1
  136. package/dist/connect/components/toggle/toggle.js.map +1 -1
  137. package/dist/connect/components/tooltip/tooltip.js.map +1 -1
  138. package/dist/connect/components/tree-view/drop-indicator.js.map +1 -1
  139. package/dist/connect/components/tree-view/tree-view.js.map +1 -1
  140. package/dist/connect/constants/options.js.map +1 -1
  141. package/dist/connect/context/UiNodesContext.js.map +1 -1
  142. package/dist/connect/context/WagmiContext.js.map +1 -1
  143. package/dist/connect/hooks/drag-and-drop/use-drag.js.map +1 -1
  144. package/dist/connect/hooks/drag-and-drop/use-drop.js.map +1 -1
  145. package/dist/connect/utils/get-folder-status.js.map +1 -1
  146. package/dist/powerhouse/components/button/button.js.map +1 -1
  147. package/dist/powerhouse/components/dropdown-menu/dropdown-menu.js.map +1 -1
  148. package/dist/powerhouse/components/icon/icon.js.map +1 -1
  149. package/dist/powerhouse/components/legacy/editorToolbar.js.map +1 -1
  150. package/dist/powerhouse/components/legacy/editorWorksheet.js.map +1 -1
  151. package/dist/powerhouse/components/legacy/styles.js.map +1 -1
  152. package/dist/powerhouse/components/legacy/stylesVariant.js.map +1 -1
  153. package/dist/powerhouse/components/legacy/textInput.js.map +1 -1
  154. package/dist/powerhouse/components/legacy/textInputVariant.js.map +1 -1
  155. package/dist/powerhouse/components/legacy/toolbarButton.js.map +1 -1
  156. package/dist/powerhouse/components/modal/modal.js.map +1 -1
  157. package/dist/powerhouse/components/pagination/pagination-button.js.map +1 -1
  158. package/dist/powerhouse/components/pagination/pagination.js.map +1 -1
  159. package/dist/powerhouse/components/sidebar/sidebar-panel.js.map +1 -1
  160. package/dist/powerhouse/components/sidebar/sidebar.js.map +1 -1
  161. package/dist/powerhouse/hooks/animation.js.map +1 -1
  162. package/dist/powerhouse/hooks/reducer.js.map +1 -1
  163. package/dist/powerhouse/hooks/usePagination.js.map +1 -1
  164. package/dist/powerhouse/utils/getDimensions.js.map +1 -1
  165. package/dist/powerhouse/utils/mergeClassNameProps.js.map +1 -1
  166. package/dist/rwa/components/button/button.js.map +1 -1
  167. package/dist/rwa/components/editor/editor.js.map +1 -1
  168. package/dist/rwa/components/inputs/form-inputs.js.map +1 -1
  169. package/dist/rwa/components/inputs/form-row.js.map +1 -1
  170. package/dist/rwa/components/inputs/number-input.js.map +1 -1
  171. package/dist/rwa/components/inputs/select.js.map +1 -1
  172. package/dist/rwa/components/inputs/text-input.js.map +1 -1
  173. package/dist/rwa/components/modal/create-item-modal.js.map +1 -1
  174. package/dist/rwa/components/modal/delete-item-modal.js.map +1 -1
  175. package/dist/rwa/components/modal/modal-form-inputs.js.map +1 -1
  176. package/dist/rwa/components/modal/modal-manager.js.map +1 -1
  177. package/dist/rwa/components/table/accounts/accounts-table.js.map +1 -1
  178. package/dist/rwa/components/table/assets/assets-table.js.map +1 -1
  179. package/dist/rwa/components/table/base/formatted-number.js.map +1 -1
  180. package/dist/rwa/components/table/base/header-label.js.map +1 -1
  181. package/dist/rwa/components/table/base/item-details.js.map +1 -1
  182. package/dist/rwa/components/table/base/table-base.js.map +1 -1
  183. package/dist/rwa/components/table/base/table-cell.js.map +1 -1
  184. package/dist/rwa/components/table/base/table-row.js.map +1 -1
  185. package/dist/rwa/components/table/base/table-with-form.js.map +1 -1
  186. package/dist/rwa/components/table/base/table.js.map +1 -1
  187. package/dist/rwa/components/table/transactions/cash-balance-change.js.map +1 -1
  188. package/dist/rwa/components/table/transactions/fee-transactions-table.js.map +1 -1
  189. package/dist/rwa/components/table/transactions/group-transactions-table.js.map +1 -1
  190. package/dist/rwa/components/table/transactions/transaction-reference.js.map +1 -1
  191. package/dist/rwa/components/table/transactions/unit-price.js.map +1 -1
  192. package/dist/rwa/components/tabs/other-tab.js.map +1 -1
  193. package/dist/rwa/components/tabs/portfolio-tab.js.map +1 -1
  194. package/dist/rwa/components/tabs/tab-content.js.map +1 -1
  195. package/dist/rwa/components/tabs/tabs.js.map +1 -1
  196. package/dist/rwa/components/tabs/transactions-tab.js.map +1 -1
  197. package/dist/rwa/constants/columns.js.map +1 -1
  198. package/dist/rwa/constants/dependent-items.js.map +1 -1
  199. package/dist/rwa/constants/table.js.map +1 -1
  200. package/dist/rwa/context/editor-context.js.map +1 -1
  201. package/dist/rwa/hooks/useColumnPriority.js.map +1 -1
  202. package/dist/rwa/hooks/useDefaultFormValues.js.map +1 -1
  203. package/dist/rwa/hooks/useFormInputs.js.map +1 -1
  204. package/dist/rwa/hooks/useSortTableItems.js.map +1 -1
  205. package/dist/rwa/hooks/useSubmit.js.map +1 -1
  206. package/dist/rwa/hooks/useTableData.js.map +1 -1
  207. package/dist/rwa/hooks/useTableForm.js.map +1 -1
  208. package/dist/rwa/hooks/useTableHeight.js.map +1 -1
  209. package/dist/rwa/utils/calculations.js.map +1 -1
  210. package/dist/rwa/utils/date.js.map +1 -1
  211. package/dist/rwa/utils/table.js.map +1 -1
  212. package/dist/services/wagmi.js.map +1 -1
  213. package/dist/shared-tailwind.config.js.map +1 -1
  214. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../../../src/rwa/components/table/base/table.tsx"],"sourcesContent":["import { Icon } from \"@/powerhouse\";\nimport {\n ItemNumberCell,\n MoreDetailsCell,\n RWATableCell,\n RWATableRow,\n SortDirection,\n TableBase,\n TableColumn,\n TableItemType,\n TableName,\n TableProps,\n columnsByTableName,\n defaultColumnCountByTableWidth,\n handleTableDatum,\n tableLabels,\n useColumnPriority,\n useEditorContext,\n useTableHeight,\n} from \"@/rwa\";\nimport { useCallback, useRef } from \"react\";\nimport { Fragment } from \"react/jsx-runtime\";\n\nexport function Table(props: TableProps) {\n const {\n tableName,\n tableData,\n columnCountByTableWidth = defaultColumnCountByTableWidth,\n sortHandler,\n specialFirstRow,\n specialLastRow,\n } = props;\n\n const columns = columnsByTableName[tableName];\n\n const {\n operation,\n selectedTableItem,\n isAllowedToCreateDocuments,\n createItem,\n } = useEditorContext();\n\n const tableContainerRef = useRef<HTMLDivElement>(null);\n const rowRefs = useRef<(HTMLTableRowElement | null)[]>([]);\n const headerRef = useRef<HTMLTableSectionElement>(null);\n\n const columnsToShow = useColumnPriority({\n columns,\n columnCountByTableWidth,\n tableContainerRef,\n });\n\n const maxHeight = useTableHeight({\n tableContainerRef,\n rowRefs,\n headerRef,\n selectedItemNumber: selectedTableItem?.itemNumber,\n hasSpecialLastRow: !!specialLastRow,\n });\n\n const tableLabel = tableLabels[tableName];\n\n const onCreateItemClick = useCallback(() => {\n createItem(tableName);\n }, [createItem, tableName]);\n\n const renderRow = useCallback(\n (\n tableItem: TableItemType<TableName>,\n columns: TableColumn[],\n index: number,\n ) => {\n const isSelected = selectedTableItem?.id === tableItem.id;\n\n return (\n <RWATableRow\n key={tableItem.id}\n ref={(el) => (rowRefs.current[index] = el)}\n >\n {columns.map((column) => (\n <Fragment key={column.key}>\n {column.key === \"itemNumber\" && (\n <ItemNumberCell itemNumber={tableItem.itemNumber} />\n )}\n {column.key !== \"itemNumber\" && column.key !== \"moreDetails\" && (\n <RWATableCell\n className={column.isNumberColumn ? \"text-right\" : \"\"}\n key={column.key}\n >\n {handleTableDatum(\n tableItem[column.key as keyof TableItemType<TableName>],\n column.decimalScale,\n column.displayTime,\n )}\n </RWATableCell>\n )}\n {column.key === \"moreDetails\" && (\n <MoreDetailsCell\n isSelected={isSelected}\n tableItem={tableItem}\n tableName={tableName}\n />\n )}\n </Fragment>\n ))}\n </RWATableRow>\n );\n },\n [selectedTableItem?.id, tableName],\n );\n\n return (\n <>\n <TableBase\n columns={columnsToShow}\n hasSelectedItem={!!selectedTableItem}\n headerRef={headerRef}\n maxHeight={maxHeight}\n onClickSort={\n sortHandler as (key: string, direction: SortDirection) => void\n }\n ref={tableContainerRef}\n renderRow={renderRow}\n specialFirstRow={specialFirstRow}\n specialLastRow={specialLastRow}\n tableData={tableData}\n />\n {isAllowedToCreateDocuments && !operation ? (\n <button\n className=\"mt-4 flex h-11 w-full items-center justify-center gap-x-2 rounded-lg border border-gray-300 bg-white text-sm font-semibold text-gray-900\"\n onClick={onCreateItemClick}\n >\n <span>Create {tableLabel}</span>\n <Icon name=\"Plus\" size={14} />\n </button>\n ) : null}\n </>\n );\n}\n"],"names":["Table","props","tableName","tableData","columnCountByTableWidth","defaultColumnCountByTableWidth","sortHandler","specialFirstRow","specialLastRow","columns","columnsByTableName","operation","selectedTableItem","isAllowedToCreateDocuments","createItem","useEditorContext","tableContainerRef","useRef","rowRefs","headerRef","columnsToShow","useColumnPriority","maxHeight","useTableHeight","tableLabel","tableLabels","onCreateItemClick","useCallback","renderRow","tableItem","index","isSelected","jsx","RWATableRow","el","column","jsxs","Fragment","ItemNumberCell","RWATableCell","handleTableDatum","MoreDetailsCell","TableBase","Icon"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sources":["../../../../../src/rwa/components/table/base/table.tsx"],"sourcesContent":["import { Icon } from \"@/powerhouse\";\nimport {\n ItemNumberCell,\n MoreDetailsCell,\n RWATableCell,\n RWATableRow,\n SortDirection,\n TableBase,\n TableColumn,\n TableItemType,\n TableName,\n TableProps,\n columnsByTableName,\n defaultColumnCountByTableWidth,\n handleTableDatum,\n tableLabels,\n useColumnPriority,\n useEditorContext,\n useTableHeight,\n} from \"@/rwa\";\nimport { useCallback, useRef } from \"react\";\nimport { Fragment } from \"react/jsx-runtime\";\n\nexport function Table(props: TableProps) {\n const {\n tableName,\n tableData,\n columnCountByTableWidth = defaultColumnCountByTableWidth,\n sortHandler,\n specialFirstRow,\n specialLastRow,\n } = props;\n\n const columns = columnsByTableName[tableName];\n\n const {\n operation,\n selectedTableItem,\n isAllowedToCreateDocuments,\n createItem,\n } = useEditorContext();\n\n const tableContainerRef = useRef<HTMLDivElement>(null);\n const rowRefs = useRef<(HTMLTableRowElement | null)[]>([]);\n const headerRef = useRef<HTMLTableSectionElement>(null);\n\n const columnsToShow = useColumnPriority({\n columns,\n columnCountByTableWidth,\n tableContainerRef,\n });\n\n const maxHeight = useTableHeight({\n tableContainerRef,\n rowRefs,\n headerRef,\n selectedItemNumber: selectedTableItem?.itemNumber,\n hasSpecialLastRow: !!specialLastRow,\n });\n\n const tableLabel = tableLabels[tableName];\n\n const onCreateItemClick = useCallback(() => {\n createItem(tableName);\n }, [createItem, tableName]);\n\n const renderRow = useCallback(\n (\n tableItem: TableItemType<TableName>,\n columns: TableColumn[],\n index: number,\n ) => {\n const isSelected = selectedTableItem?.id === tableItem.id;\n\n return (\n <RWATableRow\n key={tableItem.id}\n ref={(el) => (rowRefs.current[index] = el)}\n >\n {columns.map((column) => (\n <Fragment key={column.key}>\n {column.key === \"itemNumber\" && (\n <ItemNumberCell itemNumber={tableItem.itemNumber} />\n )}\n {column.key !== \"itemNumber\" && column.key !== \"moreDetails\" && (\n <RWATableCell\n className={column.isNumberColumn ? \"text-right\" : \"\"}\n key={column.key}\n >\n {handleTableDatum(\n tableItem[column.key as keyof TableItemType<TableName>],\n column.decimalScale,\n column.displayTime,\n )}\n </RWATableCell>\n )}\n {column.key === \"moreDetails\" && (\n <MoreDetailsCell\n isSelected={isSelected}\n tableItem={tableItem}\n tableName={tableName}\n />\n )}\n </Fragment>\n ))}\n </RWATableRow>\n );\n },\n [selectedTableItem?.id, tableName],\n );\n\n return (\n <>\n <TableBase\n columns={columnsToShow}\n hasSelectedItem={!!selectedTableItem}\n headerRef={headerRef}\n maxHeight={maxHeight}\n onClickSort={\n sortHandler as (key: string, direction: SortDirection) => void\n }\n ref={tableContainerRef}\n renderRow={renderRow}\n specialFirstRow={specialFirstRow}\n specialLastRow={specialLastRow}\n tableData={tableData}\n />\n {isAllowedToCreateDocuments && !operation ? (\n <button\n className=\"mt-4 flex h-11 w-full items-center justify-center gap-x-2 rounded-lg border border-gray-300 bg-white text-sm font-semibold text-gray-900\"\n onClick={onCreateItemClick}\n >\n <span>Create {tableLabel}</span>\n <Icon name=\"Plus\" size={14} />\n </button>\n ) : null}\n </>\n );\n}\n"],"names":["Table","props","tableName","tableData","columnCountByTableWidth","defaultColumnCountByTableWidth","sortHandler","specialFirstRow","specialLastRow","columns","columnsByTableName","operation","selectedTableItem","isAllowedToCreateDocuments","createItem","useEditorContext","tableContainerRef","useRef","rowRefs","headerRef","columnsToShow","useColumnPriority","maxHeight","useTableHeight","tableLabel","tableLabels","onCreateItemClick","useCallback","renderRow","tableItem","index","isSelected","jsx","RWATableRow","el","column","jsxs","Fragment","ItemNumberCell","RWATableCell","handleTableDatum","MoreDetailsCell","TableBase","Icon"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cash-balance-change.js","sources":["../../../../../src/rwa/components/table/transactions/cash-balance-change.tsx"],"sourcesContent":["import { GroupTransactionFormInputs } from \"@/rwa/types\";\nimport { calculateCashBalanceChange } from \"@/rwa/utils\";\nimport { Control, useWatch } from \"react-hook-form\";\nimport { FormattedNumber } from \"../base\";\n\nexport function CashBalanceChange(props: {\n readonly control: Control<GroupTransactionFormInputs>;\n}) {\n const { control } = props;\n const cashAmount = useWatch({ control, name: \"cashAmount\" });\n const type = useWatch({ control, name: \"type\" });\n const fees = useWatch({ control, name: \"fees\" });\n\n const cashBalanceChange = calculateCashBalanceChange(type, cashAmount, fees);\n\n return (\n <div className=\"flex items-center justify-between border-t border-gray-300 bg-gray-100 p-3 font-semibold text-gray-800\">\n <div className=\"mr-6 text-sm text-gray-600\">Cash Balance Change $USD</div>\n <div className=\"h-px flex-1 border-b border-dashed border-gray-400\" />\n <div className=\"pl-8 text-sm text-gray-900\">\n <FormattedNumber value={cashBalanceChange} />\n </div>\n </div>\n );\n}\n"],"names":["CashBalanceChange","props","control","cashAmount","useWatch","type","fees","cashBalanceChange","calculateCashBalanceChange","jsxs","jsx","FormattedNumber"],"mappings":";;;;AAKO,SAASA,EAAkBC,GAE/B;AACK,QAAA,EAAE,SAAAC,EAAY,IAAAD,GACdE,IAAaC,EAAS,EAAE,SAAAF,GAAS,MAAM,cAAc,GACrDG,IAAOD,EAAS,EAAE,SAAAF,GAAS,MAAM,QAAQ,GACzCI,IAAOF,EAAS,EAAE,SAAAF,GAAS,MAAM,QAAQ,GAEzCK,IAAoBC,EAA2BH,GAAMF,GAAYG,CAAI;AAGzE,SAAA,gBAAAG,EAAC,OAAI,EAAA,WAAU,0GACb,UAAA;AAAA,IAAC,gBAAAC,EAAA,OAAA,EAAI,WAAU,8BAA6B,UAAwB,4BAAA;AAAA,IACpE,gBAAAA,EAAC,OAAI,EAAA,WAAU,qDAAqD,CAAA;AAAA,IACpE,gBAAAA,EAAC,SAAI,WAAU,8BACb,4BAACC,GAAgB,EAAA,OAAOJ,GAAmB,EAC7C,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"cash-balance-change.js","sources":["../../../../../src/rwa/components/table/transactions/cash-balance-change.tsx"],"sourcesContent":["import { GroupTransactionFormInputs } from \"@/rwa/types\";\nimport { calculateCashBalanceChange } from \"@/rwa/utils\";\nimport { Control, useWatch } from \"react-hook-form\";\nimport { FormattedNumber } from \"../base\";\n\nexport function CashBalanceChange(props: {\n readonly control: Control<GroupTransactionFormInputs>;\n}) {\n const { control } = props;\n const cashAmount = useWatch({ control, name: \"cashAmount\" });\n const type = useWatch({ control, name: \"type\" });\n const fees = useWatch({ control, name: \"fees\" });\n\n const cashBalanceChange = calculateCashBalanceChange(type, cashAmount, fees);\n\n return (\n <div className=\"flex items-center justify-between border-t border-gray-300 bg-gray-100 p-3 font-semibold text-gray-800\">\n <div className=\"mr-6 text-sm text-gray-600\">Cash Balance Change $USD</div>\n <div className=\"h-px flex-1 border-b border-dashed border-gray-400\" />\n <div className=\"pl-8 text-sm text-gray-900\">\n <FormattedNumber value={cashBalanceChange} />\n </div>\n </div>\n );\n}\n"],"names":["CashBalanceChange","props","control","cashAmount","useWatch","type","fees","cashBalanceChange","calculateCashBalanceChange","jsxs","jsx","FormattedNumber"],"mappings":";;;;AAKO,SAASA,EAAkBC,GAE/B;AACK,QAAA,EAAE,SAAAC,MAAYD,GACdE,IAAaC,EAAS,EAAE,SAAAF,GAAS,MAAM,cAAc,GACrDG,IAAOD,EAAS,EAAE,SAAAF,GAAS,MAAM,QAAQ,GACzCI,IAAOF,EAAS,EAAE,SAAAF,GAAS,MAAM,QAAQ,GAEzCK,IAAoBC,EAA2BH,GAAMF,GAAYG,CAAI;AAGzE,SAAA,gBAAAG,EAAC,OAAI,EAAA,WAAU,0GACb,UAAA;AAAA,IAAC,gBAAAC,EAAA,OAAA,EAAI,WAAU,8BAA6B,UAAwB,4BAAA;AAAA,IACpE,gBAAAA,EAAC,OAAI,EAAA,WAAU,qDAAqD,CAAA;AAAA,IACpE,gBAAAA,EAAC,SAAI,WAAU,8BACb,4BAACC,GAAgB,EAAA,OAAOJ,EAAmB,CAAA,EAC7C,CAAA;AAAA,EAAA,GACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"fee-transactions-table.js","sources":["../../../../../src/rwa/components/table/transactions/fee-transactions-table.tsx"],"sourcesContent":["import { Icon } from \"@/powerhouse\";\nimport {\n GroupTransactionFormInputs,\n RWANumberInput,\n RWATableSelect,\n ServiceProviderFeeType,\n} from \"@/rwa\";\nimport { Control, FieldErrors, Path, useFieldArray } from \"react-hook-form\";\nimport { twMerge } from \"tailwind-merge\";\n\ntype Props = {\n readonly canHaveTransactionFees: boolean;\n readonly serviceProviderFeeTypes: ServiceProviderFeeType[];\n readonly serviceProviderFeeTypeOptions: { label: string; value: string }[];\n readonly showCreateServiceProviderFeeTypeModal: () => void;\n readonly control: Control<GroupTransactionFormInputs>;\n readonly errors: FieldErrors<GroupTransactionFormInputs>;\n readonly isViewOnly: boolean;\n};\n\nexport function FeeTransactionsTable(props: Props) {\n const headings = [\"Fees\", \"Service Provider\", \"Amount\", \"\"] as const;\n const {\n canHaveTransactionFees,\n serviceProviderFeeTypes,\n serviceProviderFeeTypeOptions,\n control,\n errors,\n isViewOnly,\n showCreateServiceProviderFeeTypeModal,\n } = props;\n\n const { fields, append, remove } = useFieldArray({\n control,\n name: \"fees\",\n });\n\n if (!canHaveTransactionFees) {\n return null;\n }\n\n return (\n <>\n {fields.length > 0 && (\n <div className=\"bg-gray-50 pl-5 pt-3\">\n <table className=\"w-full border-separate text-xs font-medium\">\n <thead className=\"mb-2\">\n <tr>\n {headings.map((heading) => (\n <th\n className={twMerge(\n \"py-2 text-left font-medium text-gray-600\",\n heading === \"Amount\" && !isViewOnly && \"text-right\",\n )}\n key={heading}\n >\n {heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {fields.map((feeInput, index) => {\n return (\n <tr key={feeInput.id}>\n <td className=\"w-52\" />\n <td className=\"w-96\">\n <RWATableSelect\n addItemButtonProps={{\n onClick: showCreateServiceProviderFeeTypeModal,\n label: \"Add Service Provider\",\n }}\n aria-invalid={\n errors.fees?.[index]?.serviceProviderFeeTypeId\n ? \"true\"\n : \"false\"\n }\n control={control}\n disabled={isViewOnly}\n name={`fees.${index}.serviceProviderFeeTypeId`}\n options={serviceProviderFeeTypeOptions}\n rules={{\n required: \"Service provider is required\",\n }}\n />\n </td>\n <td className=\"w-52\">\n <RWANumberInput\n aria-invalid={\n errors.fees?.[index]?.amount ? \"true\" : \"false\"\n }\n control={control}\n currency=\"USD\"\n disabled={isViewOnly}\n name={\n `fees.${index}.amount` as Path<GroupTransactionFormInputs>\n }\n placeholder=\"E.g. $1,000.00\"\n rules={{\n required: \"Amount is required\",\n validate: {\n positive: (value) =>\n (!!value && Number(value) > 0) ||\n \"Fee amount must be greater than zero\",\n },\n }}\n />\n </td>\n <td className=\"\">\n {!isViewOnly && (\n <button\n className=\"flex items-center\"\n onClick={() => remove(index)}\n type=\"button\"\n >\n <Icon className=\"text-gray-900\" name=\"Xmark\" />\n </button>\n )}\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n )}\n {!isViewOnly && (\n <button\n className=\"ml-[234px] mt-1 flex w-fit items-center justify-center gap-x-2 rounded-lg bg-white pb-6 text-sm font-semibold text-gray-900\"\n onClick={() =>\n append({\n amount: null,\n serviceProviderFeeTypeId: serviceProviderFeeTypes[0]?.id,\n })\n }\n >\n <span>Add Fee</span>\n <Icon name=\"Plus\" size={16} />\n </button>\n )}\n </>\n );\n}\n"],"names":["FeeTransactionsTable","props","headings","canHaveTransactionFees","serviceProviderFeeTypes","serviceProviderFeeTypeOptions","control","errors","isViewOnly","showCreateServiceProviderFeeTypeModal","fields","append","remove","useFieldArray","jsxs","Fragment","jsx","heading","twMerge","feeInput","index","RWATableSelect","_b","_a","RWANumberInput","_d","_c","value","Icon"],"mappings":";;;;;;AAoBO,SAASA,EAAqBC,GAAc;AACjD,QAAMC,IAAW,CAAC,QAAQ,oBAAoB,UAAU,EAAE,GACpD;AAAA,IACJ,wBAAAC;AAAA,IACA,yBAAAC;AAAA,IACA,+BAAAC;AAAA,IACA,SAAAC;AAAA,IACA,QAAAC;AAAA,IACA,YAAAC;AAAA,IACA,uCAAAC;AAAA,EACE,IAAAR,GAEE,EAAE,QAAAS,GAAQ,QAAAC,GAAQ,QAAAC,EAAA,IAAWC,EAAc;AAAA,IAC/C,SAAAP;AAAA,IACA,MAAM;AAAA,EAAA,CACP;AAED,SAAKH,IAMA,gBAAAW,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAOL,EAAA,SAAS,KACd,gBAAAM,EAAA,OAAA,EAAI,WAAU,wBACb,UAAA,gBAAAF,EAAC,SAAM,EAAA,WAAU,8CACf,UAAA;AAAA,MAAC,gBAAAE,EAAA,SAAA,EAAM,WAAU,QACf,UAAA,gBAAAA,EAAC,QACE,UAASd,EAAA,IAAI,CAACe,MACb,gBAAAD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWE;AAAA,YACT;AAAA,YACAD,MAAY,YAAY,CAACT,KAAc;AAAA,UACzC;AAAA,UAGC,UAAAS;AAAA,QAAA;AAAA,QAFIA;AAAA,MAAA,CAIR,GACH,EACF,CAAA;AAAA,wBACC,SACE,EAAA,UAAAP,EAAO,IAAI,CAACS,GAAUC,MAAU;;AAC/B,iCACG,MACC,EAAA,UAAA;AAAA,UAAC,gBAAAJ,EAAA,MAAA,EAAG,WAAU,OAAO,CAAA;AAAA,UACrB,gBAAAA,EAAC,MAAG,EAAA,WAAU,QACZ,UAAA,gBAAAA;AAAA,YAACK;AAAA,YAAA;AAAA,cACC,oBAAoB;AAAA,gBAClB,SAASZ;AAAA,gBACT,OAAO;AAAA,cACT;AAAA,cACA,iBACEa,KAAAC,IAAAhB,EAAO,SAAP,gBAAAgB,EAAcH,OAAd,QAAAE,EAAsB,2BAClB,SACA;AAAA,cAEN,SAAAhB;AAAA,cACA,UAAUE;AAAA,cACV,MAAM,QAAQY,CAAK;AAAA,cACnB,SAASf;AAAA,cACT,OAAO;AAAA,gBACL,UAAU;AAAA,cACZ;AAAA,YAAA;AAAA,UAAA,GAEJ;AAAA,UACA,gBAAAW,EAAC,MAAG,EAAA,WAAU,QACZ,UAAA,gBAAAA;AAAA,YAACQ;AAAA,YAAA;AAAA,cACC,iBACEC,KAAAC,IAAAnB,EAAO,SAAP,gBAAAmB,EAAcN,OAAd,QAAAK,EAAsB,SAAS,SAAS;AAAA,cAE1C,SAAAnB;AAAA,cACA,UAAS;AAAA,cACT,UAAUE;AAAA,cACV,MACE,QAAQY,CAAK;AAAA,cAEf,aAAY;AAAA,cACZ,OAAO;AAAA,gBACL,UAAU;AAAA,gBACV,UAAU;AAAA,kBACR,UAAU,CAACO,MACR,CAAC,CAACA,KAAS,OAAOA,CAAK,IAAI,KAC5B;AAAA,gBACJ;AAAA,cACF;AAAA,YAAA;AAAA,UAAA,GAEJ;AAAA,UACC,gBAAAX,EAAA,MAAA,EAAG,WAAU,IACX,WAACR,KACA,gBAAAQ;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,SAAS,MAAMJ,EAAOQ,CAAK;AAAA,cAC3B,MAAK;AAAA,cAEL,UAAC,gBAAAJ,EAAAY,GAAA,EAAK,WAAU,iBAAgB,MAAK,SAAQ;AAAA,YAAA;AAAA,UAAA,GAGnD;AAAA,QAAA,KAtDOT,EAAS,EAuDlB;AAAA,MAEH,CAAA,GACH;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,IAED,CAACX,KACA,gBAAAM;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,SAAS,MACP;;AAAA,iBAAAH,EAAO;AAAA,YACL,QAAQ;AAAA,YACR,2BAA0BY,IAAAnB,EAAwB,CAAC,MAAzB,gBAAAmB,EAA4B;AAAA,UAAA,CACvD;AAAA;AAAA,QAGH,UAAA;AAAA,UAAA,gBAAAP,EAAC,UAAK,UAAO,UAAA,CAAA;AAAA,UACZ,gBAAAA,EAAAY,GAAA,EAAK,MAAK,QAAO,MAAM,IAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IAC9B;AAAA,EAEJ,EAAA,CAAA,IAtGO;AAwGX;"}
1
+ {"version":3,"file":"fee-transactions-table.js","sources":["../../../../../src/rwa/components/table/transactions/fee-transactions-table.tsx"],"sourcesContent":["import { Icon } from \"@/powerhouse\";\nimport {\n GroupTransactionFormInputs,\n RWANumberInput,\n RWATableSelect,\n ServiceProviderFeeType,\n} from \"@/rwa\";\nimport { Control, FieldErrors, Path, useFieldArray } from \"react-hook-form\";\nimport { twMerge } from \"tailwind-merge\";\n\ntype Props = {\n readonly canHaveTransactionFees: boolean;\n readonly serviceProviderFeeTypes: ServiceProviderFeeType[];\n readonly serviceProviderFeeTypeOptions: { label: string; value: string }[];\n readonly showCreateServiceProviderFeeTypeModal: () => void;\n readonly control: Control<GroupTransactionFormInputs>;\n readonly errors: FieldErrors<GroupTransactionFormInputs>;\n readonly isViewOnly: boolean;\n};\n\nexport function FeeTransactionsTable(props: Props) {\n const headings = [\"Fees\", \"Service Provider\", \"Amount\", \"\"] as const;\n const {\n canHaveTransactionFees,\n serviceProviderFeeTypes,\n serviceProviderFeeTypeOptions,\n control,\n errors,\n isViewOnly,\n showCreateServiceProviderFeeTypeModal,\n } = props;\n\n const { fields, append, remove } = useFieldArray({\n control,\n name: \"fees\",\n });\n\n if (!canHaveTransactionFees) {\n return null;\n }\n\n return (\n <>\n {fields.length > 0 && (\n <div className=\"bg-gray-50 pl-5 pt-3\">\n <table className=\"w-full border-separate text-xs font-medium\">\n <thead className=\"mb-2\">\n <tr>\n {headings.map((heading) => (\n <th\n className={twMerge(\n \"py-2 text-left font-medium text-gray-600\",\n heading === \"Amount\" && !isViewOnly && \"text-right\",\n )}\n key={heading}\n >\n {heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {fields.map((feeInput, index) => {\n return (\n <tr key={feeInput.id}>\n <td className=\"w-52\" />\n <td className=\"w-96\">\n <RWATableSelect\n addItemButtonProps={{\n onClick: showCreateServiceProviderFeeTypeModal,\n label: \"Add Service Provider\",\n }}\n aria-invalid={\n errors.fees?.[index]?.serviceProviderFeeTypeId\n ? \"true\"\n : \"false\"\n }\n control={control}\n disabled={isViewOnly}\n name={`fees.${index}.serviceProviderFeeTypeId`}\n options={serviceProviderFeeTypeOptions}\n rules={{\n required: \"Service provider is required\",\n }}\n />\n </td>\n <td className=\"w-52\">\n <RWANumberInput\n aria-invalid={\n errors.fees?.[index]?.amount ? \"true\" : \"false\"\n }\n control={control}\n currency=\"USD\"\n disabled={isViewOnly}\n name={\n `fees.${index}.amount` as Path<GroupTransactionFormInputs>\n }\n placeholder=\"E.g. $1,000.00\"\n rules={{\n required: \"Amount is required\",\n validate: {\n positive: (value) =>\n (!!value && Number(value) > 0) ||\n \"Fee amount must be greater than zero\",\n },\n }}\n />\n </td>\n <td className=\"\">\n {!isViewOnly && (\n <button\n className=\"flex items-center\"\n onClick={() => remove(index)}\n type=\"button\"\n >\n <Icon className=\"text-gray-900\" name=\"Xmark\" />\n </button>\n )}\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n )}\n {!isViewOnly && (\n <button\n className=\"ml-[234px] mt-1 flex w-fit items-center justify-center gap-x-2 rounded-lg bg-white pb-6 text-sm font-semibold text-gray-900\"\n onClick={() =>\n append({\n amount: null,\n serviceProviderFeeTypeId: serviceProviderFeeTypes[0]?.id,\n })\n }\n >\n <span>Add Fee</span>\n <Icon name=\"Plus\" size={16} />\n </button>\n )}\n </>\n );\n}\n"],"names":["FeeTransactionsTable","props","headings","canHaveTransactionFees","serviceProviderFeeTypes","serviceProviderFeeTypeOptions","control","errors","isViewOnly","showCreateServiceProviderFeeTypeModal","fields","append","remove","useFieldArray","jsxs","Fragment","jsx","heading","twMerge","feeInput","index","RWATableSelect","_b","_a","RWANumberInput","_d","_c","value","Icon"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"group-transactions-table.js","sources":["../../../../../src/rwa/components/table/transactions/group-transactions-table.tsx"],"sourcesContent":["import { Combobox } from \"@/connect\";\nimport { Pagination, usePagination } from \"@/powerhouse\";\nimport {\n allGroupTransactionTypes,\n groupTransactionTypeLabels,\n ItemDetails,\n makeFixedIncomeOptionLabel,\n Table,\n tableNames,\n useEditorContext,\n useTableData,\n} from \"@/rwa\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\n\nexport function GroupTransactionsTable() {\n const tableName = tableNames.TRANSACTION;\n const { getIsFormOpen, fixedIncomes } = useEditorContext();\n\n const showForm = getIsFormOpen(tableName);\n const { tableData, sortHandler } = useTableData(tableName);\n const [filteredTableData, setFilteredTableData] = useState(tableData);\n const [filterAssetId, setFilterAssetId] = useState<string>();\n const [filterTypes, setFilterTypes] = useState<\n (keyof typeof allGroupTransactionTypes)[]\n >([]);\n const shouldPaginate = filteredTableData.length > 20;\n\n useEffect(() => {\n if (!filterAssetId && !filterTypes.length) {\n setFilteredTableData(tableData);\n return;\n }\n\n setFilteredTableData(\n tableData.filter((transaction) => {\n if (filterAssetId && filterTypes.length) {\n return (\n transaction.fixedIncomeTransaction?.assetId === filterAssetId &&\n filterTypes.includes(transaction.type)\n );\n }\n\n if (filterAssetId) {\n return transaction.fixedIncomeTransaction?.assetId === filterAssetId;\n }\n\n if (filterTypes.length) {\n return filterTypes.includes(transaction.type);\n }\n }),\n );\n }, [filterAssetId, filterTypes, tableData]);\n\n const filterByAssetOptions = useMemo(\n () =>\n fixedIncomes.map((asset) => ({\n label: makeFixedIncomeOptionLabel(asset),\n value: asset.id,\n })),\n [fixedIncomes],\n );\n\n const filterByTypeOptions = useMemo(\n () =>\n allGroupTransactionTypes.map((type) => ({\n label: groupTransactionTypeLabels[type],\n value: type,\n })),\n [],\n );\n\n const {\n pageItems,\n pages,\n goToPage,\n goToNextPage,\n goToPreviousPage,\n goToFirstPage,\n goToLastPage,\n hiddenNextPages,\n isNextPageAvailable,\n isPreviousPageAvailable,\n } = usePagination(filteredTableData);\n\n const handleFilterByAssetChange = useCallback((update: unknown) => {\n if (!update || !(typeof update === \"object\") || !(\"value\" in update)) {\n setFilterAssetId(undefined);\n return;\n }\n\n const { value: assetId } = update;\n\n setFilterAssetId(assetId as string);\n }, []);\n\n const handleFilterByTypeChange = useCallback((update: unknown) => {\n if (!update || !Array.isArray(update)) {\n setFilterTypes([]);\n return;\n }\n\n const _update = update as {\n value: keyof typeof allGroupTransactionTypes;\n }[];\n\n setFilterTypes(_update.map(({ value }) => value));\n }, []);\n\n return (\n <>\n <div className=\"mb-2 flex gap-2\">\n <div className=\"min-w-72 max-w-96\">\n <Combobox\n isClearable\n onChange={handleFilterByAssetChange}\n options={filterByAssetOptions}\n placeholder=\"Filter by Asset\"\n />\n </div>\n <div className=\"min-w-72 max-w-96\">\n <Combobox\n isClearable\n isMulti\n onChange={handleFilterByTypeChange}\n options={filterByTypeOptions}\n placeholder=\"Filter by Type\"\n />\n </div>\n <div className=\"flex w-full justify-end\">\n {shouldPaginate ? (\n <Pagination\n goToFirstPage={goToFirstPage}\n goToLastPage={goToLastPage}\n goToNextPage={goToNextPage}\n goToPage={goToPage}\n goToPreviousPage={goToPreviousPage}\n hiddenNextPages={hiddenNextPages}\n isNextPageAvailable={isNextPageAvailable}\n isPreviousPageAvailable={isPreviousPageAvailable}\n nextPageLabel=\"Next\"\n pages={pages}\n previousPageLabel=\"Previous\"\n />\n ) : null}\n </div>\n </div>\n <Table\n sortHandler={sortHandler}\n tableData={pageItems}\n tableName={tableName}\n />\n {showForm ? (\n <div className=\"mt-4 rounded-md bg-white\">\n <ItemDetails tableName={tableName} />\n </div>\n ) : null}\n </>\n );\n}\n"],"names":["GroupTransactionsTable","tableName","tableNames","getIsFormOpen","fixedIncomes","useEditorContext","showForm","tableData","sortHandler","useTableData","filteredTableData","setFilteredTableData","useState","filterAssetId","setFilterAssetId","filterTypes","setFilterTypes","shouldPaginate","useEffect","transaction","_a","_b","filterByAssetOptions","useMemo","asset","makeFixedIncomeOptionLabel","filterByTypeOptions","allGroupTransactionTypes","type","groupTransactionTypeLabels","pageItems","pages","goToPage","goToNextPage","goToPreviousPage","goToFirstPage","goToLastPage","hiddenNextPages","isNextPageAvailable","isPreviousPageAvailable","usePagination","handleFilterByAssetChange","useCallback","update","assetId","handleFilterByTypeChange","value","jsxs","Fragment","jsx","Combobox","Pagination","Table","ItemDetails"],"mappings":"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"}
1
+ {"version":3,"file":"group-transactions-table.js","sources":["../../../../../src/rwa/components/table/transactions/group-transactions-table.tsx"],"sourcesContent":["import { Combobox } from \"@/connect\";\nimport { Pagination, usePagination } from \"@/powerhouse\";\nimport {\n allGroupTransactionTypes,\n groupTransactionTypeLabels,\n ItemDetails,\n makeFixedIncomeOptionLabel,\n Table,\n tableNames,\n useEditorContext,\n useTableData,\n} from \"@/rwa\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\n\nexport function GroupTransactionsTable() {\n const tableName = tableNames.TRANSACTION;\n const { getIsFormOpen, fixedIncomes } = useEditorContext();\n\n const showForm = getIsFormOpen(tableName);\n const { tableData, sortHandler } = useTableData(tableName);\n const [filteredTableData, setFilteredTableData] = useState(tableData);\n const [filterAssetId, setFilterAssetId] = useState<string>();\n const [filterTypes, setFilterTypes] = useState<\n (keyof typeof allGroupTransactionTypes)[]\n >([]);\n const shouldPaginate = filteredTableData.length > 20;\n\n useEffect(() => {\n if (!filterAssetId && !filterTypes.length) {\n setFilteredTableData(tableData);\n return;\n }\n\n setFilteredTableData(\n tableData.filter((transaction) => {\n if (filterAssetId && filterTypes.length) {\n return (\n transaction.fixedIncomeTransaction?.assetId === filterAssetId &&\n filterTypes.includes(transaction.type)\n );\n }\n\n if (filterAssetId) {\n return transaction.fixedIncomeTransaction?.assetId === filterAssetId;\n }\n\n if (filterTypes.length) {\n return filterTypes.includes(transaction.type);\n }\n }),\n );\n }, [filterAssetId, filterTypes, tableData]);\n\n const filterByAssetOptions = useMemo(\n () =>\n fixedIncomes.map((asset) => ({\n label: makeFixedIncomeOptionLabel(asset),\n value: asset.id,\n })),\n [fixedIncomes],\n );\n\n const filterByTypeOptions = useMemo(\n () =>\n allGroupTransactionTypes.map((type) => ({\n label: groupTransactionTypeLabels[type],\n value: type,\n })),\n [],\n );\n\n const {\n pageItems,\n pages,\n goToPage,\n goToNextPage,\n goToPreviousPage,\n goToFirstPage,\n goToLastPage,\n hiddenNextPages,\n isNextPageAvailable,\n isPreviousPageAvailable,\n } = usePagination(filteredTableData);\n\n const handleFilterByAssetChange = useCallback((update: unknown) => {\n if (!update || !(typeof update === \"object\") || !(\"value\" in update)) {\n setFilterAssetId(undefined);\n return;\n }\n\n const { value: assetId } = update;\n\n setFilterAssetId(assetId as string);\n }, []);\n\n const handleFilterByTypeChange = useCallback((update: unknown) => {\n if (!update || !Array.isArray(update)) {\n setFilterTypes([]);\n return;\n }\n\n const _update = update as {\n value: keyof typeof allGroupTransactionTypes;\n }[];\n\n setFilterTypes(_update.map(({ value }) => value));\n }, []);\n\n return (\n <>\n <div className=\"mb-2 flex gap-2\">\n <div className=\"min-w-72 max-w-96\">\n <Combobox\n isClearable\n onChange={handleFilterByAssetChange}\n options={filterByAssetOptions}\n placeholder=\"Filter by Asset\"\n />\n </div>\n <div className=\"min-w-72 max-w-96\">\n <Combobox\n isClearable\n isMulti\n onChange={handleFilterByTypeChange}\n options={filterByTypeOptions}\n placeholder=\"Filter by Type\"\n />\n </div>\n <div className=\"flex w-full justify-end\">\n {shouldPaginate ? (\n <Pagination\n goToFirstPage={goToFirstPage}\n goToLastPage={goToLastPage}\n goToNextPage={goToNextPage}\n goToPage={goToPage}\n goToPreviousPage={goToPreviousPage}\n hiddenNextPages={hiddenNextPages}\n isNextPageAvailable={isNextPageAvailable}\n isPreviousPageAvailable={isPreviousPageAvailable}\n nextPageLabel=\"Next\"\n pages={pages}\n previousPageLabel=\"Previous\"\n />\n ) : null}\n </div>\n </div>\n <Table\n sortHandler={sortHandler}\n tableData={pageItems}\n tableName={tableName}\n />\n {showForm ? (\n <div className=\"mt-4 rounded-md bg-white\">\n <ItemDetails tableName={tableName} />\n </div>\n ) : null}\n </>\n );\n}\n"],"names":["GroupTransactionsTable","tableName","tableNames","getIsFormOpen","fixedIncomes","useEditorContext","showForm","tableData","sortHandler","useTableData","filteredTableData","setFilteredTableData","useState","filterAssetId","setFilterAssetId","filterTypes","setFilterTypes","shouldPaginate","useEffect","transaction","_a","_b","filterByAssetOptions","useMemo","asset","makeFixedIncomeOptionLabel","filterByTypeOptions","allGroupTransactionTypes","type","groupTransactionTypeLabels","pageItems","pages","goToPage","goToNextPage","goToPreviousPage","goToFirstPage","goToLastPage","hiddenNextPages","isNextPageAvailable","isPreviousPageAvailable","usePagination","handleFilterByAssetChange","useCallback","update","assetId","handleFilterByTypeChange","value","jsxs","Fragment","jsx","Combobox","Pagination","Table","ItemDetails"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-reference.js","sources":["../../../../../src/rwa/components/table/transactions/transaction-reference.tsx"],"sourcesContent":["import { Tooltip, TooltipProvider } from \"@/connect\";\nimport { GroupTransactionFormInputs, RWATableTextInput } from \"@/rwa\";\nimport { getIsTransaction } from \"@/services\";\nimport { ComponentPropsWithRef, ForwardedRef, forwardRef } from \"react\";\nimport { Control, useWatch } from \"react-hook-form\";\n\nexport const TransactionReference = forwardRef(function TransactionReference(\n props: ComponentPropsWithRef<typeof RWATableTextInput> & {\n readonly control: Control<GroupTransactionFormInputs>;\n },\n ref: ForwardedRef<HTMLInputElement>,\n) {\n const { control, disabled } = props;\n const value = useWatch({ control, name: \"txRef\" });\n const maxLength = 46;\n const shouldShortenValue =\n typeof value === \"string\" && value.length >= maxLength;\n const maybeShortenedValue = shouldShortenValue\n ? `${value.slice(0, maxLength)}...`\n : value;\n const isTransaction = getIsTransaction(value);\n\n const tooltipContent = (\n <div>\n <p>{value}</p>\n {isTransaction ? (\n <p className=\"mt-2 text-center\">\n <a\n className=\"text-blue-900 underline\"\n href={`https://etherscan.io/tx/${value}`}\n >\n View on Etherscan\n </a>\n </p>\n ) : null}\n </div>\n );\n\n if (disabled)\n return (\n <TooltipProvider>\n <Tooltip content={tooltipContent}>\n <span>{maybeShortenedValue}</span>\n </Tooltip>\n </TooltipProvider>\n );\n\n return <RWATableTextInput {...props} ref={ref} />;\n});\n"],"names":["TransactionReference","forwardRef","props","ref","control","disabled","value","useWatch","maxLength","maybeShortenedValue","isTransaction","getIsTransaction","tooltipContent","jsx","TooltipProvider","Tooltip","RWATableTextInput"],"mappings":";;;;;;AAMO,MAAMA,IAAuBC,EAAW,SAC7CC,GAGAC,GACA;AACM,QAAA,EAAE,SAAAC,GAAS,UAAAC,EAAa,IAAAH,GACxBI,IAAQC,EAAS,EAAE,SAAAH,GAAS,MAAM,SAAS,GAC3CI,IAAY,IAGZC,IADJ,OAAOH,KAAU,YAAYA,EAAM,UAAUE,IAE3C,GAAGF,EAAM,MAAM,GAAGE,CAAS,CAAC,QAC5BF,GACEI,IAAgBC,EAAiBL,CAAK,GAEtCM,sBACH,OACC,EAAA,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAG,UAAMP,EAAA,CAAA;AAAA,IACTI,IACC,gBAAAG,EAAC,KAAE,EAAA,WAAU,oBACX,UAAA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,MAAM,2BAA2BP,CAAK;AAAA,QACvC,UAAA;AAAA,MAAA;AAAA,OAGH,IACE;AAAA,EACN,EAAA,CAAA;AAGE,SAAAD,IAEA,gBAAAQ,EAACC,GACC,EAAA,UAAA,gBAAAD,EAACE,GAAQ,EAAA,SAASH,GAChB,UAAC,gBAAAC,EAAA,QAAA,EAAM,UAAoBJ,GAAA,EAAA,CAC7B,EACF,CAAA,IAGI,gBAAAI,EAAAG,GAAA,EAAmB,GAAGd,GAAO,KAAAC,EAAU,CAAA;AACjD,CAAC;"}
1
+ {"version":3,"file":"transaction-reference.js","sources":["../../../../../src/rwa/components/table/transactions/transaction-reference.tsx"],"sourcesContent":["import { Tooltip, TooltipProvider } from \"@/connect\";\nimport { GroupTransactionFormInputs, RWATableTextInput } from \"@/rwa\";\nimport { getIsTransaction } from \"@/services\";\nimport { ComponentPropsWithRef, ForwardedRef, forwardRef } from \"react\";\nimport { Control, useWatch } from \"react-hook-form\";\n\nexport const TransactionReference = forwardRef(function TransactionReference(\n props: ComponentPropsWithRef<typeof RWATableTextInput> & {\n readonly control: Control<GroupTransactionFormInputs>;\n },\n ref: ForwardedRef<HTMLInputElement>,\n) {\n const { control, disabled } = props;\n const value = useWatch({ control, name: \"txRef\" });\n const maxLength = 46;\n const shouldShortenValue =\n typeof value === \"string\" && value.length >= maxLength;\n const maybeShortenedValue = shouldShortenValue\n ? `${value.slice(0, maxLength)}...`\n : value;\n const isTransaction = getIsTransaction(value);\n\n const tooltipContent = (\n <div>\n <p>{value}</p>\n {isTransaction ? (\n <p className=\"mt-2 text-center\">\n <a\n className=\"text-blue-900 underline\"\n href={`https://etherscan.io/tx/${value}`}\n >\n View on Etherscan\n </a>\n </p>\n ) : null}\n </div>\n );\n\n if (disabled)\n return (\n <TooltipProvider>\n <Tooltip content={tooltipContent}>\n <span>{maybeShortenedValue}</span>\n </Tooltip>\n </TooltipProvider>\n );\n\n return <RWATableTextInput {...props} ref={ref} />;\n});\n"],"names":["TransactionReference","forwardRef","props","ref","control","disabled","value","useWatch","maxLength","maybeShortenedValue","isTransaction","getIsTransaction","tooltipContent","jsx","TooltipProvider","Tooltip","RWATableTextInput"],"mappings":";;;;;;AAMO,MAAMA,IAAuBC,EAAW,SAC7CC,GAGAC,GACA;AACM,QAAA,EAAE,SAAAC,GAAS,UAAAC,EAAA,IAAaH,GACxBI,IAAQC,EAAS,EAAE,SAAAH,GAAS,MAAM,SAAS,GAC3CI,IAAY,IAGZC,IADJ,OAAOH,KAAU,YAAYA,EAAM,UAAUE,IAE3C,GAAGF,EAAM,MAAM,GAAGE,CAAS,CAAC,QAC5BF,GACEI,IAAgBC,EAAiBL,CAAK,GAEtCM,sBACH,OACC,EAAA,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAG,UAAMP,EAAA,CAAA;AAAA,IACTI,IACC,gBAAAG,EAAC,KAAE,EAAA,WAAU,oBACX,UAAA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,MAAM,2BAA2BP,CAAK;AAAA,QACvC,UAAA;AAAA,MAAA;AAAA,OAGH,IACE;AAAA,EAAA,GACN;AAGE,SAAAD,IAEA,gBAAAQ,EAACC,GACC,EAAA,UAAA,gBAAAD,EAACE,GAAQ,EAAA,SAASH,GAChB,UAAC,gBAAAC,EAAA,QAAA,EAAM,UAAoBJ,EAAA,CAAA,EAC7B,CAAA,GACF,IAGI,gBAAAI,EAAAG,GAAA,EAAmB,GAAGd,GAAO,KAAAC,EAAU,CAAA;AACjD,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"unit-price.js","sources":["../../../../../src/rwa/components/table/transactions/unit-price.tsx"],"sourcesContent":["import {\n calculateUnitPrice,\n FormattedNumber,\n GroupTransactionFormInputs,\n} from \"@/rwa\";\nimport { Control, useWatch } from \"react-hook-form\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function UnitPrice(props: {\n readonly control: Control<GroupTransactionFormInputs>;\n readonly isViewOnly: boolean;\n}) {\n const { control } = props;\n\n const cashAmount = useWatch({ control, name: \"cashAmount\" });\n const fixedIncomeAmount = useWatch({ control, name: \"fixedIncomeAmount\" });\n\n const unitPrice = calculateUnitPrice(cashAmount, fixedIncomeAmount);\n\n return (\n <div className={twMerge(\"mt-1 w-fit\", !props.isViewOnly && \"ml-auto\")}>\n <span className=\"text-gray-600\">Unit Price</span>{\" \"}\n <span className=\"text-gray-900\">\n <FormattedNumber decimalScale={6} value={unitPrice} />\n </span>\n </div>\n );\n}\n"],"names":["UnitPrice","props","control","cashAmount","useWatch","fixedIncomeAmount","unitPrice","calculateUnitPrice","jsxs","twMerge","jsx","FormattedNumber"],"mappings":";;;;;AAQO,SAASA,EAAUC,GAGvB;AACK,QAAA,EAAE,SAAAC,EAAY,IAAAD,GAEdE,IAAaC,EAAS,EAAE,SAAAF,GAAS,MAAM,cAAc,GACrDG,IAAoBD,EAAS,EAAE,SAAAF,GAAS,MAAM,qBAAqB,GAEnEI,IAAYC,EAAmBJ,GAAYE,CAAiB;AAGhE,SAAA,gBAAAG,EAAC,SAAI,WAAWC,EAAQ,cAAc,CAACR,EAAM,cAAc,SAAS,GAClE,UAAA;AAAA,IAAC,gBAAAS,EAAA,QAAA,EAAK,WAAU,iBAAgB,UAAU,cAAA;AAAA,IAAQ;AAAA,IAClD,gBAAAA,EAAC,QAAK,EAAA,WAAU,iBACd,UAAA,gBAAAA,EAACC,KAAgB,cAAc,GAAG,OAAOL,EAAA,CAAW,EACtD,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"unit-price.js","sources":["../../../../../src/rwa/components/table/transactions/unit-price.tsx"],"sourcesContent":["import {\n calculateUnitPrice,\n FormattedNumber,\n GroupTransactionFormInputs,\n} from \"@/rwa\";\nimport { Control, useWatch } from \"react-hook-form\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function UnitPrice(props: {\n readonly control: Control<GroupTransactionFormInputs>;\n readonly isViewOnly: boolean;\n}) {\n const { control } = props;\n\n const cashAmount = useWatch({ control, name: \"cashAmount\" });\n const fixedIncomeAmount = useWatch({ control, name: \"fixedIncomeAmount\" });\n\n const unitPrice = calculateUnitPrice(cashAmount, fixedIncomeAmount);\n\n return (\n <div className={twMerge(\"mt-1 w-fit\", !props.isViewOnly && \"ml-auto\")}>\n <span className=\"text-gray-600\">Unit Price</span>{\" \"}\n <span className=\"text-gray-900\">\n <FormattedNumber decimalScale={6} value={unitPrice} />\n </span>\n </div>\n );\n}\n"],"names":["UnitPrice","props","control","cashAmount","useWatch","fixedIncomeAmount","unitPrice","calculateUnitPrice","jsxs","twMerge","jsx","FormattedNumber"],"mappings":";;;;;AAQO,SAASA,EAAUC,GAGvB;AACK,QAAA,EAAE,SAAAC,MAAYD,GAEdE,IAAaC,EAAS,EAAE,SAAAF,GAAS,MAAM,cAAc,GACrDG,IAAoBD,EAAS,EAAE,SAAAF,GAAS,MAAM,qBAAqB,GAEnEI,IAAYC,EAAmBJ,GAAYE,CAAiB;AAGhE,SAAA,gBAAAG,EAAC,SAAI,WAAWC,EAAQ,cAAc,CAACR,EAAM,cAAc,SAAS,GAClE,UAAA;AAAA,IAAC,gBAAAS,EAAA,QAAA,EAAK,WAAU,iBAAgB,UAAU,cAAA;AAAA,IAAQ;AAAA,IAClD,gBAAAA,EAAC,QAAK,EAAA,WAAU,iBACd,UAAA,gBAAAA,EAACC,KAAgB,cAAc,GAAG,OAAOL,EAAW,CAAA,EACtD,CAAA;AAAA,EAAA,GACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"other-tab.js","sources":["../../../../src/rwa/components/tabs/other-tab.tsx"],"sourcesContent":["import { tableNames, TableWithForm } from \"@/rwa\";\nimport { AccountsTable } from \"../table/accounts\";\n\nexport function OtherTab() {\n return (\n <div className=\"grid grid-rows-4 gap-4\">\n <div>\n <h2 className=\"mb-2 text-lg font-bold\">Accounts</h2>\n <p className=\"mb-4 text-xs text-gray-600\">\n Add and manage accounts that can be associated with transactions and\n fees.\n </p>\n <AccountsTable />\n </div>\n <div>\n <h2 className=\"mb-2 text-lg font-bold\">Fixed Income Types</h2>\n <p className=\"mb-4 text-xs text-gray-600\">\n Add and manage fixed income asset types.\n </p>\n <TableWithForm tableName={tableNames.FIXED_INCOME_TYPE} />\n </div>\n <div>\n <h2 className=\"mb-2 text-lg font-bold\">SPVs</h2>\n <p className=\"mb-4 text-xs text-gray-600\">\n Add and manage special purpose vehicles (SPVs).\n </p>\n <TableWithForm tableName={tableNames.SPV} />\n </div>\n <div>\n <h2 className=\"mb-2 text-lg font-bold\">Service Provider Fee Types</h2>\n <p className=\"mb-4 text-xs text-gray-600\">\n Add and manage service providers and their associated fee types.\n </p>\n <TableWithForm tableName={tableNames.SERVICE_PROVIDER_FEE_TYPE} />\n </div>\n </div>\n );\n}\n"],"names":["OtherTab","jsxs","jsx","AccountsTable","TableWithForm","tableNames"],"mappings":";;;;AAGO,SAASA,IAAW;AAEvB,SAAA,gBAAAC,EAAC,OAAI,EAAA,WAAU,0BACb,UAAA;AAAA,IAAA,gBAAAA,EAAC,OACC,EAAA,UAAA;AAAA,MAAC,gBAAAC,EAAA,MAAA,EAAG,WAAU,0BAAyB,UAAQ,YAAA;AAAA,MAC9C,gBAAAA,EAAA,KAAA,EAAE,WAAU,8BAA6B,UAG1C,8EAAA;AAAA,wBACCC,GAAc,EAAA;AAAA,IAAA,GACjB;AAAA,sBACC,OACC,EAAA,UAAA;AAAA,MAAC,gBAAAD,EAAA,MAAA,EAAG,WAAU,0BAAyB,UAAkB,sBAAA;AAAA,MACxD,gBAAAA,EAAA,KAAA,EAAE,WAAU,8BAA6B,UAE1C,4CAAA;AAAA,MACC,gBAAAA,EAAAE,GAAA,EAAc,WAAWC,EAAW,kBAAmB,CAAA;AAAA,IAAA,GAC1D;AAAA,sBACC,OACC,EAAA,UAAA;AAAA,MAAC,gBAAAH,EAAA,MAAA,EAAG,WAAU,0BAAyB,UAAI,QAAA;AAAA,MAC1C,gBAAAA,EAAA,KAAA,EAAE,WAAU,8BAA6B,UAE1C,mDAAA;AAAA,MACC,gBAAAA,EAAAE,GAAA,EAAc,WAAWC,EAAW,IAAK,CAAA;AAAA,IAAA,GAC5C;AAAA,sBACC,OACC,EAAA,UAAA;AAAA,MAAC,gBAAAH,EAAA,MAAA,EAAG,WAAU,0BAAyB,UAA0B,8BAAA;AAAA,MAChE,gBAAAA,EAAA,KAAA,EAAE,WAAU,8BAA6B,UAE1C,oEAAA;AAAA,MACC,gBAAAA,EAAAE,GAAA,EAAc,WAAWC,EAAW,0BAA2B,CAAA;AAAA,IAAA,GAClE;AAAA,EACF,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"other-tab.js","sources":["../../../../src/rwa/components/tabs/other-tab.tsx"],"sourcesContent":["import { tableNames, TableWithForm } from \"@/rwa\";\nimport { AccountsTable } from \"../table/accounts\";\n\nexport function OtherTab() {\n return (\n <div className=\"grid grid-rows-4 gap-4\">\n <div>\n <h2 className=\"mb-2 text-lg font-bold\">Accounts</h2>\n <p className=\"mb-4 text-xs text-gray-600\">\n Add and manage accounts that can be associated with transactions and\n fees.\n </p>\n <AccountsTable />\n </div>\n <div>\n <h2 className=\"mb-2 text-lg font-bold\">Fixed Income Types</h2>\n <p className=\"mb-4 text-xs text-gray-600\">\n Add and manage fixed income asset types.\n </p>\n <TableWithForm tableName={tableNames.FIXED_INCOME_TYPE} />\n </div>\n <div>\n <h2 className=\"mb-2 text-lg font-bold\">SPVs</h2>\n <p className=\"mb-4 text-xs text-gray-600\">\n Add and manage special purpose vehicles (SPVs).\n </p>\n <TableWithForm tableName={tableNames.SPV} />\n </div>\n <div>\n <h2 className=\"mb-2 text-lg font-bold\">Service Provider Fee Types</h2>\n <p className=\"mb-4 text-xs text-gray-600\">\n Add and manage service providers and their associated fee types.\n </p>\n <TableWithForm tableName={tableNames.SERVICE_PROVIDER_FEE_TYPE} />\n </div>\n </div>\n );\n}\n"],"names":["OtherTab","jsxs","jsx","AccountsTable","TableWithForm","tableNames"],"mappings":";;;;AAGO,SAASA,IAAW;AAEvB,SAAA,gBAAAC,EAAC,OAAI,EAAA,WAAU,0BACb,UAAA;AAAA,IAAA,gBAAAA,EAAC,OACC,EAAA,UAAA;AAAA,MAAC,gBAAAC,EAAA,MAAA,EAAG,WAAU,0BAAyB,UAAQ,YAAA;AAAA,MAC9C,gBAAAA,EAAA,KAAA,EAAE,WAAU,8BAA6B,UAG1C,8EAAA;AAAA,wBACCC,GAAc,CAAA,CAAA;AAAA,IAAA,GACjB;AAAA,sBACC,OACC,EAAA,UAAA;AAAA,MAAC,gBAAAD,EAAA,MAAA,EAAG,WAAU,0BAAyB,UAAkB,sBAAA;AAAA,MACxD,gBAAAA,EAAA,KAAA,EAAE,WAAU,8BAA6B,UAE1C,4CAAA;AAAA,MACC,gBAAAA,EAAAE,GAAA,EAAc,WAAWC,EAAW,kBAAmB,CAAA;AAAA,IAAA,GAC1D;AAAA,sBACC,OACC,EAAA,UAAA;AAAA,MAAC,gBAAAH,EAAA,MAAA,EAAG,WAAU,0BAAyB,UAAI,QAAA;AAAA,MAC1C,gBAAAA,EAAA,KAAA,EAAE,WAAU,8BAA6B,UAE1C,mDAAA;AAAA,MACC,gBAAAA,EAAAE,GAAA,EAAc,WAAWC,EAAW,IAAK,CAAA;AAAA,IAAA,GAC5C;AAAA,sBACC,OACC,EAAA,UAAA;AAAA,MAAC,gBAAAH,EAAA,MAAA,EAAG,WAAU,0BAAyB,UAA0B,8BAAA;AAAA,MAChE,gBAAAA,EAAA,KAAA,EAAE,WAAU,8BAA6B,UAE1C,oEAAA;AAAA,MACC,gBAAAA,EAAAE,GAAA,EAAc,WAAWC,EAAW,0BAA2B,CAAA;AAAA,IAAA,EAClE,CAAA;AAAA,EAAA,GACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"portfolio-tab.js","sources":["../../../../src/rwa/components/tabs/portfolio-tab.tsx"],"sourcesContent":["import { AssetsTable, TabContent } from \"@/rwa\";\n\nexport function PortfolioTab() {\n return (\n <TabContent\n description=\"Details on the distribution of assets among different financial institutions or investment vehicles.\"\n label=\"Portfolio\"\n >\n <AssetsTable />\n </TabContent>\n );\n}\n"],"names":["PortfolioTab","jsx","TabContent","AssetsTable"],"mappings":";;;AAEO,SAASA,IAAe;AAE3B,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,aAAY;AAAA,MACZ,OAAM;AAAA,MAEN,4BAACC,GAAY,EAAA;AAAA,IAAA;AAAA,EAAA;AAGnB;"}
1
+ {"version":3,"file":"portfolio-tab.js","sources":["../../../../src/rwa/components/tabs/portfolio-tab.tsx"],"sourcesContent":["import { AssetsTable, TabContent } from \"@/rwa\";\n\nexport function PortfolioTab() {\n return (\n <TabContent\n description=\"Details on the distribution of assets among different financial institutions or investment vehicles.\"\n label=\"Portfolio\"\n >\n <AssetsTable />\n </TabContent>\n );\n}\n"],"names":["PortfolioTab","jsx","TabContent","AssetsTable"],"mappings":";;;AAEO,SAASA,IAAe;AAE3B,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,aAAY;AAAA,MACZ,OAAM;AAAA,MAEN,4BAACC,GAAY,CAAA,CAAA;AAAA,IAAA;AAAA,EACf;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"tab-content.js","sources":["../../../../src/rwa/components/tabs/tab-content.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\ntype Props = {\n readonly label: ReactNode;\n readonly description: ReactNode;\n readonly children: ReactNode;\n};\nexport function TabContent(props: Props) {\n const { label, description, children } = props;\n\n return (\n <div>\n <h1 className=\"mb-2 text-lg font-bold\">{label}</h1>\n <p className=\"mb-4 text-xs text-gray-600\">{description}</p>\n {children}\n </div>\n );\n}\n"],"names":["TabContent","props","label","description","children","jsx"],"mappings":";AAOO,SAASA,EAAWC,GAAc;AACvC,QAAM,EAAE,OAAAC,GAAO,aAAAC,GAAa,UAAAC,EAAA,IAAaH;AAEzC,2BACG,OACC,EAAA,UAAA;AAAA,IAAC,gBAAAI,EAAA,MAAA,EAAG,WAAU,0BAA0B,UAAMH,GAAA;AAAA,IAC7C,gBAAAG,EAAA,KAAA,EAAE,WAAU,8BAA8B,UAAYF,GAAA;AAAA,IACtDC;AAAA,EACH,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"tab-content.js","sources":["../../../../src/rwa/components/tabs/tab-content.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\ntype Props = {\n readonly label: ReactNode;\n readonly description: ReactNode;\n readonly children: ReactNode;\n};\nexport function TabContent(props: Props) {\n const { label, description, children } = props;\n\n return (\n <div>\n <h1 className=\"mb-2 text-lg font-bold\">{label}</h1>\n <p className=\"mb-4 text-xs text-gray-600\">{description}</p>\n {children}\n </div>\n );\n}\n"],"names":["TabContent","props","label","description","children","jsx"],"mappings":";AAOO,SAASA,EAAWC,GAAc;AACvC,QAAM,EAAE,OAAAC,GAAO,aAAAC,GAAa,UAAAC,EAAa,IAAAH;AAEzC,2BACG,OACC,EAAA,UAAA;AAAA,IAAC,gBAAAI,EAAA,MAAA,EAAG,WAAU,0BAA0B,UAAMH,GAAA;AAAA,IAC7C,gBAAAG,EAAA,KAAA,EAAE,WAAU,8BAA8B,UAAYF,GAAA;AAAA,IACtDC;AAAA,EAAA,GACH;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sources":["../../../../src/rwa/components/tabs/tabs.tsx"],"sourcesContent":["import { EditorActionButtons } from \"@/connect\";\nimport {\n OtherTab,\n PortfolioTab,\n TransactionsTab,\n useEditorContext,\n} from \"@/rwa\";\nimport { Content, List, Root, Trigger } from \"@radix-ui/react-tabs\";\nimport { useCallback } from \"react\";\n\nexport function RWATabs() {\n const tabs = [\"Portfolio\", \"Transactions\", \"Other\"] as const;\n const {\n onSwitchboardLinkClick,\n onExport,\n onClose,\n onShowRevisionHistory,\n clearSelected,\n } = useEditorContext();\n\n const handleTabChange = useCallback(() => {\n clearSelected();\n }, [clearSelected]);\n\n return (\n <Root defaultValue=\"Portfolio\" onValueChange={handleTabChange}>\n <div className=\"flex justify-between\">\n {/* <EditorUndoRedoButtons {...props} /> */}\n <List className=\"flex gap-x-2 rounded-xl bg-slate-50 p-1 text-sm font-semibold text-gray-600 outline-none\">\n {tabs.map((tab) => (\n <Trigger\n className=\"data-[state='active']:tab-shadow data-disabled:cursor-not-allowed data-disabled:text-gray-400 h-7 w-32 rounded-lg transition duration-300 data-[state='active']:bg-gray-50 data-[state='active']:text-gray-900\"\n key={tab}\n value={tab}\n >\n {tab}\n </Trigger>\n ))}\n </List>\n <EditorActionButtons\n onClose={onClose}\n onExport={onExport}\n onShowRevisionHistory={onShowRevisionHistory}\n onSwitchboardLinkClick={onSwitchboardLinkClick}\n />\n </div>\n <div className=\"mt-3 rounded-md bg-slate-50 p-8\">\n <Content value=\"Portfolio\">\n <PortfolioTab />\n </Content>\n <Content value=\"Transactions\">\n <TransactionsTab />\n </Content>\n <Content value=\"Other\">\n <OtherTab />\n </Content>\n </div>\n </Root>\n );\n}\n"],"names":["RWATabs","tabs","onSwitchboardLinkClick","onExport","onClose","onShowRevisionHistory","clearSelected","useEditorContext","handleTabChange","useCallback","jsxs","Root","jsx","List","tab","Trigger","EditorActionButtons","Content","PortfolioTab","TransactionsTab","OtherTab"],"mappings":";;;;;;;;AAUO,SAASA,IAAU;AACxB,QAAMC,IAAO,CAAC,aAAa,gBAAgB,OAAO,GAC5C;AAAA,IACJ,wBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,eAAAC;AAAA,MACEC,EAAiB,GAEfC,IAAkBC,EAAY,MAAM;AAC1B,IAAAH;EAAA,GACb,CAACA,CAAa,CAAC;AAElB,SACG,gBAAAI,EAAAC,GAAA,EAAK,cAAa,aAAY,eAAeH,GAC5C,UAAA;AAAA,IAAC,gBAAAE,EAAA,OAAA,EAAI,WAAU,wBAEb,UAAA;AAAA,MAAA,gBAAAE,EAACC,KAAK,WAAU,4FACb,UAAKZ,EAAA,IAAI,CAACa,MACT,gBAAAF;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UAEV,OAAOD;AAAA,UAEN,UAAAA;AAAA,QAAA;AAAA,QAHIA;AAAA,MAKR,CAAA,GACH;AAAA,MACA,gBAAAF;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,SAAAZ;AAAA,UACA,UAAAD;AAAA,UACA,uBAAAE;AAAA,UACA,wBAAAH;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GACF;AAAA,IACA,gBAAAQ,EAAC,OAAI,EAAA,WAAU,mCACb,UAAA;AAAA,MAAA,gBAAAE,EAACK,GAAQ,EAAA,OAAM,aACb,UAAA,gBAAAL,EAACM,IAAa,CAAA,GAChB;AAAA,wBACCD,GAAQ,EAAA,OAAM,gBACb,UAAA,gBAAAL,EAACO,IAAgB,CAAA,GACnB;AAAA,wBACCF,GAAQ,EAAA,OAAM,SACb,UAAA,gBAAAL,EAACQ,IAAS,CAAA,GACZ;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"tabs.js","sources":["../../../../src/rwa/components/tabs/tabs.tsx"],"sourcesContent":["import { EditorActionButtons } from \"@/connect\";\nimport {\n OtherTab,\n PortfolioTab,\n TransactionsTab,\n useEditorContext,\n} from \"@/rwa\";\nimport { Content, List, Root, Trigger } from \"@radix-ui/react-tabs\";\nimport { useCallback } from \"react\";\n\nexport function RWATabs() {\n const tabs = [\"Portfolio\", \"Transactions\", \"Other\"] as const;\n const {\n onSwitchboardLinkClick,\n onExport,\n onClose,\n onShowRevisionHistory,\n clearSelected,\n } = useEditorContext();\n\n const handleTabChange = useCallback(() => {\n clearSelected();\n }, [clearSelected]);\n\n return (\n <Root defaultValue=\"Portfolio\" onValueChange={handleTabChange}>\n <div className=\"flex justify-between\">\n {/* <EditorUndoRedoButtons {...props} /> */}\n <List className=\"flex gap-x-2 rounded-xl bg-slate-50 p-1 text-sm font-semibold text-gray-600 outline-none\">\n {tabs.map((tab) => (\n <Trigger\n className=\"data-[state='active']:tab-shadow data-disabled:cursor-not-allowed data-disabled:text-gray-400 h-7 w-32 rounded-lg transition duration-300 data-[state='active']:bg-gray-50 data-[state='active']:text-gray-900\"\n key={tab}\n value={tab}\n >\n {tab}\n </Trigger>\n ))}\n </List>\n <EditorActionButtons\n onClose={onClose}\n onExport={onExport}\n onShowRevisionHistory={onShowRevisionHistory}\n onSwitchboardLinkClick={onSwitchboardLinkClick}\n />\n </div>\n <div className=\"mt-3 rounded-md bg-slate-50 p-8\">\n <Content value=\"Portfolio\">\n <PortfolioTab />\n </Content>\n <Content value=\"Transactions\">\n <TransactionsTab />\n </Content>\n <Content value=\"Other\">\n <OtherTab />\n </Content>\n </div>\n </Root>\n );\n}\n"],"names":["RWATabs","tabs","onSwitchboardLinkClick","onExport","onClose","onShowRevisionHistory","clearSelected","useEditorContext","handleTabChange","useCallback","jsxs","Root","jsx","List","tab","Trigger","EditorActionButtons","Content","PortfolioTab","TransactionsTab","OtherTab"],"mappings":";;;;;;;;AAUO,SAASA,IAAU;AACxB,QAAMC,IAAO,CAAC,aAAa,gBAAgB,OAAO,GAC5C;AAAA,IACJ,wBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,eAAAC;AAAA,MACEC,EAAiB,GAEfC,IAAkBC,EAAY,MAAM;AAC1B,IAAAH,EAAA;AAAA,EAAA,GACb,CAACA,CAAa,CAAC;AAElB,SACG,gBAAAI,EAAAC,GAAA,EAAK,cAAa,aAAY,eAAeH,GAC5C,UAAA;AAAA,IAAC,gBAAAE,EAAA,OAAA,EAAI,WAAU,wBAEb,UAAA;AAAA,MAAA,gBAAAE,EAACC,KAAK,WAAU,4FACb,UAAKZ,EAAA,IAAI,CAACa,MACT,gBAAAF;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UAEV,OAAOD;AAAA,UAEN,UAAAA;AAAA,QAAA;AAAA,QAHIA;AAAA,MAKR,CAAA,GACH;AAAA,MACA,gBAAAF;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,SAAAZ;AAAA,UACA,UAAAD;AAAA,UACA,uBAAAE;AAAA,UACA,wBAAAH;AAAA,QAAA;AAAA,MAAA;AAAA,IACF,GACF;AAAA,IACA,gBAAAQ,EAAC,OAAI,EAAA,WAAU,mCACb,UAAA;AAAA,MAAA,gBAAAE,EAACK,GAAQ,EAAA,OAAM,aACb,UAAA,gBAAAL,EAACM,IAAa,CAAA,GAChB;AAAA,wBACCD,GAAQ,EAAA,OAAM,gBACb,UAAA,gBAAAL,EAACO,IAAgB,CAAA,GACnB;AAAA,wBACCF,GAAQ,EAAA,OAAM,SACb,UAAA,gBAAAL,EAACQ,KAAS,EACZ,CAAA;AAAA,IAAA,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"transactions-tab.js","sources":["../../../../src/rwa/components/tabs/transactions-tab.tsx"],"sourcesContent":["import { GroupTransactionsTable, TabContent } from \"@/rwa\";\n\nexport function TransactionsTab() {\n return (\n <TabContent\n description=\"Details on the distribution of assets among different financial institutions or investment vehicles.\"\n label=\"Transactions\"\n >\n <GroupTransactionsTable />\n </TabContent>\n );\n}\n"],"names":["TransactionsTab","jsx","TabContent","GroupTransactionsTable"],"mappings":";;;AAEO,SAASA,IAAkB;AAE9B,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,aAAY;AAAA,MACZ,OAAM;AAAA,MAEN,4BAACC,GAAuB,EAAA;AAAA,IAAA;AAAA,EAAA;AAG9B;"}
1
+ {"version":3,"file":"transactions-tab.js","sources":["../../../../src/rwa/components/tabs/transactions-tab.tsx"],"sourcesContent":["import { GroupTransactionsTable, TabContent } from \"@/rwa\";\n\nexport function TransactionsTab() {\n return (\n <TabContent\n description=\"Details on the distribution of assets among different financial institutions or investment vehicles.\"\n label=\"Transactions\"\n >\n <GroupTransactionsTable />\n </TabContent>\n );\n}\n"],"names":["TransactionsTab","jsx","TabContent","GroupTransactionsTable"],"mappings":";;;AAEO,SAASA,IAAkB;AAE9B,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,aAAY;AAAA,MACZ,OAAM;AAAA,MAEN,4BAACC,GAAuB,CAAA,CAAA;AAAA,IAAA;AAAA,EAC1B;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"columns.js","sources":["../../../src/rwa/constants/columns.ts"],"sourcesContent":["import { TableColumn, TableName } from \"@/rwa\";\n\nexport type ColumnsByTableName = {\n [K in TableName]: TableColumn[];\n};\n\nexport const columnsByTableName: ColumnsByTableName = {\n ASSET: [\n { key: \"name\" as const, label: \"Name\", allowSorting: true },\n {\n key: \"purchaseDate\" as const,\n label: \"Purchase Date\",\n allowSorting: true,\n },\n {\n key: \"maturity\" as const,\n label: \"Maturity\",\n allowSorting: true,\n displayTime: false,\n },\n {\n key: \"notional\" as const,\n label: \"Notional\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"currentValue\" as const,\n label: \"Current Value\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"purchasePrice\" as const,\n label: \"Purchase Price\",\n allowSorting: true,\n isNumberColumn: true,\n decimalScale: 6,\n },\n {\n key: \"purchaseProceeds\" as const,\n label: \"Purchase Proceeds\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"salesProceeds\" as const,\n label: \"Sales Proceeds\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"totalDiscount\" as const,\n label: \"Total Discount\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"realizedSurplus\" as const,\n label: \"Realized Surplus\",\n allowSorting: true,\n isNumberColumn: true,\n },\n ],\n TRANSACTION: [\n {\n key: \"typeLabel\" as const,\n label: \"Type\",\n allowSorting: true,\n },\n {\n key: \"entryTime\" as const,\n label: \"Entry Time\",\n allowSorting: true,\n },\n {\n key: \"asset\" as const,\n label: \"Asset\",\n allowSorting: true,\n },\n {\n key: \"quantity\" as const,\n label: \"Quantity\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"cashAmount\" as const,\n label: \"Cash Amount ($)\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"totalFees\" as const,\n label: \"Total Fees ($)\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"cashBalanceChange\" as const,\n label: \"Cash Balance Change ($)\",\n allowSorting: true,\n isNumberColumn: true,\n },\n ],\n FIXED_INCOME_TYPE: [\n { key: \"name\" as const, label: \"Name\", allowSorting: true },\n ],\n SPV: [{ key: \"name\" as const, label: \"Name\", allowSorting: true }],\n SERVICE_PROVIDER_FEE_TYPE: [\n { key: \"name\" as const, label: \"Name\", allowSorting: true },\n { key: \"feeType\" as const, label: \"Fee Type\", allowSorting: true },\n {\n key: \"accountName\" as const,\n label: \"Account Name\",\n allowSorting: true,\n },\n {\n key: \"accountReference\" as const,\n label: \"Account Reference\",\n allowSorting: true,\n },\n ],\n ACCOUNT: [\n { key: \"label\" as const, label: \"Label\", allowSorting: true },\n { key: \"reference\" as const, label: \"Reference\", allowSorting: true },\n ],\n} as const;\n"],"names":["columnsByTableName"],"mappings":"AAMO,MAAMA,IAAyC;AAAA,EACpD,OAAO;AAAA,IACL,EAAE,KAAK,QAAiB,OAAO,QAAQ,cAAc,GAAK;AAAA,IAC1D;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,aAAa;AAAA,IACf;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,EACF;AAAA,EACA,mBAAmB;AAAA,IACjB,EAAE,KAAK,QAAiB,OAAO,QAAQ,cAAc,GAAK;AAAA,EAC5D;AAAA,EACA,KAAK,CAAC,EAAE,KAAK,QAAiB,OAAO,QAAQ,cAAc,IAAM;AAAA,EACjE,2BAA2B;AAAA,IACzB,EAAE,KAAK,QAAiB,OAAO,QAAQ,cAAc,GAAK;AAAA,IAC1D,EAAE,KAAK,WAAoB,OAAO,YAAY,cAAc,GAAK;AAAA,IACjE;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,IAChB;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,EAAE,KAAK,SAAkB,OAAO,SAAS,cAAc,GAAK;AAAA,IAC5D,EAAE,KAAK,aAAsB,OAAO,aAAa,cAAc,GAAK;AAAA,EACtE;AACF;"}
1
+ {"version":3,"file":"columns.js","sources":["../../../src/rwa/constants/columns.ts"],"sourcesContent":["import { TableColumn, TableName } from \"@/rwa\";\n\nexport type ColumnsByTableName = {\n [K in TableName]: TableColumn[];\n};\n\nexport const columnsByTableName: ColumnsByTableName = {\n ASSET: [\n { key: \"name\" as const, label: \"Name\", allowSorting: true },\n {\n key: \"purchaseDate\" as const,\n label: \"Purchase Date\",\n allowSorting: true,\n },\n {\n key: \"maturity\" as const,\n label: \"Maturity\",\n allowSorting: true,\n displayTime: false,\n },\n {\n key: \"notional\" as const,\n label: \"Notional\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"currentValue\" as const,\n label: \"Current Value\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"purchasePrice\" as const,\n label: \"Purchase Price\",\n allowSorting: true,\n isNumberColumn: true,\n decimalScale: 6,\n },\n {\n key: \"purchaseProceeds\" as const,\n label: \"Purchase Proceeds\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"salesProceeds\" as const,\n label: \"Sales Proceeds\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"totalDiscount\" as const,\n label: \"Total Discount\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"realizedSurplus\" as const,\n label: \"Realized Surplus\",\n allowSorting: true,\n isNumberColumn: true,\n },\n ],\n TRANSACTION: [\n {\n key: \"typeLabel\" as const,\n label: \"Type\",\n allowSorting: true,\n },\n {\n key: \"entryTime\" as const,\n label: \"Entry Time\",\n allowSorting: true,\n },\n {\n key: \"asset\" as const,\n label: \"Asset\",\n allowSorting: true,\n },\n {\n key: \"quantity\" as const,\n label: \"Quantity\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"cashAmount\" as const,\n label: \"Cash Amount ($)\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"totalFees\" as const,\n label: \"Total Fees ($)\",\n allowSorting: true,\n isNumberColumn: true,\n },\n {\n key: \"cashBalanceChange\" as const,\n label: \"Cash Balance Change ($)\",\n allowSorting: true,\n isNumberColumn: true,\n },\n ],\n FIXED_INCOME_TYPE: [\n { key: \"name\" as const, label: \"Name\", allowSorting: true },\n ],\n SPV: [{ key: \"name\" as const, label: \"Name\", allowSorting: true }],\n SERVICE_PROVIDER_FEE_TYPE: [\n { key: \"name\" as const, label: \"Name\", allowSorting: true },\n { key: \"feeType\" as const, label: \"Fee Type\", allowSorting: true },\n {\n key: \"accountName\" as const,\n label: \"Account Name\",\n allowSorting: true,\n },\n {\n key: \"accountReference\" as const,\n label: \"Account Reference\",\n allowSorting: true,\n },\n ],\n ACCOUNT: [\n { key: \"label\" as const, label: \"Label\", allowSorting: true },\n { key: \"reference\" as const, label: \"Reference\", allowSorting: true },\n ],\n} as const;\n"],"names":["columnsByTableName"],"mappings":"AAMO,MAAMA,IAAyC;AAAA,EACpD,OAAO;AAAA,IACL,EAAE,KAAK,QAAiB,OAAO,QAAQ,cAAc,GAAK;AAAA,IAC1D;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,aAAa;AAAA,IACf;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAAA;AAAA,EAEpB;AAAA,EACA,aAAa;AAAA,IACX;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAAA;AAAA,EAEpB;AAAA,EACA,mBAAmB;AAAA,IACjB,EAAE,KAAK,QAAiB,OAAO,QAAQ,cAAc,GAAK;AAAA,EAC5D;AAAA,EACA,KAAK,CAAC,EAAE,KAAK,QAAiB,OAAO,QAAQ,cAAc,IAAM;AAAA,EACjE,2BAA2B;AAAA,IACzB,EAAE,KAAK,QAAiB,OAAO,QAAQ,cAAc,GAAK;AAAA,IAC1D,EAAE,KAAK,WAAoB,OAAO,YAAY,cAAc,GAAK;AAAA,IACjE;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,IAAA;AAAA,EAElB;AAAA,EACA,SAAS;AAAA,IACP,EAAE,KAAK,SAAkB,OAAO,SAAS,cAAc,GAAK;AAAA,IAC5D,EAAE,KAAK,aAAsB,OAAO,aAAa,cAAc,GAAK;AAAA,EAAA;AAExE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"dependent-items.js","sources":["../../../src/rwa/constants/dependent-items.ts"],"sourcesContent":["import {\n FixedIncome,\n GroupTransaction,\n ServiceProviderFeeType,\n TableName,\n useEditorContext,\n} from \"@/rwa\";\nimport { useMemo } from \"react\";\n\nexport type DependentItemProps = {\n dependentTableName: TableName;\n dependentItems: { id: string; label: string }[];\n}[];\nexport function useDependentItemProps(\n tableName: TableName,\n itemId: string | null | undefined,\n) {\n const { fixedIncomes, serviceProviderFeeTypes, transactions } =\n useEditorContext();\n\n const dependentItemProps: DependentItemProps = useMemo(() => {\n if (!itemId) return [];\n\n switch (tableName) {\n case \"TRANSACTION\":\n return [];\n case \"SPV\":\n return [\n {\n dependentTableName: \"ASSET\",\n dependentItems: makeDependentAssetsList(\n tableName,\n itemId,\n fixedIncomes,\n ),\n },\n ];\n case \"FIXED_INCOME_TYPE\":\n return [\n {\n dependentTableName: \"ASSET\",\n dependentItems: makeDependentAssetsList(\n tableName,\n itemId,\n fixedIncomes,\n ),\n },\n ];\n case \"ASSET\":\n return [\n {\n dependentTableName: \"TRANSACTION\",\n dependentItems: makeDependentTransactionsList(\n tableName,\n itemId,\n transactions,\n ),\n },\n ];\n case \"SERVICE_PROVIDER_FEE_TYPE\":\n return [\n {\n dependentTableName: \"TRANSACTION\",\n dependentItems: makeDependentTransactionsList(\n tableName,\n itemId,\n transactions,\n ),\n },\n ];\n case \"ACCOUNT\":\n return [\n {\n dependentTableName: \"TRANSACTION\",\n dependentItems: makeDependentTransactionsList(\n tableName,\n itemId,\n transactions,\n ),\n },\n {\n dependentTableName: \"SERVICE_PROVIDER_FEE_TYPE\",\n dependentItems: makeDependentServiceProviderFeeTypesList(\n itemId,\n serviceProviderFeeTypes,\n ),\n },\n ];\n }\n }, [fixedIncomes, itemId, serviceProviderFeeTypes, tableName, transactions]);\n\n return dependentItemProps;\n}\n\nexport function makeDependentServiceProviderFeeTypesList(\n itemId: string,\n serviceProviderFeeTypes: ServiceProviderFeeType[],\n) {\n const makeLabel = (asset: ServiceProviderFeeType) => ({\n id: asset.id,\n label: asset.name,\n });\n return serviceProviderFeeTypes\n .filter((f) => f.accountId === itemId)\n .map(makeLabel);\n}\n\nexport function makeDependentAssetsList(\n tableName: \"FIXED_INCOME_TYPE\" | \"SPV\",\n itemId: string,\n assets: FixedIncome[],\n) {\n const makeLabel = (asset: FixedIncome) => ({\n id: asset.id,\n label: asset.name,\n });\n switch (tableName) {\n case \"FIXED_INCOME_TYPE\":\n return assets\n .filter((asset) => asset.fixedIncomeTypeId === itemId)\n .map(makeLabel);\n case \"SPV\":\n return assets.filter((asset) => asset.spvId === itemId).map(makeLabel);\n }\n}\n\nexport function makeDependentTransactionsList(\n tableName: \"ASSET\" | \"ACCOUNT\" | \"SERVICE_PROVIDER_FEE_TYPE\",\n itemId: string,\n transactions: GroupTransaction[],\n) {\n const makeLabel = (t: GroupTransaction, index: number) => ({\n id: t.id,\n label: `Transaction #${index + 1}`,\n });\n\n switch (tableName) {\n case \"ASSET\":\n return transactions\n .filter((t) => t.fixedIncomeTransaction?.assetId === itemId)\n .map(makeLabel);\n case \"ACCOUNT\":\n return transactions\n .filter(\n (t) =>\n t.cashTransaction.accountId === itemId ||\n t.fixedIncomeTransaction?.accountId === itemId,\n )\n .map(makeLabel);\n case \"SERVICE_PROVIDER_FEE_TYPE\":\n return transactions\n .filter((t) =>\n t.fees?.some((f) => f.serviceProviderFeeTypeId === itemId),\n )\n .map(makeLabel);\n }\n}\n"],"names":["useDependentItemProps","tableName","itemId","fixedIncomes","serviceProviderFeeTypes","transactions","useEditorContext","useMemo","makeDependentAssetsList","makeDependentTransactionsList","makeDependentServiceProviderFeeTypesList","makeLabel","asset","f","assets","t","index","_a"],"mappings":"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"}
1
+ {"version":3,"file":"dependent-items.js","sources":["../../../src/rwa/constants/dependent-items.ts"],"sourcesContent":["import {\n FixedIncome,\n GroupTransaction,\n ServiceProviderFeeType,\n TableName,\n useEditorContext,\n} from \"@/rwa\";\nimport { useMemo } from \"react\";\n\nexport type DependentItemProps = {\n dependentTableName: TableName;\n dependentItems: { id: string; label: string }[];\n}[];\nexport function useDependentItemProps(\n tableName: TableName,\n itemId: string | null | undefined,\n) {\n const { fixedIncomes, serviceProviderFeeTypes, transactions } =\n useEditorContext();\n\n const dependentItemProps: DependentItemProps = useMemo(() => {\n if (!itemId) return [];\n\n switch (tableName) {\n case \"TRANSACTION\":\n return [];\n case \"SPV\":\n return [\n {\n dependentTableName: \"ASSET\",\n dependentItems: makeDependentAssetsList(\n tableName,\n itemId,\n fixedIncomes,\n ),\n },\n ];\n case \"FIXED_INCOME_TYPE\":\n return [\n {\n dependentTableName: \"ASSET\",\n dependentItems: makeDependentAssetsList(\n tableName,\n itemId,\n fixedIncomes,\n ),\n },\n ];\n case \"ASSET\":\n return [\n {\n dependentTableName: \"TRANSACTION\",\n dependentItems: makeDependentTransactionsList(\n tableName,\n itemId,\n transactions,\n ),\n },\n ];\n case \"SERVICE_PROVIDER_FEE_TYPE\":\n return [\n {\n dependentTableName: \"TRANSACTION\",\n dependentItems: makeDependentTransactionsList(\n tableName,\n itemId,\n transactions,\n ),\n },\n ];\n case \"ACCOUNT\":\n return [\n {\n dependentTableName: \"TRANSACTION\",\n dependentItems: makeDependentTransactionsList(\n tableName,\n itemId,\n transactions,\n ),\n },\n {\n dependentTableName: \"SERVICE_PROVIDER_FEE_TYPE\",\n dependentItems: makeDependentServiceProviderFeeTypesList(\n itemId,\n serviceProviderFeeTypes,\n ),\n },\n ];\n }\n }, [fixedIncomes, itemId, serviceProviderFeeTypes, tableName, transactions]);\n\n return dependentItemProps;\n}\n\nexport function makeDependentServiceProviderFeeTypesList(\n itemId: string,\n serviceProviderFeeTypes: ServiceProviderFeeType[],\n) {\n const makeLabel = (asset: ServiceProviderFeeType) => ({\n id: asset.id,\n label: asset.name,\n });\n return serviceProviderFeeTypes\n .filter((f) => f.accountId === itemId)\n .map(makeLabel);\n}\n\nexport function makeDependentAssetsList(\n tableName: \"FIXED_INCOME_TYPE\" | \"SPV\",\n itemId: string,\n assets: FixedIncome[],\n) {\n const makeLabel = (asset: FixedIncome) => ({\n id: asset.id,\n label: asset.name,\n });\n switch (tableName) {\n case \"FIXED_INCOME_TYPE\":\n return assets\n .filter((asset) => asset.fixedIncomeTypeId === itemId)\n .map(makeLabel);\n case \"SPV\":\n return assets.filter((asset) => asset.spvId === itemId).map(makeLabel);\n }\n}\n\nexport function makeDependentTransactionsList(\n tableName: \"ASSET\" | \"ACCOUNT\" | \"SERVICE_PROVIDER_FEE_TYPE\",\n itemId: string,\n transactions: GroupTransaction[],\n) {\n const makeLabel = (t: GroupTransaction, index: number) => ({\n id: t.id,\n label: `Transaction #${index + 1}`,\n });\n\n switch (tableName) {\n case \"ASSET\":\n return transactions\n .filter((t) => t.fixedIncomeTransaction?.assetId === itemId)\n .map(makeLabel);\n case \"ACCOUNT\":\n return transactions\n .filter(\n (t) =>\n t.cashTransaction.accountId === itemId ||\n t.fixedIncomeTransaction?.accountId === itemId,\n )\n .map(makeLabel);\n case \"SERVICE_PROVIDER_FEE_TYPE\":\n return transactions\n .filter((t) =>\n t.fees?.some((f) => f.serviceProviderFeeTypeId === itemId),\n )\n .map(makeLabel);\n }\n}\n"],"names":["useDependentItemProps","tableName","itemId","fixedIncomes","serviceProviderFeeTypes","transactions","useEditorContext","useMemo","makeDependentAssetsList","makeDependentTransactionsList","makeDependentServiceProviderFeeTypesList","makeLabel","asset","f","assets","t","index","_a"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../src/rwa/constants/table.ts"],"sourcesContent":["import {\n EditorAction,\n GroupTransactionType,\n RealWorldAssetsState,\n TableName,\n TableNameFor,\n} from \"@/rwa\";\n\nexport const defaultColumnCountByTableWidth = {\n 1520: 10,\n 1394: 9,\n 1239: 8,\n 1112: 7,\n 984: 6,\n};\n\nexport const cashTransactionSignByTransactionType: Record<\n GroupTransactionType,\n -1 | 1\n> = {\n AssetSale: 1,\n PrincipalDraw: 1,\n AssetPurchase: -1,\n PrincipalReturn: -1,\n FeesIncome: 1,\n FeesPayment: -1,\n InterestIncome: 1,\n InterestPayment: -1,\n} as const;\n\nexport const assetTransactionSignByTransactionType = {\n AssetSale: -1,\n AssetPurchase: 1,\n} as const;\n\nexport function getStateKeyForTableName(tableName: TableName) {\n const stateKeysByTableName: Record<TableName, keyof RealWorldAssetsState> = {\n ASSET: \"portfolio\",\n TRANSACTION: \"transactions\",\n ACCOUNT: \"accounts\",\n FIXED_INCOME_TYPE: \"fixedIncomeTypes\",\n SERVICE_PROVIDER_FEE_TYPE: \"serviceProviderFeeTypes\",\n SPV: \"spvs\",\n } as const;\n\n return stateKeysByTableName[tableName];\n}\n\nexport function getTableNameFor<A extends EditorAction>(\n action: A,\n): TableNameFor<A> {\n const parts = action.type.split(\"_\");\n const entity = parts.slice(1).join(\"_\");\n return entity as TableNameFor<A>;\n}\nexport function getActionOperationType<A extends EditorAction>(action: A) {\n const operation = action.type.split(\"_\")[0];\n return operation as \"CREATE\" | \"EDIT\" | \"DELETE\";\n}\n"],"names":["defaultColumnCountByTableWidth","cashTransactionSignByTransactionType","assetTransactionSignByTransactionType","getStateKeyForTableName","tableName","getTableNameFor","action","getActionOperationType"],"mappings":"AAQO,MAAMA,IAAiC;AAAA,EAC5C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AACP,GAEaC,IAGT;AAAA,EACF,WAAW;AAAA,EACX,eAAe;AAAA,EACf,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,iBAAiB;AACnB,GAEaC,IAAwC;AAAA,EACnD,WAAW;AAAA,EACX,eAAe;AACjB;AAEO,SAASC,EAAwBC,GAAsB;AAU5D,SAT4E;AAAA,IAC1E,OAAO;AAAA,IACP,aAAa;AAAA,IACb,SAAS;AAAA,IACT,mBAAmB;AAAA,IACnB,2BAA2B;AAAA,IAC3B,KAAK;AAAA,EAAA,EAGqBA,CAAS;AACvC;AAEO,SAASC,EACdC,GACiB;AAGV,SAFOA,EAAO,KAAK,MAAM,GAAG,EACd,MAAM,CAAC,EAAE,KAAK,GAAG;AAExC;AACO,SAASC,EAA+CD,GAAW;AAEjE,SADWA,EAAO,KAAK,MAAM,GAAG,EAAE,CAAC;AAE5C;"}
1
+ {"version":3,"file":"table.js","sources":["../../../src/rwa/constants/table.ts"],"sourcesContent":["import {\n EditorAction,\n GroupTransactionType,\n RealWorldAssetsState,\n TableName,\n TableNameFor,\n} from \"@/rwa\";\n\nexport const defaultColumnCountByTableWidth = {\n 1520: 10,\n 1394: 9,\n 1239: 8,\n 1112: 7,\n 984: 6,\n};\n\nexport const cashTransactionSignByTransactionType: Record<\n GroupTransactionType,\n -1 | 1\n> = {\n AssetSale: 1,\n PrincipalDraw: 1,\n AssetPurchase: -1,\n PrincipalReturn: -1,\n FeesIncome: 1,\n FeesPayment: -1,\n InterestIncome: 1,\n InterestPayment: -1,\n} as const;\n\nexport const assetTransactionSignByTransactionType = {\n AssetSale: -1,\n AssetPurchase: 1,\n} as const;\n\nexport function getStateKeyForTableName(tableName: TableName) {\n const stateKeysByTableName: Record<TableName, keyof RealWorldAssetsState> = {\n ASSET: \"portfolio\",\n TRANSACTION: \"transactions\",\n ACCOUNT: \"accounts\",\n FIXED_INCOME_TYPE: \"fixedIncomeTypes\",\n SERVICE_PROVIDER_FEE_TYPE: \"serviceProviderFeeTypes\",\n SPV: \"spvs\",\n } as const;\n\n return stateKeysByTableName[tableName];\n}\n\nexport function getTableNameFor<A extends EditorAction>(\n action: A,\n): TableNameFor<A> {\n const parts = action.type.split(\"_\");\n const entity = parts.slice(1).join(\"_\");\n return entity as TableNameFor<A>;\n}\nexport function getActionOperationType<A extends EditorAction>(action: A) {\n const operation = action.type.split(\"_\")[0];\n return operation as \"CREATE\" | \"EDIT\" | \"DELETE\";\n}\n"],"names":["defaultColumnCountByTableWidth","cashTransactionSignByTransactionType","assetTransactionSignByTransactionType","getStateKeyForTableName","tableName","getTableNameFor","action","getActionOperationType"],"mappings":"AAQO,MAAMA,IAAiC;AAAA,EAC5C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AACP,GAEaC,IAGT;AAAA,EACF,WAAW;AAAA,EACX,eAAe;AAAA,EACf,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,iBAAiB;AACnB,GAEaC,IAAwC;AAAA,EACnD,WAAW;AAAA,EACX,eAAe;AACjB;AAEO,SAASC,EAAwBC,GAAsB;AAU5D,SAT4E;AAAA,IAC1E,OAAO;AAAA,IACP,aAAa;AAAA,IACb,SAAS;AAAA,IACT,mBAAmB;AAAA,IACnB,2BAA2B;AAAA,IAC3B,KAAK;AAAA,EACP,EAE4BA,CAAS;AACvC;AAEO,SAASC,EACdC,GACiB;AAGV,SAFOA,EAAO,KAAK,MAAM,GAAG,EACd,MAAM,CAAC,EAAE,KAAK,GAAG;AAExC;AACO,SAASC,EAA+CD,GAAW;AAEjE,SADWA,EAAO,KAAK,MAAM,GAAG,EAAE,CAAC;AAE5C;"}
@@ -1 +1 @@
1
- {"version":3,"file":"editor-context.js","sources":["../../../src/rwa/context/editor-context.tsx"],"sourcesContent":["import {\n CashAsset,\n EditorAction,\n EditorDispatcher,\n FixedIncome,\n getActionOperationType,\n getCashAsset,\n getFixedIncomeAssets,\n getStateKeyForTableName,\n getTableNameFor,\n makeTableData,\n Operation,\n RealWorldAssetsState,\n TableItemType,\n TableName,\n} from \"@/rwa\";\nimport {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\n\nexport type RWAEditorContextProps = {\n readonly isAllowedToCreateDocuments: boolean;\n readonly isAllowedToEditDocuments: boolean;\n readonly canUndo: boolean;\n readonly canRedo: boolean;\n readonly onSwitchboardLinkClick: (() => void) | undefined;\n readonly onExport: () => void;\n readonly onClose: () => void;\n readonly onShowRevisionHistory: () => void;\n};\ntype TEditorContext = RWAEditorContextProps &\n RealWorldAssetsState & {\n readonly cashAsset: CashAsset;\n readonly fixedIncomes: FixedIncome[];\n readonly selectedTableItem: TableItemType<TableName> | null;\n readonly selectedTableName: TableName | null;\n readonly operation: Operation;\n readonly viewItem: (\n item: TableItemType<TableName>,\n tableName: TableName,\n ) => void;\n readonly createItem: (tableName: TableName) => void;\n readonly editItem: (\n item: TableItemType<TableName>,\n tableName: TableName,\n ) => void;\n readonly clearSelected: () => void;\n readonly getIsFormOpen: (tableName: TableName) => boolean;\n readonly handleAction: (action: EditorAction) => void;\n readonly handleUndo: () => void;\n readonly handleRedo: () => void;\n };\n\nconst defaultEditorContextValue: TEditorContext = {\n accounts: [],\n fixedIncomeTypes: [],\n portfolio: [],\n principalLenderAccountId: \"\",\n serviceProviderFeeTypes: [],\n spvs: [],\n transactions: [],\n fixedIncomes: [],\n cashAsset: {\n id: \"\",\n type: \"Cash\",\n currency: \"USD\",\n balance: 0,\n spvId: \"\",\n },\n isAllowedToCreateDocuments: false,\n isAllowedToEditDocuments: false,\n canUndo: false,\n canRedo: false,\n operation: null,\n onSwitchboardLinkClick: undefined,\n selectedTableItem: null,\n selectedTableName: null,\n getIsFormOpen: () => false,\n clearSelected: () => {},\n viewItem: () => {},\n createItem: () => {},\n editItem: () => {},\n onExport: () => {},\n onClose: () => {},\n handleUndo: () => {},\n handleRedo: () => {},\n onShowRevisionHistory: () => {},\n handleAction: () => {},\n};\n\nconst EditorContext = createContext(defaultEditorContextValue);\nEditorContext.displayName = \"EditorContext\";\n\ntype TableState = {\n selectedTableItem: TableItemType<TableName> | null;\n selectedTableName: TableName | null;\n operation: Operation;\n};\n\ntype TableAction =\n | {\n type: \"VIEW_ITEM\";\n item: TableItemType<TableName>;\n tableName: TableName;\n }\n | { type: \"CREATE_ITEM\"; tableName: TableName }\n | {\n type: \"EDIT_ITEM\";\n item: TableItemType<TableName>;\n tableName: TableName;\n }\n | { type: \"CLEAR_SELECTED\" };\n\nfunction tableReducer(state: TableState, action: TableAction): TableState {\n switch (action.type) {\n case \"VIEW_ITEM\":\n return {\n selectedTableItem: action.item,\n selectedTableName: action.tableName,\n operation: \"view\",\n };\n case \"CREATE_ITEM\":\n return {\n selectedTableItem: null,\n selectedTableName: action.tableName,\n operation: \"create\",\n };\n case \"EDIT_ITEM\":\n return {\n selectedTableItem: action.item,\n selectedTableName: action.tableName,\n operation: \"edit\",\n };\n case \"CLEAR_SELECTED\":\n return {\n selectedTableItem: null,\n selectedTableName: null,\n operation: null,\n };\n default:\n return state;\n }\n}\n\nexport function RWAEditorContextProvider(\n props: RWAEditorContextProps & {\n readonly children: ReactNode;\n readonly state: RealWorldAssetsState;\n readonly editorDispatcher: EditorDispatcher;\n readonly undo: () => void;\n readonly redo: () => void;\n },\n) {\n const {\n children,\n state,\n isAllowedToCreateDocuments,\n isAllowedToEditDocuments,\n canUndo,\n canRedo,\n undo,\n redo,\n editorDispatcher,\n onExport,\n onClose,\n onSwitchboardLinkClick,\n onShowRevisionHistory,\n } = props;\n const [editorState, setEditorState] = useState(state);\n const stateRef = useRef(state);\n const [tableState, tableDispatch] = useReducer(tableReducer, {\n selectedTableItem: null,\n selectedTableName: null,\n operation: null,\n });\n\n const { selectedTableItem, selectedTableName, operation } = tableState;\n\n useEffect(() => {\n if (operation === null || operation === \"view\") {\n setEditorState(stateRef.current);\n }\n }, [operation, state]);\n\n useEffect(() => {\n stateRef.current = state;\n }, [state]);\n\n const {\n accounts,\n fixedIncomeTypes,\n portfolio,\n principalLenderAccountId,\n serviceProviderFeeTypes,\n spvs,\n transactions,\n } = editorState;\n\n const cashAsset = useMemo(() => getCashAsset(portfolio), [portfolio]);\n\n const fixedIncomes = useMemo(\n () => getFixedIncomeAssets(portfolio),\n [portfolio],\n );\n\n const handleUndo = useCallback(() => {\n if (!canUndo) return;\n undo();\n }, [canUndo, undo]);\n\n const handleRedo = useCallback(() => {\n if (!canRedo) return;\n redo();\n }, [canRedo, redo]);\n\n const getIsFormOpen = useCallback(\n (tableName: TableName) => selectedTableName === tableName,\n [selectedTableName],\n );\n\n const viewItem = useCallback(\n (item: TableItemType<TableName>, tableName: TableName) => {\n tableDispatch({ type: \"VIEW_ITEM\", item, tableName });\n },\n [],\n );\n\n const createItem = useCallback((tableName: TableName) => {\n tableDispatch({ type: \"CREATE_ITEM\", tableName });\n }, []);\n\n const editItem = useCallback(\n (item: TableItemType<TableName>, tableName: TableName) => {\n tableDispatch({ type: \"EDIT_ITEM\", item, tableName });\n },\n [],\n );\n\n const clearSelected = useCallback(() => {\n tableDispatch({ type: \"CLEAR_SELECTED\" });\n setEditorState(stateRef.current);\n }, []);\n\n const handleAction = useCallback(\n (action: EditorAction) => {\n try {\n const result = editorDispatcher(action);\n const actionOperationType = getActionOperationType(action);\n\n if (actionOperationType === \"DELETE\" || !result) {\n clearSelected();\n return;\n }\n const tableName = getTableNameFor(action);\n const stateKey = getStateKeyForTableName(tableName);\n const currentStateForKey = stateRef.current[stateKey];\n if (typeof currentStateForKey === \"string\") return;\n\n if (actionOperationType === \"CREATE\") {\n const newStateForKey = [...currentStateForKey, result];\n const newState = {\n ...stateRef.current,\n [stateKey]: newStateForKey,\n };\n stateRef.current = newState;\n setEditorState(newState);\n\n if (tableName === selectedTableName) {\n const newTableData = makeTableData(tableName, newState);\n const newTableItem = newTableData.find(\n (item) => item.id === result.id,\n );\n\n if (newTableItem) {\n viewItem(newTableItem, tableName);\n }\n }\n }\n\n if (actionOperationType === \"EDIT\") {\n const newStateForKey = currentStateForKey.map((item) =>\n item.id === result.id ? result : item,\n );\n const newState = {\n ...stateRef.current,\n [stateKey]: newStateForKey,\n };\n stateRef.current = newState;\n setEditorState(newState);\n const newTableData = makeTableData(tableName, newState);\n const newTableItem = newTableData.find(\n (item) => item.id === result.id,\n );\n if (newTableItem) {\n editItem(newTableItem, tableName);\n }\n }\n } catch (error) {\n console.error(`Failed to dispatch action ${action.type}`, error);\n }\n },\n [clearSelected, editorDispatcher, editItem, selectedTableName, viewItem],\n );\n\n const value = useMemo(\n () => ({\n accounts,\n fixedIncomeTypes,\n portfolio,\n principalLenderAccountId,\n serviceProviderFeeTypes,\n spvs,\n transactions,\n cashAsset,\n fixedIncomes,\n canUndo,\n canRedo,\n isAllowedToCreateDocuments,\n isAllowedToEditDocuments,\n selectedTableItem,\n selectedTableName,\n operation,\n handleAction,\n handleUndo,\n handleRedo,\n viewItem,\n createItem,\n editItem,\n clearSelected,\n getIsFormOpen,\n onExport,\n onClose,\n onSwitchboardLinkClick,\n onShowRevisionHistory,\n }),\n [\n accounts,\n canRedo,\n canUndo,\n cashAsset,\n clearSelected,\n createItem,\n editItem,\n fixedIncomeTypes,\n fixedIncomes,\n getIsFormOpen,\n handleAction,\n handleRedo,\n handleUndo,\n isAllowedToCreateDocuments,\n isAllowedToEditDocuments,\n onClose,\n onExport,\n onShowRevisionHistory,\n onSwitchboardLinkClick,\n operation,\n portfolio,\n principalLenderAccountId,\n selectedTableItem,\n selectedTableName,\n serviceProviderFeeTypes,\n spvs,\n transactions,\n viewItem,\n ],\n );\n return (\n <EditorContext.Provider value={value}>{children}</EditorContext.Provider>\n );\n}\n\nexport function useEditorContext() {\n return useContext(EditorContext);\n}\n"],"names":["defaultEditorContextValue","EditorContext","createContext","tableReducer","state","action","RWAEditorContextProvider","props","children","isAllowedToCreateDocuments","isAllowedToEditDocuments","canUndo","canRedo","undo","redo","editorDispatcher","onExport","onClose","onSwitchboardLinkClick","onShowRevisionHistory","editorState","setEditorState","useState","stateRef","useRef","tableState","tableDispatch","useReducer","selectedTableItem","selectedTableName","operation","useEffect","accounts","fixedIncomeTypes","portfolio","principalLenderAccountId","serviceProviderFeeTypes","spvs","transactions","cashAsset","useMemo","getCashAsset","fixedIncomes","getFixedIncomeAssets","handleUndo","useCallback","handleRedo","getIsFormOpen","tableName","viewItem","item","createItem","editItem","clearSelected","handleAction","result","actionOperationType","getActionOperationType","getTableNameFor","stateKey","getStateKeyForTableName","currentStateForKey","newStateForKey","newState","newTableItem","makeTableData","error","value","jsx","useEditorContext","useContext"],"mappings":"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"}
1
+ {"version":3,"file":"editor-context.js","sources":["../../../src/rwa/context/editor-context.tsx"],"sourcesContent":["import {\n CashAsset,\n EditorAction,\n EditorDispatcher,\n FixedIncome,\n getActionOperationType,\n getCashAsset,\n getFixedIncomeAssets,\n getStateKeyForTableName,\n getTableNameFor,\n makeTableData,\n Operation,\n RealWorldAssetsState,\n TableItemType,\n TableName,\n} from \"@/rwa\";\nimport {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\n\nexport type RWAEditorContextProps = {\n readonly isAllowedToCreateDocuments: boolean;\n readonly isAllowedToEditDocuments: boolean;\n readonly canUndo: boolean;\n readonly canRedo: boolean;\n readonly onSwitchboardLinkClick: (() => void) | undefined;\n readonly onExport: () => void;\n readonly onClose: () => void;\n readonly onShowRevisionHistory: () => void;\n};\ntype TEditorContext = RWAEditorContextProps &\n RealWorldAssetsState & {\n readonly cashAsset: CashAsset;\n readonly fixedIncomes: FixedIncome[];\n readonly selectedTableItem: TableItemType<TableName> | null;\n readonly selectedTableName: TableName | null;\n readonly operation: Operation;\n readonly viewItem: (\n item: TableItemType<TableName>,\n tableName: TableName,\n ) => void;\n readonly createItem: (tableName: TableName) => void;\n readonly editItem: (\n item: TableItemType<TableName>,\n tableName: TableName,\n ) => void;\n readonly clearSelected: () => void;\n readonly getIsFormOpen: (tableName: TableName) => boolean;\n readonly handleAction: (action: EditorAction) => void;\n readonly handleUndo: () => void;\n readonly handleRedo: () => void;\n };\n\nconst defaultEditorContextValue: TEditorContext = {\n accounts: [],\n fixedIncomeTypes: [],\n portfolio: [],\n principalLenderAccountId: \"\",\n serviceProviderFeeTypes: [],\n spvs: [],\n transactions: [],\n fixedIncomes: [],\n cashAsset: {\n id: \"\",\n type: \"Cash\",\n currency: \"USD\",\n balance: 0,\n spvId: \"\",\n },\n isAllowedToCreateDocuments: false,\n isAllowedToEditDocuments: false,\n canUndo: false,\n canRedo: false,\n operation: null,\n onSwitchboardLinkClick: undefined,\n selectedTableItem: null,\n selectedTableName: null,\n getIsFormOpen: () => false,\n clearSelected: () => {},\n viewItem: () => {},\n createItem: () => {},\n editItem: () => {},\n onExport: () => {},\n onClose: () => {},\n handleUndo: () => {},\n handleRedo: () => {},\n onShowRevisionHistory: () => {},\n handleAction: () => {},\n};\n\nconst EditorContext = createContext(defaultEditorContextValue);\nEditorContext.displayName = \"EditorContext\";\n\ntype TableState = {\n selectedTableItem: TableItemType<TableName> | null;\n selectedTableName: TableName | null;\n operation: Operation;\n};\n\ntype TableAction =\n | {\n type: \"VIEW_ITEM\";\n item: TableItemType<TableName>;\n tableName: TableName;\n }\n | { type: \"CREATE_ITEM\"; tableName: TableName }\n | {\n type: \"EDIT_ITEM\";\n item: TableItemType<TableName>;\n tableName: TableName;\n }\n | { type: \"CLEAR_SELECTED\" };\n\nfunction tableReducer(state: TableState, action: TableAction): TableState {\n switch (action.type) {\n case \"VIEW_ITEM\":\n return {\n selectedTableItem: action.item,\n selectedTableName: action.tableName,\n operation: \"view\",\n };\n case \"CREATE_ITEM\":\n return {\n selectedTableItem: null,\n selectedTableName: action.tableName,\n operation: \"create\",\n };\n case \"EDIT_ITEM\":\n return {\n selectedTableItem: action.item,\n selectedTableName: action.tableName,\n operation: \"edit\",\n };\n case \"CLEAR_SELECTED\":\n return {\n selectedTableItem: null,\n selectedTableName: null,\n operation: null,\n };\n default:\n return state;\n }\n}\n\nexport function RWAEditorContextProvider(\n props: RWAEditorContextProps & {\n readonly children: ReactNode;\n readonly state: RealWorldAssetsState;\n readonly editorDispatcher: EditorDispatcher;\n readonly undo: () => void;\n readonly redo: () => void;\n },\n) {\n const {\n children,\n state,\n isAllowedToCreateDocuments,\n isAllowedToEditDocuments,\n canUndo,\n canRedo,\n undo,\n redo,\n editorDispatcher,\n onExport,\n onClose,\n onSwitchboardLinkClick,\n onShowRevisionHistory,\n } = props;\n const [editorState, setEditorState] = useState(state);\n const stateRef = useRef(state);\n const [tableState, tableDispatch] = useReducer(tableReducer, {\n selectedTableItem: null,\n selectedTableName: null,\n operation: null,\n });\n\n const { selectedTableItem, selectedTableName, operation } = tableState;\n\n useEffect(() => {\n if (operation === null || operation === \"view\") {\n setEditorState(stateRef.current);\n }\n }, [operation, state]);\n\n useEffect(() => {\n stateRef.current = state;\n }, [state]);\n\n const {\n accounts,\n fixedIncomeTypes,\n portfolio,\n principalLenderAccountId,\n serviceProviderFeeTypes,\n spvs,\n transactions,\n } = editorState;\n\n const cashAsset = useMemo(() => getCashAsset(portfolio), [portfolio]);\n\n const fixedIncomes = useMemo(\n () => getFixedIncomeAssets(portfolio),\n [portfolio],\n );\n\n const handleUndo = useCallback(() => {\n if (!canUndo) return;\n undo();\n }, [canUndo, undo]);\n\n const handleRedo = useCallback(() => {\n if (!canRedo) return;\n redo();\n }, [canRedo, redo]);\n\n const getIsFormOpen = useCallback(\n (tableName: TableName) => selectedTableName === tableName,\n [selectedTableName],\n );\n\n const viewItem = useCallback(\n (item: TableItemType<TableName>, tableName: TableName) => {\n tableDispatch({ type: \"VIEW_ITEM\", item, tableName });\n },\n [],\n );\n\n const createItem = useCallback((tableName: TableName) => {\n tableDispatch({ type: \"CREATE_ITEM\", tableName });\n }, []);\n\n const editItem = useCallback(\n (item: TableItemType<TableName>, tableName: TableName) => {\n tableDispatch({ type: \"EDIT_ITEM\", item, tableName });\n },\n [],\n );\n\n const clearSelected = useCallback(() => {\n tableDispatch({ type: \"CLEAR_SELECTED\" });\n setEditorState(stateRef.current);\n }, []);\n\n const handleAction = useCallback(\n (action: EditorAction) => {\n try {\n const result = editorDispatcher(action);\n const actionOperationType = getActionOperationType(action);\n\n if (actionOperationType === \"DELETE\" || !result) {\n clearSelected();\n return;\n }\n const tableName = getTableNameFor(action);\n const stateKey = getStateKeyForTableName(tableName);\n const currentStateForKey = stateRef.current[stateKey];\n if (typeof currentStateForKey === \"string\") return;\n\n if (actionOperationType === \"CREATE\") {\n const newStateForKey = [...currentStateForKey, result];\n const newState = {\n ...stateRef.current,\n [stateKey]: newStateForKey,\n };\n stateRef.current = newState;\n setEditorState(newState);\n\n if (tableName === selectedTableName) {\n const newTableData = makeTableData(tableName, newState);\n const newTableItem = newTableData.find(\n (item) => item.id === result.id,\n );\n\n if (newTableItem) {\n viewItem(newTableItem, tableName);\n }\n }\n }\n\n if (actionOperationType === \"EDIT\") {\n const newStateForKey = currentStateForKey.map((item) =>\n item.id === result.id ? result : item,\n );\n const newState = {\n ...stateRef.current,\n [stateKey]: newStateForKey,\n };\n stateRef.current = newState;\n setEditorState(newState);\n const newTableData = makeTableData(tableName, newState);\n const newTableItem = newTableData.find(\n (item) => item.id === result.id,\n );\n if (newTableItem) {\n editItem(newTableItem, tableName);\n }\n }\n } catch (error) {\n console.error(`Failed to dispatch action ${action.type}`, error);\n }\n },\n [clearSelected, editorDispatcher, editItem, selectedTableName, viewItem],\n );\n\n const value = useMemo(\n () => ({\n accounts,\n fixedIncomeTypes,\n portfolio,\n principalLenderAccountId,\n serviceProviderFeeTypes,\n spvs,\n transactions,\n cashAsset,\n fixedIncomes,\n canUndo,\n canRedo,\n isAllowedToCreateDocuments,\n isAllowedToEditDocuments,\n selectedTableItem,\n selectedTableName,\n operation,\n handleAction,\n handleUndo,\n handleRedo,\n viewItem,\n createItem,\n editItem,\n clearSelected,\n getIsFormOpen,\n onExport,\n onClose,\n onSwitchboardLinkClick,\n onShowRevisionHistory,\n }),\n [\n accounts,\n canRedo,\n canUndo,\n cashAsset,\n clearSelected,\n createItem,\n editItem,\n fixedIncomeTypes,\n fixedIncomes,\n getIsFormOpen,\n handleAction,\n handleRedo,\n handleUndo,\n isAllowedToCreateDocuments,\n isAllowedToEditDocuments,\n onClose,\n onExport,\n onShowRevisionHistory,\n onSwitchboardLinkClick,\n operation,\n portfolio,\n principalLenderAccountId,\n selectedTableItem,\n selectedTableName,\n serviceProviderFeeTypes,\n spvs,\n transactions,\n viewItem,\n ],\n );\n return (\n <EditorContext.Provider value={value}>{children}</EditorContext.Provider>\n );\n}\n\nexport function useEditorContext() {\n return useContext(EditorContext);\n}\n"],"names":["defaultEditorContextValue","EditorContext","createContext","tableReducer","state","action","RWAEditorContextProvider","props","children","isAllowedToCreateDocuments","isAllowedToEditDocuments","canUndo","canRedo","undo","redo","editorDispatcher","onExport","onClose","onSwitchboardLinkClick","onShowRevisionHistory","editorState","setEditorState","useState","stateRef","useRef","tableState","tableDispatch","useReducer","selectedTableItem","selectedTableName","operation","useEffect","accounts","fixedIncomeTypes","portfolio","principalLenderAccountId","serviceProviderFeeTypes","spvs","transactions","cashAsset","useMemo","getCashAsset","fixedIncomes","getFixedIncomeAssets","handleUndo","useCallback","handleRedo","getIsFormOpen","tableName","viewItem","item","createItem","editItem","clearSelected","handleAction","result","actionOperationType","getActionOperationType","getTableNameFor","stateKey","getStateKeyForTableName","currentStateForKey","newStateForKey","newState","newTableItem","makeTableData","error","value","jsx","useEditorContext","useContext"],"mappings":";;;;;AA6DA,MAAMA,KAA4C;AAAA,EAChD,UAAU,CAAC;AAAA,EACX,kBAAkB,CAAC;AAAA,EACnB,WAAW,CAAC;AAAA,EACZ,0BAA0B;AAAA,EAC1B,yBAAyB,CAAC;AAAA,EAC1B,MAAM,CAAC;AAAA,EACP,cAAc,CAAC;AAAA,EACf,cAAc,CAAC;AAAA,EACf,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO;AAAA,EACT;AAAA,EACA,4BAA4B;AAAA,EAC5B,0BAA0B;AAAA,EAC1B,SAAS;AAAA,EACT,SAAS;AAAA,EACT,WAAW;AAAA,EACX,wBAAwB;AAAA,EACxB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,eAAe,MAAM;AAAA,EACrB,eAAe,MAAM;AAAA,EAAC;AAAA,EACtB,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,YAAY,MAAM;AAAA,EAAC;AAAA,EACnB,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,SAAS,MAAM;AAAA,EAAC;AAAA,EAChB,YAAY,MAAM;AAAA,EAAC;AAAA,EACnB,YAAY,MAAM;AAAA,EAAC;AAAA,EACnB,uBAAuB,MAAM;AAAA,EAAC;AAAA,EAC9B,cAAc,MAAM;AAAA,EAAA;AACtB,GAEMC,IAAgBC,GAAcF,EAAyB;AAC7DC,EAAc,cAAc;AAsB5B,SAASE,GAAaC,GAAmBC,GAAiC;AACxE,UAAQA,EAAO,MAAM;AAAA,IACnB,KAAK;AACI,aAAA;AAAA,QACL,mBAAmBA,EAAO;AAAA,QAC1B,mBAAmBA,EAAO;AAAA,QAC1B,WAAW;AAAA,MACb;AAAA,IACF,KAAK;AACI,aAAA;AAAA,QACL,mBAAmB;AAAA,QACnB,mBAAmBA,EAAO;AAAA,QAC1B,WAAW;AAAA,MACb;AAAA,IACF,KAAK;AACI,aAAA;AAAA,QACL,mBAAmBA,EAAO;AAAA,QAC1B,mBAAmBA,EAAO;AAAA,QAC1B,WAAW;AAAA,MACb;AAAA,IACF,KAAK;AACI,aAAA;AAAA,QACL,mBAAmB;AAAA,QACnB,mBAAmB;AAAA,QACnB,WAAW;AAAA,MACb;AAAA,IACF;AACS,aAAAD;AAAA,EAAA;AAEb;AAEO,SAASE,GACdC,GAOA;AACM,QAAA;AAAA,IACJ,UAAAC;AAAA,IACA,OAAAJ;AAAA,IACA,4BAAAK;AAAA,IACA,0BAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,MAAAC;AAAA,IACA,MAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,wBAAAC;AAAA,IACA,uBAAAC;AAAA,EAAA,IACEZ,GACE,CAACa,GAAaC,CAAc,IAAIC,GAASlB,CAAK,GAC9CmB,IAAWC,GAAOpB,CAAK,GACvB,CAACqB,GAAYC,CAAa,IAAIC,GAAWxB,IAAc;AAAA,IAC3D,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,IACnB,WAAW;AAAA,EAAA,CACZ,GAEK,EAAE,mBAAAyB,GAAmB,mBAAAC,GAAmB,WAAAC,EAAc,IAAAL;AAE5D,EAAAM,EAAU,MAAM;AACV,KAAAD,MAAc,QAAQA,MAAc,WACtCT,EAAeE,EAAS,OAAO;AAAA,EACjC,GACC,CAACO,GAAW1B,CAAK,CAAC,GAErB2B,EAAU,MAAM;AACd,IAAAR,EAAS,UAAUnB;AAAA,EAAA,GAClB,CAACA,CAAK,CAAC;AAEJ,QAAA;AAAA,IACJ,UAAA4B;AAAA,IACA,kBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,0BAAAC;AAAA,IACA,yBAAAC;AAAA,IACA,MAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,IACElB,GAEEmB,IAAYC,EAAQ,MAAMC,GAAaP,CAAS,GAAG,CAACA,CAAS,CAAC,GAE9DQ,IAAeF;AAAA,IACnB,MAAMG,GAAqBT,CAAS;AAAA,IACpC,CAACA,CAAS;AAAA,EACZ,GAEMU,IAAaC,EAAY,MAAM;AACnC,IAAKlC,KACAE,EAAA;AAAA,EAAA,GACJ,CAACF,GAASE,CAAI,CAAC,GAEZiC,IAAaD,EAAY,MAAM;AACnC,IAAKjC,KACAE,EAAA;AAAA,EAAA,GACJ,CAACF,GAASE,CAAI,CAAC,GAEZiC,IAAgBF;AAAA,IACpB,CAACG,MAAyBnB,MAAsBmB;AAAA,IAChD,CAACnB,CAAiB;AAAA,EACpB,GAEMoB,IAAWJ;AAAA,IACf,CAACK,GAAgCF,MAAyB;AACxD,MAAAtB,EAAc,EAAE,MAAM,aAAa,MAAAwB,GAAM,WAAAF,GAAW;AAAA,IACtD;AAAA,IACA,CAAA;AAAA,EACF,GAEMG,IAAaN,EAAY,CAACG,MAAyB;AACvD,IAAAtB,EAAc,EAAE,MAAM,eAAe,WAAAsB,EAAA,CAAW;AAAA,EAClD,GAAG,EAAE,GAECI,IAAWP;AAAA,IACf,CAACK,GAAgCF,MAAyB;AACxD,MAAAtB,EAAc,EAAE,MAAM,aAAa,MAAAwB,GAAM,WAAAF,GAAW;AAAA,IACtD;AAAA,IACA,CAAA;AAAA,EACF,GAEMK,IAAgBR,EAAY,MAAM;AACxB,IAAAnB,EAAA,EAAE,MAAM,kBAAkB,GACxCL,EAAeE,EAAS,OAAO;AAAA,EACjC,GAAG,EAAE,GAEC+B,IAAeT;AAAA,IACnB,CAACxC,MAAyB;AACpB,UAAA;AACI,cAAAkD,IAASxC,EAAiBV,CAAM,GAChCmD,IAAsBC,GAAuBpD,CAAM;AAErD,YAAAmD,MAAwB,YAAY,CAACD,GAAQ;AACjC,UAAAF,EAAA;AACd;AAAA,QAAA;AAEI,cAAAL,IAAYU,GAAgBrD,CAAM,GAClCsD,IAAWC,GAAwBZ,CAAS,GAC5Ca,IAAqBtC,EAAS,QAAQoC,CAAQ;AAChD,YAAA,OAAOE,KAAuB,SAAU;AAE5C,YAAIL,MAAwB,UAAU;AACpC,gBAAMM,IAAiB,CAAC,GAAGD,GAAoBN,CAAM,GAC/CQ,IAAW;AAAA,YACf,GAAGxC,EAAS;AAAA,YACZ,CAACoC,CAAQ,GAAGG;AAAA,UACd;AAIA,cAHAvC,EAAS,UAAUwC,GACnB1C,EAAe0C,CAAQ,GAEnBf,MAAcnB,GAAmB;AAEnC,kBAAMmC,IADeC,EAAcjB,GAAWe,CAAQ,EACpB;AAAA,cAChC,CAACb,MAASA,EAAK,OAAOK,EAAO;AAAA,YAC/B;AAEA,YAAIS,KACFf,EAASe,GAAchB,CAAS;AAAA,UAClC;AAAA,QACF;AAGF,YAAIQ,MAAwB,QAAQ;AAClC,gBAAMM,IAAiBD,EAAmB;AAAA,YAAI,CAACX,MAC7CA,EAAK,OAAOK,EAAO,KAAKA,IAASL;AAAA,UACnC,GACMa,IAAW;AAAA,YACf,GAAGxC,EAAS;AAAA,YACZ,CAACoC,CAAQ,GAAGG;AAAA,UACd;AACA,UAAAvC,EAAS,UAAUwC,GACnB1C,EAAe0C,CAAQ;AAEvB,gBAAMC,IADeC,EAAcjB,GAAWe,CAAQ,EACpB;AAAA,YAChC,CAACb,MAASA,EAAK,OAAOK,EAAO;AAAA,UAC/B;AACA,UAAIS,KACFZ,EAASY,GAAchB,CAAS;AAAA,QAClC;AAAA,eAEKkB,GAAO;AACd,gBAAQ,MAAM,6BAA6B7D,EAAO,IAAI,IAAI6D,CAAK;AAAA,MAAA;AAAA,IAEnE;AAAA,IACA,CAACb,GAAetC,GAAkBqC,GAAUvB,GAAmBoB,CAAQ;AAAA,EACzE,GAEMkB,KAAQ3B;AAAA,IACZ,OAAO;AAAA,MACL,UAAAR;AAAA,MACA,kBAAAC;AAAA,MACA,WAAAC;AAAA,MACA,0BAAAC;AAAA,MACA,yBAAAC;AAAA,MACA,MAAAC;AAAA,MACA,cAAAC;AAAA,MACA,WAAAC;AAAA,MACA,cAAAG;AAAA,MACA,SAAA/B;AAAA,MACA,SAAAC;AAAA,MACA,4BAAAH;AAAA,MACA,0BAAAC;AAAA,MACA,mBAAAkB;AAAA,MACA,mBAAAC;AAAA,MACA,WAAAC;AAAA,MACA,cAAAwB;AAAA,MACA,YAAAV;AAAA,MACA,YAAAE;AAAA,MACA,UAAAG;AAAA,MACA,YAAAE;AAAA,MACA,UAAAC;AAAA,MACA,eAAAC;AAAA,MACA,eAAAN;AAAA,MACA,UAAA/B;AAAA,MACA,SAAAC;AAAA,MACA,wBAAAC;AAAA,MACA,uBAAAC;AAAA,IAAA;AAAA,IAEF;AAAA,MACEa;AAAA,MACApB;AAAA,MACAD;AAAA,MACA4B;AAAA,MACAc;AAAA,MACAF;AAAA,MACAC;AAAA,MACAnB;AAAA,MACAS;AAAA,MACAK;AAAA,MACAO;AAAA,MACAR;AAAA,MACAF;AAAA,MACAnC;AAAA,MACAC;AAAA,MACAO;AAAA,MACAD;AAAA,MACAG;AAAA,MACAD;AAAA,MACAY;AAAA,MACAI;AAAA,MACAC;AAAA,MACAP;AAAA,MACAC;AAAA,MACAO;AAAA,MACAC;AAAA,MACAC;AAAA,MACAW;AAAA,IAAA;AAAA,EAEJ;AACA,SACG,gBAAAmB,GAAAnE,EAAc,UAAd,EAAuB,OAAAkE,IAAe,UAAA3D,EAAS,CAAA;AAEpD;AAEO,SAAS6D,KAAmB;AACjC,SAAOC,GAAWrE,CAAa;AACjC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useColumnPriority.js","sources":["../../../src/rwa/hooks/useColumnPriority.ts"],"sourcesContent":["import { ColumnCountByTableWidth, TableColumn } from \"@/rwa\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\n\ntype Props<TColumn extends TableColumn> = {\n columns: TColumn[] | undefined;\n columnCountByTableWidth: ColumnCountByTableWidth;\n tableContainerRef: React.RefObject<HTMLDivElement>;\n hasItemNumberColumn?: boolean;\n hasMoreDetailsColumn?: boolean;\n};\n\n/**\n * Hook to handle dropping columns for smaller screens.\n *\n * @param columns - Array of columns to display, column must satisfy TableColumn. The columns will be displayed in the order they are provided.\n * @param columnCountByTableWidth - Object that specifies how many columns to show at different screen widths\n * @param tableContainerRef - Ref to the table container element\n * @param hasIndexColumn - When true, adds an \"index\" column with the index of the row as the _first column_. This column is exempt from being dropped.\n * @param hasMoreDetailsColumn - When true, adds a \"more details\" column as the _last column_. This column is exempt from being dropped. This column has no header label by default.\n */\nexport function useColumnPriority<TColumn extends TableColumn>(\n props: Props<TColumn>,\n) {\n const {\n columnCountByTableWidth,\n tableContainerRef,\n columns,\n hasItemNumberColumn = true,\n hasMoreDetailsColumn = true,\n } = props;\n\n const [parentWidth, setParentWidth] = useState(0);\n\n // Define special columns individually for clarity\n const indexColumn = useMemo(\n () =>\n hasItemNumberColumn\n ? {\n key: \"itemNumber\" as const,\n label: \"#\",\n allowSorting: true,\n isSpecialColumn: true,\n }\n : undefined,\n [hasItemNumberColumn],\n );\n\n const moreDetailsColumn = useMemo(\n () =>\n hasMoreDetailsColumn\n ? {\n key: \"moreDetails\" as const,\n label: \"\",\n isSpecialColumn: true,\n }\n : undefined,\n [hasMoreDetailsColumn],\n );\n\n const [columnsToShow, setColumnsToShow] = useState<TColumn[]>([]);\n\n const handleResize = useCallback(() => {\n if (tableContainerRef.current?.parentElement) {\n setParentWidth(tableContainerRef.current.parentElement.offsetWidth);\n }\n }, [tableContainerRef]);\n\n const handleDropColumns = useCallback(() => {\n const columnCount = getColumnCount(parentWidth, columnCountByTableWidth);\n const dynamicColumnsToShow = columns?.slice(0, columnCount) ?? [];\n // Ensure the index column is first and the \"more details\" column is last\n setColumnsToShow(\n [indexColumn, ...dynamicColumnsToShow, moreDetailsColumn].filter(Boolean),\n );\n }, [\n parentWidth,\n columns,\n columnCountByTableWidth,\n indexColumn,\n moreDetailsColumn,\n ]);\n\n useEffect(() => {\n handleResize();\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, [handleResize]);\n\n useEffect(() => {\n handleDropColumns();\n }, [handleDropColumns, parentWidth]);\n\n return useMemo(() => columnsToShow, [columnsToShow]);\n}\n\nexport function getColumnCount(\n parentElementWidth: number,\n columnCountByTableWidth: Record<number, number>,\n) {\n let closestKey = 1520;\n let smallestDifference = Infinity;\n\n Object.keys(columnCountByTableWidth).forEach((columnWidthKey) => {\n const columnWidth = parseInt(columnWidthKey);\n const difference = Math.abs(parentElementWidth - columnWidth);\n\n if (difference < smallestDifference) {\n smallestDifference = difference;\n closestKey = parseInt(columnWidthKey);\n }\n });\n\n const columnCount = columnCountByTableWidth[closestKey];\n\n return columnCount;\n}\n"],"names":["useColumnPriority","props","columnCountByTableWidth","tableContainerRef","columns","hasItemNumberColumn","hasMoreDetailsColumn","parentWidth","setParentWidth","useState","indexColumn","useMemo","moreDetailsColumn","columnsToShow","setColumnsToShow","handleResize","useCallback","_a","handleDropColumns","columnCount","getColumnCount","dynamicColumnsToShow","useEffect","parentElementWidth","closestKey","smallestDifference","columnWidthKey","columnWidth","difference"],"mappings":";AAoBO,SAASA,EACdC,GACA;AACM,QAAA;AAAA,IACJ,yBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,qBAAAC,IAAsB;AAAA,IACtB,sBAAAC,IAAuB;AAAA,EACrB,IAAAL,GAEE,CAACM,GAAaC,CAAc,IAAIC,EAAS,CAAC,GAG1CC,IAAcC;AAAA,IAClB,MACEN,IACI;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,iBAAiB;AAAA,IAEnB,IAAA;AAAA,IACN,CAACA,CAAmB;AAAA,EAAA,GAGhBO,IAAoBD;AAAA,IACxB,MACEL,IACI;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,iBAAiB;AAAA,IAEnB,IAAA;AAAA,IACN,CAACA,CAAoB;AAAA,EAAA,GAGjB,CAACO,GAAeC,CAAgB,IAAIL,EAAoB,CAAE,CAAA,GAE1DM,IAAeC,EAAY,MAAM;;AACjC,KAAAC,IAAAd,EAAkB,YAAlB,QAAAc,EAA2B,iBACdT,EAAAL,EAAkB,QAAQ,cAAc,WAAW;AAAA,EACpE,GACC,CAACA,CAAiB,CAAC,GAEhBe,IAAoBF,EAAY,MAAM;AACpC,UAAAG,IAAcC,EAAeb,GAAaL,CAAuB,GACjEmB,KAAuBjB,KAAA,gBAAAA,EAAS,MAAM,GAAGe,OAAgB;AAE/D,IAAAL;AAAA,MACE,CAACJ,GAAa,GAAGW,GAAsBT,CAAiB,EAAE,OAAO,OAAO;AAAA,IAAA;AAAA,EAC1E,GACC;AAAA,IACDL;AAAA,IACAH;AAAA,IACAF;AAAA,IACAQ;AAAA,IACAE;AAAA,EAAA,CACD;AAED,SAAAU,EAAU,OACKP,KACN,OAAA,iBAAiB,UAAUA,CAAY,GACvC,MAAM,OAAO,oBAAoB,UAAUA,CAAY,IAC7D,CAACA,CAAY,CAAC,GAEjBO,EAAU,MAAM;AACI,IAAAJ;EAAA,GACjB,CAACA,GAAmBX,CAAW,CAAC,GAE5BI,EAAQ,MAAME,GAAe,CAACA,CAAa,CAAC;AACrD;AAEgB,SAAAO,EACdG,GACArB,GACA;AACA,MAAIsB,IAAa,MACbC,IAAqB;AAEzB,gBAAO,KAAKvB,CAAuB,EAAE,QAAQ,CAACwB,MAAmB;AACzD,UAAAC,IAAc,SAASD,CAAc,GACrCE,IAAa,KAAK,IAAIL,IAAqBI,CAAW;AAE5D,IAAIC,IAAaH,MACMA,IAAAG,GACrBJ,IAAa,SAASE,CAAc;AAAA,EACtC,CACD,GAEmBxB,EAAwBsB,CAAU;AAGxD;"}
1
+ {"version":3,"file":"useColumnPriority.js","sources":["../../../src/rwa/hooks/useColumnPriority.ts"],"sourcesContent":["import { ColumnCountByTableWidth, TableColumn } from \"@/rwa\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\n\ntype Props<TColumn extends TableColumn> = {\n columns: TColumn[] | undefined;\n columnCountByTableWidth: ColumnCountByTableWidth;\n tableContainerRef: React.RefObject<HTMLDivElement>;\n hasItemNumberColumn?: boolean;\n hasMoreDetailsColumn?: boolean;\n};\n\n/**\n * Hook to handle dropping columns for smaller screens.\n *\n * @param columns - Array of columns to display, column must satisfy TableColumn. The columns will be displayed in the order they are provided.\n * @param columnCountByTableWidth - Object that specifies how many columns to show at different screen widths\n * @param tableContainerRef - Ref to the table container element\n * @param hasIndexColumn - When true, adds an \"index\" column with the index of the row as the _first column_. This column is exempt from being dropped.\n * @param hasMoreDetailsColumn - When true, adds a \"more details\" column as the _last column_. This column is exempt from being dropped. This column has no header label by default.\n */\nexport function useColumnPriority<TColumn extends TableColumn>(\n props: Props<TColumn>,\n) {\n const {\n columnCountByTableWidth,\n tableContainerRef,\n columns,\n hasItemNumberColumn = true,\n hasMoreDetailsColumn = true,\n } = props;\n\n const [parentWidth, setParentWidth] = useState(0);\n\n // Define special columns individually for clarity\n const indexColumn = useMemo(\n () =>\n hasItemNumberColumn\n ? {\n key: \"itemNumber\" as const,\n label: \"#\",\n allowSorting: true,\n isSpecialColumn: true,\n }\n : undefined,\n [hasItemNumberColumn],\n );\n\n const moreDetailsColumn = useMemo(\n () =>\n hasMoreDetailsColumn\n ? {\n key: \"moreDetails\" as const,\n label: \"\",\n isSpecialColumn: true,\n }\n : undefined,\n [hasMoreDetailsColumn],\n );\n\n const [columnsToShow, setColumnsToShow] = useState<TColumn[]>([]);\n\n const handleResize = useCallback(() => {\n if (tableContainerRef.current?.parentElement) {\n setParentWidth(tableContainerRef.current.parentElement.offsetWidth);\n }\n }, [tableContainerRef]);\n\n const handleDropColumns = useCallback(() => {\n const columnCount = getColumnCount(parentWidth, columnCountByTableWidth);\n const dynamicColumnsToShow = columns?.slice(0, columnCount) ?? [];\n // Ensure the index column is first and the \"more details\" column is last\n setColumnsToShow(\n [indexColumn, ...dynamicColumnsToShow, moreDetailsColumn].filter(Boolean),\n );\n }, [\n parentWidth,\n columns,\n columnCountByTableWidth,\n indexColumn,\n moreDetailsColumn,\n ]);\n\n useEffect(() => {\n handleResize();\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, [handleResize]);\n\n useEffect(() => {\n handleDropColumns();\n }, [handleDropColumns, parentWidth]);\n\n return useMemo(() => columnsToShow, [columnsToShow]);\n}\n\nexport function getColumnCount(\n parentElementWidth: number,\n columnCountByTableWidth: Record<number, number>,\n) {\n let closestKey = 1520;\n let smallestDifference = Infinity;\n\n Object.keys(columnCountByTableWidth).forEach((columnWidthKey) => {\n const columnWidth = parseInt(columnWidthKey);\n const difference = Math.abs(parentElementWidth - columnWidth);\n\n if (difference < smallestDifference) {\n smallestDifference = difference;\n closestKey = parseInt(columnWidthKey);\n }\n });\n\n const columnCount = columnCountByTableWidth[closestKey];\n\n return columnCount;\n}\n"],"names":["useColumnPriority","props","columnCountByTableWidth","tableContainerRef","columns","hasItemNumberColumn","hasMoreDetailsColumn","parentWidth","setParentWidth","useState","indexColumn","useMemo","moreDetailsColumn","columnsToShow","setColumnsToShow","handleResize","useCallback","_a","handleDropColumns","columnCount","getColumnCount","dynamicColumnsToShow","useEffect","parentElementWidth","closestKey","smallestDifference","columnWidthKey","columnWidth","difference"],"mappings":";AAoBO,SAASA,EACdC,GACA;AACM,QAAA;AAAA,IACJ,yBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,qBAAAC,IAAsB;AAAA,IACtB,sBAAAC,IAAuB;AAAA,EAAA,IACrBL,GAEE,CAACM,GAAaC,CAAc,IAAIC,EAAS,CAAC,GAG1CC,IAAcC;AAAA,IAClB,MACEN,IACI;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,iBAAiB;AAAA,IAEnB,IAAA;AAAA,IACN,CAACA,CAAmB;AAAA,EACtB,GAEMO,IAAoBD;AAAA,IACxB,MACEL,IACI;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,iBAAiB;AAAA,IAEnB,IAAA;AAAA,IACN,CAACA,CAAoB;AAAA,EACvB,GAEM,CAACO,GAAeC,CAAgB,IAAIL,EAAoB,CAAA,CAAE,GAE1DM,IAAeC,EAAY,MAAM;;AACjC,KAAAC,IAAAd,EAAkB,YAAlB,QAAAc,EAA2B,iBACdT,EAAAL,EAAkB,QAAQ,cAAc,WAAW;AAAA,EACpE,GACC,CAACA,CAAiB,CAAC,GAEhBe,IAAoBF,EAAY,MAAM;AACpC,UAAAG,IAAcC,EAAeb,GAAaL,CAAuB,GACjEmB,KAAuBjB,KAAA,gBAAAA,EAAS,MAAM,GAAGe,OAAgB,CAAC;AAEhE,IAAAL;AAAA,MACE,CAACJ,GAAa,GAAGW,GAAsBT,CAAiB,EAAE,OAAO,OAAO;AAAA,IAC1E;AAAA,EAAA,GACC;AAAA,IACDL;AAAA,IACAH;AAAA,IACAF;AAAA,IACAQ;AAAA,IACAE;AAAA,EAAA,CACD;AAED,SAAAU,EAAU,OACKP,EAAA,GACN,OAAA,iBAAiB,UAAUA,CAAY,GACvC,MAAM,OAAO,oBAAoB,UAAUA,CAAY,IAC7D,CAACA,CAAY,CAAC,GAEjBO,EAAU,MAAM;AACI,IAAAJ,EAAA;AAAA,EAAA,GACjB,CAACA,GAAmBX,CAAW,CAAC,GAE5BI,EAAQ,MAAME,GAAe,CAACA,CAAa,CAAC;AACrD;AAEgB,SAAAO,EACdG,GACArB,GACA;AACA,MAAIsB,IAAa,MACbC,IAAqB;AAEzB,gBAAO,KAAKvB,CAAuB,EAAE,QAAQ,CAACwB,MAAmB;AACzD,UAAAC,IAAc,SAASD,CAAc,GACrCE,IAAa,KAAK,IAAIL,IAAqBI,CAAW;AAE5D,IAAIC,IAAaH,MACMA,IAAAG,GACrBJ,IAAa,SAASE,CAAc;AAAA,EACtC,CACD,GAEmBxB,EAAwBsB,CAAU;AAGxD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDefaultFormValues.js","sources":["../../../src/rwa/hooks/useDefaultFormValues.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { allGroupTransactionTypes, tableNames } from \"../constants\";\nimport {\n Account,\n AccountFormInputs,\n AssetFormInputs,\n FixedIncomeType,\n FixedIncomeTypeFormInputs,\n GroupTransactionFormInputs,\n ServiceProviderFeeTypeFormInputs,\n SPV,\n SPVFormInputs,\n TableItemType,\n TableName,\n} from \"../types\";\nimport { convertToDateTimeLocalFormat } from \"../utils\";\n\nexport function useDefaultFormValues(args: {\n tableName: TableName;\n tableItem?: TableItemType<TableName> | null;\n fixedIncomeTypes: FixedIncomeType[];\n spvs: SPV[];\n accounts: Account[];\n}) {\n const { tableName, tableItem, fixedIncomeTypes, spvs, accounts } = args;\n\n return useMemo(() => {\n if (!tableItem) {\n switch (tableName) {\n case tableNames.ASSET:\n return {\n fixedIncomeTypeId: fixedIncomeTypes[0]?.id ?? null,\n spvId: spvs[0]?.id ?? null,\n name: null,\n maturity: null,\n ISIN: null,\n CUSIP: null,\n coupon: null,\n } as AssetFormInputs;\n case tableNames.TRANSACTION:\n return {\n type: allGroupTransactionTypes[0],\n entryTime: convertToDateTimeLocalFormat(new Date()),\n cashAmount: null,\n fixedIncomeId: null,\n fixedIncomeAmount: null,\n serviceProviderFeeTypeId: null,\n fees: null,\n txRef: null,\n } as GroupTransactionFormInputs;\n case tableNames.SPV:\n return {\n name: null,\n } as SPVFormInputs;\n case tableNames.SERVICE_PROVIDER_FEE_TYPE:\n return {\n name: null,\n feeType: null,\n accountId: accounts[0]?.id ?? null,\n } as ServiceProviderFeeTypeFormInputs;\n case tableNames.FIXED_INCOME_TYPE:\n return {\n name: null,\n } as FixedIncomeTypeFormInputs;\n case tableNames.ACCOUNT:\n return {\n label: null,\n reference: null,\n } as AccountFormInputs;\n }\n }\n\n switch (tableName) {\n case tableNames.ASSET: {\n const item = tableItem as TableItemType<typeof tableNames.ASSET>;\n return {\n id: item.id,\n fixedIncomeTypeId: item.fixedIncomeTypeId,\n spvId: item.spvId,\n name: item.name,\n maturity: item.maturity,\n ISIN: item.ISIN,\n CUSIP: item.CUSIP,\n coupon: item.coupon,\n } as AssetFormInputs;\n }\n case tableNames.TRANSACTION: {\n const item = tableItem as TableItemType<typeof tableNames.TRANSACTION>;\n return {\n id: item.id,\n type: item.type,\n entryTime: convertToDateTimeLocalFormat(item.entryTime),\n cashAmount: item.cashTransaction.amount ?? null,\n fixedIncomeId: item.fixedIncomeTransaction?.assetId ?? null,\n fixedIncomeAmount: item.fixedIncomeTransaction?.amount ?? null,\n serviceProviderFeeTypeId: item.serviceProviderFeeTypeId ?? null,\n fees: item.fees ?? null,\n txRef: item.txRef ?? null,\n } as GroupTransactionFormInputs;\n }\n case tableNames.SPV: {\n const item = tableItem as TableItemType<typeof tableNames.SPV>;\n return {\n id: item.id,\n name: item.name,\n } as SPVFormInputs;\n }\n case tableNames.SERVICE_PROVIDER_FEE_TYPE: {\n const item = tableItem as TableItemType<\n typeof tableNames.SERVICE_PROVIDER_FEE_TYPE\n >;\n return {\n id: item.id,\n name: item.name,\n feeType: item.feeType,\n accountId: item.accountId,\n } as ServiceProviderFeeTypeFormInputs;\n }\n case tableNames.FIXED_INCOME_TYPE: {\n const item = tableItem as TableItemType<\n typeof tableNames.FIXED_INCOME_TYPE\n >;\n return {\n id: item.id,\n name: item.name,\n } as FixedIncomeTypeFormInputs;\n }\n case tableNames.ACCOUNT: {\n const item = tableItem as TableItemType<typeof tableNames.ACCOUNT>;\n return {\n id: item.id,\n label: item.label,\n reference: item.reference,\n } as AccountFormInputs;\n }\n }\n }, [accounts, fixedIncomeTypes, spvs, tableItem, tableName]);\n}\n"],"names":["useDefaultFormValues","args","tableName","tableItem","fixedIncomeTypes","spvs","accounts","useMemo","tableNames","_a","_b","allGroupTransactionTypes","convertToDateTimeLocalFormat","_c","item","_d","_e"],"mappings":"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"}
1
+ {"version":3,"file":"useDefaultFormValues.js","sources":["../../../src/rwa/hooks/useDefaultFormValues.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { allGroupTransactionTypes, tableNames } from \"../constants\";\nimport {\n Account,\n AccountFormInputs,\n AssetFormInputs,\n FixedIncomeType,\n FixedIncomeTypeFormInputs,\n GroupTransactionFormInputs,\n ServiceProviderFeeTypeFormInputs,\n SPV,\n SPVFormInputs,\n TableItemType,\n TableName,\n} from \"../types\";\nimport { convertToDateTimeLocalFormat } from \"../utils\";\n\nexport function useDefaultFormValues(args: {\n tableName: TableName;\n tableItem?: TableItemType<TableName> | null;\n fixedIncomeTypes: FixedIncomeType[];\n spvs: SPV[];\n accounts: Account[];\n}) {\n const { tableName, tableItem, fixedIncomeTypes, spvs, accounts } = args;\n\n return useMemo(() => {\n if (!tableItem) {\n switch (tableName) {\n case tableNames.ASSET:\n return {\n fixedIncomeTypeId: fixedIncomeTypes[0]?.id ?? null,\n spvId: spvs[0]?.id ?? null,\n name: null,\n maturity: null,\n ISIN: null,\n CUSIP: null,\n coupon: null,\n } as AssetFormInputs;\n case tableNames.TRANSACTION:\n return {\n type: allGroupTransactionTypes[0],\n entryTime: convertToDateTimeLocalFormat(new Date()),\n cashAmount: null,\n fixedIncomeId: null,\n fixedIncomeAmount: null,\n serviceProviderFeeTypeId: null,\n fees: null,\n txRef: null,\n } as GroupTransactionFormInputs;\n case tableNames.SPV:\n return {\n name: null,\n } as SPVFormInputs;\n case tableNames.SERVICE_PROVIDER_FEE_TYPE:\n return {\n name: null,\n feeType: null,\n accountId: accounts[0]?.id ?? null,\n } as ServiceProviderFeeTypeFormInputs;\n case tableNames.FIXED_INCOME_TYPE:\n return {\n name: null,\n } as FixedIncomeTypeFormInputs;\n case tableNames.ACCOUNT:\n return {\n label: null,\n reference: null,\n } as AccountFormInputs;\n }\n }\n\n switch (tableName) {\n case tableNames.ASSET: {\n const item = tableItem as TableItemType<typeof tableNames.ASSET>;\n return {\n id: item.id,\n fixedIncomeTypeId: item.fixedIncomeTypeId,\n spvId: item.spvId,\n name: item.name,\n maturity: item.maturity,\n ISIN: item.ISIN,\n CUSIP: item.CUSIP,\n coupon: item.coupon,\n } as AssetFormInputs;\n }\n case tableNames.TRANSACTION: {\n const item = tableItem as TableItemType<typeof tableNames.TRANSACTION>;\n return {\n id: item.id,\n type: item.type,\n entryTime: convertToDateTimeLocalFormat(item.entryTime),\n cashAmount: item.cashTransaction.amount ?? null,\n fixedIncomeId: item.fixedIncomeTransaction?.assetId ?? null,\n fixedIncomeAmount: item.fixedIncomeTransaction?.amount ?? null,\n serviceProviderFeeTypeId: item.serviceProviderFeeTypeId ?? null,\n fees: item.fees ?? null,\n txRef: item.txRef ?? null,\n } as GroupTransactionFormInputs;\n }\n case tableNames.SPV: {\n const item = tableItem as TableItemType<typeof tableNames.SPV>;\n return {\n id: item.id,\n name: item.name,\n } as SPVFormInputs;\n }\n case tableNames.SERVICE_PROVIDER_FEE_TYPE: {\n const item = tableItem as TableItemType<\n typeof tableNames.SERVICE_PROVIDER_FEE_TYPE\n >;\n return {\n id: item.id,\n name: item.name,\n feeType: item.feeType,\n accountId: item.accountId,\n } as ServiceProviderFeeTypeFormInputs;\n }\n case tableNames.FIXED_INCOME_TYPE: {\n const item = tableItem as TableItemType<\n typeof tableNames.FIXED_INCOME_TYPE\n >;\n return {\n id: item.id,\n name: item.name,\n } as FixedIncomeTypeFormInputs;\n }\n case tableNames.ACCOUNT: {\n const item = tableItem as TableItemType<typeof tableNames.ACCOUNT>;\n return {\n id: item.id,\n label: item.label,\n reference: item.reference,\n } as AccountFormInputs;\n }\n }\n }, [accounts, fixedIncomeTypes, spvs, tableItem, tableName]);\n}\n"],"names":["useDefaultFormValues","args","tableName","tableItem","fixedIncomeTypes","spvs","accounts","useMemo","tableNames","_a","_b","allGroupTransactionTypes","convertToDateTimeLocalFormat","_c","item","_d","_e"],"mappings":"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"}