@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,44 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Hierarchical folder tree navigation component.
|
|
5
|
+
* Displays folders in a tree structure with expand/collapse functionality.
|
|
6
|
+
*/
|
|
7
|
+
export function FolderTree({ folders, files, selectedNodeId, onSelectNode, onSelectFile, }) {
|
|
8
|
+
// Track which folders are expanded
|
|
9
|
+
const [expandedFolders, setExpandedFolders] = useState(new Set());
|
|
10
|
+
// Toggle folder expansion state
|
|
11
|
+
const toggleFolder = (folderId) => {
|
|
12
|
+
setExpandedFolders((prev) => {
|
|
13
|
+
const next = new Set(prev);
|
|
14
|
+
if (next.has(folderId)) {
|
|
15
|
+
next.delete(folderId);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
next.add(folderId);
|
|
19
|
+
}
|
|
20
|
+
return next;
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
// Recursive function to render folder tree structure
|
|
24
|
+
const renderFolder = (folder, level = 0) => {
|
|
25
|
+
const hasChildFolders = folders.some((f) => f.parentFolder === folder.id);
|
|
26
|
+
const hasChildFiles = files.some((f) => f.parentFolder === folder.id);
|
|
27
|
+
const hasChildren = hasChildFolders || hasChildFiles;
|
|
28
|
+
const isExpanded = expandedFolders.has(folder.id);
|
|
29
|
+
const isSelected = selectedNodeId === folder.id;
|
|
30
|
+
return (_jsxs("div", { children: [_jsxs("div", { className: `flex cursor-pointer items-center rounded px-2 py-1 text-sm hover:bg-gray-100 ${isSelected ? "bg-blue-100 text-blue-800" : ""}`, style: { paddingLeft: `${level * 16 + 8}px` }, onClick: () => onSelectNode(folder.id), children: [hasChildren && (_jsxs("button", { className: "mr-1 flex h-4 w-4 items-center justify-center", onClick: (e) => {
|
|
31
|
+
e.stopPropagation();
|
|
32
|
+
toggleFolder(folder.id);
|
|
33
|
+
}, children: [isExpanded ? "▼" : "▶", " "] })), !hasChildren && _jsx("div", { className: "mr-1 w-5" }), _jsxs("span", { children: ["\uD83D\uDCC1 ", folder.name] })] }), isExpanded && hasChildren && (_jsxs("div", { children: [folders
|
|
34
|
+
.filter((f) => f.parentFolder === folder.id)
|
|
35
|
+
.map((child) => renderFolder(child, level + 1)), files
|
|
36
|
+
.filter((f) => f.parentFolder === folder.id)
|
|
37
|
+
.map((file) => (_jsxs("div", { className: `flex cursor-pointer items-center rounded px-2 py-1 text-sm hover:bg-gray-100 ${selectedNodeId === file.id ? "bg-blue-100 text-blue-800" : ""}`, style: { paddingLeft: `${(level + 1) * 16 + 8}px` }, onClick: () => onSelectFile(file), children: [_jsx("div", { className: "mr-1 w-5" }), _jsxs("span", { children: ["\uD83D\uDCC4 ", file.name] })] }, file.id)))] }))] }, folder.id));
|
|
38
|
+
};
|
|
39
|
+
return (_jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: `flex cursor-pointer items-center rounded px-2 py-1 text-sm hover:bg-gray-100 ${!selectedNodeId ? "bg-blue-100 text-blue-800" : ""}`, onClick: () => onSelectNode(undefined), children: _jsx("span", { children: "\uD83C\uDFE0 Root" }) }), folders
|
|
40
|
+
.filter((folder) => !folder.parentFolder)
|
|
41
|
+
.map((folder) => renderFolder(folder)), files
|
|
42
|
+
.filter((file) => !file.parentFolder)
|
|
43
|
+
.map((file) => (_jsxs("div", { className: `flex cursor-pointer items-center rounded px-2 py-1 text-sm hover:bg-gray-100 ${selectedNodeId === file.id ? "bg-blue-100 text-blue-800" : ""}`, style: { paddingLeft: "8px" }, onClick: () => onSelectFile(file), children: [_jsx("div", { className: "mr-1 w-5" }), _jsxs("span", { children: ["\uD83D\uDCC4 ", file.name] })] }, file.id)))] }));
|
|
44
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Isolated Sidebar component that uses our custom context instead of the global one
|
|
4
|
+
* This prevents interference with other sidebars in the application
|
|
5
|
+
*/
|
|
6
|
+
export declare const IsolatedSidebar: React.FC<{
|
|
7
|
+
nodes: any[];
|
|
8
|
+
activeNodeId?: string;
|
|
9
|
+
onActiveNodeChange?: (nodeId: string) => void;
|
|
10
|
+
sidebarTitle?: string;
|
|
11
|
+
showSearchBar?: boolean;
|
|
12
|
+
allowPinning?: boolean;
|
|
13
|
+
resizable?: boolean;
|
|
14
|
+
initialWidth?: number;
|
|
15
|
+
maxWidth?: number;
|
|
16
|
+
enableMacros?: number;
|
|
17
|
+
handleOnTitleClick?: () => void;
|
|
18
|
+
className?: string;
|
|
19
|
+
style?: React.CSSProperties;
|
|
20
|
+
children?: React.ReactNode;
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=IsolatedSidebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IsolatedSidebar.d.ts","sourceRoot":"","sources":["../../../../editors/network-admin/components/IsolatedSidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAI7D;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEhC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAgTA,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useRef, useCallback } from "react";
|
|
3
|
+
import { Icon } from "@powerhousedao/document-engineering";
|
|
4
|
+
import { useIsolatedSidebar } from "./IsolatedSidebarProvider.js";
|
|
5
|
+
/**
|
|
6
|
+
* Isolated Sidebar component that uses our custom context instead of the global one
|
|
7
|
+
* This prevents interference with other sidebars in the application
|
|
8
|
+
*/
|
|
9
|
+
export const IsolatedSidebar = ({ nodes, activeNodeId, onActiveNodeChange, sidebarTitle = "Network Admin", showSearchBar = true, allowPinning = true, resizable = true, initialWidth = 300, maxWidth = 500, enableMacros = 3, handleOnTitleClick, className, style, children, }) => {
|
|
10
|
+
const sidebarContext = useIsolatedSidebar();
|
|
11
|
+
const [isCollapsed, setIsCollapsed] = useState(false);
|
|
12
|
+
const [searchTerm, setSearchTerm] = useState("");
|
|
13
|
+
const sidebarRef = useRef(null);
|
|
14
|
+
const handleToggleCollapse = useCallback(() => {
|
|
15
|
+
setIsCollapsed(!isCollapsed);
|
|
16
|
+
}, [isCollapsed]);
|
|
17
|
+
const handleNodeClick = useCallback((nodeId) => {
|
|
18
|
+
sidebarContext.toggleNode(nodeId);
|
|
19
|
+
if (onActiveNodeChange) {
|
|
20
|
+
onActiveNodeChange(nodeId);
|
|
21
|
+
}
|
|
22
|
+
}, [sidebarContext, onActiveNodeChange]);
|
|
23
|
+
const handleSearchChange = useCallback((e) => {
|
|
24
|
+
const term = e.target.value;
|
|
25
|
+
setSearchTerm(term);
|
|
26
|
+
// Simple search implementation
|
|
27
|
+
if (term.trim() === "") {
|
|
28
|
+
sidebarContext.setSearchResults([]);
|
|
29
|
+
sidebarContext.setIsSearching(false);
|
|
30
|
+
sidebarContext.setActiveSearchIndex(0);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
sidebarContext.setIsSearching(true);
|
|
34
|
+
// Filter nodes based on search term
|
|
35
|
+
const searchInNodes = (nodes, searchTerm) => {
|
|
36
|
+
const results = [];
|
|
37
|
+
for (const node of nodes) {
|
|
38
|
+
const nodeName = node.name || node.title || "";
|
|
39
|
+
if (nodeName &&
|
|
40
|
+
nodeName.toLowerCase().includes(searchTerm.toLowerCase())) {
|
|
41
|
+
results.push(node);
|
|
42
|
+
}
|
|
43
|
+
if (node.children && node.children.length > 0) {
|
|
44
|
+
results.push(...searchInNodes(node.children, searchTerm));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return results;
|
|
48
|
+
};
|
|
49
|
+
const searchResults = searchInNodes(sidebarContext.nodes, term);
|
|
50
|
+
sidebarContext.setSearchResults(searchResults);
|
|
51
|
+
sidebarContext.setIsSearching(false);
|
|
52
|
+
sidebarContext.setActiveSearchIndex(0);
|
|
53
|
+
}
|
|
54
|
+
}, [sidebarContext]);
|
|
55
|
+
const renderNode = (node, depth = 0) => {
|
|
56
|
+
const isActive = activeNodeId === node.id;
|
|
57
|
+
const isExpanded = sidebarContext.expandedNodes.has(node.id);
|
|
58
|
+
const hasChildren = node.children && node.children.length > 0;
|
|
59
|
+
// Check if this node is the active search result
|
|
60
|
+
const isSearchActive = sidebarContext.searchResults.length > 0 &&
|
|
61
|
+
sidebarContext.searchResults[sidebarContext.activeSearchIndex]?.id ===
|
|
62
|
+
node.id;
|
|
63
|
+
// Check if this node matches the search term
|
|
64
|
+
const nodeName = node.name || node.title || "";
|
|
65
|
+
const matchesSearch = searchTerm && nodeName.toLowerCase().includes(searchTerm.toLowerCase());
|
|
66
|
+
return (_jsxs("div", { className: "select-none", children: [_jsxs("div", { className: `flex items-center py-2 px-3 cursor-pointer hover:bg-gray-200 rounded-md mx-2 ${isActive
|
|
67
|
+
? "bg-blue-100 text-blue-600"
|
|
68
|
+
: isSearchActive
|
|
69
|
+
? "bg-yellow-100 dark:bg-[#604B0033] text-gray-700"
|
|
70
|
+
: "text-gray-700"}`, style: { paddingLeft: `${depth * 16 + 12}px` }, onClick: () => handleNodeClick(node.id), children: [hasChildren && (_jsx("button", { className: "mr-2 p-1 hover:bg-gray-300 rounded transition-colors", onClick: (e) => {
|
|
71
|
+
e.stopPropagation();
|
|
72
|
+
sidebarContext.toggleNode(node.id);
|
|
73
|
+
}, children: _jsx(Icon, { name: isExpanded ? "ChevronDown" : "CaretRight", size: 12, className: "text-gray-500" }) })), !hasChildren && _jsx("div", { className: "w-6 mr-2" }), _jsx("span", { className: "text-sm truncate font-medium", children: matchesSearch && searchTerm ? (_jsx("span", { dangerouslySetInnerHTML: {
|
|
74
|
+
__html: nodeName.replace(new RegExp(searchTerm, "gi"), (match) => `<span class="bg-yellow-300 dark:bg-[#604B00]">${match}</span>`),
|
|
75
|
+
} })) : (nodeName) })] }), hasChildren && isExpanded && (_jsx("div", { children: node.children.map((child) => renderNode(child, depth + 1)) }))] }, node.id));
|
|
76
|
+
};
|
|
77
|
+
const filteredNodes = searchTerm
|
|
78
|
+
? sidebarContext.searchResults.length > 0
|
|
79
|
+
? sidebarContext.searchResults
|
|
80
|
+
: sidebarContext.nodes.filter((node) => {
|
|
81
|
+
const nodeName = node.name || node.title || "";
|
|
82
|
+
return (nodeName &&
|
|
83
|
+
nodeName.toLowerCase().includes(searchTerm.toLowerCase()));
|
|
84
|
+
})
|
|
85
|
+
: sidebarContext.nodes;
|
|
86
|
+
// Don't render anything when collapsed, just the toggle button
|
|
87
|
+
if (isCollapsed) {
|
|
88
|
+
return (_jsx("div", { className: "relative", children: resizable && (_jsx("div", { className: "group/sidebar-resizer absolute right-0 top-0 h-full w-[24px] translate-x-1/2 cursor-ew-resize select-none", children: _jsx("div", { className: "relative h-full w-px translate-x-[12px] transition-colors group-hover/sidebar-resizer:bg-gray-500 dark:group-hover/sidebar-resizer:bg-gray-600", children: _jsx("button", { type: "button", className: "absolute right-0 top-14 size-4 translate-x-1/2 rounded-full bg-gray-500 dark:bg-gray-900 opacity-100", onClick: handleToggleCollapse, title: "Expand sidebar", children: _jsx(Icon, { name: "Caret", size: 16, className: "min-w-4 text-gray-50 dark:text-gray-500" }) }) }) })) }));
|
|
89
|
+
}
|
|
90
|
+
return (_jsxs("div", { ref: sidebarRef, className: `group peer relative flex h-full flex-col bg-gray-50 shadow-lg transition-[width] duration-75 ease-linear dark:bg-slate-600 ${className || ""}`, style: {
|
|
91
|
+
width: initialWidth,
|
|
92
|
+
minWidth: resizable ? 200 : initialWidth,
|
|
93
|
+
maxWidth: resizable ? maxWidth : initialWidth,
|
|
94
|
+
...style,
|
|
95
|
+
}, children: [_jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-gray-300 bg-gray-50 p-4 dark:border-gray-800 dark:bg-slate-600", children: [!isCollapsed && (_jsx("div", { className: "flex items-center gap-2 truncate", children: _jsx("h2", { className: "truncate text-sm font-semibold text-gray-700 dark:text-gray-300 cursor-pointer hover:text-gray-600", onClick: handleOnTitleClick, children: sidebarTitle }) })), !isCollapsed && enableMacros > 0 && (_jsx("div", { className: "flex select-none items-center gap-2", children: Array.from({ length: Math.min(enableMacros, 4) }).map((_, index) => {
|
|
96
|
+
const isDisabled = index + 1 > sidebarContext.maxDepth;
|
|
97
|
+
return (_jsx("div", { role: "button", tabIndex: 2, className: `w-[26px] rounded-lg p-1 text-center text-xs ${!isDisabled
|
|
98
|
+
? "bg-slate-50 text-slate-100 hover:bg-slate-100 hover:text-slate-200 dark:bg-gray-900 dark:text-slate-200 dark:hover:bg-gray-600 dark:hover:text-slate-50"
|
|
99
|
+
: "cursor-not-allowed bg-gray-100 text-[#E2E4E7] dark:bg-[#252728] dark:text-slate-500"}`, onClick: () => {
|
|
100
|
+
if (!isDisabled) {
|
|
101
|
+
// Use the context's openLevel function for proper toggle behavior
|
|
102
|
+
sidebarContext.openLevel(index + 1);
|
|
103
|
+
}
|
|
104
|
+
}, children: index + 1 }, `macro-${index}`));
|
|
105
|
+
}) }))] }), !isCollapsed && (_jsx("div", { className: "flex-1 overflow-y-auto bg-gray-50", children: filteredNodes.length === 0 ? (_jsxs("div", { className: "p-4 text-center text-gray-500", children: [_jsx(Icon, { name: "FolderOpen", size: 24, className: "mx-auto mb-2 text-gray-300" }), _jsx("p", { className: "text-sm", children: "This node is empty" })] })) : (_jsx("div", { className: "py-2", children: filteredNodes.map((node) => renderNode(node)) })) })), !isCollapsed && showSearchBar && (_jsx("div", { className: "p-3 border-t border-gray-200 bg-gray-50", children: _jsxs("div", { className: "relative", children: [_jsx(Icon, { name: "Search", size: 16, className: "absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400" }), _jsx("input", { type: "text", placeholder: "Search...", value: searchTerm, onChange: handleSearchChange, className: "w-full pl-9 pr-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white" })] }) })), children, resizable && (_jsx("div", { className: "group/sidebar-resizer absolute right-0 top-0 h-full w-[24px] translate-x-1/2 cursor-ew-resize select-none", children: _jsx("div", { className: "relative h-full w-px translate-x-[12px] transition-colors group-hover/sidebar-resizer:bg-gray-500 dark:group-hover/sidebar-resizer:bg-gray-600", children: _jsx("button", { type: "button", className: "absolute right-0 top-14 size-4 translate-x-1/2 rounded-full bg-gray-500 dark:bg-gray-900 opacity-0 group-hover/sidebar-resizer:opacity-100 transition-opacity", onClick: handleToggleCollapse, title: "Collapse sidebar", children: _jsx(Icon, { name: "Caret", size: 16, className: "min-w-4 text-gray-50 dark:text-gray-500 -rotate-180" }) }) }) }))] }));
|
|
106
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { SidebarNode } from '@powerhousedao/document-engineering';
|
|
3
|
+
/**
|
|
4
|
+
* Isolated SidebarProvider that doesn't interfere with other sidebars
|
|
5
|
+
* Uses a completely separate React context and state management
|
|
6
|
+
*/
|
|
7
|
+
export declare const IsolatedSidebarProvider: React.FC<{
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
nodes?: SidebarNode[];
|
|
10
|
+
}>;
|
|
11
|
+
/**
|
|
12
|
+
* Hook to use the isolated sidebar context
|
|
13
|
+
*/
|
|
14
|
+
export declare const useIsolatedSidebar: () => any;
|
|
15
|
+
//# sourceMappingURL=IsolatedSidebarProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IsolatedSidebarProvider.d.ts","sourceRoot":"","sources":["../../../../editors/network-admin/components/IsolatedSidebarProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmG,MAAM,OAAO,CAAC;AACxH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AA4EvE;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC7C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;CACvB,CAuTA,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,WAM9B,CAAC"}
|
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext, useReducer, useRef, useState, useCallback, useEffect, useMemo } from 'react';
|
|
3
|
+
// Create a completely isolated context for Network Admin sidebar
|
|
4
|
+
const NetworkAdminSidebarContext = createContext(null);
|
|
5
|
+
// Initial state for the isolated sidebar
|
|
6
|
+
const initialSidebarState = {
|
|
7
|
+
nodes: [],
|
|
8
|
+
expandedNodes: new Set(),
|
|
9
|
+
activeNodeId: undefined,
|
|
10
|
+
searchTerm: '',
|
|
11
|
+
searchResults: [],
|
|
12
|
+
isSearching: false,
|
|
13
|
+
activeSearchIndex: 0,
|
|
14
|
+
pinnedNodePath: [],
|
|
15
|
+
isStatusFilterEnabled: false,
|
|
16
|
+
};
|
|
17
|
+
// Action types for the isolated sidebar
|
|
18
|
+
const SidebarActionType = {
|
|
19
|
+
SET_NODES: 'SET_NODES',
|
|
20
|
+
TOGGLE_NODE: 'TOGGLE_NODE',
|
|
21
|
+
SET_ACTIVE_NODE: 'SET_ACTIVE_NODE',
|
|
22
|
+
SET_SEARCH_TERM: 'SET_SEARCH_TERM',
|
|
23
|
+
SET_SEARCH_RESULTS: 'SET_SEARCH_RESULTS',
|
|
24
|
+
SET_IS_SEARCHING: 'SET_IS_SEARCHING',
|
|
25
|
+
SET_ACTIVE_SEARCH_INDEX: 'SET_ACTIVE_SEARCH_INDEX',
|
|
26
|
+
SET_PINNED_NODE_PATH: 'SET_PINNED_NODE_PATH',
|
|
27
|
+
TOGGLE_STATUS_FILTER: 'TOGGLE_STATUS_FILTER',
|
|
28
|
+
OPEN_NODE: 'OPEN_NODE',
|
|
29
|
+
CLOSE_NODE: 'CLOSE_NODE',
|
|
30
|
+
SET_EXPANDED_NODES: 'SET_EXPANDED_NODES',
|
|
31
|
+
};
|
|
32
|
+
// Reducer for the isolated sidebar
|
|
33
|
+
const networkAdminSidebarReducer = (state, action) => {
|
|
34
|
+
switch (action.type) {
|
|
35
|
+
case SidebarActionType.SET_NODES:
|
|
36
|
+
return { ...state, nodes: action.payload };
|
|
37
|
+
case SidebarActionType.TOGGLE_NODE:
|
|
38
|
+
const newExpandedNodes = new Set(state.expandedNodes);
|
|
39
|
+
if (newExpandedNodes.has(action.payload)) {
|
|
40
|
+
newExpandedNodes.delete(action.payload);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
newExpandedNodes.add(action.payload);
|
|
44
|
+
}
|
|
45
|
+
return { ...state, expandedNodes: newExpandedNodes };
|
|
46
|
+
case SidebarActionType.SET_ACTIVE_NODE:
|
|
47
|
+
return { ...state, activeNodeId: action.payload };
|
|
48
|
+
case SidebarActionType.SET_SEARCH_TERM:
|
|
49
|
+
return { ...state, searchTerm: action.payload };
|
|
50
|
+
case SidebarActionType.SET_SEARCH_RESULTS:
|
|
51
|
+
return { ...state, searchResults: action.payload };
|
|
52
|
+
case SidebarActionType.SET_IS_SEARCHING:
|
|
53
|
+
return { ...state, isSearching: action.payload };
|
|
54
|
+
case SidebarActionType.SET_PINNED_NODE_PATH:
|
|
55
|
+
return { ...state, pinnedNodePath: action.payload };
|
|
56
|
+
case SidebarActionType.TOGGLE_STATUS_FILTER:
|
|
57
|
+
return { ...state, isStatusFilterEnabled: !state.isStatusFilterEnabled };
|
|
58
|
+
case SidebarActionType.OPEN_NODE:
|
|
59
|
+
const openExpandedNodes = new Set(state.expandedNodes);
|
|
60
|
+
openExpandedNodes.add(action.payload);
|
|
61
|
+
return { ...state, expandedNodes: openExpandedNodes };
|
|
62
|
+
case SidebarActionType.CLOSE_NODE:
|
|
63
|
+
const closeExpandedNodes = new Set(state.expandedNodes);
|
|
64
|
+
closeExpandedNodes.delete(action.payload);
|
|
65
|
+
return { ...state, expandedNodes: closeExpandedNodes };
|
|
66
|
+
case SidebarActionType.SET_ACTIVE_SEARCH_INDEX:
|
|
67
|
+
return { ...state, activeSearchIndex: action.payload };
|
|
68
|
+
case SidebarActionType.SET_EXPANDED_NODES:
|
|
69
|
+
return { ...state, expandedNodes: action.payload };
|
|
70
|
+
default:
|
|
71
|
+
return state;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Isolated SidebarProvider that doesn't interfere with other sidebars
|
|
76
|
+
* Uses a completely separate React context and state management
|
|
77
|
+
*/
|
|
78
|
+
export const IsolatedSidebarProvider = ({ children, nodes: initialNodes = [] }) => {
|
|
79
|
+
const [state, dispatch] = useReducer(networkAdminSidebarReducer, {
|
|
80
|
+
...initialSidebarState,
|
|
81
|
+
nodes: initialNodes,
|
|
82
|
+
});
|
|
83
|
+
const virtualListRef = useRef(null);
|
|
84
|
+
const [onActiveNodeChange, setOnActiveNodeChange] = useState(() => () => undefined);
|
|
85
|
+
const setNodes = useCallback((newNodes) => {
|
|
86
|
+
dispatch({ type: SidebarActionType.SET_NODES, payload: newNodes });
|
|
87
|
+
}, []);
|
|
88
|
+
const toggleNode = useCallback((nodeId) => {
|
|
89
|
+
dispatch({ type: SidebarActionType.TOGGLE_NODE, payload: nodeId });
|
|
90
|
+
}, []);
|
|
91
|
+
const setActiveNodeId = useCallback((nodeId) => {
|
|
92
|
+
dispatch({ type: SidebarActionType.SET_ACTIVE_NODE, payload: nodeId });
|
|
93
|
+
}, []);
|
|
94
|
+
const setSearchTerm = useCallback((term) => {
|
|
95
|
+
dispatch({ type: SidebarActionType.SET_SEARCH_TERM, payload: term });
|
|
96
|
+
}, []);
|
|
97
|
+
const setSearchResults = useCallback((results) => {
|
|
98
|
+
dispatch({ type: SidebarActionType.SET_SEARCH_RESULTS, payload: results });
|
|
99
|
+
}, []);
|
|
100
|
+
const setIsSearching = useCallback((isSearching) => {
|
|
101
|
+
dispatch({ type: SidebarActionType.SET_IS_SEARCHING, payload: isSearching });
|
|
102
|
+
}, []);
|
|
103
|
+
const setActiveSearchIndex = useCallback((index) => {
|
|
104
|
+
dispatch({ type: SidebarActionType.SET_ACTIVE_SEARCH_INDEX, payload: index });
|
|
105
|
+
}, []);
|
|
106
|
+
const nextSearchResult = useCallback(() => {
|
|
107
|
+
if (state.searchResults.length > 0) {
|
|
108
|
+
const nextIndex = Math.min(state.searchResults.length - 1, state.activeSearchIndex + 1);
|
|
109
|
+
setActiveSearchIndex(nextIndex);
|
|
110
|
+
}
|
|
111
|
+
}, [state.searchResults.length, state.activeSearchIndex, setActiveSearchIndex]);
|
|
112
|
+
const previousSearchResult = useCallback(() => {
|
|
113
|
+
if (state.searchResults.length > 0) {
|
|
114
|
+
const prevIndex = Math.max(0, state.activeSearchIndex - 1);
|
|
115
|
+
setActiveSearchIndex(prevIndex);
|
|
116
|
+
}
|
|
117
|
+
}, [state.searchResults.length, state.activeSearchIndex, setActiveSearchIndex]);
|
|
118
|
+
const setPinnedNodePath = useCallback((path) => {
|
|
119
|
+
dispatch({ type: SidebarActionType.SET_PINNED_NODE_PATH, payload: path });
|
|
120
|
+
}, []);
|
|
121
|
+
const toggleStatusFilter = useCallback(() => {
|
|
122
|
+
dispatch({ type: SidebarActionType.TOGGLE_STATUS_FILTER });
|
|
123
|
+
}, []);
|
|
124
|
+
const openNode = useCallback((nodeId) => {
|
|
125
|
+
dispatch({ type: SidebarActionType.OPEN_NODE, payload: nodeId });
|
|
126
|
+
}, []);
|
|
127
|
+
const closeNode = useCallback((nodeId) => {
|
|
128
|
+
dispatch({ type: SidebarActionType.CLOSE_NODE, payload: nodeId });
|
|
129
|
+
}, []);
|
|
130
|
+
const setExpandedNodes = useCallback((nodes) => {
|
|
131
|
+
dispatch({ type: SidebarActionType.SET_EXPANDED_NODES, payload: nodes });
|
|
132
|
+
}, []);
|
|
133
|
+
const setActiveNodeChangeCallback = useCallback((callback) => {
|
|
134
|
+
setOnActiveNodeChange(() => callback);
|
|
135
|
+
}, []);
|
|
136
|
+
const syncActiveNodeId = useCallback((nodeId) => {
|
|
137
|
+
dispatch({ type: SidebarActionType.SET_ACTIVE_NODE, payload: nodeId });
|
|
138
|
+
}, []);
|
|
139
|
+
// Update nodes when initialNodes change
|
|
140
|
+
useEffect(() => {
|
|
141
|
+
if (initialNodes.length > 0) {
|
|
142
|
+
setNodes(initialNodes);
|
|
143
|
+
}
|
|
144
|
+
}, [initialNodes, setNodes]);
|
|
145
|
+
// Calculate flattened nodes
|
|
146
|
+
const flattenedNodes = useMemo(() => {
|
|
147
|
+
const flattened = [];
|
|
148
|
+
const dfs = (node, depth) => {
|
|
149
|
+
const flatNode = {
|
|
150
|
+
...node,
|
|
151
|
+
depth,
|
|
152
|
+
isExpanded: state.expandedNodes.has(node.id),
|
|
153
|
+
};
|
|
154
|
+
flattened.push(flatNode);
|
|
155
|
+
if (Array.isArray(node.children) && state.expandedNodes.has(node.id)) {
|
|
156
|
+
for (const child of node.children) {
|
|
157
|
+
dfs(child, depth + 1);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
for (const node of state.nodes) {
|
|
162
|
+
dfs(node, 0);
|
|
163
|
+
}
|
|
164
|
+
return flattened;
|
|
165
|
+
}, [state.nodes, state.expandedNodes]);
|
|
166
|
+
// Calculate max depth
|
|
167
|
+
const maxDepth = useMemo(() => {
|
|
168
|
+
const getMaxDepth = (nodes, currentLevel = 0) => {
|
|
169
|
+
if (!nodes || nodes.length === 0)
|
|
170
|
+
return currentLevel;
|
|
171
|
+
let max = currentLevel;
|
|
172
|
+
for (const node of nodes) {
|
|
173
|
+
if (node.children && node.children.length > 0) {
|
|
174
|
+
const childDepth = getMaxDepth(node.children, currentLevel + 1);
|
|
175
|
+
max = Math.max(max, childDepth);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return max;
|
|
179
|
+
};
|
|
180
|
+
const depth = getMaxDepth(state.nodes, 0);
|
|
181
|
+
// Return depth count (number of levels) instead of level number (0-based index)
|
|
182
|
+
const depthCount = depth + 1;
|
|
183
|
+
return depthCount;
|
|
184
|
+
}, [state.nodes]);
|
|
185
|
+
// Utility function to check if a level is open
|
|
186
|
+
const isOpenLevel = useCallback((items, expandedNodes, level) => {
|
|
187
|
+
if (!items.length || level < 1) {
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
// Check if all levels up to the target level are open
|
|
191
|
+
const queue = [...items];
|
|
192
|
+
for (let i = 0; i < level; i++) {
|
|
193
|
+
const nextLevelQueue = [];
|
|
194
|
+
while (queue.length > 0) {
|
|
195
|
+
const current = queue.shift();
|
|
196
|
+
if (!current)
|
|
197
|
+
continue;
|
|
198
|
+
// Check if current level is expanded
|
|
199
|
+
if (!expandedNodes.has(current.id)) {
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
// Add children to next level queue
|
|
203
|
+
if (current.children?.length) {
|
|
204
|
+
nextLevelQueue.push(...current.children);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// Move to next level
|
|
208
|
+
queue.push(...nextLevelQueue);
|
|
209
|
+
if (queue.length === 0)
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
return true;
|
|
213
|
+
}, []);
|
|
214
|
+
// Utility function to get nodes that should be expanded for a specific level
|
|
215
|
+
const getOpenLevels = useCallback((items, level) => {
|
|
216
|
+
if (level < 1) {
|
|
217
|
+
return new Set();
|
|
218
|
+
}
|
|
219
|
+
const result = new Set();
|
|
220
|
+
const traverse = (nodes, currentLevel) => {
|
|
221
|
+
for (const node of nodes) {
|
|
222
|
+
// Add current node if we're not at the target level yet
|
|
223
|
+
if (currentLevel < level) {
|
|
224
|
+
result.add(node.id);
|
|
225
|
+
}
|
|
226
|
+
// Continue traversing children if we haven't reached the target level
|
|
227
|
+
if (node.children?.length && currentLevel < level - 1) {
|
|
228
|
+
traverse(node.children, currentLevel + 1);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
traverse(items, 0); // Start from level 0 (root)
|
|
233
|
+
return result;
|
|
234
|
+
}, []);
|
|
235
|
+
const openLevel = useCallback((targetLevel) => {
|
|
236
|
+
// Check if the target level is currently visible by checking if nodes at that level are expanded
|
|
237
|
+
const isTargetLevelVisible = (() => {
|
|
238
|
+
if (targetLevel === 1) {
|
|
239
|
+
// For level 1, check if root nodes are expanded
|
|
240
|
+
return state.nodes.every((node) => state.expandedNodes.has(node.id));
|
|
241
|
+
}
|
|
242
|
+
else if (targetLevel === 2) {
|
|
243
|
+
// For level 2, check if folder nodes are expanded
|
|
244
|
+
const folderNodes = state.nodes.flatMap((node) => node.children || []);
|
|
245
|
+
return folderNodes.length > 0 && folderNodes.every((folder) => state.expandedNodes.has(folder.id));
|
|
246
|
+
}
|
|
247
|
+
else if (targetLevel === 3) {
|
|
248
|
+
// For level 3, check if document nodes are expanded
|
|
249
|
+
const documentNodes = state.nodes.flatMap((node) => (node.children || []).flatMap((folder) => folder.children || []));
|
|
250
|
+
return documentNodes.length > 0 && documentNodes.every((doc) => state.expandedNodes.has(doc.id));
|
|
251
|
+
}
|
|
252
|
+
return false;
|
|
253
|
+
})();
|
|
254
|
+
if (isTargetLevelVisible) {
|
|
255
|
+
// If the target level is visible, hide it by closing nodes at that level
|
|
256
|
+
if (targetLevel === 1) {
|
|
257
|
+
// Close root nodes
|
|
258
|
+
const newExpandedNodes = new Set(state.expandedNodes);
|
|
259
|
+
state.nodes.forEach((node) => newExpandedNodes.delete(node.id));
|
|
260
|
+
dispatch({ type: SidebarActionType.SET_EXPANDED_NODES, payload: newExpandedNodes });
|
|
261
|
+
}
|
|
262
|
+
else if (targetLevel === 2) {
|
|
263
|
+
// Close folder nodes
|
|
264
|
+
const newExpandedNodes = new Set(state.expandedNodes);
|
|
265
|
+
state.nodes.forEach((node) => {
|
|
266
|
+
if (node.children) {
|
|
267
|
+
node.children.forEach((folder) => newExpandedNodes.delete(folder.id));
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
dispatch({ type: SidebarActionType.SET_EXPANDED_NODES, payload: newExpandedNodes });
|
|
271
|
+
}
|
|
272
|
+
else if (targetLevel === 3) {
|
|
273
|
+
// Close document nodes
|
|
274
|
+
const newExpandedNodes = new Set(state.expandedNodes);
|
|
275
|
+
state.nodes.forEach((node) => {
|
|
276
|
+
if (node.children) {
|
|
277
|
+
node.children.forEach((folder) => {
|
|
278
|
+
if (folder.children) {
|
|
279
|
+
folder.children.forEach((doc) => newExpandedNodes.delete(doc.id));
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
dispatch({ type: SidebarActionType.SET_EXPANDED_NODES, payload: newExpandedNodes });
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
// If the target level is not visible, show it by opening nodes at that level
|
|
289
|
+
if (targetLevel === 1) {
|
|
290
|
+
// Open root nodes
|
|
291
|
+
const newExpandedNodes = new Set(state.expandedNodes);
|
|
292
|
+
state.nodes.forEach((node) => newExpandedNodes.add(node.id));
|
|
293
|
+
dispatch({ type: SidebarActionType.SET_EXPANDED_NODES, payload: newExpandedNodes });
|
|
294
|
+
}
|
|
295
|
+
else if (targetLevel === 2) {
|
|
296
|
+
// Open folder nodes (and root nodes if not already open)
|
|
297
|
+
const newExpandedNodes = new Set(state.expandedNodes);
|
|
298
|
+
state.nodes.forEach((node) => {
|
|
299
|
+
newExpandedNodes.add(node.id); // Ensure root is open
|
|
300
|
+
if (node.children) {
|
|
301
|
+
node.children.forEach((folder) => newExpandedNodes.add(folder.id));
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
dispatch({ type: SidebarActionType.SET_EXPANDED_NODES, payload: newExpandedNodes });
|
|
305
|
+
}
|
|
306
|
+
else if (targetLevel === 3) {
|
|
307
|
+
// Open document nodes (and root + folder nodes if not already open)
|
|
308
|
+
const newExpandedNodes = new Set(state.expandedNodes);
|
|
309
|
+
state.nodes.forEach((node) => {
|
|
310
|
+
newExpandedNodes.add(node.id); // Ensure root is open
|
|
311
|
+
if (node.children) {
|
|
312
|
+
node.children.forEach((folder) => {
|
|
313
|
+
newExpandedNodes.add(folder.id); // Ensure folder is open
|
|
314
|
+
if (folder.children) {
|
|
315
|
+
folder.children.forEach((doc) => newExpandedNodes.add(doc.id));
|
|
316
|
+
}
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
dispatch({ type: SidebarActionType.SET_EXPANDED_NODES, payload: newExpandedNodes });
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}, [state.nodes, state.expandedNodes]);
|
|
324
|
+
const contextValue = {
|
|
325
|
+
nodes: state.nodes,
|
|
326
|
+
flattenedNodes,
|
|
327
|
+
expandedNodes: state.expandedNodes,
|
|
328
|
+
pinnedNodePath: state.pinnedNodePath,
|
|
329
|
+
maxDepth,
|
|
330
|
+
searchTerm: state.searchTerm,
|
|
331
|
+
searchResults: state.searchResults,
|
|
332
|
+
isSearching: state.isSearching,
|
|
333
|
+
activeSearchIndex: state.activeSearchIndex,
|
|
334
|
+
isStatusFilterEnabled: state.isStatusFilterEnabled,
|
|
335
|
+
virtualListRef,
|
|
336
|
+
activeNodeId: state.activeNodeId,
|
|
337
|
+
toggleNode,
|
|
338
|
+
openNode,
|
|
339
|
+
closeNode,
|
|
340
|
+
togglePin: () => { }, // Simplified for now
|
|
341
|
+
openLevel,
|
|
342
|
+
changeSearchTerm: setSearchTerm,
|
|
343
|
+
nextSearchResult,
|
|
344
|
+
previousSearchResult,
|
|
345
|
+
setNodes,
|
|
346
|
+
syncActiveNodeId,
|
|
347
|
+
onActiveNodeChange,
|
|
348
|
+
setActiveNodeChangeCallback,
|
|
349
|
+
toggleStatusFilter,
|
|
350
|
+
setSearchTerm,
|
|
351
|
+
setSearchResults,
|
|
352
|
+
setIsSearching,
|
|
353
|
+
setActiveSearchIndex,
|
|
354
|
+
setExpandedNodes,
|
|
355
|
+
};
|
|
356
|
+
return (_jsx(NetworkAdminSidebarContext.Provider, { value: contextValue, children: children }));
|
|
357
|
+
};
|
|
358
|
+
/**
|
|
359
|
+
* Hook to use the isolated sidebar context
|
|
360
|
+
*/
|
|
361
|
+
export const useIsolatedSidebar = () => {
|
|
362
|
+
const context = useContext(NetworkAdminSidebarContext);
|
|
363
|
+
if (!context) {
|
|
364
|
+
throw new Error('useIsolatedSidebar must be used within IsolatedSidebarProvider');
|
|
365
|
+
}
|
|
366
|
+
return context;
|
|
367
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base editor component that renders the drive explorer interface.
|
|
3
|
+
* Customize document opening behavior and drive-level actions here.
|
|
4
|
+
*/
|
|
5
|
+
export declare function BaseEditor(props: any): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
/**
|
|
7
|
+
* Main editor entry point with required providers.
|
|
8
|
+
*/
|
|
9
|
+
export default function Editor(props: any): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/network-admin/editor.tsx"],"names":[],"mappings":"AASA;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,2CAOpC;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,GAAG,2CAaxC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { WagmiContext } from "@powerhousedao/design-system";
|
|
3
|
+
import { AnalyticsProvider, DriveContextProvider, useAppConfig, } from "@powerhousedao/reactor-browser";
|
|
4
|
+
import { DriveExplorer } from "./components/DriveExplorer.js";
|
|
5
|
+
/**
|
|
6
|
+
* Base editor component that renders the drive explorer interface.
|
|
7
|
+
* Customize document opening behavior and drive-level actions here.
|
|
8
|
+
*/
|
|
9
|
+
export function BaseEditor(props) {
|
|
10
|
+
const { context, document } = props;
|
|
11
|
+
return (_jsx("div", { className: "h-full w-full", children: _jsx(DriveExplorer, { document: document, context: context }) }));
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Main editor entry point with required providers.
|
|
15
|
+
*/
|
|
16
|
+
export default function Editor(props) {
|
|
17
|
+
const appConfig = useAppConfig();
|
|
18
|
+
const analyticsDatabaseName = appConfig?.analyticsDatabaseName;
|
|
19
|
+
return (
|
|
20
|
+
// Required context providers for drive functionality
|
|
21
|
+
_jsx(DriveContextProvider, { value: props.context, children: _jsx(WagmiContext, { children: _jsx(AnalyticsProvider, { databaseName: analyticsDatabaseName, children: _jsx(BaseEditor, { ...props }) }) }) }));
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../editors/network-admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,eAAO,MAAM,MAAM,EAAE,iBASpB,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Editor from "./editor.js";
|
|
2
|
+
export const module = {
|
|
3
|
+
Component: Editor,
|
|
4
|
+
documentTypes: ["powerhouse/document-drive"],
|
|
5
|
+
config: {
|
|
6
|
+
id: "network-admin",
|
|
7
|
+
disableExternalControls: true,
|
|
8
|
+
documentToolbarEnabled: true,
|
|
9
|
+
showSwitchboardLink: true,
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
export default module;
|