@powerhousedao/network-admin 0.0.1
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/LICENSE +661 -0
- package/README.md +179 -0
- package/dist/document-models/index.d.ts +6 -0
- package/dist/document-models/index.d.ts.map +1 -0
- package/dist/document-models/index.js +4 -0
- package/dist/document-models/network-profile/gen/actions.d.ts +4 -0
- package/dist/document-models/network-profile/gen/actions.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/actions.js +1 -0
- package/dist/document-models/network-profile/gen/creators.d.ts +2 -0
- package/dist/document-models/network-profile/gen/creators.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/creators.js +1 -0
- package/dist/document-models/network-profile/gen/document-model.d.ts +3 -0
- package/dist/document-models/network-profile/gen/document-model.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/document-model.js +158 -0
- package/dist/document-models/network-profile/gen/index.d.ts +6 -0
- package/dist/document-models/network-profile/gen/index.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/index.js +5 -0
- package/dist/document-models/network-profile/gen/network-profile-management/actions.d.ts +48 -0
- package/dist/document-models/network-profile/gen/network-profile-management/actions.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/network-profile-management/actions.js +1 -0
- package/dist/document-models/network-profile/gen/network-profile-management/creators.d.ts +14 -0
- package/dist/document-models/network-profile/gen/network-profile-management/creators.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/network-profile-management/creators.js +13 -0
- package/dist/document-models/network-profile/gen/network-profile-management/error.d.ts +2 -0
- package/dist/document-models/network-profile/gen/network-profile-management/error.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/network-profile-management/error.js +1 -0
- package/dist/document-models/network-profile/gen/network-profile-management/object.d.ts +17 -0
- package/dist/document-models/network-profile/gen/network-profile-management/object.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/network-profile-management/object.js +37 -0
- package/dist/document-models/network-profile/gen/network-profile-management/operations.d.ts +17 -0
- package/dist/document-models/network-profile/gen/network-profile-management/operations.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/network-profile-management/operations.js +1 -0
- package/dist/document-models/network-profile/gen/object.d.ts +16 -0
- package/dist/document-models/network-profile/gen/object.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/object.js +25 -0
- package/dist/document-models/network-profile/gen/reducer.d.ts +3 -0
- package/dist/document-models/network-profile/gen/reducer.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/reducer.js +60 -0
- package/dist/document-models/network-profile/gen/schema/index.d.ts +3 -0
- package/dist/document-models/network-profile/gen/schema/index.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/schema/index.js +2 -0
- package/dist/document-models/network-profile/gen/schema/types.d.ts +184 -0
- package/dist/document-models/network-profile/gen/schema/types.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/schema/types.js +1 -0
- package/dist/document-models/network-profile/gen/schema/zod.d.ts +23 -0
- package/dist/document-models/network-profile/gen/schema/zod.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/schema/zod.js +83 -0
- package/dist/document-models/network-profile/gen/types.d.ts +10 -0
- package/dist/document-models/network-profile/gen/types.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/types.js +1 -0
- package/dist/document-models/network-profile/gen/utils.d.ts +13 -0
- package/dist/document-models/network-profile/gen/utils.d.ts.map +1 -0
- package/dist/document-models/network-profile/gen/utils.js +52 -0
- package/dist/document-models/network-profile/index.d.ts +35 -0
- package/dist/document-models/network-profile/index.d.ts.map +1 -0
- package/dist/document-models/network-profile/index.js +21 -0
- package/dist/document-models/network-profile/ph-factories.d.ts +27 -0
- package/dist/document-models/network-profile/ph-factories.d.ts.map +1 -0
- package/dist/document-models/network-profile/ph-factories.js +60 -0
- package/dist/document-models/network-profile/src/reducers/network-profile-management.d.ts +8 -0
- package/dist/document-models/network-profile/src/reducers/network-profile-management.d.ts.map +1 -0
- package/dist/document-models/network-profile/src/reducers/network-profile-management.js +40 -0
- package/dist/document-models/network-profile/src/tests/document-model.test.d.ts +6 -0
- package/dist/document-models/network-profile/src/tests/document-model.test.d.ts.map +1 -0
- package/dist/document-models/network-profile/src/tests/document-model.test.js +18 -0
- package/dist/document-models/network-profile/src/tests/network-profile-management.test.d.ts +6 -0
- package/dist/document-models/network-profile/src/tests/network-profile-management.test.d.ts.map +1 -0
- package/dist/document-models/network-profile/src/tests/network-profile-management.test.js +164 -0
- package/dist/document-models/network-profile/src/utils.d.ts +2 -0
- package/dist/document-models/network-profile/src/utils.d.ts.map +1 -0
- package/dist/document-models/network-profile/src/utils.js +1 -0
- package/dist/document-models/payment-terms/gen/actions.d.ts +8 -0
- package/dist/document-models/payment-terms/gen/actions.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/actions.js +3 -0
- package/dist/document-models/payment-terms/gen/clauses/actions.d.ts +28 -0
- package/dist/document-models/payment-terms/gen/clauses/actions.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/clauses/actions.js +1 -0
- package/dist/document-models/payment-terms/gen/clauses/creators.d.ts +9 -0
- package/dist/document-models/payment-terms/gen/clauses/creators.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/clauses/creators.js +8 -0
- package/dist/document-models/payment-terms/gen/clauses/error.d.ts +41 -0
- package/dist/document-models/payment-terms/gen/clauses/error.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/clauses/error.js +44 -0
- package/dist/document-models/payment-terms/gen/clauses/object.d.ts +12 -0
- package/dist/document-models/payment-terms/gen/clauses/object.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/clauses/object.js +22 -0
- package/dist/document-models/payment-terms/gen/clauses/operations.d.ts +12 -0
- package/dist/document-models/payment-terms/gen/clauses/operations.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/clauses/operations.js +1 -0
- package/dist/document-models/payment-terms/gen/creators.d.ts +4 -0
- package/dist/document-models/payment-terms/gen/creators.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/creators.js +3 -0
- package/dist/document-models/payment-terms/gen/document-model.d.ts +3 -0
- package/dist/document-models/payment-terms/gen/document-model.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/document-model.js +318 -0
- package/dist/document-models/payment-terms/gen/index.d.ts +6 -0
- package/dist/document-models/payment-terms/gen/index.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/index.js +5 -0
- package/dist/document-models/payment-terms/gen/milestones/actions.d.ts +24 -0
- package/dist/document-models/payment-terms/gen/milestones/actions.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/milestones/actions.js +1 -0
- package/dist/document-models/payment-terms/gen/milestones/creators.d.ts +8 -0
- package/dist/document-models/payment-terms/gen/milestones/creators.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/milestones/creators.js +7 -0
- package/dist/document-models/payment-terms/gen/milestones/error.d.ts +27 -0
- package/dist/document-models/payment-terms/gen/milestones/error.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/milestones/error.js +26 -0
- package/dist/document-models/payment-terms/gen/milestones/object.d.ts +11 -0
- package/dist/document-models/payment-terms/gen/milestones/object.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/milestones/object.js +19 -0
- package/dist/document-models/payment-terms/gen/milestones/operations.d.ts +11 -0
- package/dist/document-models/payment-terms/gen/milestones/operations.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/milestones/operations.js +1 -0
- package/dist/document-models/payment-terms/gen/object.d.ts +20 -0
- package/dist/document-models/payment-terms/gen/object.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/object.js +33 -0
- package/dist/document-models/payment-terms/gen/reducer.d.ts +3 -0
- package/dist/document-models/payment-terms/gen/reducer.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/reducer.js +86 -0
- package/dist/document-models/payment-terms/gen/schema/index.d.ts +3 -0
- package/dist/document-models/payment-terms/gen/schema/index.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/schema/index.js +2 -0
- package/dist/document-models/payment-terms/gen/schema/types.d.ts +298 -0
- package/dist/document-models/payment-terms/gen/schema/types.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/schema/types.js +1 -0
- package/dist/document-models/payment-terms/gen/schema/zod.d.ts +41 -0
- package/dist/document-models/payment-terms/gen/schema/zod.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/schema/zod.js +291 -0
- package/dist/document-models/payment-terms/gen/terms/actions.d.ts +28 -0
- package/dist/document-models/payment-terms/gen/terms/actions.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/terms/actions.js +1 -0
- package/dist/document-models/payment-terms/gen/terms/creators.d.ts +9 -0
- package/dist/document-models/payment-terms/gen/terms/creators.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/terms/creators.js +8 -0
- package/dist/document-models/payment-terms/gen/terms/error.d.ts +2 -0
- package/dist/document-models/payment-terms/gen/terms/error.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/terms/error.js +1 -0
- package/dist/document-models/payment-terms/gen/terms/object.d.ts +12 -0
- package/dist/document-models/payment-terms/gen/terms/object.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/terms/object.js +22 -0
- package/dist/document-models/payment-terms/gen/terms/operations.d.ts +12 -0
- package/dist/document-models/payment-terms/gen/terms/operations.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/terms/operations.js +1 -0
- package/dist/document-models/payment-terms/gen/types.d.ts +10 -0
- package/dist/document-models/payment-terms/gen/types.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/types.js +1 -0
- package/dist/document-models/payment-terms/gen/utils.d.ts +13 -0
- package/dist/document-models/payment-terms/gen/utils.d.ts.map +1 -0
- package/dist/document-models/payment-terms/gen/utils.js +54 -0
- package/dist/document-models/payment-terms/index.d.ts +41 -0
- package/dist/document-models/payment-terms/index.d.ts.map +1 -0
- package/dist/document-models/payment-terms/index.js +21 -0
- package/dist/document-models/payment-terms/ph-factories.d.ts +27 -0
- package/dist/document-models/payment-terms/ph-factories.d.ts.map +1 -0
- package/dist/document-models/payment-terms/ph-factories.js +62 -0
- package/dist/document-models/payment-terms/src/reducers/clauses.d.ts +3 -0
- package/dist/document-models/payment-terms/src/reducers/clauses.d.ts.map +1 -0
- package/dist/document-models/payment-terms/src/reducers/clauses.js +69 -0
- package/dist/document-models/payment-terms/src/reducers/milestones.d.ts +3 -0
- package/dist/document-models/payment-terms/src/reducers/milestones.d.ts.map +1 -0
- package/dist/document-models/payment-terms/src/reducers/milestones.js +57 -0
- package/dist/document-models/payment-terms/src/reducers/terms.d.ts +3 -0
- package/dist/document-models/payment-terms/src/reducers/terms.d.ts.map +1 -0
- package/dist/document-models/payment-terms/src/reducers/terms.js +48 -0
- package/dist/document-models/payment-terms/src/tests/clauses.test.d.ts +6 -0
- package/dist/document-models/payment-terms/src/tests/clauses.test.d.ts.map +1 -0
- package/dist/document-models/payment-terms/src/tests/clauses.test.js +64 -0
- package/dist/document-models/payment-terms/src/tests/document-model.test.d.ts +6 -0
- package/dist/document-models/payment-terms/src/tests/document-model.test.d.ts.map +1 -0
- package/dist/document-models/payment-terms/src/tests/document-model.test.js +18 -0
- package/dist/document-models/payment-terms/src/tests/milestones.test.d.ts +6 -0
- package/dist/document-models/payment-terms/src/tests/milestones.test.d.ts.map +1 -0
- package/dist/document-models/payment-terms/src/tests/milestones.test.js +56 -0
- package/dist/document-models/payment-terms/src/tests/terms.test.d.ts +6 -0
- package/dist/document-models/payment-terms/src/tests/terms.test.d.ts.map +1 -0
- package/dist/document-models/payment-terms/src/tests/terms.test.js +64 -0
- package/dist/document-models/payment-terms/src/utils.d.ts +2 -0
- package/dist/document-models/payment-terms/src/utils.d.ts.map +1 -0
- package/dist/document-models/payment-terms/src/utils.js +1 -0
- package/dist/document-models/request-for-proposals/gen/actions.d.ts +8 -0
- package/dist/document-models/request-for-proposals/gen/actions.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/actions.js +3 -0
- package/dist/document-models/request-for-proposals/gen/contex-document/actions.d.ts +12 -0
- package/dist/document-models/request-for-proposals/gen/contex-document/actions.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/contex-document/actions.js +1 -0
- package/dist/document-models/request-for-proposals/gen/contex-document/creators.d.ts +5 -0
- package/dist/document-models/request-for-proposals/gen/contex-document/creators.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/contex-document/creators.js +4 -0
- package/dist/document-models/request-for-proposals/gen/contex-document/error.d.ts +2 -0
- package/dist/document-models/request-for-proposals/gen/contex-document/error.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/contex-document/error.js +1 -0
- package/dist/document-models/request-for-proposals/gen/contex-document/object.d.ts +8 -0
- package/dist/document-models/request-for-proposals/gen/contex-document/object.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/contex-document/object.js +10 -0
- package/dist/document-models/request-for-proposals/gen/contex-document/operations.d.ts +8 -0
- package/dist/document-models/request-for-proposals/gen/contex-document/operations.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/contex-document/operations.js +1 -0
- package/dist/document-models/request-for-proposals/gen/creators.d.ts +4 -0
- package/dist/document-models/request-for-proposals/gen/creators.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/creators.js +3 -0
- package/dist/document-models/request-for-proposals/gen/document-model.d.ts +3 -0
- package/dist/document-models/request-for-proposals/gen/document-model.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/document-model.js +117 -0
- package/dist/document-models/request-for-proposals/gen/index.d.ts +6 -0
- package/dist/document-models/request-for-proposals/gen/index.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/index.js +5 -0
- package/dist/document-models/request-for-proposals/gen/object.d.ts +20 -0
- package/dist/document-models/request-for-proposals/gen/object.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/object.js +33 -0
- package/dist/document-models/request-for-proposals/gen/proposals/actions.d.ts +16 -0
- package/dist/document-models/request-for-proposals/gen/proposals/actions.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/proposals/actions.js +1 -0
- package/dist/document-models/request-for-proposals/gen/proposals/creators.d.ts +6 -0
- package/dist/document-models/request-for-proposals/gen/proposals/creators.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/proposals/creators.js +5 -0
- package/dist/document-models/request-for-proposals/gen/proposals/error.d.ts +2 -0
- package/dist/document-models/request-for-proposals/gen/proposals/error.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/proposals/error.js +1 -0
- package/dist/document-models/request-for-proposals/gen/proposals/object.d.ts +9 -0
- package/dist/document-models/request-for-proposals/gen/proposals/object.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/proposals/object.js +13 -0
- package/dist/document-models/request-for-proposals/gen/proposals/operations.d.ts +9 -0
- package/dist/document-models/request-for-proposals/gen/proposals/operations.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/proposals/operations.js +1 -0
- package/dist/document-models/request-for-proposals/gen/reducer.d.ts +3 -0
- package/dist/document-models/request-for-proposals/gen/reducer.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/reducer.js +42 -0
- package/dist/document-models/request-for-proposals/gen/rfp-state/actions.d.ts +8 -0
- package/dist/document-models/request-for-proposals/gen/rfp-state/actions.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/rfp-state/actions.js +1 -0
- package/dist/document-models/request-for-proposals/gen/rfp-state/creators.d.ts +4 -0
- package/dist/document-models/request-for-proposals/gen/rfp-state/creators.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/rfp-state/creators.js +3 -0
- package/dist/document-models/request-for-proposals/gen/rfp-state/error.d.ts +2 -0
- package/dist/document-models/request-for-proposals/gen/rfp-state/error.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/rfp-state/error.js +1 -0
- package/dist/document-models/request-for-proposals/gen/rfp-state/object.d.ts +7 -0
- package/dist/document-models/request-for-proposals/gen/rfp-state/object.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/rfp-state/object.js +7 -0
- package/dist/document-models/request-for-proposals/gen/rfp-state/operations.d.ts +7 -0
- package/dist/document-models/request-for-proposals/gen/rfp-state/operations.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/rfp-state/operations.js +1 -0
- package/dist/document-models/request-for-proposals/gen/schema/index.d.ts +3 -0
- package/dist/document-models/request-for-proposals/gen/schema/index.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/schema/index.js +2 -0
- package/dist/document-models/request-for-proposals/gen/schema/types.d.ts +231 -0
- package/dist/document-models/request-for-proposals/gen/schema/types.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/schema/types.js +1 -0
- package/dist/document-models/request-for-proposals/gen/schema/zod.d.ts +30 -0
- package/dist/document-models/request-for-proposals/gen/schema/zod.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/schema/zod.js +176 -0
- package/dist/document-models/request-for-proposals/gen/types.d.ts +10 -0
- package/dist/document-models/request-for-proposals/gen/types.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/types.js +1 -0
- package/dist/document-models/request-for-proposals/gen/utils.d.ts +13 -0
- package/dist/document-models/request-for-proposals/gen/utils.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/gen/utils.js +59 -0
- package/dist/document-models/request-for-proposals/index.d.ts +30 -0
- package/dist/document-models/request-for-proposals/index.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/index.js +21 -0
- package/dist/document-models/request-for-proposals/ph-factories.d.ts +27 -0
- package/dist/document-models/request-for-proposals/ph-factories.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/ph-factories.js +67 -0
- package/dist/document-models/request-for-proposals/src/reducers/contex-document.d.ts +8 -0
- package/dist/document-models/request-for-proposals/src/reducers/contex-document.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/src/reducers/contex-document.js +27 -0
- package/dist/document-models/request-for-proposals/src/reducers/proposals.d.ts +8 -0
- package/dist/document-models/request-for-proposals/src/reducers/proposals.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/src/reducers/proposals.js +56 -0
- package/dist/document-models/request-for-proposals/src/reducers/rfp-state.d.ts +8 -0
- package/dist/document-models/request-for-proposals/src/reducers/rfp-state.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/src/reducers/rfp-state.js +24 -0
- package/dist/document-models/request-for-proposals/src/tests/contex-document.test.d.ts +5 -0
- package/dist/document-models/request-for-proposals/src/tests/contex-document.test.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/src/tests/contex-document.test.js +185 -0
- package/dist/document-models/request-for-proposals/src/tests/document-model.test.d.ts +6 -0
- package/dist/document-models/request-for-proposals/src/tests/document-model.test.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/src/tests/document-model.test.js +18 -0
- package/dist/document-models/request-for-proposals/src/tests/proposals.test.d.ts +5 -0
- package/dist/document-models/request-for-proposals/src/tests/proposals.test.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/src/tests/proposals.test.js +332 -0
- package/dist/document-models/request-for-proposals/src/tests/rfp-state.test.d.ts +5 -0
- package/dist/document-models/request-for-proposals/src/tests/rfp-state.test.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/src/tests/rfp-state.test.js +243 -0
- package/dist/document-models/request-for-proposals/src/utils.d.ts +2 -0
- package/dist/document-models/request-for-proposals/src/utils.d.ts.map +1 -0
- package/dist/document-models/request-for-proposals/src/utils.js +1 -0
- package/dist/document-models/workstream/gen/actions.d.ts +6 -0
- package/dist/document-models/workstream/gen/actions.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/actions.js +2 -0
- package/dist/document-models/workstream/gen/creators.d.ts +3 -0
- package/dist/document-models/workstream/gen/creators.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/creators.js +2 -0
- package/dist/document-models/workstream/gen/document-model.d.ts +3 -0
- package/dist/document-models/workstream/gen/document-model.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/document-model.js +143 -0
- package/dist/document-models/workstream/gen/index.d.ts +6 -0
- package/dist/document-models/workstream/gen/index.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/index.js +5 -0
- package/dist/document-models/workstream/gen/object.d.ts +18 -0
- package/dist/document-models/workstream/gen/object.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/object.js +27 -0
- package/dist/document-models/workstream/gen/proposals/actions.d.ts +20 -0
- package/dist/document-models/workstream/gen/proposals/actions.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/proposals/actions.js +1 -0
- package/dist/document-models/workstream/gen/proposals/creators.d.ts +7 -0
- package/dist/document-models/workstream/gen/proposals/creators.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/proposals/creators.js +6 -0
- package/dist/document-models/workstream/gen/proposals/error.d.ts +2 -0
- package/dist/document-models/workstream/gen/proposals/error.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/proposals/error.js +1 -0
- package/dist/document-models/workstream/gen/proposals/object.d.ts +10 -0
- package/dist/document-models/workstream/gen/proposals/object.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/proposals/object.js +16 -0
- package/dist/document-models/workstream/gen/proposals/operations.d.ts +10 -0
- package/dist/document-models/workstream/gen/proposals/operations.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/proposals/operations.js +1 -0
- package/dist/document-models/workstream/gen/reducer.d.ts +3 -0
- package/dist/document-models/workstream/gen/reducer.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/reducer.js +53 -0
- package/dist/document-models/workstream/gen/schema/index.d.ts +3 -0
- package/dist/document-models/workstream/gen/schema/index.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/schema/index.js +2 -0
- package/dist/document-models/workstream/gen/schema/types.d.ts +225 -0
- package/dist/document-models/workstream/gen/schema/types.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/schema/types.js +1 -0
- package/dist/document-models/workstream/gen/schema/zod.d.ts +29 -0
- package/dist/document-models/workstream/gen/schema/zod.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/schema/zod.js +158 -0
- package/dist/document-models/workstream/gen/types.d.ts +10 -0
- package/dist/document-models/workstream/gen/types.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/types.js +1 -0
- package/dist/document-models/workstream/gen/utils.d.ts +13 -0
- package/dist/document-models/workstream/gen/utils.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/utils.js +51 -0
- package/dist/document-models/workstream/gen/workstream/actions.d.ts +24 -0
- package/dist/document-models/workstream/gen/workstream/actions.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/workstream/actions.js +1 -0
- package/dist/document-models/workstream/gen/workstream/creators.d.ts +8 -0
- package/dist/document-models/workstream/gen/workstream/creators.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/workstream/creators.js +7 -0
- package/dist/document-models/workstream/gen/workstream/error.d.ts +2 -0
- package/dist/document-models/workstream/gen/workstream/error.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/workstream/error.js +1 -0
- package/dist/document-models/workstream/gen/workstream/object.d.ts +11 -0
- package/dist/document-models/workstream/gen/workstream/object.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/workstream/object.js +19 -0
- package/dist/document-models/workstream/gen/workstream/operations.d.ts +11 -0
- package/dist/document-models/workstream/gen/workstream/operations.d.ts.map +1 -0
- package/dist/document-models/workstream/gen/workstream/operations.js +1 -0
- package/dist/document-models/workstream/index.d.ts +33 -0
- package/dist/document-models/workstream/index.d.ts.map +1 -0
- package/dist/document-models/workstream/index.js +21 -0
- package/dist/document-models/workstream/ph-factories.d.ts +27 -0
- package/dist/document-models/workstream/ph-factories.d.ts.map +1 -0
- package/dist/document-models/workstream/ph-factories.js +59 -0
- package/dist/document-models/workstream/src/reducers/proposals.d.ts +8 -0
- package/dist/document-models/workstream/src/reducers/proposals.d.ts.map +1 -0
- package/dist/document-models/workstream/src/reducers/proposals.js +106 -0
- package/dist/document-models/workstream/src/reducers/workstream.d.ts +8 -0
- package/dist/document-models/workstream/src/reducers/workstream.d.ts.map +1 -0
- package/dist/document-models/workstream/src/reducers/workstream.js +69 -0
- package/dist/document-models/workstream/src/tests/document-model.test.d.ts +6 -0
- package/dist/document-models/workstream/src/tests/document-model.test.d.ts.map +1 -0
- package/dist/document-models/workstream/src/tests/document-model.test.js +18 -0
- package/dist/document-models/workstream/src/tests/proposals-reducers.test.d.ts +5 -0
- package/dist/document-models/workstream/src/tests/proposals-reducers.test.d.ts.map +1 -0
- package/dist/document-models/workstream/src/tests/proposals-reducers.test.js +316 -0
- package/dist/document-models/workstream/src/tests/proposals.test.d.ts +6 -0
- package/dist/document-models/workstream/src/tests/proposals.test.d.ts.map +1 -0
- package/dist/document-models/workstream/src/tests/proposals.test.js +48 -0
- package/dist/document-models/workstream/src/tests/workstream-reducers.test.d.ts +5 -0
- package/dist/document-models/workstream/src/tests/workstream-reducers.test.d.ts.map +1 -0
- package/dist/document-models/workstream/src/tests/workstream-reducers.test.js +208 -0
- package/dist/document-models/workstream/src/tests/workstream.test.d.ts +6 -0
- package/dist/document-models/workstream/src/tests/workstream.test.d.ts.map +1 -0
- package/dist/document-models/workstream/src/tests/workstream.test.js +56 -0
- package/dist/document-models/workstream/src/utils.d.ts +2 -0
- package/dist/document-models/workstream/src/utils.d.ts.map +1 -0
- package/dist/document-models/workstream/src/utils.js +1 -0
- package/dist/editors/index.d.ts +7 -0
- package/dist/editors/index.d.ts.map +1 -0
- package/dist/editors/index.js +5 -0
- package/dist/editors/network-admin/components/CreateDocument.d.ts +6 -0
- package/dist/editors/network-admin/components/CreateDocument.d.ts.map +1 -0
- package/dist/editors/network-admin/components/CreateDocument.js +24 -0
- package/dist/editors/network-admin/components/DriveExplorer.d.ts +6 -0
- package/dist/editors/network-admin/components/DriveExplorer.d.ts.map +1 -0
- package/dist/editors/network-admin/components/DriveExplorer.js +460 -0
- package/dist/editors/network-admin/components/EditorContainer.d.ts +12 -0
- package/dist/editors/network-admin/components/EditorContainer.d.ts.map +1 -0
- package/dist/editors/network-admin/components/EditorContainer.js +81 -0
- package/dist/editors/network-admin/components/FolderTree.d.ts +15 -0
- package/dist/editors/network-admin/components/FolderTree.d.ts.map +1 -0
- package/dist/editors/network-admin/components/FolderTree.js +44 -0
- package/dist/editors/network-admin/components/IsolatedSidebar.d.ts +22 -0
- package/dist/editors/network-admin/components/IsolatedSidebar.d.ts.map +1 -0
- package/dist/editors/network-admin/components/IsolatedSidebar.js +106 -0
- package/dist/editors/network-admin/components/IsolatedSidebarProvider.d.ts +15 -0
- package/dist/editors/network-admin/components/IsolatedSidebarProvider.d.ts.map +1 -0
- package/dist/editors/network-admin/components/IsolatedSidebarProvider.js +367 -0
- package/dist/editors/network-admin/editor.d.ts +10 -0
- package/dist/editors/network-admin/editor.d.ts.map +1 -0
- package/dist/editors/network-admin/editor.js +22 -0
- package/dist/editors/network-admin/index.d.ts +4 -0
- package/dist/editors/network-admin/index.d.ts.map +1 -0
- package/dist/editors/network-admin/index.js +12 -0
- package/dist/editors/network-admin/utils.d.ts +60 -0
- package/dist/editors/network-admin/utils.d.ts.map +1 -0
- package/dist/editors/network-admin/utils.js +67 -0
- package/dist/editors/network-profile/editor.d.ts +4 -0
- package/dist/editors/network-profile/editor.d.ts.map +1 -0
- package/dist/editors/network-profile/editor.js +151 -0
- package/dist/editors/network-profile/index.d.ts +4 -0
- package/dist/editors/network-profile/index.d.ts.map +1 -0
- package/dist/editors/network-profile/index.js +12 -0
- package/dist/editors/payment-terms/basic-terms-tab.d.ts +8 -0
- package/dist/editors/payment-terms/basic-terms-tab.d.ts.map +1 -0
- package/dist/editors/payment-terms/basic-terms-tab.js +84 -0
- package/dist/editors/payment-terms/clauses-tab.d.ts +10 -0
- package/dist/editors/payment-terms/clauses-tab.d.ts.map +1 -0
- package/dist/editors/payment-terms/clauses-tab.js +208 -0
- package/dist/editors/payment-terms/cost-materials-tab.d.ts +8 -0
- package/dist/editors/payment-terms/cost-materials-tab.d.ts.map +1 -0
- package/dist/editors/payment-terms/cost-materials-tab.js +53 -0
- package/dist/editors/payment-terms/editor.d.ts +4 -0
- package/dist/editors/payment-terms/editor.d.ts.map +1 -0
- package/dist/editors/payment-terms/editor.js +45 -0
- package/dist/editors/payment-terms/escrow-tab.d.ts +8 -0
- package/dist/editors/payment-terms/escrow-tab.d.ts.map +1 -0
- package/dist/editors/payment-terms/escrow-tab.js +56 -0
- package/dist/editors/payment-terms/evaluation-tab.d.ts +8 -0
- package/dist/editors/payment-terms/evaluation-tab.d.ts.map +1 -0
- package/dist/editors/payment-terms/evaluation-tab.js +62 -0
- package/dist/editors/payment-terms/index.d.ts +4 -0
- package/dist/editors/payment-terms/index.d.ts.map +1 -0
- package/dist/editors/payment-terms/index.js +12 -0
- package/dist/editors/payment-terms/milestones-tab.d.ts +9 -0
- package/dist/editors/payment-terms/milestones-tab.d.ts.map +1 -0
- package/dist/editors/payment-terms/milestones-tab.js +193 -0
- package/dist/editors/payment-terms/retainer-tab.d.ts +8 -0
- package/dist/editors/payment-terms/retainer-tab.d.ts.map +1 -0
- package/dist/editors/payment-terms/retainer-tab.js +82 -0
- package/dist/editors/request-for-proposals/editor.d.ts +4 -0
- package/dist/editors/request-for-proposals/editor.d.ts.map +1 -0
- package/dist/editors/request-for-proposals/editor.js +42 -0
- package/dist/editors/request-for-proposals/index.d.ts +4 -0
- package/dist/editors/request-for-proposals/index.d.ts.map +1 -0
- package/dist/editors/request-for-proposals/index.js +12 -0
- package/dist/editors/request-for-proposals/markdown-editor.d.ts +12 -0
- package/dist/editors/request-for-proposals/markdown-editor.d.ts.map +1 -0
- package/dist/editors/request-for-proposals/markdown-editor.js +119 -0
- package/dist/editors/workstream/editor.d.ts +4 -0
- package/dist/editors/workstream/editor.d.ts.map +1 -0
- package/dist/editors/workstream/editor.js +450 -0
- package/dist/editors/workstream/index.d.ts +4 -0
- package/dist/editors/workstream/index.d.ts.map +1 -0
- package/dist/editors/workstream/index.js +12 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/powerhouse.manifest.json +65 -0
- package/dist/processors/index.d.ts +2 -0
- package/dist/processors/index.d.ts.map +1 -0
- package/dist/processors/index.js +1 -0
- package/dist/style.css +18384 -0
- package/dist/subgraphs/index.d.ts +6 -0
- package/dist/subgraphs/index.d.ts.map +1 -0
- package/dist/subgraphs/index.js +4 -0
- package/dist/subgraphs/network-profile/index.d.ts +10 -0
- package/dist/subgraphs/network-profile/index.d.ts.map +1 -0
- package/dist/subgraphs/network-profile/index.js +11 -0
- package/dist/subgraphs/network-profile/resolvers.d.ts +3 -0
- package/dist/subgraphs/network-profile/resolvers.d.ts.map +1 -0
- package/dist/subgraphs/network-profile/resolvers.js +145 -0
- package/dist/subgraphs/network-profile/schema.d.ts +3 -0
- package/dist/subgraphs/network-profile/schema.d.ts.map +1 -0
- package/dist/subgraphs/network-profile/schema.js +139 -0
- package/dist/subgraphs/payment-terms/index.d.ts +10 -0
- package/dist/subgraphs/payment-terms/index.d.ts.map +1 -0
- package/dist/subgraphs/payment-terms/index.js +11 -0
- package/dist/subgraphs/payment-terms/resolvers.d.ts +3 -0
- package/dist/subgraphs/payment-terms/resolvers.d.ts.map +1 -0
- package/dist/subgraphs/payment-terms/resolvers.js +260 -0
- package/dist/subgraphs/payment-terms/schema.d.ts +3 -0
- package/dist/subgraphs/payment-terms/schema.d.ts.map +1 -0
- package/dist/subgraphs/payment-terms/schema.js +302 -0
- package/dist/subgraphs/request-for-proposals/index.d.ts +10 -0
- package/dist/subgraphs/request-for-proposals/index.d.ts.map +1 -0
- package/dist/subgraphs/request-for-proposals/index.js +11 -0
- package/dist/subgraphs/request-for-proposals/resolvers.d.ts +3 -0
- package/dist/subgraphs/request-for-proposals/resolvers.d.ts.map +1 -0
- package/dist/subgraphs/request-for-proposals/resolvers.js +110 -0
- package/dist/subgraphs/request-for-proposals/schema.d.ts +3 -0
- package/dist/subgraphs/request-for-proposals/schema.d.ts.map +1 -0
- package/dist/subgraphs/request-for-proposals/schema.js +232 -0
- package/dist/subgraphs/workstream/index.d.ts +10 -0
- package/dist/subgraphs/workstream/index.d.ts.map +1 -0
- package/dist/subgraphs/workstream/index.js +11 -0
- package/dist/subgraphs/workstream/resolvers.d.ts +3 -0
- package/dist/subgraphs/workstream/resolvers.d.ts.map +1 -0
- package/dist/subgraphs/workstream/resolvers.js +131 -0
- package/dist/subgraphs/workstream/schema.d.ts +3 -0
- package/dist/subgraphs/workstream/schema.d.ts.map +1 -0
- package/dist/subgraphs/workstream/schema.js +206 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +8 -0
- package/package.json +106 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useCallback, useMemo } from "react";
|
|
3
|
+
import { ObjectSetTable, TextInput, Textarea } from "@powerhousedao/document-engineering";
|
|
4
|
+
import { Button, Icon, toast } from "@powerhousedao/design-system";
|
|
5
|
+
import { generateId } from "document-model";
|
|
6
|
+
export function ClausesTab({ bonusClauses, penaltyClauses, dispatch, actions, currency = "USD" }) {
|
|
7
|
+
const [activeSubTab, setActiveSubTab] = useState("bonus");
|
|
8
|
+
const [isAddingNew, setIsAddingNew] = useState(false);
|
|
9
|
+
const [newClause, setNewClause] = useState({
|
|
10
|
+
condition: "",
|
|
11
|
+
amount: "",
|
|
12
|
+
comment: ""
|
|
13
|
+
});
|
|
14
|
+
const bonusColumns = useMemo(() => [
|
|
15
|
+
{
|
|
16
|
+
field: "condition",
|
|
17
|
+
title: "Condition",
|
|
18
|
+
editable: true,
|
|
19
|
+
align: "left",
|
|
20
|
+
onSave: (newValue, context) => {
|
|
21
|
+
dispatch(actions.updateBonusClause({
|
|
22
|
+
id: context.row.id,
|
|
23
|
+
condition: newValue
|
|
24
|
+
}));
|
|
25
|
+
toast("Bonus clause condition updated", {
|
|
26
|
+
type: "success",
|
|
27
|
+
});
|
|
28
|
+
return true;
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
field: "bonusAmount",
|
|
33
|
+
title: `Bonus Amount (${currency})`,
|
|
34
|
+
editable: true,
|
|
35
|
+
align: "right",
|
|
36
|
+
renderCell: (value) => {
|
|
37
|
+
return value ? `${value.value} ${value.unit}` : "";
|
|
38
|
+
},
|
|
39
|
+
onSave: (newValue, context) => {
|
|
40
|
+
const amount = parseFloat(newValue);
|
|
41
|
+
if (isNaN(amount)) {
|
|
42
|
+
toast("Please enter a valid amount", {
|
|
43
|
+
type: "error",
|
|
44
|
+
});
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
dispatch(actions.updateBonusClause({
|
|
48
|
+
id: context.row.id,
|
|
49
|
+
bonusAmount: { value: amount, unit: currency }
|
|
50
|
+
}));
|
|
51
|
+
toast("Bonus amount updated", {
|
|
52
|
+
type: "success",
|
|
53
|
+
});
|
|
54
|
+
return true;
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
field: "comment",
|
|
59
|
+
title: "Comment",
|
|
60
|
+
editable: true,
|
|
61
|
+
align: "left",
|
|
62
|
+
renderCell: (value) => value || "-",
|
|
63
|
+
onSave: (newValue, context) => {
|
|
64
|
+
dispatch(actions.updateBonusClause({
|
|
65
|
+
id: context.row.id,
|
|
66
|
+
comment: newValue || undefined
|
|
67
|
+
}));
|
|
68
|
+
toast("Bonus clause comment updated", {
|
|
69
|
+
type: "success",
|
|
70
|
+
});
|
|
71
|
+
return true;
|
|
72
|
+
},
|
|
73
|
+
}
|
|
74
|
+
], [actions, currency, dispatch]);
|
|
75
|
+
const penaltyColumns = useMemo(() => [
|
|
76
|
+
{
|
|
77
|
+
field: "condition",
|
|
78
|
+
title: "Condition",
|
|
79
|
+
editable: true,
|
|
80
|
+
align: "left",
|
|
81
|
+
onSave: (newValue, context) => {
|
|
82
|
+
dispatch(actions.updatePenaltyClause({
|
|
83
|
+
id: context.row.id,
|
|
84
|
+
condition: newValue
|
|
85
|
+
}));
|
|
86
|
+
toast("Penalty clause condition updated", {
|
|
87
|
+
type: "success",
|
|
88
|
+
});
|
|
89
|
+
return true;
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
field: "deductionAmount",
|
|
94
|
+
title: `Deduction Amount (${currency})`,
|
|
95
|
+
editable: true,
|
|
96
|
+
align: "right",
|
|
97
|
+
renderCell: (value) => {
|
|
98
|
+
return value ? `${value.value} ${value.unit}` : "";
|
|
99
|
+
},
|
|
100
|
+
onSave: (newValue, context) => {
|
|
101
|
+
const amount = parseFloat(newValue);
|
|
102
|
+
if (isNaN(amount)) {
|
|
103
|
+
toast("Please enter a valid amount", {
|
|
104
|
+
type: "error",
|
|
105
|
+
});
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
dispatch(actions.updatePenaltyClause({
|
|
109
|
+
id: context.row.id,
|
|
110
|
+
deductionAmount: { value: amount, unit: currency }
|
|
111
|
+
}));
|
|
112
|
+
toast("Deduction amount updated", {
|
|
113
|
+
type: "success",
|
|
114
|
+
});
|
|
115
|
+
return true;
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
field: "comment",
|
|
120
|
+
title: "Comment",
|
|
121
|
+
editable: true,
|
|
122
|
+
align: "left",
|
|
123
|
+
renderCell: (value) => value || "-",
|
|
124
|
+
onSave: (newValue, context) => {
|
|
125
|
+
dispatch(actions.updatePenaltyClause({
|
|
126
|
+
id: context.row.id,
|
|
127
|
+
comment: newValue || undefined
|
|
128
|
+
}));
|
|
129
|
+
toast("Penalty clause comment updated", {
|
|
130
|
+
type: "success",
|
|
131
|
+
});
|
|
132
|
+
return true;
|
|
133
|
+
},
|
|
134
|
+
}
|
|
135
|
+
], [actions, currency, dispatch]);
|
|
136
|
+
const handleAddClause = useCallback((e) => {
|
|
137
|
+
e.preventDefault();
|
|
138
|
+
if (!newClause.condition.trim()) {
|
|
139
|
+
toast('Condition is required', {
|
|
140
|
+
type: "error",
|
|
141
|
+
});
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
if (!newClause.amount || isNaN(parseFloat(newClause.amount))) {
|
|
145
|
+
toast('Valid amount is required', {
|
|
146
|
+
type: "error",
|
|
147
|
+
});
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
if (activeSubTab === "bonus") {
|
|
151
|
+
dispatch(actions.addBonusClause({
|
|
152
|
+
id: generateId(),
|
|
153
|
+
condition: newClause.condition,
|
|
154
|
+
bonusAmount: {
|
|
155
|
+
value: parseFloat(newClause.amount),
|
|
156
|
+
unit: currency
|
|
157
|
+
},
|
|
158
|
+
comment: newClause.comment || undefined
|
|
159
|
+
}));
|
|
160
|
+
toast("Bonus clause added successfully", {
|
|
161
|
+
type: "success",
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
dispatch(actions.addPenaltyClause({
|
|
166
|
+
id: generateId(),
|
|
167
|
+
condition: newClause.condition,
|
|
168
|
+
deductionAmount: {
|
|
169
|
+
value: parseFloat(newClause.amount),
|
|
170
|
+
unit: currency
|
|
171
|
+
},
|
|
172
|
+
comment: newClause.comment || undefined
|
|
173
|
+
}));
|
|
174
|
+
toast("Penalty clause added successfully", {
|
|
175
|
+
type: "success",
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
setNewClause({
|
|
179
|
+
condition: "",
|
|
180
|
+
amount: "",
|
|
181
|
+
comment: ""
|
|
182
|
+
});
|
|
183
|
+
setIsAddingNew(false);
|
|
184
|
+
}, [newClause, activeSubTab, dispatch, actions, currency]);
|
|
185
|
+
const currentClauses = activeSubTab === "bonus" ? bonusClauses : penaltyClauses;
|
|
186
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Bonus & Penalty Clauses" }), _jsxs("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: [bonusClauses.length, " bonus clause(s), ", penaltyClauses.length, " penalty clause(s)"] })] }), _jsxs(Button, { onClick: () => setIsAddingNew(!isAddingNew), color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: [_jsx(Icon, { name: "Plus", size: 16, className: "mr-2" }), "Add ", activeSubTab === "bonus" ? "Bonus" : "Penalty", " Clause"] })] }), _jsxs("div", { className: "flex space-x-1 border-b border-gray-200 dark:border-gray-600", children: [_jsxs("button", { onClick: () => setActiveSubTab("bonus"), className: `px-4 py-2 text-sm font-medium rounded-t-lg ${activeSubTab === "bonus"
|
|
187
|
+
? "bg-blue-50 dark:bg-blue-900 text-blue-700 dark:text-blue-300 border-b-2 border-blue-700 dark:border-blue-300"
|
|
188
|
+
: "text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200"}`, children: ["Bonus Clauses (", bonusClauses.length, ")"] }), _jsxs("button", { onClick: () => setActiveSubTab("penalty"), className: `px-4 py-2 text-sm font-medium rounded-t-lg ${activeSubTab === "penalty"
|
|
189
|
+
? "bg-red-50 dark:bg-red-900 text-red-700 dark:text-red-300 border-b-2 border-red-700 dark:border-red-300"
|
|
190
|
+
: "text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200"}`, children: ["Penalty Clauses (", penaltyClauses.length, ")"] })] }), isAddingNew && (_jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border dark:border-gray-600", children: [_jsxs("h3", { className: "text-lg font-medium mb-4 dark:text-white", children: ["Add New ", activeSubTab === "bonus" ? "Bonus" : "Penalty", " Clause"] }), _jsxs("form", { onSubmit: handleAddClause, className: "space-y-4", children: [_jsx(TextInput, { label: "Condition *", value: newClause.condition, onChange: (e) => setNewClause({ ...newClause, condition: e.target.value }), className: "w-full", required: true }), _jsx(TextInput, { label: `${activeSubTab === "bonus" ? "Bonus" : "Deduction"} Amount (${currency}) *`, type: "number", value: newClause.amount, onChange: (e) => setNewClause({ ...newClause, amount: e.target.value }), className: "w-full", placeholder: "0.00", step: "0.01", required: true }), _jsx(Textarea, { label: "Comment", value: newClause.comment, onChange: (e) => setNewClause({ ...newClause, comment: e.target.value }), className: "w-full", rows: 3, placeholder: "Optional comment or additional details..." }), _jsxs("div", { className: "flex gap-3", children: [_jsxs(Button, { type: "submit", color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: ["Add ", activeSubTab === "bonus" ? "Bonus" : "Penalty", " Clause"] }), _jsx(Button, { type: "button", onClick: () => {
|
|
191
|
+
setIsAddingNew(false);
|
|
192
|
+
setNewClause({
|
|
193
|
+
condition: "",
|
|
194
|
+
amount: "",
|
|
195
|
+
comment: ""
|
|
196
|
+
});
|
|
197
|
+
}, color: "light", size: "small", className: "cursor-pointer hover:bg-gray-600 hover:text-white", children: "Cancel" })] })] })] })), currentClauses.length > 0 ? (activeSubTab === "bonus" ? (_jsx(ObjectSetTable, { data: bonusClauses, columns: bonusColumns, onAdd: () => setIsAddingNew(true), onDelete: (row) => {
|
|
198
|
+
dispatch(actions.deleteBonusClause({ id: row.id }));
|
|
199
|
+
toast("Bonus clause deleted", {
|
|
200
|
+
type: "success",
|
|
201
|
+
});
|
|
202
|
+
} })) : (_jsx(ObjectSetTable, { data: penaltyClauses, columns: penaltyColumns, onAdd: () => setIsAddingNew(true), onDelete: (row) => {
|
|
203
|
+
dispatch(actions.deletePenaltyClause({ id: row.id }));
|
|
204
|
+
toast("Penalty clause deleted", {
|
|
205
|
+
type: "success",
|
|
206
|
+
});
|
|
207
|
+
} }))) : (_jsxs("div", { className: "text-center py-8 text-gray-500 dark:text-gray-400 border-2 border-dashed border-gray-300 dark:border-gray-600 rounded-lg", children: [_jsx(Icon, { name: "Checkmark", size: 48, className: "mx-auto mb-4 text-gray-400" }), _jsxs("p", { className: "text-lg font-medium", children: ["No ", activeSubTab, " clauses defined yet"] }), _jsxs("p", { className: "text-sm", children: ["Add your first ", activeSubTab, " clause to get started"] })] }))] }));
|
|
208
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PaymentTermsState } from "../../document-models/payment-terms/gen/schema/types.js";
|
|
2
|
+
export interface CostMaterialsTabProps {
|
|
3
|
+
state: PaymentTermsState;
|
|
4
|
+
dispatch: (action: any) => void;
|
|
5
|
+
actions: any;
|
|
6
|
+
}
|
|
7
|
+
export declare function CostMaterialsTab({ state, dispatch, actions }: CostMaterialsTabProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=cost-materials-tab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-materials-tab.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/cost-materials-tab.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,yDAAyD,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,GAAG,CAAC;CACd;AAED,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,qBAAqB,2CAkLnF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useCallback } from "react";
|
|
3
|
+
import { TextInput, Select } from "@powerhousedao/document-engineering";
|
|
4
|
+
import { Button, toast } from "@powerhousedao/design-system";
|
|
5
|
+
export function CostMaterialsTab({ state, dispatch, actions }) {
|
|
6
|
+
const [isEditing, setIsEditing] = useState(false);
|
|
7
|
+
const [formData, setFormData] = useState({
|
|
8
|
+
hourlyRate: state.costAndMaterials?.hourlyRate?.value?.toString() || "",
|
|
9
|
+
variableCap: state.costAndMaterials?.variableCap?.value?.toString() || "",
|
|
10
|
+
billingFrequency: state.costAndMaterials?.billingFrequency || "MONTHLY",
|
|
11
|
+
timesheetRequired: state.costAndMaterials?.timesheetRequired || false
|
|
12
|
+
});
|
|
13
|
+
const handleSubmit = useCallback((e) => {
|
|
14
|
+
e.preventDefault();
|
|
15
|
+
dispatch(actions.setCostAndMaterials({
|
|
16
|
+
hourlyRate: formData.hourlyRate ? {
|
|
17
|
+
value: parseFloat(formData.hourlyRate),
|
|
18
|
+
unit: state.currency
|
|
19
|
+
} : undefined,
|
|
20
|
+
variableCap: formData.variableCap ? {
|
|
21
|
+
value: parseFloat(formData.variableCap),
|
|
22
|
+
unit: state.currency
|
|
23
|
+
} : undefined,
|
|
24
|
+
billingFrequency: formData.billingFrequency,
|
|
25
|
+
timesheetRequired: formData.timesheetRequired
|
|
26
|
+
}));
|
|
27
|
+
toast("Cost & Materials configuration saved", {
|
|
28
|
+
type: "success",
|
|
29
|
+
});
|
|
30
|
+
setIsEditing(false);
|
|
31
|
+
}, [formData, dispatch, actions, state.currency]);
|
|
32
|
+
const handleCancel = useCallback(() => {
|
|
33
|
+
setFormData({
|
|
34
|
+
hourlyRate: state.costAndMaterials?.hourlyRate?.value?.toString() || "",
|
|
35
|
+
variableCap: state.costAndMaterials?.variableCap?.value?.toString() || "",
|
|
36
|
+
billingFrequency: state.costAndMaterials?.billingFrequency || "MONTHLY",
|
|
37
|
+
timesheetRequired: state.costAndMaterials?.timesheetRequired || false
|
|
38
|
+
});
|
|
39
|
+
setIsEditing(false);
|
|
40
|
+
}, [state.costAndMaterials]);
|
|
41
|
+
if (!isEditing) {
|
|
42
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex justify-between items-center mb-4", children: [_jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Cost & Materials Configuration" }), _jsx(Button, { onClick: () => setIsEditing(true), color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: state.costAndMaterials ? "Edit Configuration" : "Configure Cost & Materials" })] }), state.costAndMaterials ? (_jsxs("div", { className: "grid grid-cols-2 gap-6", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Hourly Rate" }), _jsx("p", { className: "text-lg dark:text-white", children: state.costAndMaterials.hourlyRate
|
|
43
|
+
? `${state.costAndMaterials.hourlyRate.value} ${state.costAndMaterials.hourlyRate.unit}`
|
|
44
|
+
: "Not set" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Variable Cap" }), _jsx("p", { className: "text-lg dark:text-white", children: state.costAndMaterials.variableCap
|
|
45
|
+
? `${state.costAndMaterials.variableCap.value} ${state.costAndMaterials.variableCap.unit}`
|
|
46
|
+
: "Not set" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Billing Frequency" }), _jsx("p", { className: "text-lg dark:text-white", children: state.costAndMaterials.billingFrequency })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Timesheet Required" }), _jsx("p", { className: "text-lg dark:text-white", children: state.costAndMaterials.timesheetRequired ? "Yes" : "No" })] })] })) : (_jsxs("div", { className: "text-center py-8 text-gray-500 dark:text-gray-400", children: [_jsx("p", { children: "No cost & materials configuration set up yet." }), _jsx("p", { className: "text-sm", children: "Click \"Configure Cost & Materials\" to get started." })] }))] }));
|
|
47
|
+
}
|
|
48
|
+
return (_jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [_jsx("div", { className: "flex justify-between items-center mb-4", children: _jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Configure Cost & Materials" }) }), _jsxs("div", { className: "grid grid-cols-2 gap-6", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Hourly Rate" }), _jsx(TextInput, { value: formData.hourlyRate, onChange: (e) => setFormData({ ...formData, hourlyRate: e.target.value }), placeholder: "0.00", type: "number", step: "0.01" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Variable Cap" }), _jsx(TextInput, { value: formData.variableCap, onChange: (e) => setFormData({ ...formData, variableCap: e.target.value }), placeholder: "0.00", type: "number", step: "0.01" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Billing Frequency *" }), _jsx(Select, { value: formData.billingFrequency, onChange: (value) => setFormData({ ...formData, billingFrequency: value }), options: [
|
|
49
|
+
{ value: "WEEKLY", label: "Weekly" },
|
|
50
|
+
{ value: "BIWEEKLY", label: "Biweekly" },
|
|
51
|
+
{ value: "MONTHLY", label: "Monthly" }
|
|
52
|
+
], placeholder: "Select billing frequency", required: true })] }), _jsxs("div", { className: "flex items-center pt-6", children: [_jsx("input", { type: "checkbox", id: "timesheetRequired", checked: formData.timesheetRequired, onChange: (e) => setFormData({ ...formData, timesheetRequired: e.target.checked }), className: "mr-2 h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded" }), _jsx("label", { htmlFor: "timesheetRequired", className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: "Timesheet Required" })] })] }), _jsxs("div", { className: "flex gap-3", children: [_jsx(Button, { type: "submit", color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: "Save Configuration" }), _jsx(Button, { type: "button", onClick: handleCancel, color: "light", size: "small", className: "cursor-pointer hover:bg-gray-600 hover:text-white", children: "Cancel" })] })] }));
|
|
53
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/editor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAalD,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AAEjC,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,GAAG,2CA8PxC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useSelectedDocument } from "@powerhousedao/reactor-browser";
|
|
3
|
+
import { Icon, ToastContainer } from "@powerhousedao/design-system";
|
|
4
|
+
import { actions, } from "../../document-models/payment-terms/index.js";
|
|
5
|
+
import { BasicTermsTab } from "./basic-terms-tab.js";
|
|
6
|
+
import { MilestonesTab } from "./milestones-tab.js";
|
|
7
|
+
import { ClausesTab } from "./clauses-tab.js";
|
|
8
|
+
import { CostMaterialsTab } from "./cost-materials-tab.js";
|
|
9
|
+
import { RetainerTab } from "./retainer-tab.js";
|
|
10
|
+
import { EscrowTab } from "./escrow-tab.js";
|
|
11
|
+
import { EvaluationTab } from "./evaluation-tab.js";
|
|
12
|
+
export default function Editor(props) {
|
|
13
|
+
// Getting dispatch from props or selected document
|
|
14
|
+
let dispatch;
|
|
15
|
+
const { document } = props;
|
|
16
|
+
if (props.dispatch) {
|
|
17
|
+
dispatch = props.dispatch;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
const selectedDocument = useSelectedDocument();
|
|
21
|
+
dispatch = selectedDocument[1];
|
|
22
|
+
}
|
|
23
|
+
const state = document.state.global;
|
|
24
|
+
const getStatusColor = (status) => {
|
|
25
|
+
switch (status) {
|
|
26
|
+
case "DRAFT": return "bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-200";
|
|
27
|
+
case "SUBMITTED": return "bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200";
|
|
28
|
+
case "ACCEPTED": return "bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200";
|
|
29
|
+
case "CANCELLED": return "bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200";
|
|
30
|
+
default: return "bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-200";
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const getStatusIcon = (status) => {
|
|
34
|
+
switch (status) {
|
|
35
|
+
case "DRAFT": return "CalendarTime";
|
|
36
|
+
case "SUBMITTED": return "ArrowUp";
|
|
37
|
+
case "ACCEPTED": return "CheckCircle";
|
|
38
|
+
case "CANCELLED": return "ArrowLeft";
|
|
39
|
+
default: return "CalendarTime";
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const totalMilestones = state.milestoneSchedule?.length || 0;
|
|
43
|
+
const completedMilestones = state.milestoneSchedule?.filter((m) => m.payoutStatus === "PAID").length || 0;
|
|
44
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "min-h-screen bg-gray-50 dark:bg-gray-900", children: _jsxs("div", { className: "max-w-7xl mx-auto p-6", children: [_jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm p-6 mb-6", children: [_jsxs("div", { className: "flex justify-between items-start", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "CalendarTime", size: 32, className: "text-blue-600 dark:text-blue-400" }), _jsxs("div", { children: [_jsx("h1", { className: "text-3xl font-bold text-gray-900 dark:text-white mb-2", children: "Payment Terms Document" }), _jsx("p", { className: "text-gray-600 dark:text-gray-300", children: "Manage payment terms, milestones, and contract clauses" })] })] }), _jsxs("div", { className: `flex items-center gap-2 px-3 py-2 rounded-full font-medium ${getStatusColor(state.status)}`, children: [_jsx(Icon, { name: getStatusIcon(state.status), size: 16 }), state.status] })] }), _jsxs("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4 mt-6", children: [_jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border border-gray-200 dark:border-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx(Icon, { name: "BarChart", size: 16, className: "text-blue-600 dark:text-blue-400" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 font-medium", children: "Payment Model" })] }), _jsx("p", { className: "text-lg font-semibold dark:text-white", children: state.paymentModel.replace(/_/g, ' ') })] }), _jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border border-gray-200 dark:border-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx(Icon, { name: "BarChart", size: 16, className: "text-green-600 dark:text-green-400" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 font-medium", children: "Currency" })] }), _jsx("p", { className: "text-lg font-semibold dark:text-white", children: state.currency })] }), _jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border border-gray-200 dark:border-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx(Icon, { name: "BarChart", size: 16, className: "text-yellow-600 dark:text-yellow-400" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 font-medium", children: "Total Amount" })] }), _jsx("p", { className: "text-lg font-semibold dark:text-white", children: state.totalAmount ? `${state.totalAmount.value} ${state.totalAmount.unit}` : "Not set" })] }), _jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border border-gray-200 dark:border-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx(Icon, { name: "BarChart", size: 16, className: "text-purple-600 dark:text-purple-400" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 font-medium", children: "Progress" })] }), _jsx("p", { className: "text-lg font-semibold dark:text-white", children: state.paymentModel === "MILESTONE" ? `${completedMilestones} / ${totalMilestones}` : "N/A" })] })] })] }), _jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200 dark:border-gray-700", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "CalendarTime", size: 20, className: "text-blue-600 dark:text-blue-400" }), _jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-white", children: "Basic Terms" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: "Configure the basic payment terms and details" })] })] }) }), _jsx("div", { className: "p-6", children: _jsx(BasicTermsTab, { state: state, dispatch: dispatch, actions: actions }) })] }), state.paymentModel === "MILESTONE" && (_jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200 dark:border-gray-700", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "BarChart", size: 20, className: "text-green-600 dark:text-green-400" }), _jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-white", children: "Milestone Schedule" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: "Define project milestones and payment amounts" })] })] }) }), _jsx("div", { className: "p-6", children: _jsx(MilestonesTab, { milestones: state.milestoneSchedule, dispatch: dispatch, actions: actions, currency: state.currency }) })] })), state.paymentModel === "COST_AND_MATERIALS" && (_jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200 dark:border-gray-700", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "BarChart", size: 20, className: "text-yellow-600 dark:text-yellow-400" }), _jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-white", children: "Cost & Materials" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: "Configure hourly rates, billing frequency, and caps" })] })] }) }), _jsx("div", { className: "p-6", children: _jsx(CostMaterialsTab, { state: state, dispatch: dispatch, actions: actions }) })] })), state.paymentModel === "RETAINER" && (_jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200 dark:border-gray-700", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "BarChart", size: 20, className: "text-purple-600 dark:text-purple-400" }), _jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-white", children: "Retainer Details" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: "Configure retainer amount, frequency, and services" })] })] }) }), _jsx("div", { className: "p-6", children: _jsx(RetainerTab, { state: state, dispatch: dispatch, actions: actions }) })] })), state.escrowDetails && state.escrowDetails.releaseConditions && (state.paymentModel === "MILESTONE" || state.paymentModel === "COST_AND_MATERIALS" || state.paymentModel === "RETAINER") && (_jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200 dark:border-gray-700", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "BarChart", size: 20, className: "text-orange-600 dark:text-orange-400" }), _jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-white", children: "Escrow Details" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: "Configure escrow payment arrangements" })] })] }) }), _jsx("div", { className: "p-6", children: _jsx(EscrowTab, { state: state, dispatch: dispatch, actions: actions }) })] })), _jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200 dark:border-gray-700", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "BarChart", size: 20, className: "text-red-600 dark:text-red-400" }), _jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-white", children: "Bonus & Penalty Clauses" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: "Add performance-based bonus and penalty conditions" })] })] }) }), _jsx("div", { className: "p-6", children: _jsx(ClausesTab, { bonusClauses: state.bonusClauses, penaltyClauses: state.penaltyClauses, dispatch: dispatch, actions: actions, currency: state.currency }) })] }), _jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200 dark:border-gray-700", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "BarChart", size: 20, className: "text-indigo-600 dark:text-indigo-400" }), _jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-white", children: "Evaluation Terms" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: "Define performance evaluation criteria and processes" })] })] }) }), _jsx("div", { className: "p-6", children: _jsx(EvaluationTab, { state: state, dispatch: dispatch, actions: actions }) })] })] })] }) }), _jsx(ToastContainer, {})] }));
|
|
45
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PaymentTermsState } from "../../document-models/payment-terms/gen/schema/types.js";
|
|
2
|
+
export interface EscrowTabProps {
|
|
3
|
+
state: PaymentTermsState;
|
|
4
|
+
dispatch: (action: any) => void;
|
|
5
|
+
actions: any;
|
|
6
|
+
}
|
|
7
|
+
export declare function EscrowTab({ state, dispatch, actions }: EscrowTabProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=escrow-tab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escrow-tab.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/escrow-tab.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAC;AAEjG,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,GAAG,CAAC;CACd;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,cAAc,2CAsKrE"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useCallback } from "react";
|
|
3
|
+
import { TextInput, Textarea } from "@powerhousedao/document-engineering";
|
|
4
|
+
import { Button, toast } from "@powerhousedao/design-system";
|
|
5
|
+
export function EscrowTab({ state, dispatch, actions }) {
|
|
6
|
+
const [isEditing, setIsEditing] = useState(false);
|
|
7
|
+
const [formData, setFormData] = useState({
|
|
8
|
+
amountHeld: state.escrowDetails?.amountHeld?.value?.toString() || "",
|
|
9
|
+
proofOfFundsDocumentId: state.escrowDetails?.proofOfFundsDocumentId || "",
|
|
10
|
+
releaseConditions: state.escrowDetails?.releaseConditions || "",
|
|
11
|
+
escrowProvider: state.escrowDetails?.escrowProvider || ""
|
|
12
|
+
});
|
|
13
|
+
const handleSubmit = useCallback((e) => {
|
|
14
|
+
e.preventDefault();
|
|
15
|
+
if (!formData.amountHeld || isNaN(parseFloat(formData.amountHeld))) {
|
|
16
|
+
toast("Please enter a valid amount to be held in escrow", {
|
|
17
|
+
type: "error",
|
|
18
|
+
});
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (!formData.releaseConditions.trim()) {
|
|
22
|
+
toast("Release conditions are required", {
|
|
23
|
+
type: "error",
|
|
24
|
+
});
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
dispatch(actions.setEscrowDetails({
|
|
28
|
+
amountHeld: {
|
|
29
|
+
value: parseFloat(formData.amountHeld),
|
|
30
|
+
unit: state.currency
|
|
31
|
+
},
|
|
32
|
+
proofOfFundsDocumentId: formData.proofOfFundsDocumentId || undefined,
|
|
33
|
+
releaseConditions: formData.releaseConditions,
|
|
34
|
+
escrowProvider: formData.escrowProvider || undefined
|
|
35
|
+
}));
|
|
36
|
+
toast("Escrow details saved", {
|
|
37
|
+
type: "success",
|
|
38
|
+
});
|
|
39
|
+
setIsEditing(false);
|
|
40
|
+
}, [formData, dispatch, actions, state.currency]);
|
|
41
|
+
const handleCancel = useCallback(() => {
|
|
42
|
+
setFormData({
|
|
43
|
+
amountHeld: state.escrowDetails?.amountHeld?.value?.toString() || "",
|
|
44
|
+
proofOfFundsDocumentId: state.escrowDetails?.proofOfFundsDocumentId || "",
|
|
45
|
+
releaseConditions: state.escrowDetails?.releaseConditions || "",
|
|
46
|
+
escrowProvider: state.escrowDetails?.escrowProvider || ""
|
|
47
|
+
});
|
|
48
|
+
setIsEditing(false);
|
|
49
|
+
}, [state.escrowDetails]);
|
|
50
|
+
if (!isEditing) {
|
|
51
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex justify-between items-center mb-4", children: [_jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Escrow Configuration" }), _jsx(Button, { onClick: () => setIsEditing(true), color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: state.escrowDetails ? "Edit Escrow" : "Configure Escrow" })] }), state.escrowDetails && state.escrowDetails.releaseConditions ? (_jsxs("div", { className: "grid grid-cols-2 gap-6", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Amount Held" }), _jsx("p", { className: "text-lg dark:text-white", children: state.escrowDetails.amountHeld
|
|
52
|
+
? `${state.escrowDetails.amountHeld.value} ${state.escrowDetails.amountHeld.unit}`
|
|
53
|
+
: "Not set" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Escrow Provider" }), _jsx("p", { className: "text-lg dark:text-white", children: state.escrowDetails.escrowProvider || "Not specified" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Proof of Funds Document ID" }), _jsx("p", { className: "text-lg font-mono text-sm dark:text-white", children: state.escrowDetails.proofOfFundsDocumentId || "Not provided" })] }), _jsxs("div", { className: "col-span-1", children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Release Conditions" }), _jsx("div", { className: "bg-gray-50 dark:bg-gray-700 p-3 rounded border dark:border-gray-600", children: _jsx("p", { className: "text-sm dark:text-white", children: state.escrowDetails.releaseConditions }) })] })] })) : (_jsxs("div", { className: "text-center py-8 text-gray-500 dark:text-gray-400", children: [_jsx("p", { children: "No escrow configuration set up yet." }), _jsx("p", { className: "text-sm", children: "Click \"Configure Escrow\" to get started." })] }))] }));
|
|
54
|
+
}
|
|
55
|
+
return (_jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [_jsx("div", { className: "flex justify-between items-center mb-4", children: _jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Configure Escrow" }) }), _jsxs("div", { className: "grid grid-cols-2 gap-6", children: [_jsx(TextInput, { label: `Amount Held (${state.currency}) *`, type: "number", value: formData.amountHeld, onChange: (e) => setFormData({ ...formData, amountHeld: e.target.value }), className: "w-full", placeholder: "0.00", step: "0.01", required: true }), _jsx(TextInput, { label: "Escrow Provider", value: formData.escrowProvider, onChange: (e) => setFormData({ ...formData, escrowProvider: e.target.value }), className: "w-full", placeholder: "e.g., Escrow.com" }), _jsx(TextInput, { label: "Proof of Funds Document ID", value: formData.proofOfFundsDocumentId, onChange: (e) => setFormData({ ...formData, proofOfFundsDocumentId: e.target.value }), className: "w-full", placeholder: "Document reference ID" }), _jsx("div", { className: "col-span-1", children: _jsx(Textarea, { label: "Release Conditions *", value: formData.releaseConditions, onChange: (e) => setFormData({ ...formData, releaseConditions: e.target.value }), className: "w-full", rows: 4, placeholder: "Describe the conditions for releasing escrow funds...", required: true }) })] }), _jsxs("div", { className: "flex gap-3", children: [_jsx(Button, { type: "submit", children: "Save Escrow Details" }), _jsx(Button, { type: "button", onClick: handleCancel, children: "Cancel" })] })] }));
|
|
56
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PaymentTermsState } from "../../document-models/payment-terms/gen/schema/types.js";
|
|
2
|
+
export interface EvaluationTabProps {
|
|
3
|
+
state: PaymentTermsState;
|
|
4
|
+
dispatch: (action: any) => void;
|
|
5
|
+
actions: any;
|
|
6
|
+
}
|
|
7
|
+
export declare function EvaluationTab({ state, dispatch, actions }: EvaluationTabProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=evaluation-tab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluation-tab.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/evaluation-tab.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,yDAAyD,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,GAAG,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,kBAAkB,2CA2N7E"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useCallback, useMemo } from "react";
|
|
3
|
+
import { TextInput, Select, Textarea } from "@powerhousedao/document-engineering";
|
|
4
|
+
import { Button, toast } from "@powerhousedao/design-system";
|
|
5
|
+
export function EvaluationTab({ state, dispatch, actions }) {
|
|
6
|
+
const [isEditing, setIsEditing] = useState(false);
|
|
7
|
+
const [formData, setFormData] = useState({
|
|
8
|
+
evaluationFrequency: state.evaluation?.evaluationFrequency || "MONTHLY",
|
|
9
|
+
evaluatorTeam: state.evaluation?.evaluatorTeam || "",
|
|
10
|
+
criteria: state.evaluation?.criteria?.join("\n") || "",
|
|
11
|
+
impactsPayout: state.evaluation?.impactsPayout || false,
|
|
12
|
+
impactsReputation: state.evaluation?.impactsReputation || false,
|
|
13
|
+
commentsVisibleToClient: state.evaluation?.commentsVisibleToClient || false
|
|
14
|
+
});
|
|
15
|
+
const evaluationFrequencyOptions = useMemo(() => [
|
|
16
|
+
{ label: "Weekly", value: "WEEKLY" },
|
|
17
|
+
{ label: "Monthly", value: "MONTHLY" },
|
|
18
|
+
{ label: "Per Milestone", value: "PER_MILESTONE" }
|
|
19
|
+
], []);
|
|
20
|
+
const handleSubmit = useCallback((e) => {
|
|
21
|
+
e.preventDefault();
|
|
22
|
+
if (!formData.evaluatorTeam.trim()) {
|
|
23
|
+
toast("Evaluator team is required", {
|
|
24
|
+
type: "error",
|
|
25
|
+
});
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (!formData.criteria.trim()) {
|
|
29
|
+
toast("Evaluation criteria are required", {
|
|
30
|
+
type: "error",
|
|
31
|
+
});
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
dispatch(actions.setEvaluationTerms({
|
|
35
|
+
evaluationFrequency: formData.evaluationFrequency,
|
|
36
|
+
evaluatorTeam: formData.evaluatorTeam,
|
|
37
|
+
criteria: formData.criteria.split("\n").filter(c => c.trim()),
|
|
38
|
+
impactsPayout: formData.impactsPayout,
|
|
39
|
+
impactsReputation: formData.impactsReputation,
|
|
40
|
+
commentsVisibleToClient: formData.commentsVisibleToClient
|
|
41
|
+
}));
|
|
42
|
+
toast("Evaluation terms saved", {
|
|
43
|
+
type: "success",
|
|
44
|
+
});
|
|
45
|
+
setIsEditing(false);
|
|
46
|
+
}, [formData, dispatch, actions]);
|
|
47
|
+
const handleCancel = useCallback(() => {
|
|
48
|
+
setFormData({
|
|
49
|
+
evaluationFrequency: state.evaluation?.evaluationFrequency || "MONTHLY",
|
|
50
|
+
evaluatorTeam: state.evaluation?.evaluatorTeam || "",
|
|
51
|
+
criteria: state.evaluation?.criteria?.join("\n") || "",
|
|
52
|
+
impactsPayout: state.evaluation?.impactsPayout || false,
|
|
53
|
+
impactsReputation: state.evaluation?.impactsReputation || false,
|
|
54
|
+
commentsVisibleToClient: state.evaluation?.commentsVisibleToClient || false
|
|
55
|
+
});
|
|
56
|
+
setIsEditing(false);
|
|
57
|
+
}, [state.evaluation]);
|
|
58
|
+
if (!isEditing) {
|
|
59
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex justify-between items-center mb-4", children: [_jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Evaluation Terms" }), _jsx(Button, { onClick: () => setIsEditing(true), color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: state.evaluation ? "Edit Terms" : "Configure Evaluation" })] }), state.evaluation ? (_jsxs("div", { className: "grid grid-cols-2 gap-6", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Evaluation Frequency" }), _jsx("p", { className: "text-lg dark:text-white", children: state.evaluation.evaluationFrequency })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Evaluator Team" }), _jsx("p", { className: "text-lg dark:text-white", children: state.evaluation.evaluatorTeam })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Impacts Payout" }), _jsx("p", { className: "text-lg dark:text-white", children: state.evaluation.impactsPayout ? "Yes" : "No" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Impacts Reputation" }), _jsx("p", { className: "text-lg dark:text-white", children: state.evaluation.impactsReputation ? "Yes" : "No" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Comments Visible to Client" }), _jsx("p", { className: "text-lg dark:text-white", children: state.evaluation.commentsVisibleToClient ? "Yes" : "No" })] }), _jsxs("div", { className: "col-span-2", children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Evaluation Criteria" }), _jsx("div", { className: "bg-gray-50 dark:bg-gray-700 p-3 rounded border dark:border-gray-600", children: _jsx("ul", { className: "list-disc list-inside text-sm space-y-1", children: state.evaluation.criteria.map((criterion, index) => (_jsx("li", { children: criterion }, index))) }) })] })] })) : (_jsxs("div", { className: "text-center py-8 text-gray-500 dark:text-gray-400", children: [_jsx("p", { children: "No evaluation terms configured yet." }), _jsx("p", { className: "text-sm", children: "Click \"Configure Evaluation\" to get started." })] }))] }));
|
|
60
|
+
}
|
|
61
|
+
return (_jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [_jsx("div", { className: "flex justify-between items-center mb-4", children: _jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Configure Evaluation Terms" }) }), _jsxs("div", { className: "grid grid-cols-2 gap-6", children: [_jsx(Select, { label: "Evaluation Frequency *", options: evaluationFrequencyOptions, value: formData.evaluationFrequency, onChange: (value) => setFormData({ ...formData, evaluationFrequency: value }) }), _jsx(TextInput, { label: "Evaluator Team *", value: formData.evaluatorTeam, onChange: (e) => setFormData({ ...formData, evaluatorTeam: e.target.value }), className: "w-full", placeholder: "e.g., Product Team", required: true }), _jsx("div", { className: "col-span-2", children: _jsx(Textarea, { label: "Evaluation Criteria * (one per line)", value: formData.criteria, onChange: (e) => setFormData({ ...formData, criteria: e.target.value }), className: "w-full", rows: 6, placeholder: "Enter each evaluation criterion on a separate line...", required: true }) }), _jsxs("div", { className: "col-span-2 space-y-4", children: [_jsx("h3", { className: "text-lg font-medium dark:text-white", children: "Impact Settings" }), _jsxs("div", { className: "flex items-center", children: [_jsx("input", { type: "checkbox", id: "impactsPayout", checked: formData.impactsPayout, onChange: (e) => setFormData({ ...formData, impactsPayout: e.target.checked }), className: "mr-2 h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded" }), _jsx("label", { htmlFor: "impactsPayout", className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: "Evaluation results impact payout" })] }), _jsxs("div", { className: "flex items-center", children: [_jsx("input", { type: "checkbox", id: "impactsReputation", checked: formData.impactsReputation, onChange: (e) => setFormData({ ...formData, impactsReputation: e.target.checked }), className: "mr-2 h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded" }), _jsx("label", { htmlFor: "impactsReputation", className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: "Evaluation results impact reputation" })] }), _jsxs("div", { className: "flex items-center", children: [_jsx("input", { type: "checkbox", id: "commentsVisibleToClient", checked: formData.commentsVisibleToClient, onChange: (e) => setFormData({ ...formData, commentsVisibleToClient: e.target.checked }), className: "mr-2 h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded" }), _jsx("label", { htmlFor: "commentsVisibleToClient", className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: "Evaluation comments visible to client" })] })] })] }), _jsxs("div", { className: "flex gap-3", children: [_jsx(Button, { type: "submit", color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: "Save Evaluation Terms" }), _jsx(Button, { type: "button", onClick: handleCancel, color: "light", size: "small", className: "cursor-pointer hover:bg-gray-600 hover:text-white", children: "Cancel" })] })] }));
|
|
62
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD,eAAO,MAAM,MAAM,EAAE,YASpB,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Editor from "./editor.js";
|
|
2
|
+
export const module = {
|
|
3
|
+
Component: Editor,
|
|
4
|
+
documentTypes: ["payment-terms"],
|
|
5
|
+
config: {
|
|
6
|
+
id: "payment-terms-editor",
|
|
7
|
+
disableExternalControls: true,
|
|
8
|
+
documentToolbarEnabled: true,
|
|
9
|
+
showSwitchboardLink: true,
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
export default module;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Milestone } from "../../document-models/payment-terms/gen/types.js";
|
|
2
|
+
export interface MilestonesTabProps {
|
|
3
|
+
milestones: Milestone[];
|
|
4
|
+
dispatch: (action: any) => void;
|
|
5
|
+
actions: any;
|
|
6
|
+
currency: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function MilestonesTab({ milestones, dispatch, actions, currency }: MilestonesTabProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=milestones-tab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"milestones-tab.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/milestones-tab.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,SAAS,EAEV,MAAM,kDAAkD,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAgB,EAAE,EAAE,kBAAkB,2CAqTpG"}
|