@ixo/editor 6.32.1 → 6.34.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.
- package/dist/BidConfig-YLGSEIOS.js +154 -0
- package/dist/BidConfig-YLGSEIOS.js.map +1 -0
- package/dist/BidFlowDetail-TJCJBJZZ.js +365 -0
- package/dist/BidFlowDetail-TJCJBJZZ.js.map +1 -0
- package/dist/CalendarEventCreateConfig-J2LU6LJO.js +155 -0
- package/dist/CalendarEventCreateConfig-J2LU6LJO.js.map +1 -0
- package/dist/CalendarEventCreateFlowDetail-ZWHZWDOK.js +174 -0
- package/dist/CalendarEventCreateFlowDetail-ZWHZWDOK.js.map +1 -0
- package/dist/CalendarEventListConfig-GQNNF4ZB.js +116 -0
- package/dist/CalendarEventListConfig-GQNNF4ZB.js.map +1 -0
- package/dist/CalendarEventListFlowDetail-SSRTOXIX.js +58 -0
- package/dist/CalendarEventListFlowDetail-SSRTOXIX.js.map +1 -0
- package/dist/CalendarEventUpdateConfig-KACZA6GH.js +133 -0
- package/dist/CalendarEventUpdateConfig-KACZA6GH.js.map +1 -0
- package/dist/CalendarEventUpdateFlowDetail-CD6NHHOU.js +155 -0
- package/dist/CalendarEventUpdateFlowDetail-CD6NHHOU.js.map +1 -0
- package/dist/ClaimConfig-3HKPGK55.js +200 -0
- package/dist/ClaimConfig-3HKPGK55.js.map +1 -0
- package/dist/ClaimFlowDetail-UVEQMEI5.js +641 -0
- package/dist/ClaimFlowDetail-UVEQMEI5.js.map +1 -0
- package/dist/CollectionLifecycleConfig-LCCGZ3CJ.js +149 -0
- package/dist/CollectionLifecycleConfig-LCCGZ3CJ.js.map +1 -0
- package/dist/CollectionLifecycleFlowDetail-WFCSVIIG.js +647 -0
- package/dist/CollectionLifecycleFlowDetail-WFCSVIIG.js.map +1 -0
- package/dist/CollectionUsersConfig-RI2X3YY2.js +271 -0
- package/dist/CollectionUsersConfig-RI2X3YY2.js.map +1 -0
- package/dist/CollectionUsersFlowDetail-ZLCJBWHG.js +1276 -0
- package/dist/CollectionUsersFlowDetail-ZLCJBWHG.js.map +1 -0
- package/dist/CredentialStoreConfig-G66AQDGZ.js +75 -0
- package/dist/CredentialStoreConfig-G66AQDGZ.js.map +1 -0
- package/dist/CredentialStoreFlowDetail-FL7QAM3S.js +99 -0
- package/dist/CredentialStoreFlowDetail-FL7QAM3S.js.map +1 -0
- package/dist/DesignPodConfig-LJ7H2CZ6.js +8 -0
- package/dist/DesignPodConfig-LJ7H2CZ6.js.map +1 -0
- package/dist/DesignPodFlowDetail-JHJWGNVY.js +309 -0
- package/dist/DesignPodFlowDetail-JHJWGNVY.js.map +1 -0
- package/dist/DomainCardPreviewConfig-Q3X5M4WF.js +37 -0
- package/dist/DomainCardPreviewConfig-Q3X5M4WF.js.map +1 -0
- package/dist/DomainCardPreviewFlowDetail-Y2FE7O5Z.js +131 -0
- package/dist/DomainCardPreviewFlowDetail-Y2FE7O5Z.js.map +1 -0
- package/dist/DomainIndexerLookupConfig-N4VONQUY.js +41 -0
- package/dist/DomainIndexerLookupConfig-N4VONQUY.js.map +1 -0
- package/dist/DomainIndexerLookupFlowDetail-GJ7WWK7I.js +70 -0
- package/dist/DomainIndexerLookupFlowDetail-GJ7WWK7I.js.map +1 -0
- package/dist/DomainSignConfig-XFIXROVK.js +47 -0
- package/dist/DomainSignConfig-XFIXROVK.js.map +1 -0
- package/dist/DomainSignFlowDetail-BXZ6JBPR.js +206 -0
- package/dist/DomainSignFlowDetail-BXZ6JBPR.js.map +1 -0
- package/dist/DomainSingleSelectionConfig-ZNKIXB4P.js +101 -0
- package/dist/DomainSingleSelectionConfig-ZNKIXB4P.js.map +1 -0
- package/dist/DomainSingleSelectionFlowDetail-HWTQXSLA.js +147 -0
- package/dist/DomainSingleSelectionFlowDetail-HWTQXSLA.js.map +1 -0
- package/dist/EmailSendConfig-YEGZ5Q77.js +215 -0
- package/dist/EmailSendConfig-YEGZ5Q77.js.map +1 -0
- package/dist/EntityCreateOracleConfig-UZ6ZIMP5.js +150 -0
- package/dist/EntityCreateOracleConfig-UZ6ZIMP5.js.map +1 -0
- package/dist/EntityCreateOracleFlowDetail-H2X7CPYU.js +120 -0
- package/dist/EntityCreateOracleFlowDetail-H2X7CPYU.js.map +1 -0
- package/dist/EntitySingleSelectionConfig-DL57KNKM.js +30 -0
- package/dist/EntitySingleSelectionConfig-DL57KNKM.js.map +1 -0
- package/dist/EntitySingleSelectionFlowDetail-GFQGX3GA.js +118 -0
- package/dist/EntitySingleSelectionFlowDetail-GFQGX3GA.js.map +1 -0
- package/dist/EntityTransferConfig-JVZ3H35B.js +62 -0
- package/dist/EntityTransferConfig-JVZ3H35B.js.map +1 -0
- package/dist/EntityTransferFlowDetail-XEXM34XB.js +132 -0
- package/dist/EntityTransferFlowDetail-XEXM34XB.js.map +1 -0
- package/dist/EvalEngineConfig-CHC4IRN3.js +464 -0
- package/dist/EvalEngineConfig-CHC4IRN3.js.map +1 -0
- package/dist/EvalEngineFlowDetail-PUFRNO4U.js +4291 -0
- package/dist/EvalEngineFlowDetail-PUFRNO4U.js.map +1 -0
- package/dist/EvaluateBidConfig-OE4CM43G.js +151 -0
- package/dist/EvaluateBidConfig-OE4CM43G.js.map +1 -0
- package/dist/EvaluateBidFlowDetail-2S2N4YTW.js +564 -0
- package/dist/EvaluateBidFlowDetail-2S2N4YTW.js.map +1 -0
- package/dist/EvaluateClaimConfig-3D4F5LHU.js +297 -0
- package/dist/EvaluateClaimConfig-3D4F5LHU.js.map +1 -0
- package/dist/EvaluateClaimFlowDetail-QYR7PJRD.js +2237 -0
- package/dist/EvaluateClaimFlowDetail-QYR7PJRD.js.map +1 -0
- package/dist/FormSubmitConfig-UFZYMLUN.js +59 -0
- package/dist/FormSubmitConfig-UFZYMLUN.js.map +1 -0
- package/dist/FormSubmitFlowDetail-IAHDJS6P.js +169 -0
- package/dist/FormSubmitFlowDetail-IAHDJS6P.js.map +1 -0
- package/dist/GovernanceAuthzExecFlowDetail-SQBGU5BX.js +166 -0
- package/dist/GovernanceAuthzExecFlowDetail-SQBGU5BX.js.map +1 -0
- package/dist/GovernanceAuthzGrantFlowDetail-DZPNLANT.js +88 -0
- package/dist/GovernanceAuthzGrantFlowDetail-DZPNLANT.js.map +1 -0
- package/dist/GovernanceAuthzRevokeFlowDetail-3JZ4IUJG.js +88 -0
- package/dist/GovernanceAuthzRevokeFlowDetail-3JZ4IUJG.js.map +1 -0
- package/dist/GovernanceChainVoteFlowDetail-475UDNG6.js +83 -0
- package/dist/GovernanceChainVoteFlowDetail-475UDNG6.js.map +1 -0
- package/dist/GovernanceConfigConfig-V3WM4WBP.js +30 -0
- package/dist/GovernanceConfigConfig-V3WM4WBP.js.map +1 -0
- package/dist/GovernanceConfigFlowDetail-SQ5PPDRX.js +267 -0
- package/dist/GovernanceConfigFlowDetail-SQ5PPDRX.js.map +1 -0
- package/dist/GovernanceContractExecuteFlowDetail-H2ZV6W2E.js +113 -0
- package/dist/GovernanceContractExecuteFlowDetail-H2ZV6W2E.js.map +1 -0
- package/dist/GovernanceContractInstantiateFlowDetail-YJJMGM54.js +144 -0
- package/dist/GovernanceContractInstantiateFlowDetail-YJJMGM54.js.map +1 -0
- package/dist/GovernanceContractManageCw20FlowDetail-OCBMW3YJ.js +72 -0
- package/dist/GovernanceContractManageCw20FlowDetail-OCBMW3YJ.js.map +1 -0
- package/dist/GovernanceContractMigrateFlowDetail-JDNIKTT3.js +104 -0
- package/dist/GovernanceContractMigrateFlowDetail-JDNIKTT3.js.map +1 -0
- package/dist/GovernanceContractUpdateAdminFlowDetail-SZBOAOCC.js +68 -0
- package/dist/GovernanceContractUpdateAdminFlowDetail-SZBOAOCC.js.map +1 -0
- package/dist/GovernanceCustomMessageFlowDetail-CXD4ZATO.js +78 -0
- package/dist/GovernanceCustomMessageFlowDetail-CXD4ZATO.js.map +1 -0
- package/dist/GovernanceDaoAcceptToMarketplaceFlowDetail-Q6ZBNY7Z.js +98 -0
- package/dist/GovernanceDaoAcceptToMarketplaceFlowDetail-Q6ZBNY7Z.js.map +1 -0
- package/dist/GovernanceDaoAdminExecFlowDetail-JAEAY2US.js +94 -0
- package/dist/GovernanceDaoAdminExecFlowDetail-JAEAY2US.js.map +1 -0
- package/dist/GovernanceDaoCreateEntityFlowDetail-7RVNTVAB.js +96 -0
- package/dist/GovernanceDaoCreateEntityFlowDetail-7RVNTVAB.js.map +1 -0
- package/dist/GovernanceDaoJoinFlowDetail-XYCTCNHO.js +68 -0
- package/dist/GovernanceDaoJoinFlowDetail-XYCTCNHO.js.map +1 -0
- package/dist/GovernanceDaoManageStorageFlowDetail-LMLYLYYC.js +93 -0
- package/dist/GovernanceDaoManageStorageFlowDetail-LMLYLYYC.js.map +1 -0
- package/dist/GovernanceDaoManageSubDaosFlowDetail-YUFQ67JN.js +84 -0
- package/dist/GovernanceDaoManageSubDaosFlowDetail-YUFQ67JN.js.map +1 -0
- package/dist/GovernanceDaoUpdateInfoFlowDetail-G5FIBY4L.js +104 -0
- package/dist/GovernanceDaoUpdateInfoFlowDetail-G5FIBY4L.js.map +1 -0
- package/dist/GovernanceMemberProposalConfig-IGPXEFDB.js +42 -0
- package/dist/GovernanceMemberProposalConfig-IGPXEFDB.js.map +1 -0
- package/dist/GovernanceMemberProposalFlowDetail-T3VURONF.js +240 -0
- package/dist/GovernanceMemberProposalFlowDetail-T3VURONF.js.map +1 -0
- package/dist/GovernanceNftBurnFlowDetail-AG4I2O7H.js +69 -0
- package/dist/GovernanceNftBurnFlowDetail-AG4I2O7H.js.map +1 -0
- package/dist/GovernanceNftManageCollectionsFlowDetail-UAAGO3Q6.js +71 -0
- package/dist/GovernanceNftManageCollectionsFlowDetail-UAAGO3Q6.js.map +1 -0
- package/dist/GovernanceNftTransferFlowDetail-KXM7DTOV.js +130 -0
- package/dist/GovernanceNftTransferFlowDetail-KXM7DTOV.js.map +1 -0
- package/dist/GovernanceSettingsProposalConfig-4SLJTBLW.js +42 -0
- package/dist/GovernanceSettingsProposalConfig-4SLJTBLW.js.map +1 -0
- package/dist/GovernanceSettingsProposalFlowDetail-VFZPSCLR.js +165 -0
- package/dist/GovernanceSettingsProposalFlowDetail-VFZPSCLR.js.map +1 -0
- package/dist/GovernanceStakingStakeFlowDetail-ULLJ7FLM.js +123 -0
- package/dist/GovernanceStakingStakeFlowDetail-ULLJ7FLM.js.map +1 -0
- package/dist/GovernanceStakingStakeToGroupFlowDetail-CSPKJA3H.js +84 -0
- package/dist/GovernanceStakingStakeToGroupFlowDetail-CSPKJA3H.js.map +1 -0
- package/dist/GovernanceSubmissionConfigProposalFlowDetail-MZCPSZF2.js +111 -0
- package/dist/GovernanceSubmissionConfigProposalFlowDetail-MZCPSZF2.js.map +1 -0
- package/dist/GovernanceTransactionMintFlowDetail-Y2WRAODH.js +66 -0
- package/dist/GovernanceTransactionMintFlowDetail-Y2WRAODH.js.map +1 -0
- package/dist/GovernanceTransactionPerformTokenSwapFlowDetail-GEK6PMMI.js +133 -0
- package/dist/GovernanceTransactionPerformTokenSwapFlowDetail-GEK6PMMI.js.map +1 -0
- package/dist/GovernanceTransactionSendFundsConfig-VBKMLSF3.js +42 -0
- package/dist/GovernanceTransactionSendFundsConfig-VBKMLSF3.js.map +1 -0
- package/dist/GovernanceTransactionSendFundsFlowDetail-5TZB64VL.js +182 -0
- package/dist/GovernanceTransactionSendFundsFlowDetail-5TZB64VL.js.map +1 -0
- package/dist/GovernanceTransactionSendGroupTokenFlowDetail-EGOWVZM2.js +155 -0
- package/dist/GovernanceTransactionSendGroupTokenFlowDetail-EGOWVZM2.js.map +1 -0
- package/dist/GovernanceTransactionWithdrawTokenSwapFlowDetail-6XWVO5O6.js +56 -0
- package/dist/GovernanceTransactionWithdrawTokenSwapFlowDetail-6XWVO5O6.js.map +1 -0
- package/dist/GovernanceValidatorActionsFlowDetail-ZMLPAFUB.js +117 -0
- package/dist/GovernanceValidatorActionsFlowDetail-ZMLPAFUB.js.map +1 -0
- package/dist/HarvestConfig-AIGOGBFR.js +56 -0
- package/dist/HarvestConfig-AIGOGBFR.js.map +1 -0
- package/dist/HarvestFlowDetail-X3RUH3X3.js +131 -0
- package/dist/HarvestFlowDetail-X3RUH3X3.js.map +1 -0
- package/dist/HttpRequestConfig-OQEJIIJY.js +194 -0
- package/dist/HttpRequestConfig-OQEJIIJY.js.map +1 -0
- package/dist/HttpRequestFlowDetail-JVLV533Z.js +116 -0
- package/dist/HttpRequestFlowDetail-JVLV533Z.js.map +1 -0
- package/dist/IdentityCreateConfig-ZBUOJ6AL.js +94 -0
- package/dist/IdentityCreateConfig-ZBUOJ6AL.js.map +1 -0
- package/dist/IdentityCreateFlowDetail-WGKO43IH.js +83 -0
- package/dist/IdentityCreateFlowDetail-WGKO43IH.js.map +1 -0
- package/dist/IidCreateConfig-RRV2DYXI.js +75 -0
- package/dist/IidCreateConfig-RRV2DYXI.js.map +1 -0
- package/dist/IidCreateFlowDetail-6M32S6XS.js +57 -0
- package/dist/IidCreateFlowDetail-6M32S6XS.js.map +1 -0
- package/dist/KycVerifyConfig-VCG65K5K.js +65 -0
- package/dist/KycVerifyConfig-VCG65K5K.js.map +1 -0
- package/dist/KycVerifyFlowDetail-EWOMXSD3.js +421 -0
- package/dist/KycVerifyFlowDetail-EWOMXSD3.js.map +1 -0
- package/dist/ListDomainFlowsConfig-3JZEPTOJ.js +37 -0
- package/dist/ListDomainFlowsConfig-3JZEPTOJ.js.map +1 -0
- package/dist/ListDomainFlowsFlowDetail-XX5AXDZZ.js +257 -0
- package/dist/ListDomainFlowsFlowDetail-XX5AXDZZ.js.map +1 -0
- package/dist/LoadBatchesConfig-IMODIWRT.js +38 -0
- package/dist/LoadBatchesConfig-IMODIWRT.js.map +1 -0
- package/dist/LoadBatchesFlowDetail-GB24T76O.js +101 -0
- package/dist/LoadBatchesFlowDetail-GB24T76O.js.map +1 -0
- package/dist/MatrixDmConfig-NBII27CS.js +120 -0
- package/dist/MatrixDmConfig-NBII27CS.js.map +1 -0
- package/dist/MatrixRegisterConfig-N2U4FBYF.js +62 -0
- package/dist/MatrixRegisterConfig-N2U4FBYF.js.map +1 -0
- package/dist/MatrixRegisterFlowDetail-D5YNL5QX.js +86 -0
- package/dist/MatrixRegisterFlowDetail-D5YNL5QX.js.map +1 -0
- package/dist/MemberMultiSelectConfig-E7WUB2WD.js +30 -0
- package/dist/MemberMultiSelectConfig-E7WUB2WD.js.map +1 -0
- package/dist/MemberMultiSelectFlowDetail-6C4ZMSDR.js +392 -0
- package/dist/MemberMultiSelectFlowDetail-6C4ZMSDR.js.map +1 -0
- package/dist/OracleConfig-R7TDTTKN.js +56 -0
- package/dist/OracleConfig-R7TDTTKN.js.map +1 -0
- package/dist/OracleConfigureOracleConfig-QFF74X3N.js +198 -0
- package/dist/OracleConfigureOracleConfig-QFF74X3N.js.map +1 -0
- package/dist/OracleConfigureOracleFlowDetail-73BHAN76.js +255 -0
- package/dist/OracleConfigureOracleFlowDetail-73BHAN76.js.map +1 -0
- package/dist/OracleContractConfig-PHY5L7W2.js +38 -0
- package/dist/OracleContractConfig-PHY5L7W2.js.map +1 -0
- package/dist/OracleContractFlowDetail-M3PM4AU4.js +78 -0
- package/dist/OracleContractFlowDetail-M3PM4AU4.js.map +1 -0
- package/dist/OracleDeployConfig-QBG76ATZ.js +10 -0
- package/dist/OracleDeployConfig-QBG76ATZ.js.map +1 -0
- package/dist/OracleDeployFlowDetail-WKTMD2AD.js +231 -0
- package/dist/OracleDeployFlowDetail-WKTMD2AD.js.map +1 -0
- package/dist/OracleDeploySetupConfig-75XPGFJQ.js +10 -0
- package/dist/OracleDeploySetupConfig-75XPGFJQ.js.map +1 -0
- package/dist/OracleDeploySetupFlowDetail-R3BQ7EAU.js +165 -0
- package/dist/OracleDeploySetupFlowDetail-R3BQ7EAU.js.map +1 -0
- package/dist/OracleDeployStartConfig-NA6GZ4VQ.js +10 -0
- package/dist/OracleDeployStartConfig-NA6GZ4VQ.js.map +1 -0
- package/dist/OracleDeployStartFlowDetail-EL3CMDMG.js +89 -0
- package/dist/OracleDeployStartFlowDetail-EL3CMDMG.js.map +1 -0
- package/dist/OracleFlowDetail-5JCJK3GH.js +76 -0
- package/dist/OracleFlowDetail-5JCJK3GH.js.map +1 -0
- package/dist/OraclePromptConfig-YBRESISH.js +39 -0
- package/dist/OraclePromptConfig-YBRESISH.js.map +1 -0
- package/dist/OraclePromptFlowDetail-O3XNK7HY.js +112 -0
- package/dist/OraclePromptFlowDetail-O3XNK7HY.js.map +1 -0
- package/dist/OracleStoreConfigConfig-TUZWTJMA.js +134 -0
- package/dist/OracleStoreConfigConfig-TUZWTJMA.js.map +1 -0
- package/dist/OracleStoreConfigFlowDetail-Q6AUUSUL.js +99 -0
- package/dist/OracleStoreConfigFlowDetail-Q6AUUSUL.js.map +1 -0
- package/dist/OracleStoreSecretsAndConfigConfig-SZPYEK7U.js +198 -0
- package/dist/OracleStoreSecretsAndConfigConfig-SZPYEK7U.js.map +1 -0
- package/dist/OracleStoreSecretsAndConfigFlowDetail-BFV2EHLT.js +220 -0
- package/dist/OracleStoreSecretsAndConfigFlowDetail-BFV2EHLT.js.map +1 -0
- package/dist/OracleStoreSecretsConfig-PQMF7LFT.js +191 -0
- package/dist/OracleStoreSecretsConfig-PQMF7LFT.js.map +1 -0
- package/dist/OracleStoreSecretsFlowDetail-DNNOPHVA.js +197 -0
- package/dist/OracleStoreSecretsFlowDetail-DNNOPHVA.js.map +1 -0
- package/dist/ProposalCreateConfig-U5IHZNT7.js +161 -0
- package/dist/ProposalCreateConfig-U5IHZNT7.js.map +1 -0
- package/dist/ProposalCreateFlowDetail-4VZZPAWH.js +235 -0
- package/dist/ProposalCreateFlowDetail-4VZZPAWH.js.map +1 -0
- package/dist/ProposalVoteConfig-MH4MU7SL.js +150 -0
- package/dist/ProposalVoteConfig-MH4MU7SL.js.map +1 -0
- package/dist/ProposalVoteFlowDetail-IJJ3OHAB.js +280 -0
- package/dist/ProposalVoteFlowDetail-IJJ3OHAB.js.map +1 -0
- package/dist/ProtocolSelectConfig-S5U3P6K7.js +48 -0
- package/dist/ProtocolSelectConfig-S5U3P6K7.js.map +1 -0
- package/dist/ProtocolSelectFlowDetail-XBSJIEIH.js +116 -0
- package/dist/ProtocolSelectFlowDetail-XBSJIEIH.js.map +1 -0
- package/dist/RetireConfig-MV37WWZ6.js +59 -0
- package/dist/RetireConfig-MV37WWZ6.js.map +1 -0
- package/dist/RetireFlowDetail-VZ5O4SXI.js +147 -0
- package/dist/RetireFlowDetail-VZ5O4SXI.js.map +1 -0
- package/dist/SandboxProvisionConfig-ZGG4IRHM.js +46 -0
- package/dist/SandboxProvisionConfig-ZGG4IRHM.js.map +1 -0
- package/dist/SandboxProvisionFlowDetail-RUY64INV.js +79 -0
- package/dist/SandboxProvisionFlowDetail-RUY64INV.js.map +1 -0
- package/dist/WalletFundConfig-CMM3EP3B.js +117 -0
- package/dist/WalletFundConfig-CMM3EP3B.js.map +1 -0
- package/dist/WalletFundFlowDetail-TXWCZA4K.js +279 -0
- package/dist/WalletFundFlowDetail-TXWCZA4K.js.map +1 -0
- package/dist/WalletGenerateAndFundConfig-364RSEND.js +10 -0
- package/dist/WalletGenerateAndFundConfig-364RSEND.js.map +1 -0
- package/dist/WalletGenerateAndFundFlowDetail-C2LZW3NO.js +54 -0
- package/dist/WalletGenerateAndFundFlowDetail-C2LZW3NO.js.map +1 -0
- package/dist/WalletGenerateConfig-YYLCS65G.js +10 -0
- package/dist/WalletGenerateConfig-YYLCS65G.js.map +1 -0
- package/dist/WalletGenerateFlowDetail-CQCNDGJA.js +53 -0
- package/dist/WalletGenerateFlowDetail-CQCNDGJA.js.map +1 -0
- package/dist/XeroContactCreateConfig-OWG5PA3B.js +102 -0
- package/dist/XeroContactCreateConfig-OWG5PA3B.js.map +1 -0
- package/dist/XeroContactCreateFlowDetail-6MAINCF6.js +127 -0
- package/dist/XeroContactCreateFlowDetail-6MAINCF6.js.map +1 -0
- package/dist/XeroInvoiceCreateConfig-O74RUSZM.js +403 -0
- package/dist/XeroInvoiceCreateConfig-O74RUSZM.js.map +1 -0
- package/dist/XeroInvoiceCreateFlowDetail-UL7KS6CZ.js +631 -0
- package/dist/XeroInvoiceCreateFlowDetail-UL7KS6CZ.js.map +1 -0
- package/dist/XeroInvoiceListConfig-UR3GONBJ.js +113 -0
- package/dist/XeroInvoiceListConfig-UR3GONBJ.js.map +1 -0
- package/dist/XeroInvoiceListFlowDetail-LYHODWH6.js +58 -0
- package/dist/XeroInvoiceListFlowDetail-LYHODWH6.js.map +1 -0
- package/dist/XeroPaymentCreateConfig-RPMAIK6E.js +116 -0
- package/dist/XeroPaymentCreateConfig-RPMAIK6E.js.map +1 -0
- package/dist/XeroPaymentCreateFlowDetail-CF35MVIM.js +573 -0
- package/dist/XeroPaymentCreateFlowDetail-CF35MVIM.js.map +1 -0
- package/dist/action-manifest.json +2091 -393
- package/dist/chunk-2GAYKKTL.js +9 -0
- package/dist/chunk-2GAYKKTL.js.map +1 -0
- package/dist/chunk-2WPEATI7.js +315 -0
- package/dist/chunk-2WPEATI7.js.map +1 -0
- package/dist/chunk-3O42FYT3.js +3333 -0
- package/dist/chunk-3O42FYT3.js.map +1 -0
- package/dist/chunk-3TUYY4HK.js +20 -0
- package/dist/chunk-3TUYY4HK.js.map +1 -0
- package/dist/chunk-3XSLBJYI.js +554 -0
- package/dist/chunk-3XSLBJYI.js.map +1 -0
- package/dist/chunk-4DGCCXD6.js +710 -0
- package/dist/chunk-4DGCCXD6.js.map +1 -0
- package/dist/chunk-4NAFQF6V.js +11 -0
- package/dist/chunk-4NAFQF6V.js.map +1 -0
- package/dist/chunk-4PONO4US.js +799 -0
- package/dist/chunk-4PONO4US.js.map +1 -0
- package/dist/chunk-4TMOIK5M.js +21 -0
- package/dist/chunk-4TMOIK5M.js.map +1 -0
- package/dist/chunk-5IH3VC5I.js +102 -0
- package/dist/chunk-5IH3VC5I.js.map +1 -0
- package/dist/chunk-5NTKDOP6.js +89 -0
- package/dist/chunk-5NTKDOP6.js.map +1 -0
- package/dist/chunk-5O2SFRGU.js +18 -0
- package/dist/chunk-5O2SFRGU.js.map +1 -0
- package/dist/chunk-632JLECF.js +55 -0
- package/dist/chunk-632JLECF.js.map +1 -0
- package/dist/chunk-676HDB7K.js +95 -0
- package/dist/chunk-676HDB7K.js.map +1 -0
- package/dist/chunk-6ESTNTSH.js +223 -0
- package/dist/chunk-6ESTNTSH.js.map +1 -0
- package/dist/chunk-6GKJR52N.js +15 -0
- package/dist/chunk-6GKJR52N.js.map +1 -0
- package/dist/chunk-6L4ZIKYU.js +23 -0
- package/dist/chunk-6L4ZIKYU.js.map +1 -0
- package/dist/chunk-76YX5R4L.js +11 -0
- package/dist/chunk-76YX5R4L.js.map +1 -0
- package/dist/chunk-7J3GFMN3.js +32 -0
- package/dist/chunk-7J3GFMN3.js.map +1 -0
- package/dist/chunk-7LSARC2G.js +102 -0
- package/dist/chunk-7LSARC2G.js.map +1 -0
- package/dist/chunk-7W7UUUIE.js +609 -0
- package/dist/chunk-7W7UUUIE.js.map +1 -0
- package/dist/chunk-7ZLW7H37.js +21 -0
- package/dist/chunk-7ZLW7H37.js.map +1 -0
- package/dist/chunk-AAZHI22G.js +18 -0
- package/dist/chunk-AAZHI22G.js.map +1 -0
- package/dist/chunk-ACNE455I.js +76 -0
- package/dist/chunk-ACNE455I.js.map +1 -0
- package/dist/chunk-BKLSSLPZ.js +27 -0
- package/dist/chunk-BKLSSLPZ.js.map +1 -0
- package/dist/chunk-BZ7UPUTY.js +417 -0
- package/dist/chunk-BZ7UPUTY.js.map +1 -0
- package/dist/chunk-CGFAICUE.js +28 -0
- package/dist/chunk-CGFAICUE.js.map +1 -0
- package/dist/chunk-CMCEWQ3C.js +19 -0
- package/dist/chunk-CMCEWQ3C.js.map +1 -0
- package/dist/chunk-CP4UV436.js +41 -0
- package/dist/chunk-CP4UV436.js.map +1 -0
- package/dist/chunk-D2CQPNQG.js +27508 -0
- package/dist/chunk-D2CQPNQG.js.map +1 -0
- package/dist/chunk-DIQRZP7Z.js +51 -0
- package/dist/chunk-DIQRZP7Z.js.map +1 -0
- package/dist/chunk-EBFFDDAS.js +13 -0
- package/dist/chunk-EBFFDDAS.js.map +1 -0
- package/dist/chunk-EGVS23DR.js +85 -0
- package/dist/chunk-EGVS23DR.js.map +1 -0
- package/dist/chunk-EKBQ7K4N.js +15 -0
- package/dist/chunk-EKBQ7K4N.js.map +1 -0
- package/dist/chunk-EKQCZRAN.js +24 -0
- package/dist/chunk-EKQCZRAN.js.map +1 -0
- package/dist/chunk-EYKZIZ5J.js +48 -0
- package/dist/chunk-EYKZIZ5J.js.map +1 -0
- package/dist/{chunk-NEOPTPDF.js → chunk-F4PTFXZH.js} +11554 -22046
- package/dist/chunk-F4PTFXZH.js.map +1 -0
- package/dist/chunk-FFYZXA75.js +58 -0
- package/dist/chunk-FFYZXA75.js.map +1 -0
- package/dist/chunk-GFGDHPZ2.js +22 -0
- package/dist/chunk-GFGDHPZ2.js.map +1 -0
- package/dist/chunk-GR3CDFID.js +18 -0
- package/dist/chunk-GR3CDFID.js.map +1 -0
- package/dist/chunk-GR4SIU32.js +104 -0
- package/dist/chunk-GR4SIU32.js.map +1 -0
- package/dist/chunk-H5E46IIS.js +18 -0
- package/dist/chunk-H5E46IIS.js.map +1 -0
- package/dist/chunk-HFHVAMZL.js +22 -0
- package/dist/chunk-HFHVAMZL.js.map +1 -0
- package/dist/chunk-HRRI4BLF.js +4456 -0
- package/dist/chunk-HRRI4BLF.js.map +1 -0
- package/dist/chunk-HT6L7A5M.js +12 -0
- package/dist/chunk-HT6L7A5M.js.map +1 -0
- package/dist/chunk-I2FPFISM.js +301 -0
- package/dist/chunk-I2FPFISM.js.map +1 -0
- package/dist/chunk-IADAQJDH.js +28 -0
- package/dist/chunk-IADAQJDH.js.map +1 -0
- package/dist/chunk-IBOBCMQQ.js +99 -0
- package/dist/chunk-IBOBCMQQ.js.map +1 -0
- package/dist/chunk-IFWKRCFF.js +56 -0
- package/dist/chunk-IFWKRCFF.js.map +1 -0
- package/dist/chunk-IH4T7V4C.js +40 -0
- package/dist/chunk-IH4T7V4C.js.map +1 -0
- package/dist/chunk-IIIZZ4E4.js +1679 -0
- package/dist/chunk-IIIZZ4E4.js.map +1 -0
- package/dist/chunk-ILSFU3WD.js +83 -0
- package/dist/chunk-ILSFU3WD.js.map +1 -0
- package/dist/chunk-IX3VBV3L.js +43 -0
- package/dist/chunk-IX3VBV3L.js.map +1 -0
- package/dist/chunk-JBBFSORW.js +846 -0
- package/dist/chunk-JBBFSORW.js.map +1 -0
- package/dist/chunk-JIDTNKKL.js +1183 -0
- package/dist/chunk-JIDTNKKL.js.map +1 -0
- package/dist/chunk-JSPE6NGZ.js +22 -0
- package/dist/chunk-JSPE6NGZ.js.map +1 -0
- package/dist/chunk-JVROGQ7Q.js +150 -0
- package/dist/chunk-JVROGQ7Q.js.map +1 -0
- package/dist/chunk-K4WUMWNJ.js +32 -0
- package/dist/chunk-K4WUMWNJ.js.map +1 -0
- package/dist/chunk-K74XQ4Q5.js +11 -0
- package/dist/chunk-K74XQ4Q5.js.map +1 -0
- package/dist/chunk-KLLMJ4U3.js +22 -0
- package/dist/chunk-KLLMJ4U3.js.map +1 -0
- package/dist/chunk-LTKVCJ2E.js +27 -0
- package/dist/chunk-LTKVCJ2E.js.map +1 -0
- package/dist/chunk-M36DJTFZ.js +34 -0
- package/dist/chunk-M36DJTFZ.js.map +1 -0
- package/dist/chunk-MHM52LCJ.js +154 -0
- package/dist/chunk-MHM52LCJ.js.map +1 -0
- package/dist/chunk-MQCDMHRZ.js +59 -0
- package/dist/chunk-MQCDMHRZ.js.map +1 -0
- package/dist/chunk-N3ORMGAI.js +348 -0
- package/dist/chunk-N3ORMGAI.js.map +1 -0
- package/dist/chunk-NCSGIRRQ.js +28 -0
- package/dist/chunk-NCSGIRRQ.js.map +1 -0
- package/dist/chunk-NIXT2SBH.js +1423 -0
- package/dist/chunk-NIXT2SBH.js.map +1 -0
- package/dist/chunk-NJAII6CO.js +148 -0
- package/dist/chunk-NJAII6CO.js.map +1 -0
- package/dist/chunk-NKE4TL43.js +92 -0
- package/dist/chunk-NKE4TL43.js.map +1 -0
- package/dist/chunk-NZ7AXA7B.js +1 -0
- package/dist/chunk-NZ7AXA7B.js.map +1 -0
- package/dist/chunk-OCAYEGI2.js +26 -0
- package/dist/chunk-OCAYEGI2.js.map +1 -0
- package/dist/chunk-OMLI45ER.js +90 -0
- package/dist/chunk-OMLI45ER.js.map +1 -0
- package/dist/chunk-P7OBLJAG.js +88 -0
- package/dist/chunk-P7OBLJAG.js.map +1 -0
- package/dist/chunk-PAY3CBWL.js +2321 -0
- package/dist/chunk-PAY3CBWL.js.map +1 -0
- package/dist/chunk-PFF6VY35.js +257 -0
- package/dist/chunk-PFF6VY35.js.map +1 -0
- package/dist/chunk-PYNDJDWZ.js +1758 -0
- package/dist/chunk-PYNDJDWZ.js.map +1 -0
- package/dist/chunk-QDQ6UMMN.js +53 -0
- package/dist/chunk-QDQ6UMMN.js.map +1 -0
- package/dist/chunk-QGT3G2XG.js +24 -0
- package/dist/chunk-QGT3G2XG.js.map +1 -0
- package/dist/chunk-QZYCJ2GZ.js +55 -0
- package/dist/chunk-QZYCJ2GZ.js.map +1 -0
- package/dist/chunk-REZ7RFSA.js +124 -0
- package/dist/chunk-REZ7RFSA.js.map +1 -0
- package/dist/chunk-RRYBAE6E.js +2449 -0
- package/dist/chunk-RRYBAE6E.js.map +1 -0
- package/dist/chunk-RWUZOB62.js +34 -0
- package/dist/chunk-RWUZOB62.js.map +1 -0
- package/dist/chunk-SB5UCPZH.js +116 -0
- package/dist/chunk-SB5UCPZH.js.map +1 -0
- package/dist/chunk-SEJJ7CRI.js +99 -0
- package/dist/chunk-SEJJ7CRI.js.map +1 -0
- package/dist/chunk-SHBFGRPV.js +45 -0
- package/dist/chunk-SHBFGRPV.js.map +1 -0
- package/dist/chunk-SOFJ4GC5.js +45 -0
- package/dist/chunk-SOFJ4GC5.js.map +1 -0
- package/dist/chunk-STH2HPZK.js +44 -0
- package/dist/chunk-STH2HPZK.js.map +1 -0
- package/dist/chunk-TK3JNKME.js +28 -0
- package/dist/chunk-TK3JNKME.js.map +1 -0
- package/dist/chunk-TMONHFE3.js +46 -0
- package/dist/chunk-TMONHFE3.js.map +1 -0
- package/dist/chunk-TR4KO3AG.js +44 -0
- package/dist/chunk-TR4KO3AG.js.map +1 -0
- package/dist/chunk-TS2LNBF2.js +68 -0
- package/dist/chunk-TS2LNBF2.js.map +1 -0
- package/dist/chunk-UZUMBFPP.js +26 -0
- package/dist/chunk-UZUMBFPP.js.map +1 -0
- package/dist/chunk-VRZ5LMOW.js +176 -0
- package/dist/chunk-VRZ5LMOW.js.map +1 -0
- package/dist/chunk-WLGGY6Z6.js +75 -0
- package/dist/chunk-WLGGY6Z6.js.map +1 -0
- package/dist/chunk-WO7V6ZNC.js +11 -0
- package/dist/chunk-WO7V6ZNC.js.map +1 -0
- package/dist/chunk-WXSENSRP.js +64 -0
- package/dist/chunk-WXSENSRP.js.map +1 -0
- package/dist/chunk-XEKBZ2SA.js +19 -0
- package/dist/chunk-XEKBZ2SA.js.map +1 -0
- package/dist/chunk-XPBKU3JX.js +61 -0
- package/dist/chunk-XPBKU3JX.js.map +1 -0
- package/dist/chunk-XRYXBXWH.js +24 -0
- package/dist/chunk-XRYXBXWH.js.map +1 -0
- package/dist/chunk-XVA7QRVH.js +22 -0
- package/dist/chunk-XVA7QRVH.js.map +1 -0
- package/dist/chunk-YCTHHBSS.js +37 -0
- package/dist/chunk-YCTHHBSS.js.map +1 -0
- package/dist/chunk-YHPWD5NE.js +70 -0
- package/dist/chunk-YHPWD5NE.js.map +1 -0
- package/dist/chunk-YLNEKJQ5.js +126 -0
- package/dist/chunk-YLNEKJQ5.js.map +1 -0
- package/dist/chunk-YN4CEKCF.js +73 -0
- package/dist/chunk-YN4CEKCF.js.map +1 -0
- package/dist/chunk-YYNMESIF.js +17 -0
- package/dist/chunk-YYNMESIF.js.map +1 -0
- package/dist/chunk-Z6PRMCV6.js +1 -0
- package/dist/chunk-Z6PRMCV6.js.map +1 -0
- package/dist/chunk-ZDNW6VQG.js +11 -0
- package/dist/chunk-ZDNW6VQG.js.map +1 -0
- package/dist/chunk-ZP4D73DO.js +36 -0
- package/dist/chunk-ZP4D73DO.js.map +1 -0
- package/dist/chunk-ZUATADUV.js +26 -0
- package/dist/chunk-ZUATADUV.js.map +1 -0
- package/dist/{connections-1NtNQrsY.d.ts → connections-CEcurtWI.d.ts} +74 -9
- package/dist/core/index.cjs +14041 -6973
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.ts +422 -138
- package/dist/core/index.js +425 -183
- package/dist/core/index.js.map +1 -1
- package/dist/flow-vnext/index.cjs +2842 -0
- package/dist/flow-vnext/index.cjs.map +1 -0
- package/dist/flow-vnext/index.d.ts +3 -0
- package/dist/flow-vnext/index.js +119 -0
- package/dist/flow-vnext/index.js.map +1 -0
- package/dist/{graphql-client-Bn0tN049.d.ts → graphql-client-B2tREsx6.d.ts} +3 -1
- package/dist/index-b9xxXGFs.d.ts +1230 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.js +202 -37
- package/dist/index.js.map +1 -1
- package/dist/legacy-BpgIqaQ5.d.ts +14 -0
- package/dist/mantine/index.d.ts +7 -4
- package/dist/mantine/index.js +84 -30
- package/dist/mantine/index.js.map +1 -1
- package/dist/{runtime-BFwvCQDF.d.ts → types-Dqk5MTfW.d.ts} +6096 -5386
- package/package.json +12 -2
- package/dist/chunk-5JF23UP3.js +0 -59687
- package/dist/chunk-5JF23UP3.js.map +0 -1
- package/dist/chunk-A4CWC4AG.js +0 -374
- package/dist/chunk-A4CWC4AG.js.map +0 -1
- package/dist/chunk-NEOPTPDF.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/xero/invoiceCreate/XeroInvoiceCreateFlowDetail.tsx","../src/core/lib/xeroWorkItemPayloads.ts","../src/mantine/blocks/action/actionTypes/xero/_shared/useFlowXeroConnection.ts"],"sourcesContent":["import { useRunRuntimeReader } from '@/mantine/hooks/useRunRuntimeReader';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Badge, Box, Button, Group, Stack, Text } from '@mantine/core';\nimport { DismissibleAlert as Alert } from '@/mantine/components/Base/DismissibleAlert';\nimport { IconX } from '@tabler/icons-react';\nimport { DataInput } from '@/mantine/components/DataInput';\nimport BaseSelect from '@/mantine/components/Base/BaseSelect';\nimport { useBlocknoteHandlers } from '@/mantine/context/BlocknoteContext';\nimport { resolveReferences, resolveSingleReference, parseReferences } from '@/mantine/utils/referenceResolver';\nimport type { ActionTypeFlowProps } from '../../../actionTypeUI';\nimport { actionAlertStyles } from '../../../alertStyles';\nimport {\n buildXeroPaymentWorkKey,\n markXeroWorkCompletedForEditor,\n markXeroWorkFailedForEditor,\n updateXeroWorkReviewPayloadForEditor,\n upsertXeroWorkItemForEditor,\n} from '@/core/lib/xeroWorkItems';\nimport { useXeroWorkItems } from '@/mantine/hooks/useXeroWorkItems';\nimport { buildClaimScope, getInvoiceTotal, resolvePaymentWorkPayload } from '@/core/lib/xeroWorkItemPayloads';\nimport { useFlowXeroConnection } from '../_shared/useFlowXeroConnection';\nimport { ConnectionSelector } from '../../_shared/ConnectionSelector';\nimport {\n finaliseLineItem,\n LINE_ITEM_FIELD_KEYS,\n parseXeroInvoiceCreateInputs,\n type XeroInvoiceCreateInputs,\n type XeroLineItemCells,\n type XeroLineItemsConfig,\n} from '@/core/lib/actionRegistry/actions/xero/invoiceCreate.types';\n\ninterface RuntimeInputs {\n Status: string;\n ContactID: string;\n ContactName: string;\n Date: string;\n DueDate: string;\n InvoiceNumber: string;\n Reference: string;\n CurrencyCode: string;\n __xeroHasQueuedWork?: boolean;\n __xeroSelectedWorkItemId?: string;\n}\n\ntype ResolveOpts = { yRuntime?: any; scope?: Record<string, any> };\n\nfunction shortId(value: unknown, length = 10): string {\n const text = String(value || '');\n return text.length > length ? text.slice(0, length) : text;\n}\n\nfunction getLineTotal(lineItems: unknown): number {\n if (!Array.isArray(lineItems)) return 0;\n return lineItems.reduce((sum, item: any) => {\n const qty = Number(item?.Quantity) || 0;\n const unitAmount = Number(item?.UnitAmount) || 0;\n return sum + qty * unitAmount;\n }, 0);\n}\n\nfunction formatAmount(total: number, currency: unknown): string {\n const code = String(currency || '').trim();\n const amount = Number.isFinite(total) ? total.toFixed(2) : '0.00';\n return code ? `${amount} ${code}` : amount;\n}\n\nfunction lineItemToCells(item: Record<string, unknown> | null | undefined): XeroLineItemCells {\n return {\n Description: String(item?.Description || ''),\n Quantity: String(item?.Quantity ?? '1'),\n UnitAmount: String(item?.UnitAmount ?? ''),\n AccountCode: String(item?.AccountCode || ''),\n TaxType: String(item?.TaxType || ''),\n ItemCode: String(item?.ItemCode || ''),\n DiscountRate: String(item?.DiscountRate ?? ''),\n };\n}\n\nfunction payloadLineItemsToCells(lineItems: unknown): XeroLineItemCells[] {\n if (!Array.isArray(lineItems)) return [];\n return lineItems.map((item) => lineItemToCells(item && typeof item === 'object' ? (item as Record<string, unknown>) : null));\n}\n\n/**\n * Resolve the source-list ref for iterative mode into the actual array value.\n *\n * The Iterative mode `source` is a DataInput value that should contain a\n * single `{{blockId.propPath}}` ref pointing at an array. We need the raw\n * array (not its JSON stringification) so we can iterate — `resolveReferences`\n * would stringify objects, so use `resolveSingleReference` directly.\n */\nfunction resolveIterativeSource(source: string, editorDocument: any[], opts: ResolveOpts): any[] {\n const refs = parseReferences(source || '');\n if (refs.length === 0) return [];\n const ref = refs[0];\n const value = resolveSingleReference(ref.blockId, ref.propPath, editorDocument, opts.yRuntime, opts.scope);\n return Array.isArray(value) ? value : [];\n}\n\nfunction resolveCells(cells: XeroLineItemCells, editorDocument: any[], opts: ResolveOpts): XeroLineItemCells {\n const out: any = {};\n for (const key of LINE_ITEM_FIELD_KEYS) {\n out[key] = resolveReferences(cells[key] || '', editorDocument, opts);\n }\n return out as XeroLineItemCells;\n}\n\n/**\n * Build the final LineItems array Xero expects, applying ref resolution and\n * numeric coercion per cell. Throws with a user-readable message if anything\n * is missing or unparseable — the flow UI surfaces these.\n */\nfunction buildLineItemsArray(config: XeroLineItemsConfig, editorDocument: any[], opts: ResolveOpts): Array<Record<string, unknown>> {\n if (config.mode === 'manual') {\n if (config.rows.length === 0) {\n throw new Error('At least one line item is required.');\n }\n return config.rows.map((row) => finaliseLineItem(resolveCells(row, editorDocument, opts)));\n }\n\n // Iterative: one row per element in the bound source list.\n const elements = resolveIterativeSource(config.source, editorDocument, opts);\n if (elements.length === 0) {\n throw new Error('The bound source list is empty or could not be resolved.');\n }\n return elements.map((element) => {\n const perItemOpts: ResolveOpts = { ...opts, scope: { ...(opts.scope || {}), item: element } };\n return finaliseLineItem(resolveCells(config.map, editorDocument, perItemOpts));\n });\n}\n\nexport const XeroInvoiceCreateFlowDetail: React.FC<ActionTypeFlowProps<RuntimeInputs>> = ({\n inputs,\n editor,\n block,\n runtime,\n isDisabled,\n provideSigningHandler,\n unlockSigning,\n registerRuntimeInputs,\n executeAction,\n}) => {\n const handlers = useBlocknoteHandlers();\n const flowId = useMemo(() => editor?.getFlowMetadata?.()?.doc_id || block.id, [editor, block.id]);\n const actorDid = useMemo(() => {\n try {\n return handlers?.getCurrentUser?.()?.address || '';\n } catch {\n return '';\n }\n }, [handlers]);\n const entityDid = useMemo(() => handlers?.getEntityDid?.() || '', [handlers]);\n\n const parsed = useMemo(() => parseXeroInvoiceCreateInputs(inputs), [inputs]);\n const editorDocument = editor?.document || [];\n const runtimeReader = useRunRuntimeReader(editor);\n const resolveOpts: ResolveOpts = useMemo(() => ({ yRuntime: runtimeReader }), [runtimeReader]);\n\n // Reads `editor.document` lazily inside so we don't put the unstable array\n // on a callback dep — that would re-create this function every render and\n // run the seed effect on every render, causing an infinite render loop.\n const seedFromTemplate = useCallback(\n (field: Exclude<keyof XeroInvoiceCreateInputs, 'connection' | 'LineItems'>): string => {\n const v = parsed[field];\n if (typeof v !== 'string') return '';\n const doc = (editor?.document as any[]) || [];\n return resolveReferences(v, doc, resolveOpts);\n },\n [parsed, editor, resolveOpts]\n );\n\n const [local, setLocal] = useState<RuntimeInputs>(() => ({\n Status: seedFromTemplate('Status'),\n ContactID: seedFromTemplate('ContactID'),\n ContactName: seedFromTemplate('ContactName'),\n Date: seedFromTemplate('Date'),\n DueDate: seedFromTemplate('DueDate'),\n InvoiceNumber: seedFromTemplate('InvoiceNumber'),\n Reference: seedFromTemplate('Reference'),\n CurrencyCode: seedFromTemplate('CurrencyCode'),\n }));\n const [reviewLineItems, setReviewLineItems] = useState<XeroLineItemCells[]>([]);\n\n // Re-seed only when template inputs change — bail if no field would\n // actually change, so we never re-render from an idempotent re-seed.\n useEffect(() => {\n setLocal((prev) => {\n const next: RuntimeInputs = {\n Status: prev.Status || seedFromTemplate('Status'),\n ContactID: prev.ContactID || seedFromTemplate('ContactID'),\n ContactName: prev.ContactName || seedFromTemplate('ContactName'),\n Date: prev.Date || seedFromTemplate('Date'),\n DueDate: prev.DueDate || seedFromTemplate('DueDate'),\n InvoiceNumber: prev.InvoiceNumber || seedFromTemplate('InvoiceNumber'),\n Reference: prev.Reference || seedFromTemplate('Reference'),\n CurrencyCode: prev.CurrencyCode || seedFromTemplate('CurrencyCode'),\n };\n if (\n next.Status === prev.Status &&\n next.ContactID === prev.ContactID &&\n next.ContactName === prev.ContactName &&\n next.Date === prev.Date &&\n next.DueDate === prev.DueDate &&\n next.InvoiceNumber === prev.InvoiceNumber &&\n next.Reference === prev.Reference &&\n next.CurrencyCode === prev.CurrencyCode\n ) {\n return prev;\n }\n return next;\n });\n }, [parsed]);\n\n const update = useCallback((patch: Partial<RuntimeInputs>) => {\n setLocal((prev) => ({ ...prev, ...patch }));\n }, []);\n\n const workItems = useXeroWorkItems(editor, { kind: 'invoice.create', assignedBlockId: block.id, statuses: ['pending', 'failed', 'completed'] });\n const [selectedWorkItemId, setSelectedWorkItemId] = useState('');\n const selectedWorkItem = useMemo(() => workItems.find((item) => item.id === selectedWorkItemId) || null, [workItems, selectedWorkItemId]);\n const selectedWorkItemCompleted = selectedWorkItem?.status === 'completed';\n\n useEffect(() => {\n if (!selectedWorkItem) return;\n const payload = selectedWorkItem.reviewPayload || {};\n setSelectedWorkItemId(selectedWorkItem.id);\n setLocal({\n Status: String(payload.Status || 'DRAFT'),\n ContactID: String(payload.ContactID || ''),\n ContactName: String(payload.ContactName || ''),\n Date: String(payload.Date || ''),\n DueDate: String(payload.DueDate || ''),\n InvoiceNumber: String(payload.InvoiceNumber || ''),\n Reference: String(payload.Reference || ''),\n CurrencyCode: String(payload.CurrencyCode || ''),\n });\n setReviewLineItems(payloadLineItemsToCells(payload.LineItems));\n }, [selectedWorkItem?.id]);\n\n const connection = parsed.connection;\n const [flowConnection, setFlowConnection] = useFlowXeroConnection(editor);\n const effectiveConnection = (selectedWorkItem?.reviewPayload?.connection as typeof connection | undefined) || connection || flowConnection;\n const hasConnection = !!effectiveConnection?.connectedAccountId;\n const entityMismatch = hasConnection && entityDid && effectiveConnection!.entityDid && effectiveConnection!.entityDid !== entityDid;\n const isCompleted = runtime.state === 'completed' && !selectedWorkItem;\n const paymentBlock = useMemo(() => {\n if (!selectedWorkItem) return null;\n const evaluationBlock = (editor?.document as any[] | undefined)?.find((candidate) => candidate?.id === selectedWorkItem.source.evaluationBlockId);\n const inputs = typeof evaluationBlock?.props?.inputs === 'string' ? JSON.parse(evaluationBlock.props.inputs || '{}') : evaluationBlock?.props?.inputs || {};\n const paymentBlockId = String(inputs?.xeroPaymentBlockId || '').trim();\n return paymentBlockId\n ? (editor?.document as any[] | undefined)?.find((candidate) => candidate?.id === paymentBlockId && candidate?.props?.actionType === 'qi/xero.payment.create') || null\n : null;\n }, [editor, selectedWorkItem]);\n\n // Validate the resolved line-items at template-resolve time so the slider\n // only unlocks when we'll successfully build the final array. Reads\n // `editor.document` inside the memo (not as a dep) — that array is a fresh\n // reference on every render and putting it on the dep list would recompute\n // this memo every render, returning a new object each time.\n const lineItemsValidation = useMemo((): { ok: boolean; count: number; error?: string } => {\n try {\n if (selectedWorkItem) {\n const arr = reviewLineItems.map((item) => finaliseLineItem(item));\n return { ok: arr.length > 0, count: arr.length };\n }\n const doc = (editor?.document as any[]) || [];\n const arr = buildLineItemsArray(parsed.LineItems, doc, resolveOpts);\n return { ok: arr.length > 0, count: arr.length };\n } catch (err) {\n return { ok: false, count: 0, error: err instanceof Error ? err.message : 'Line items are invalid.' };\n }\n }, [parsed.LineItems, editor, resolveOpts, reviewLineItems, selectedWorkItem]);\n\n const hasContact = !!(local.ContactID.trim() || local.ContactName.trim());\n const requiresAuthorised = !!selectedWorkItem && !!paymentBlock;\n const statusValid = !requiresAuthorised || local.Status.toUpperCase() === 'AUTHORISED';\n const readyToSign = hasConnection && !entityMismatch && lineItemsValidation.ok && hasContact && statusValid && !isCompleted && !selectedWorkItemCompleted;\n const canShowDetail = (selectedWorkItemCompleted || (hasConnection && !entityMismatch)) && !isCompleted && (workItems.length === 0 || selectedWorkItem);\n\n useEffect(() => {\n unlockSigning?.(readyToSign);\n }, [unlockSigning, readyToSign]);\n\n useEffect(() => {\n registerRuntimeInputs?.({\n ...local,\n __xeroHasQueuedWork: workItems.length > 0,\n __xeroSelectedWorkItemId: selectedWorkItem && !selectedWorkItemCompleted ? selectedWorkItem.id : '',\n });\n }, [registerRuntimeInputs, local, selectedWorkItem?.id, selectedWorkItemCompleted, workItems.length]);\n\n const [error, setError] = useState<string | null>(null);\n\n const execute = useCallback(async () => {\n if (selectedWorkItemCompleted) {\n return;\n }\n if (!hasConnection) {\n setError('Connect Xero before running this action.');\n return;\n }\n\n const editorDoc = (editor?.document as any[]) || [];\n let lineItems: Array<Record<string, unknown>>;\n try {\n lineItems = selectedWorkItem ? reviewLineItems.map((item) => finaliseLineItem(item)) : buildLineItemsArray(parsed.LineItems, editorDoc, resolveOpts);\n if (!Array.isArray(lineItems) || lineItems.length === 0) throw new Error('At least one line item is required.');\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Line items are invalid.');\n return;\n }\n if (requiresAuthorised && local.Status.toUpperCase() !== 'AUTHORISED') {\n setError('This invoice must be authorised before it can create payment work.');\n return;\n }\n\n const submittedPayload = {\n ...(selectedWorkItem?.reviewPayload || {}),\n connection: effectiveConnection,\n Status: local.Status || (selectedWorkItem ? selectedWorkItem.reviewPayload.Status : undefined),\n Date: local.Date,\n DueDate: local.DueDate,\n ContactID: local.ContactID,\n ContactName: local.ContactName,\n Reference: local.Reference,\n InvoiceNumber: local.InvoiceNumber,\n CurrencyCode: local.CurrencyCode,\n LineItems: lineItems,\n };\n if (selectedWorkItem) updateXeroWorkReviewPayloadForEditor(editor, selectedWorkItem.id, submittedPayload);\n setError(null);\n\n try {\n if (!executeAction) {\n throw new Error('Shared action executor is unavailable');\n }\n\n const outcome = await executeAction({\n runtimeInputs: submittedPayload,\n });\n\n if (!outcome.success) {\n throw new Error(outcome.error || 'Xero invoice creation failed');\n }\n\n const output = outcome.output || {};\n\n if (selectedWorkItem) {\n const completed = markXeroWorkCompletedForEditor(editor, selectedWorkItem.id, { byDid: actorDid, payload: submittedPayload, result: output });\n if (completed && paymentBlock && String(output.status || '').toUpperCase() === 'AUTHORISED' && String(output.invoiceId || '')) {\n const baseScope = buildClaimScope(completed.provenance.claimSnapshot, completed.provenance.evaluationOutput?.surveyAnswers || {}, completed.source.evaluationBlockId, {\n deedDid: completed.source.deedDid,\n collectionId: completed.source.collectionId,\n evaluationOutput: completed.provenance.evaluationOutput,\n });\n const { payload } = await resolvePaymentWorkPayload(paymentBlock, editorDoc, baseScope, {\n invoiceId: String(output.invoiceId),\n transactionHash: String(completed.provenance.evaluationOutput?.transactionHash || ''),\n amount: getInvoiceTotal(output),\n });\n const idempotencyKey = buildXeroPaymentWorkKey({\n flowId,\n evaluationBlockId: completed.source.evaluationBlockId,\n claimId: completed.source.claimId,\n invoiceWorkItemId: completed.id,\n });\n upsertXeroWorkItemForEditor(editor, {\n id: idempotencyKey,\n kind: 'payment.create',\n status: 'pending',\n assignedBlockId: paymentBlock.id,\n idempotencyKey,\n source: { ...completed.source, invoiceWorkItemId: completed.id },\n originalPayload: payload,\n reviewPayload: payload,\n provenance: {\n createdAt: Date.now(),\n createdByDid: actorDid,\n templateBlockId: paymentBlock.id,\n templateInputsSnapshot: paymentBlock.props?.inputs,\n evaluationOutput: completed.provenance.evaluationOutput,\n claimSnapshot: completed.provenance.claimSnapshot,\n },\n attempts: [],\n });\n }\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : 'Failed to create Xero invoice';\n setError(message);\n if (selectedWorkItem) markXeroWorkFailedForEditor(editor, selectedWorkItem.id, { byDid: actorDid, payload: submittedPayload, error: message });\n }\n }, [\n actorDid,\n effectiveConnection,\n editor,\n executeAction,\n flowId,\n hasConnection,\n local,\n parsed.LineItems,\n resolveOpts,\n reviewLineItems,\n selectedWorkItemCompleted,\n selectedWorkItem,\n paymentBlock,\n requiresAuthorised,\n ]);\n\n useEffect(() => {\n if (!provideSigningHandler) return;\n provideSigningHandler(execute);\n }, [provideSigningHandler, execute]);\n\n return (\n <Stack gap=\"md\">\n {!hasConnection && !selectedWorkItemCompleted && <ConnectionSelector toolkit=\"xero\" toolkitLabel=\"Xero\" value={flowConnection} onChange={setFlowConnection} />}\n\n {entityMismatch && (\n <Alert color=\"yellow\" styles={actionAlertStyles}>\n This block was configured for a different workspace. Reconnect Xero to use it here.\n </Alert>\n )}\n\n {workItems.length > 0 && (\n <Stack gap=\"sm\">\n <Group justify=\"space-between\" align=\"center\">\n <Text size=\"sm\" fw={600}>\n Invoices\n </Text>\n <Badge variant=\"light\" color=\"gray\">\n {workItems.length}\n </Badge>\n </Group>\n {workItems.map((item) => (\n <Box\n key={item.id}\n style={{\n border: selectedWorkItem?.id === item.id ? '1px solid var(--mantine-color-teal-5)' : '1px solid var(--mantine-color-neutralColor-6)',\n borderRadius: 6,\n padding: 12,\n background: selectedWorkItem?.id === item.id ? 'rgba(42, 234, 179, 0.08)' : 'var(--mantine-color-neutralColor-5)',\n }}\n >\n <Group justify=\"space-between\" align=\"flex-start\" gap=\"md\" wrap=\"nowrap\">\n <Stack gap={4} style={{ minWidth: 0, flex: 1 }}>\n <Group gap=\"xs\" wrap=\"wrap\">\n <Text size=\"sm\" fw={600}>\n {String(item.reviewPayload?.InvoiceNumber || item.reviewPayload?.Reference || item.reviewPayload?.ContactName || 'Invoice work')}\n </Text>\n <Badge size=\"xs\" color={item.status === 'completed' ? 'green' : item.status === 'failed' ? 'red' : 'blue'} variant=\"light\">\n {item.status}\n </Badge>\n <Badge size=\"xs\" color=\"gray\" variant=\"outline\">\n {String(item.reviewPayload?.Type || 'ACCREC')}\n </Badge>\n </Group>\n <Text size=\"xs\" c=\"dimmed\" truncate>\n Claim {shortId(item.source.claimId)} · Contact {String(item.reviewPayload?.ContactName || item.reviewPayload?.ContactID || 'missing')}\n </Text>\n <Group gap=\"md\" wrap=\"wrap\">\n <Text size=\"xs\">Total {formatAmount(getLineTotal(item.reviewPayload?.LineItems), item.reviewPayload?.CurrencyCode)}</Text>\n {item.reviewPayload?.DueDate && <Text size=\"xs\">Due {String(item.reviewPayload.DueDate)}</Text>}\n <Text size=\"xs\">{Array.isArray(item.reviewPayload?.LineItems) ? item.reviewPayload.LineItems.length : 0} line item(s)</Text>\n </Group>\n </Stack>\n <Button\n size=\"xs\"\n variant={selectedWorkItem?.id === item.id ? 'filled' : 'light'}\n leftSection={selectedWorkItem?.id === item.id ? <IconX size={14} /> : undefined}\n onClick={() => setSelectedWorkItemId(selectedWorkItem?.id === item.id ? '' : item.id)}\n >\n {selectedWorkItem?.id === item.id ? 'Close' : item.status === 'completed' ? 'Open' : 'Review'}\n </Button>\n </Group>\n </Box>\n ))}\n </Stack>\n )}\n\n {canShowDetail && (\n <Stack gap=\"sm\">\n {selectedWorkItem && (\n <Group justify=\"space-between\" align=\"center\">\n <Text size=\"sm\" fw={600}>\n {selectedWorkItemCompleted ? 'Completed invoice' : 'Reviewing queued invoice'}\n </Text>\n <Button size=\"xs\" variant=\"subtle\" leftSection={<IconX size={14} />} onClick={() => setSelectedWorkItemId('')}>\n Close review\n </Button>\n </Group>\n )}\n {selectedWorkItem && (\n <BaseSelect\n label=\"Status\"\n data={[\n { value: 'DRAFT', label: 'Draft' },\n { value: 'SUBMITTED', label: 'Submitted' },\n { value: 'AUTHORISED', label: 'Authorised' },\n ]}\n value={local.Status || 'DRAFT'}\n onChange={(value) => update({ Status: value || 'DRAFT' })}\n disabled={selectedWorkItemCompleted}\n />\n )}\n <DataInput\n label=\"Contact ID\"\n value={local.ContactID}\n onChange={(value) => update({ ContactID: value })}\n editorDocument={editorDocument}\n currentBlockId={block.id}\n disabled={selectedWorkItemCompleted}\n />\n <DataInput\n label=\"Contact name (if no ID)\"\n value={local.ContactName}\n onChange={(value) => update({ ContactName: value })}\n editorDocument={editorDocument}\n currentBlockId={block.id}\n disabled={selectedWorkItemCompleted}\n />\n <DataInput\n label=\"Due date\"\n value={local.DueDate}\n onChange={(value) => update({ DueDate: value })}\n editorDocument={editorDocument}\n currentBlockId={block.id}\n disabled={selectedWorkItemCompleted}\n />\n {selectedWorkItem && (\n <DataInput\n label=\"Currency\"\n value={local.CurrencyCode}\n onChange={(value) => update({ CurrencyCode: value })}\n editorDocument={editorDocument}\n currentBlockId={block.id}\n disabled={selectedWorkItemCompleted}\n />\n )}\n {selectedWorkItem && (\n <Stack gap=\"xs\">\n <Group justify=\"space-between\" align=\"center\">\n <Text size=\"sm\" fw={600}>\n Line items\n </Text>\n <Badge color={lineItemsValidation.ok ? 'green' : 'yellow'} variant=\"light\">\n {lineItemsValidation.count}\n </Badge>\n </Group>\n {reviewLineItems.map((item, index) => (\n <Box\n key={index}\n style={{\n border: '1px solid var(--mantine-color-neutralColor-5)',\n borderRadius: 6,\n padding: 12,\n background: 'var(--mantine-color-neutralColor-2)',\n }}\n >\n <Stack gap=\"xs\">\n <Text size=\"xs\" c=\"dimmed\" fw={600}>\n Line item {index + 1}\n </Text>\n <DataInput\n label=\"Description\"\n value={item.Description}\n onChange={(value) => setReviewLineItems((prev) => prev.map((line, lineIndex) => (lineIndex === index ? { ...line, Description: value } : line)))}\n editorDocument={editorDocument}\n currentBlockId={block.id}\n disabled={selectedWorkItemCompleted}\n />\n <Group grow>\n <DataInput\n label=\"Quantity\"\n value={item.Quantity}\n onChange={(value) => setReviewLineItems((prev) => prev.map((line, lineIndex) => (lineIndex === index ? { ...line, Quantity: value } : line)))}\n editorDocument={editorDocument}\n currentBlockId={block.id}\n disabled={selectedWorkItemCompleted}\n />\n <DataInput\n label=\"Unit amount\"\n value={item.UnitAmount}\n onChange={(value) => setReviewLineItems((prev) => prev.map((line, lineIndex) => (lineIndex === index ? { ...line, UnitAmount: value } : line)))}\n editorDocument={editorDocument}\n currentBlockId={block.id}\n disabled={selectedWorkItemCompleted}\n />\n <DataInput\n label=\"Account code\"\n value={item.AccountCode}\n onChange={(value) => setReviewLineItems((prev) => prev.map((line, lineIndex) => (lineIndex === index ? { ...line, AccountCode: value } : line)))}\n editorDocument={editorDocument}\n currentBlockId={block.id}\n disabled={selectedWorkItemCompleted}\n />\n </Group>\n <Group grow>\n <DataInput\n label=\"Tax type\"\n value={item.TaxType}\n onChange={(value) => setReviewLineItems((prev) => prev.map((line, lineIndex) => (lineIndex === index ? { ...line, TaxType: value } : line)))}\n editorDocument={editorDocument}\n currentBlockId={block.id}\n disabled={selectedWorkItemCompleted}\n />\n <DataInput\n label=\"Item code\"\n value={item.ItemCode}\n onChange={(value) => setReviewLineItems((prev) => prev.map((line, lineIndex) => (lineIndex === index ? { ...line, ItemCode: value } : line)))}\n editorDocument={editorDocument}\n currentBlockId={block.id}\n disabled={selectedWorkItemCompleted}\n />\n <DataInput\n label=\"Discount %\"\n value={item.DiscountRate}\n onChange={(value) => setReviewLineItems((prev) => prev.map((line, lineIndex) => (lineIndex === index ? { ...line, DiscountRate: value } : line)))}\n editorDocument={editorDocument}\n currentBlockId={block.id}\n disabled={selectedWorkItemCompleted}\n />\n </Group>\n </Stack>\n </Box>\n ))}\n </Stack>\n )}\n {!selectedWorkItemCompleted && !lineItemsValidation.ok && (\n <Alert color=\"yellow\" styles={actionAlertStyles}>\n {lineItemsValidation.error || 'Line items require attention — edit in template mode.'}\n </Alert>\n )}\n {!selectedWorkItemCompleted && !statusValid && (\n <Alert color=\"yellow\" styles={actionAlertStyles}>\n A payment block is bound, so this invoice work item must be authorised before execution.\n </Alert>\n )}\n </Stack>\n )}\n\n {isCompleted && workItems.length === 0 && (\n <Alert color=\"green\" styles={actionAlertStyles}>\n Invoice created\n {runtime.output?.invoiceNumber ? ` — ${runtime.output.invoiceNumber}` : ''}.\n </Alert>\n )}\n\n {error && (\n <Alert color=\"red\" styles={actionAlertStyles}>\n {error}\n </Alert>\n )}\n\n {isDisabled && !isCompleted && (\n <Text size=\"xs\" c=\"dimmed\">\n This block is currently disabled.\n </Text>\n )}\n </Stack>\n );\n};\n","import { getDiffResolver, type DiffResult } from '@/core/lib/actionRegistry';\nimport { finaliseLineItem, LINE_ITEM_FIELD_KEYS, type XeroLineItemCells, type XeroLineItemsConfig } from '@/core/lib/actionRegistry/actions/xero/invoiceCreate.types';\nimport { parseXeroPaymentCreateInputs } from '@/core/lib/actionRegistry/actions/xero/paymentCreate.types';\nimport { parseReferences, resolveReferences, resolveSingleReference } from '@/mantine/utils/referenceResolver';\n\nexport function buildClaimScope(\n claim: any,\n claimData: any,\n evaluateBlockId?: string,\n evaluateContext?: { deedDid?: string; collectionId?: string; evaluationOutput?: Record<string, any> }\n): Record<string, any> {\n const surveyAnswers = claimData && typeof claimData === 'object' ? (claimData as any).credentialSubject ?? (claimData as any).surveyAnswers ?? claimData : {};\n const evaluationOutput = evaluateContext?.evaluationOutput ?? {};\n const scope: Record<string, any> = {\n claim: {\n claimId: claim?.claimId || evaluationOutput.claimId || '',\n agentDid: claim?.agentDid || '',\n agentAddress: claim?.agentAddress || '',\n submissionDate: claim?.submissionDate || '',\n surveyAnswers,\n ...surveyAnswers,\n },\n evaluation: {\n transactionHash: evaluationOutput.transactionHash || '',\n amount: evaluationOutput.amount || '',\n date: new Date().toISOString().slice(0, 10),\n },\n };\n\n const trimmedId = String(evaluateBlockId || '').trim();\n if (trimmedId) {\n scope[trimmedId] = {\n output: {\n claimId: claim?.claimId || evaluationOutput.claimId || '',\n collectionId: evaluateContext?.collectionId || '',\n deedDid: evaluateContext?.deedDid || '',\n surveyAnswers,\n ...evaluationOutput,\n },\n };\n }\n\n return scope;\n}\n\ntype ResolveOpts = { yRuntime?: any; scope?: Record<string, any> };\n\nfunction resolveIterativeSource(source: string, editorDocument: any[], opts: ResolveOpts): any[] {\n const refs = parseReferences(source || '');\n if (refs.length === 0) return [];\n const ref = refs[0];\n const value = resolveSingleReference(ref.blockId, ref.propPath, editorDocument, opts.yRuntime, opts.scope);\n return Array.isArray(value) ? value : [];\n}\n\nfunction resolveCells(cells: XeroLineItemCells, editorDocument: any[], opts: ResolveOpts): XeroLineItemCells {\n const out: any = {};\n for (const key of LINE_ITEM_FIELD_KEYS) {\n out[key] = resolveReferences(cells[key] || '', editorDocument, opts);\n }\n return out as XeroLineItemCells;\n}\n\nexport function buildLineItemsArray(config: XeroLineItemsConfig, editorDocument: any[], opts: ResolveOpts): Array<Record<string, unknown>> {\n if (config.mode === 'manual') {\n if (config.rows.length === 0) throw new Error('At least one line item is required.');\n return config.rows.map((row) => finaliseLineItem(resolveCells(row, editorDocument, opts)));\n }\n\n const elements = resolveIterativeSource(config.source, editorDocument, opts);\n if (elements.length === 0) throw new Error('The bound source list is empty or could not be resolved.');\n return elements.map((element) => {\n const perItemOpts: ResolveOpts = { ...opts, scope: { ...(opts.scope || {}), item: element } };\n return finaliseLineItem(resolveCells(config.map, editorDocument, perItemOpts));\n });\n}\n\nexport async function resolvePaymentWorkPayload(\n block: any,\n editorDocument: any[],\n baseScope: Record<string, any>,\n settlement: { invoiceId: string; transactionHash: string; amount: number; date?: string }\n): Promise<{ payload: Record<string, any>; preview: DiffResult[] }> {\n const parsed = parseXeroPaymentCreateInputs(block?.props?.inputs);\n const scope = {\n ...baseScope,\n invoice: { invoiceId: settlement.invoiceId, InvoiceID: settlement.invoiceId },\n evaluation: {\n transactionHash: settlement.transactionHash,\n amount: settlement.amount,\n date: settlement.date || new Date().toISOString().slice(0, 10),\n },\n };\n const opts: ResolveOpts = { scope };\n const resolveStr = (v: string | undefined) => resolveReferences(v || '', editorDocument, opts);\n\n const currencyRateRaw = resolveStr(parsed.CurrencyRate);\n const currencyRate = currencyRateRaw ? Number(currencyRateRaw) : undefined;\n const amountRaw = resolveStr(parsed.Amount);\n const amount = Number.isFinite(Number(amountRaw)) && Number(amountRaw) > 0 ? Number(amountRaw) : settlement.amount;\n\n // No `connection` or `AccountID`: both come from the flow's Xero binding,\n // read at settlement time so a bank account picked after this item was\n // minted still applies.\n const payload: Record<string, any> = {\n tenant_id: resolveStr(parsed.tenant_id),\n InvoiceID: resolveStr(parsed.InvoiceID) || settlement.invoiceId,\n Date: resolveStr(parsed.Date) || settlement.date || new Date().toISOString().slice(0, 10),\n Amount: amount,\n Reference: resolveStr(parsed.Reference) || settlement.transactionHash,\n CurrencyRate: typeof currencyRate === 'number' && Number.isFinite(currencyRate) ? currencyRate : undefined,\n };\n\n let preview: DiffResult[] = [];\n const resolver = getDiffResolver('qi/xero.payment.create');\n if (resolver) {\n try {\n preview = await resolver.resolver({ ...payload, Amount: String(payload.Amount) }, {} as any);\n } catch {\n preview = [];\n }\n }\n\n return { payload, preview };\n}\n\nexport function getInvoiceTotal(output: Record<string, any>): number {\n const total = typeof output.total === 'number' ? output.total : Number(output.total);\n return Number.isFinite(total) && total > 0 ? total : 0;\n}\n","import { useCallback, useEffect, useState } from 'react';\nimport type { PinnedConnection } from '../../_shared/ConnectionSelector';\n\nconst CONNECTION_KEY = 'connection';\n\nexport function useFlowXeroConnection(editor: any): [PinnedConnection | null, (connection: PinnedConnection | null) => void] {\n const connectionMap = editor?._yXeroConnection || null;\n const [connection, setConnection] = useState<PinnedConnection | null>(() => (connectionMap?.get(CONNECTION_KEY) as PinnedConnection | undefined) || null);\n\n useEffect(() => {\n if (!connectionMap?.observe) return;\n const sync = () => setConnection((connectionMap.get(CONNECTION_KEY) as PinnedConnection | undefined) || null);\n connectionMap.observe(sync);\n sync();\n return () => connectionMap.unobserve(sync);\n }, [connectionMap]);\n\n const saveConnection = useCallback(\n (next: PinnedConnection | null) => {\n if (!connectionMap) return;\n if (next) {\n connectionMap.set(CONNECTION_KEY, next);\n } else {\n connectionMap.delete(CONNECTION_KEY);\n }\n },\n [connectionMap]\n );\n\n return [connection, saveConnection];\n}\n"],"mappings":"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","names":["useCallback","useEffect","useState","useCallback","useState","useEffect","inputs","arr"]}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseXeroInvoiceListInputs,
|
|
3
|
+
serializeXeroInvoiceListInputs
|
|
4
|
+
} from "./chunk-IX3VBV3L.js";
|
|
5
|
+
import {
|
|
6
|
+
ConnectionSelector
|
|
7
|
+
} from "./chunk-VRZ5LMOW.js";
|
|
8
|
+
import "./chunk-K74XQ4Q5.js";
|
|
9
|
+
import {
|
|
10
|
+
DataInput
|
|
11
|
+
} from "./chunk-4PONO4US.js";
|
|
12
|
+
import "./chunk-XPBKU3JX.js";
|
|
13
|
+
import "./chunk-4NAFQF6V.js";
|
|
14
|
+
import "./chunk-NZ7AXA7B.js";
|
|
15
|
+
import "./chunk-F4PTFXZH.js";
|
|
16
|
+
import "./chunk-IH4T7V4C.js";
|
|
17
|
+
import "./chunk-PYNDJDWZ.js";
|
|
18
|
+
import "./chunk-NIXT2SBH.js";
|
|
19
|
+
import "./chunk-JIDTNKKL.js";
|
|
20
|
+
import "./chunk-JVROGQ7Q.js";
|
|
21
|
+
import "./chunk-IIIZZ4E4.js";
|
|
22
|
+
import "./chunk-HT6L7A5M.js";
|
|
23
|
+
import "./chunk-N3ORMGAI.js";
|
|
24
|
+
import "./chunk-NCSGIRRQ.js";
|
|
25
|
+
import "./chunk-6GKJR52N.js";
|
|
26
|
+
import "./chunk-EBFFDDAS.js";
|
|
27
|
+
import "./chunk-4DGCCXD6.js";
|
|
28
|
+
import "./chunk-7W7UUUIE.js";
|
|
29
|
+
import "./chunk-TS2LNBF2.js";
|
|
30
|
+
|
|
31
|
+
// src/mantine/blocks/action/actionTypes/xero/invoiceList/XeroInvoiceListConfig.tsx
|
|
32
|
+
import React, { useCallback, useEffect, useState } from "react";
|
|
33
|
+
import { Divider, Group, Stack, Switch, Text } from "@mantine/core";
|
|
34
|
+
var XeroInvoiceListConfig = ({ inputs, onInputsChange, editor, blockId }) => {
|
|
35
|
+
const [local, setLocal] = useState(() => parseXeroInvoiceListInputs(inputs));
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
setLocal(parseXeroInvoiceListInputs(inputs));
|
|
38
|
+
}, [inputs]);
|
|
39
|
+
const update = useCallback(
|
|
40
|
+
(patch) => {
|
|
41
|
+
const updated = { ...local, ...patch };
|
|
42
|
+
setLocal(updated);
|
|
43
|
+
onInputsChange(serializeXeroInvoiceListInputs(updated));
|
|
44
|
+
},
|
|
45
|
+
[local, onInputsChange]
|
|
46
|
+
);
|
|
47
|
+
const editorDocument = editor?.document || [];
|
|
48
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: "lg" }, /* @__PURE__ */ React.createElement(ConnectionSelector, { toolkit: "xero", toolkitLabel: "Xero", value: local.connection, onChange: (connection) => update({ connection }) }), /* @__PURE__ */ React.createElement(
|
|
49
|
+
DataInput,
|
|
50
|
+
{
|
|
51
|
+
label: "Xero org (optional)",
|
|
52
|
+
description: "Organisation ID if the connection covers multiple orgs.",
|
|
53
|
+
value: local.tenantId,
|
|
54
|
+
onChange: (value) => update({ tenantId: value }),
|
|
55
|
+
editorDocument,
|
|
56
|
+
currentBlockId: blockId
|
|
57
|
+
}
|
|
58
|
+
), /* @__PURE__ */ React.createElement(Divider, { variant: "dashed" }), /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 600 }, "Filters"), /* @__PURE__ */ React.createElement(
|
|
59
|
+
DataInput,
|
|
60
|
+
{
|
|
61
|
+
label: "Statuses",
|
|
62
|
+
description: "Comma-separated \u2014 e.g. DRAFT, SUBMITTED, AUTHORISED, PAID.",
|
|
63
|
+
value: local.Statuses,
|
|
64
|
+
onChange: (value) => update({ Statuses: value }),
|
|
65
|
+
editorDocument,
|
|
66
|
+
currentBlockId: blockId
|
|
67
|
+
}
|
|
68
|
+
), /* @__PURE__ */ React.createElement(
|
|
69
|
+
DataInput,
|
|
70
|
+
{
|
|
71
|
+
label: "Contact IDs",
|
|
72
|
+
description: "Comma-separated Xero ContactIDs.",
|
|
73
|
+
value: local.ContactIDs,
|
|
74
|
+
onChange: (value) => update({ ContactIDs: value }),
|
|
75
|
+
editorDocument,
|
|
76
|
+
currentBlockId: blockId
|
|
77
|
+
}
|
|
78
|
+
), /* @__PURE__ */ React.createElement(
|
|
79
|
+
DataInput,
|
|
80
|
+
{
|
|
81
|
+
label: "Invoice IDs",
|
|
82
|
+
description: "Comma-separated Xero InvoiceIDs.",
|
|
83
|
+
value: local.InvoiceIDs,
|
|
84
|
+
onChange: (value) => update({ InvoiceIDs: value }),
|
|
85
|
+
editorDocument,
|
|
86
|
+
currentBlockId: blockId
|
|
87
|
+
}
|
|
88
|
+
), /* @__PURE__ */ React.createElement(
|
|
89
|
+
DataInput,
|
|
90
|
+
{
|
|
91
|
+
label: "Where clause",
|
|
92
|
+
description: 'Xero-specific filter, e.g. Type=="ACCREC".',
|
|
93
|
+
value: local.where,
|
|
94
|
+
onChange: (value) => update({ where: value }),
|
|
95
|
+
editorDocument,
|
|
96
|
+
currentBlockId: blockId
|
|
97
|
+
}
|
|
98
|
+
), /* @__PURE__ */ React.createElement(Group, { grow: true }, /* @__PURE__ */ React.createElement(
|
|
99
|
+
DataInput,
|
|
100
|
+
{
|
|
101
|
+
label: "Order",
|
|
102
|
+
placeholder: "Date DESC",
|
|
103
|
+
value: local.order,
|
|
104
|
+
onChange: (value) => update({ order: value }),
|
|
105
|
+
editorDocument,
|
|
106
|
+
currentBlockId: blockId
|
|
107
|
+
}
|
|
108
|
+
), /* @__PURE__ */ React.createElement(DataInput, { label: "Page", placeholder: "1", value: local.page, onChange: (value) => update({ page: value }), editorDocument, currentBlockId: blockId })), /* @__PURE__ */ React.createElement(Group, null, /* @__PURE__ */ React.createElement(Switch, { label: "Only invoices created by this app", checked: local.createdByMyApp, onChange: (e) => update({ createdByMyApp: e.currentTarget.checked }) }), /* @__PURE__ */ React.createElement(Switch, { label: "Include archived", checked: local.includeArchived, onChange: (e) => update({ includeArchived: e.currentTarget.checked }) }))));
|
|
109
|
+
};
|
|
110
|
+
export {
|
|
111
|
+
XeroInvoiceListConfig
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=XeroInvoiceListConfig-UR3GONBJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/xero/invoiceList/XeroInvoiceListConfig.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { Divider, Group, Stack, Switch, Text } from '@mantine/core';\nimport { DataInput } from '@/mantine/components/DataInput';\nimport type { ActionTypeConfigProps } from '../../../actionTypeUI';\nimport { ConnectionSelector } from '../../_shared/ConnectionSelector';\nimport { parseXeroInvoiceListInputs, serializeXeroInvoiceListInputs, type XeroInvoiceListInputs } from '@/core/lib/actionRegistry/actions/xero/invoiceList.types';\n\nexport const XeroInvoiceListConfig: React.FC<ActionTypeConfigProps> = ({ inputs, onInputsChange, editor, blockId }) => {\n const [local, setLocal] = useState<XeroInvoiceListInputs>(() => parseXeroInvoiceListInputs(inputs));\n\n useEffect(() => {\n setLocal(parseXeroInvoiceListInputs(inputs));\n }, [inputs]);\n\n const update = useCallback(\n (patch: Partial<XeroInvoiceListInputs>) => {\n const updated = { ...local, ...patch };\n setLocal(updated);\n onInputsChange(serializeXeroInvoiceListInputs(updated));\n },\n [local, onInputsChange]\n );\n\n const editorDocument = editor?.document || [];\n\n return (\n <Stack gap=\"lg\">\n <ConnectionSelector toolkit=\"xero\" toolkitLabel=\"Xero\" value={local.connection} onChange={(connection) => update({ connection })} />\n\n <DataInput\n label=\"Xero org (optional)\"\n description=\"Organisation ID if the connection covers multiple orgs.\"\n value={local.tenantId}\n onChange={(value) => update({ tenantId: value })}\n editorDocument={editorDocument}\n currentBlockId={blockId}\n />\n\n <Divider variant=\"dashed\" />\n\n <Stack gap=\"md\">\n <Text size=\"sm\" fw={600}>\n Filters\n </Text>\n <DataInput\n label=\"Statuses\"\n description=\"Comma-separated — e.g. DRAFT, SUBMITTED, AUTHORISED, PAID.\"\n value={local.Statuses}\n onChange={(value) => update({ Statuses: value })}\n editorDocument={editorDocument}\n currentBlockId={blockId}\n />\n <DataInput\n label=\"Contact IDs\"\n description=\"Comma-separated Xero ContactIDs.\"\n value={local.ContactIDs}\n onChange={(value) => update({ ContactIDs: value })}\n editorDocument={editorDocument}\n currentBlockId={blockId}\n />\n <DataInput\n label=\"Invoice IDs\"\n description=\"Comma-separated Xero InvoiceIDs.\"\n value={local.InvoiceIDs}\n onChange={(value) => update({ InvoiceIDs: value })}\n editorDocument={editorDocument}\n currentBlockId={blockId}\n />\n <DataInput\n label=\"Where clause\"\n description={'Xero-specific filter, e.g. Type==\"ACCREC\".'}\n value={local.where}\n onChange={(value) => update({ where: value })}\n editorDocument={editorDocument}\n currentBlockId={blockId}\n />\n <Group grow>\n <DataInput\n label=\"Order\"\n placeholder=\"Date DESC\"\n value={local.order}\n onChange={(value) => update({ order: value })}\n editorDocument={editorDocument}\n currentBlockId={blockId}\n />\n <DataInput label=\"Page\" placeholder=\"1\" value={local.page} onChange={(value) => update({ page: value })} editorDocument={editorDocument} currentBlockId={blockId} />\n </Group>\n <Group>\n <Switch label=\"Only invoices created by this app\" checked={local.createdByMyApp} onChange={(e) => update({ createdByMyApp: e.currentTarget.checked })} />\n <Switch label=\"Include archived\" checked={local.includeArchived} onChange={(e) => update({ includeArchived: e.currentTarget.checked })} />\n </Group>\n </Stack>\n </Stack>\n );\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseXeroInvoiceListInputs
|
|
3
|
+
} from "./chunk-IX3VBV3L.js";
|
|
4
|
+
import {
|
|
5
|
+
DismissibleAlert
|
|
6
|
+
} from "./chunk-IFWKRCFF.js";
|
|
7
|
+
import {
|
|
8
|
+
actionAlertStyles
|
|
9
|
+
} from "./chunk-6GKJR52N.js";
|
|
10
|
+
import {
|
|
11
|
+
useBlocknoteHandlers
|
|
12
|
+
} from "./chunk-4DGCCXD6.js";
|
|
13
|
+
import "./chunk-7W7UUUIE.js";
|
|
14
|
+
import "./chunk-TS2LNBF2.js";
|
|
15
|
+
|
|
16
|
+
// src/mantine/blocks/action/actionTypes/xero/invoiceList/XeroInvoiceListFlowDetail.tsx
|
|
17
|
+
import React, { useCallback, useMemo, useState } from "react";
|
|
18
|
+
import { Badge, Button, Loader, Stack } from "@mantine/core";
|
|
19
|
+
import { IconRefresh } from "@tabler/icons-react";
|
|
20
|
+
var XeroInvoiceListFlowDetail = ({ inputs, runtime, isDisabled, executeAction }) => {
|
|
21
|
+
const handlers = useBlocknoteHandlers();
|
|
22
|
+
const entityDid = useMemo(() => handlers?.getEntityDid?.() || "", [handlers]);
|
|
23
|
+
const parsed = useMemo(() => parseXeroInvoiceListInputs(inputs), [inputs]);
|
|
24
|
+
const connection = parsed.connection;
|
|
25
|
+
const hasConnection = !!connection?.connectedAccountId;
|
|
26
|
+
const entityMismatch = hasConnection && entityDid && connection.entityDid && connection.entityDid !== entityDid;
|
|
27
|
+
const [loading, setLoading] = useState(false);
|
|
28
|
+
const [error, setError] = useState(null);
|
|
29
|
+
const execute = useCallback(async () => {
|
|
30
|
+
if (!executeAction) {
|
|
31
|
+
setError("Shared action executor is unavailable");
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (!hasConnection) {
|
|
35
|
+
setError("Connect Xero before running this action.");
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
setLoading(true);
|
|
39
|
+
setError(null);
|
|
40
|
+
try {
|
|
41
|
+
const outcome = await executeAction();
|
|
42
|
+
if (!outcome.success) {
|
|
43
|
+
throw new Error(outcome.error || "Xero invoice list failed");
|
|
44
|
+
}
|
|
45
|
+
} catch (err) {
|
|
46
|
+
const message = err instanceof Error ? err.message : "Failed to list Xero invoices";
|
|
47
|
+
setError(message);
|
|
48
|
+
} finally {
|
|
49
|
+
setLoading(false);
|
|
50
|
+
}
|
|
51
|
+
}, [executeAction, hasConnection]);
|
|
52
|
+
const count = typeof runtime.output?.count === "number" ? runtime.output.count : null;
|
|
53
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, !hasConnection && /* @__PURE__ */ React.createElement(DismissibleAlert, { color: "yellow", styles: actionAlertStyles }, "Connect Xero in template mode before running this action."), entityMismatch && /* @__PURE__ */ React.createElement(DismissibleAlert, { color: "yellow", styles: actionAlertStyles }, "This block was configured for a different workspace. Reconnect Xero to use it here."), hasConnection && !entityMismatch && /* @__PURE__ */ React.createElement(Button, { size: "sm", leftSection: loading ? /* @__PURE__ */ React.createElement(Loader, { size: 14 }) : /* @__PURE__ */ React.createElement(IconRefresh, { size: 14 }), onClick: execute, disabled: isDisabled || loading }, count !== null ? "Refresh invoices" : "Load invoices"), count !== null && /* @__PURE__ */ React.createElement(Badge, { color: count === 0 ? "gray" : "green", variant: "light", style: { alignSelf: "flex-start" } }, count, " invoice", count === 1 ? "" : "s"), error && /* @__PURE__ */ React.createElement(DismissibleAlert, { color: "red", styles: actionAlertStyles }, error), runtime.error?.message && !error && /* @__PURE__ */ React.createElement(DismissibleAlert, { color: "red", styles: actionAlertStyles }, runtime.error.message));
|
|
54
|
+
};
|
|
55
|
+
export {
|
|
56
|
+
XeroInvoiceListFlowDetail
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=XeroInvoiceListFlowDetail-LYHODWH6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/xero/invoiceList/XeroInvoiceListFlowDetail.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react';\nimport { Badge, Button, Loader, Stack } from '@mantine/core';\nimport { DismissibleAlert as Alert } from '@/mantine/components/Base/DismissibleAlert';\nimport { IconRefresh } from '@tabler/icons-react';\nimport { useBlocknoteHandlers } from '@/mantine/context/BlocknoteContext';\nimport type { ActionTypeFlowProps } from '../../../actionTypeUI';\nimport { actionAlertStyles } from '../../../alertStyles';\nimport { parseXeroInvoiceListInputs } from '@/core/lib/actionRegistry/actions/xero/invoiceList.types';\n\nexport const XeroInvoiceListFlowDetail: React.FC<ActionTypeFlowProps> = ({ inputs, runtime, isDisabled, executeAction }) => {\n const handlers = useBlocknoteHandlers();\n const entityDid = useMemo(() => handlers?.getEntityDid?.() || '', [handlers]);\n\n const parsed = useMemo(() => parseXeroInvoiceListInputs(inputs), [inputs]);\n const connection = parsed.connection;\n const hasConnection = !!connection?.connectedAccountId;\n const entityMismatch = hasConnection && entityDid && connection!.entityDid && connection!.entityDid !== entityDid;\n\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const execute = useCallback(async () => {\n if (!executeAction) {\n setError('Shared action executor is unavailable');\n return;\n }\n if (!hasConnection) {\n setError('Connect Xero before running this action.');\n return;\n }\n\n setLoading(true);\n setError(null);\n\n try {\n const outcome = await executeAction();\n\n if (!outcome.success) {\n throw new Error(outcome.error || 'Xero invoice list failed');\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : 'Failed to list Xero invoices';\n setError(message);\n } finally {\n setLoading(false);\n }\n }, [executeAction, hasConnection]);\n\n const count = typeof runtime.output?.count === 'number' ? runtime.output.count : null;\n\n return (\n <Stack gap=\"md\">\n {!hasConnection && (\n <Alert color=\"yellow\" styles={actionAlertStyles}>\n Connect Xero in template mode before running this action.\n </Alert>\n )}\n\n {entityMismatch && (\n <Alert color=\"yellow\" styles={actionAlertStyles}>\n This block was configured for a different workspace. Reconnect Xero to use it here.\n </Alert>\n )}\n\n {hasConnection && !entityMismatch && (\n <Button size=\"sm\" leftSection={loading ? <Loader size={14} /> : <IconRefresh size={14} />} onClick={execute} disabled={isDisabled || loading}>\n {count !== null ? 'Refresh invoices' : 'Load invoices'}\n </Button>\n )}\n\n {count !== null && (\n <Badge color={count === 0 ? 'gray' : 'green'} variant=\"light\" style={{ alignSelf: 'flex-start' }}>\n {count} invoice{count === 1 ? '' : 's'}\n </Badge>\n )}\n\n {error && (\n <Alert color=\"red\" styles={actionAlertStyles}>\n {error}\n </Alert>\n )}\n {runtime.error?.message && !error && (\n <Alert color=\"red\" styles={actionAlertStyles}>\n {runtime.error.message}\n </Alert>\n )}\n </Stack>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,SAAS,aAAa,SAAS,gBAAgB;AACtD,SAAS,OAAO,QAAQ,QAAQ,aAAa;AAE7C,SAAS,mBAAmB;AAMrB,IAAM,4BAA2D,CAAC,EAAE,QAAQ,SAAS,YAAY,cAAc,MAAM;AAC1H,QAAM,WAAW,qBAAqB;AACtC,QAAM,YAAY,QAAQ,MAAM,UAAU,eAAe,KAAK,IAAI,CAAC,QAAQ,CAAC;AAE5E,QAAM,SAAS,QAAQ,MAAM,2BAA2B,MAAM,GAAG,CAAC,MAAM,CAAC;AACzE,QAAM,aAAa,OAAO;AAC1B,QAAM,gBAAgB,CAAC,CAAC,YAAY;AACpC,QAAM,iBAAiB,iBAAiB,aAAa,WAAY,aAAa,WAAY,cAAc;AAExG,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,IAAI;AAEtD,QAAM,UAAU,YAAY,YAAY;AACtC,QAAI,CAAC,eAAe;AAClB,eAAS,uCAAuC;AAChD;AAAA,IACF;AACA,QAAI,CAAC,eAAe;AAClB,eAAS,0CAA0C;AACnD;AAAA,IACF;AAEA,eAAW,IAAI;AACf,aAAS,IAAI;AAEb,QAAI;AACF,YAAM,UAAU,MAAM,cAAc;AAEpC,UAAI,CAAC,QAAQ,SAAS;AACpB,cAAM,IAAI,MAAM,QAAQ,SAAS,0BAA0B;AAAA,MAC7D;AAAA,IACF,SAAS,KAAK;AACZ,YAAM,UAAU,eAAe,QAAQ,IAAI,UAAU;AACrD,eAAS,OAAO;AAAA,IAClB,UAAE;AACA,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,eAAe,aAAa,CAAC;AAEjC,QAAM,QAAQ,OAAO,QAAQ,QAAQ,UAAU,WAAW,QAAQ,OAAO,QAAQ;AAEjF,SACE,oCAAC,SAAM,KAAI,QACR,CAAC,iBACA,oCAAC,oBAAM,OAAM,UAAS,QAAQ,qBAAmB,2DAEjD,GAGD,kBACC,oCAAC,oBAAM,OAAM,UAAS,QAAQ,qBAAmB,qFAEjD,GAGD,iBAAiB,CAAC,kBACjB,oCAAC,UAAO,MAAK,MAAK,aAAa,UAAU,oCAAC,UAAO,MAAM,IAAI,IAAK,oCAAC,eAAY,MAAM,IAAI,GAAI,SAAS,SAAS,UAAU,cAAc,WAClI,UAAU,OAAO,qBAAqB,eACzC,GAGD,UAAU,QACT,oCAAC,SAAM,OAAO,UAAU,IAAI,SAAS,SAAS,SAAQ,SAAQ,OAAO,EAAE,WAAW,aAAa,KAC5F,OAAM,YAAS,UAAU,IAAI,KAAK,GACrC,GAGD,SACC,oCAAC,oBAAM,OAAM,OAAM,QAAQ,qBACxB,KACH,GAED,QAAQ,OAAO,WAAW,CAAC,SAC1B,oCAAC,oBAAM,OAAM,OAAM,QAAQ,qBACxB,QAAQ,MAAM,OACjB,CAEJ;AAEJ;","names":[]}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseXeroPaymentCreateInputs,
|
|
3
|
+
serializeXeroPaymentCreateInputs
|
|
4
|
+
} from "./chunk-RWUZOB62.js";
|
|
5
|
+
import {
|
|
6
|
+
DataInput
|
|
7
|
+
} from "./chunk-4PONO4US.js";
|
|
8
|
+
import "./chunk-XPBKU3JX.js";
|
|
9
|
+
import "./chunk-NZ7AXA7B.js";
|
|
10
|
+
import "./chunk-F4PTFXZH.js";
|
|
11
|
+
import "./chunk-IH4T7V4C.js";
|
|
12
|
+
import "./chunk-PYNDJDWZ.js";
|
|
13
|
+
import "./chunk-NIXT2SBH.js";
|
|
14
|
+
import "./chunk-JIDTNKKL.js";
|
|
15
|
+
import "./chunk-JVROGQ7Q.js";
|
|
16
|
+
import "./chunk-IIIZZ4E4.js";
|
|
17
|
+
import "./chunk-HT6L7A5M.js";
|
|
18
|
+
import "./chunk-N3ORMGAI.js";
|
|
19
|
+
import "./chunk-NCSGIRRQ.js";
|
|
20
|
+
import "./chunk-EBFFDDAS.js";
|
|
21
|
+
import "./chunk-TS2LNBF2.js";
|
|
22
|
+
|
|
23
|
+
// src/mantine/blocks/action/actionTypes/xero/paymentCreate/XeroPaymentCreateConfig.tsx
|
|
24
|
+
import React, { useCallback, useEffect, useState } from "react";
|
|
25
|
+
import { Divider, Group, Stack, Switch, Text } from "@mantine/core";
|
|
26
|
+
var XeroPaymentCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
|
|
27
|
+
const [local, setLocal] = useState(() => parseXeroPaymentCreateInputs(inputs));
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
setLocal(parseXeroPaymentCreateInputs(inputs));
|
|
30
|
+
}, [inputs]);
|
|
31
|
+
const update = useCallback(
|
|
32
|
+
(patch) => {
|
|
33
|
+
const updated = { ...local, ...patch };
|
|
34
|
+
setLocal(updated);
|
|
35
|
+
onInputsChange(serializeXeroPaymentCreateInputs(updated));
|
|
36
|
+
},
|
|
37
|
+
[local, onInputsChange]
|
|
38
|
+
);
|
|
39
|
+
const editorDocument = editor?.document || [];
|
|
40
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: "lg" }, /* @__PURE__ */ React.createElement(
|
|
41
|
+
Switch,
|
|
42
|
+
{
|
|
43
|
+
label: "Managed by Xero oracle",
|
|
44
|
+
description: "Payment work items are created by the contracted xero-oracle from approved claims. The flow owner reviews each card in flow mode (invoice attached) and approves \u2014 the oracle authorises the invoice and records the payment. No manual fields.",
|
|
45
|
+
checked: local.managedByOracle,
|
|
46
|
+
onChange: (event) => update({ managedByOracle: event.currentTarget.checked })
|
|
47
|
+
}
|
|
48
|
+
), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, "The Xero account and the bank account payments debit come from this flow's connections, picked once before a session starts \u2014 not from this block."), local.managedByOracle && /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, "Configuration continues in flow mode on this block: the per-payment approval cards."), !local.managedByOracle && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
49
|
+
DataInput,
|
|
50
|
+
{
|
|
51
|
+
label: "Xero org override (optional)",
|
|
52
|
+
description: "Leave blank to use the organisation picked for this flow. Set it only when this block must post to a different org on the same connection.",
|
|
53
|
+
value: local.tenant_id,
|
|
54
|
+
onChange: (value) => update({ tenant_id: value }),
|
|
55
|
+
editorDocument,
|
|
56
|
+
currentBlockId: blockId
|
|
57
|
+
}
|
|
58
|
+
), /* @__PURE__ */ React.createElement(Divider, { variant: "dashed" }), /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 600 }, "Payment"), /* @__PURE__ */ React.createElement(
|
|
59
|
+
DataInput,
|
|
60
|
+
{
|
|
61
|
+
label: "Invoice ID",
|
|
62
|
+
description: "Xero InvoiceID (UUID) of the authorised invoice being paid. Work items usually supply this from invoice.create completion.",
|
|
63
|
+
value: local.InvoiceID,
|
|
64
|
+
onChange: (value) => update({ InvoiceID: value }),
|
|
65
|
+
editorDocument,
|
|
66
|
+
currentBlockId: blockId,
|
|
67
|
+
required: true
|
|
68
|
+
}
|
|
69
|
+
), /* @__PURE__ */ React.createElement(Group, { grow: true }, /* @__PURE__ */ React.createElement(
|
|
70
|
+
DataInput,
|
|
71
|
+
{
|
|
72
|
+
label: "Amount",
|
|
73
|
+
placeholder: "100.00",
|
|
74
|
+
value: local.Amount,
|
|
75
|
+
onChange: (value) => update({ Amount: value }),
|
|
76
|
+
editorDocument,
|
|
77
|
+
currentBlockId: blockId,
|
|
78
|
+
required: true
|
|
79
|
+
}
|
|
80
|
+
), /* @__PURE__ */ React.createElement(
|
|
81
|
+
DataInput,
|
|
82
|
+
{
|
|
83
|
+
label: "Date",
|
|
84
|
+
placeholder: "2026-05-12",
|
|
85
|
+
description: "Defaults to today if blank.",
|
|
86
|
+
value: local.Date,
|
|
87
|
+
onChange: (value) => update({ Date: value }),
|
|
88
|
+
editorDocument,
|
|
89
|
+
currentBlockId: blockId
|
|
90
|
+
}
|
|
91
|
+
)), /* @__PURE__ */ React.createElement(
|
|
92
|
+
DataInput,
|
|
93
|
+
{
|
|
94
|
+
label: "Reference",
|
|
95
|
+
description: "Free-text reference. Use the on-chain transaction hash for crypto payouts so the bookkeeper can reconcile.",
|
|
96
|
+
value: local.Reference,
|
|
97
|
+
onChange: (value) => update({ Reference: value }),
|
|
98
|
+
editorDocument,
|
|
99
|
+
currentBlockId: blockId
|
|
100
|
+
}
|
|
101
|
+
), /* @__PURE__ */ React.createElement(
|
|
102
|
+
DataInput,
|
|
103
|
+
{
|
|
104
|
+
label: "Currency rate (optional)",
|
|
105
|
+
description: "Exchange rate for multicurrency payments.",
|
|
106
|
+
value: local.CurrencyRate,
|
|
107
|
+
onChange: (value) => update({ CurrencyRate: value }),
|
|
108
|
+
editorDocument,
|
|
109
|
+
currentBlockId: blockId
|
|
110
|
+
}
|
|
111
|
+
))));
|
|
112
|
+
};
|
|
113
|
+
export {
|
|
114
|
+
XeroPaymentCreateConfig
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=XeroPaymentCreateConfig-RPMAIK6E.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/xero/paymentCreate/XeroPaymentCreateConfig.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { Divider, Group, Stack, Switch, Text } from '@mantine/core';\nimport { DataInput } from '@/mantine/components/DataInput';\nimport type { ActionTypeConfigProps } from '../../../actionTypeUI';\nimport { parseXeroPaymentCreateInputs, serializeXeroPaymentCreateInputs, type XeroPaymentCreateInputs } from '@/core/lib/actionRegistry/actions/xero/paymentCreate.types';\n\nexport const XeroPaymentCreateConfig: React.FC<ActionTypeConfigProps> = ({ inputs, onInputsChange, editor, blockId }) => {\n const [local, setLocal] = useState<XeroPaymentCreateInputs>(() => parseXeroPaymentCreateInputs(inputs));\n\n useEffect(() => {\n setLocal(parseXeroPaymentCreateInputs(inputs));\n }, [inputs]);\n\n const update = useCallback(\n (patch: Partial<XeroPaymentCreateInputs>) => {\n const updated = { ...local, ...patch };\n setLocal(updated);\n onInputsChange(serializeXeroPaymentCreateInputs(updated));\n },\n [local, onInputsChange]\n );\n\n const editorDocument = editor?.document || [];\n\n return (\n <Stack gap=\"lg\">\n <Switch\n label=\"Managed by Xero oracle\"\n description=\"Payment work items are created by the contracted xero-oracle from approved claims. The flow owner reviews each card in flow mode (invoice attached) and approves — the oracle authorises the invoice and records the payment. No manual fields.\"\n checked={local.managedByOracle}\n onChange={(event) => update({ managedByOracle: event.currentTarget.checked })}\n />\n\n <Text size=\"xs\" c=\"dimmed\">\n The Xero account and the bank account payments debit come from this flow's connections, picked once before a session starts — not from this block.\n </Text>\n\n {local.managedByOracle && (\n <Text size=\"xs\" c=\"dimmed\">\n Configuration continues in flow mode on this block: the per-payment approval cards.\n </Text>\n )}\n\n {!local.managedByOracle && (\n <>\n <DataInput\n label=\"Xero org override (optional)\"\n description=\"Leave blank to use the organisation picked for this flow. Set it only when this block must post to a different org on the same connection.\"\n value={local.tenant_id}\n onChange={(value) => update({ tenant_id: value })}\n editorDocument={editorDocument}\n currentBlockId={blockId}\n />\n\n <Divider variant=\"dashed\" />\n\n <Stack gap=\"md\">\n <Text size=\"sm\" fw={600}>\n Payment\n </Text>\n\n <DataInput\n label=\"Invoice ID\"\n description=\"Xero InvoiceID (UUID) of the authorised invoice being paid. Work items usually supply this from invoice.create completion.\"\n value={local.InvoiceID}\n onChange={(value) => update({ InvoiceID: value })}\n editorDocument={editorDocument}\n currentBlockId={blockId}\n required\n />\n\n <Group grow>\n <DataInput\n label=\"Amount\"\n placeholder=\"100.00\"\n value={local.Amount}\n onChange={(value) => update({ Amount: value })}\n editorDocument={editorDocument}\n currentBlockId={blockId}\n required\n />\n <DataInput\n label=\"Date\"\n placeholder=\"2026-05-12\"\n description=\"Defaults to today if blank.\"\n value={local.Date}\n onChange={(value) => update({ Date: value })}\n editorDocument={editorDocument}\n currentBlockId={blockId}\n />\n </Group>\n\n <DataInput\n label=\"Reference\"\n description=\"Free-text reference. Use the on-chain transaction hash for crypto payouts so the bookkeeper can reconcile.\"\n value={local.Reference}\n onChange={(value) => update({ Reference: value })}\n editorDocument={editorDocument}\n currentBlockId={blockId}\n />\n\n <DataInput\n label=\"Currency rate (optional)\"\n description=\"Exchange rate for multicurrency payments.\"\n value={local.CurrencyRate}\n onChange={(value) => update({ CurrencyRate: value })}\n editorDocument={editorDocument}\n currentBlockId={blockId}\n />\n </Stack>\n </>\n )}\n </Stack>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,SAAS,aAAa,WAAW,gBAAgB;AACxD,SAAS,SAAS,OAAO,OAAO,QAAQ,YAAY;AAK7C,IAAM,0BAA2D,CAAC,EAAE,QAAQ,gBAAgB,QAAQ,QAAQ,MAAM;AACvH,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAkC,MAAM,6BAA6B,MAAM,CAAC;AAEtG,YAAU,MAAM;AACd,aAAS,6BAA6B,MAAM,CAAC;AAAA,EAC/C,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,SAAS;AAAA,IACb,CAAC,UAA4C;AAC3C,YAAM,UAAU,EAAE,GAAG,OAAO,GAAG,MAAM;AACrC,eAAS,OAAO;AAChB,qBAAe,iCAAiC,OAAO,CAAC;AAAA,IAC1D;AAAA,IACA,CAAC,OAAO,cAAc;AAAA,EACxB;AAEA,QAAM,iBAAiB,QAAQ,YAAY,CAAC;AAE5C,SACE,oCAAC,SAAM,KAAI,QACT;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,SAAS,MAAM;AAAA,MACf,UAAU,CAAC,UAAU,OAAO,EAAE,iBAAiB,MAAM,cAAc,QAAQ,CAAC;AAAA;AAAA,EAC9E,GAEA,oCAAC,QAAK,MAAK,MAAK,GAAE,YAAS,yJAE3B,GAEC,MAAM,mBACL,oCAAC,QAAK,MAAK,MAAK,GAAE,YAAS,qFAE3B,GAGD,CAAC,MAAM,mBACN,0DACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,OAAO,MAAM;AAAA,MACb,UAAU,CAAC,UAAU,OAAO,EAAE,WAAW,MAAM,CAAC;AAAA,MAChD;AAAA,MACA,gBAAgB;AAAA;AAAA,EAClB,GAEA,oCAAC,WAAQ,SAAQ,UAAS,GAE1B,oCAAC,SAAM,KAAI,QACT,oCAAC,QAAK,MAAK,MAAK,IAAI,OAAK,SAEzB,GAEA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,OAAO,MAAM;AAAA,MACb,UAAU,CAAC,UAAU,OAAO,EAAE,WAAW,MAAM,CAAC;AAAA,MAChD;AAAA,MACA,gBAAgB;AAAA,MAChB,UAAQ;AAAA;AAAA,EACV,GAEA,oCAAC,SAAM,MAAI,QACT;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,OAAO,MAAM;AAAA,MACb,UAAU,CAAC,UAAU,OAAO,EAAE,QAAQ,MAAM,CAAC;AAAA,MAC7C;AAAA,MACA,gBAAgB;AAAA,MAChB,UAAQ;AAAA;AAAA,EACV,GACA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,OAAO,MAAM;AAAA,MACb,UAAU,CAAC,UAAU,OAAO,EAAE,MAAM,MAAM,CAAC;AAAA,MAC3C;AAAA,MACA,gBAAgB;AAAA;AAAA,EAClB,CACF,GAEA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,OAAO,MAAM;AAAA,MACb,UAAU,CAAC,UAAU,OAAO,EAAE,WAAW,MAAM,CAAC;AAAA,MAChD;AAAA,MACA,gBAAgB;AAAA;AAAA,EAClB,GAEA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,OAAO,MAAM;AAAA,MACb,UAAU,CAAC,UAAU,OAAO,EAAE,cAAc,MAAM,CAAC;AAAA,MACnD;AAAA,MACA,gBAAgB;AAAA;AAAA,EAClB,CACF,CACF,CAEJ;AAEJ;","names":[]}
|