@powerhousedao/contributor-billing 0.1.40 → 0.1.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/document-models/document-models.d.ts.map +1 -1
- package/dist/document-models/document-models.js +2 -0
- package/dist/document-models/index.d.ts +1 -0
- package/dist/document-models/index.d.ts.map +1 -1
- package/dist/document-models/index.js +1 -0
- package/dist/document-models/resource-template/actions.d.ts +32 -0
- package/dist/document-models/resource-template/actions.d.ts.map +1 -0
- package/dist/document-models/resource-template/actions.js +12 -0
- package/dist/document-models/resource-template/gen/actions.d.ts +14 -0
- package/dist/document-models/resource-template/gen/actions.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/actions.js +6 -0
- package/dist/document-models/resource-template/gen/audience-management/actions.d.ts +12 -0
- package/dist/document-models/resource-template/gen/audience-management/actions.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/audience-management/actions.js +1 -0
- package/dist/document-models/resource-template/gen/audience-management/creators.d.ts +5 -0
- package/dist/document-models/resource-template/gen/audience-management/creators.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/audience-management/creators.js +4 -0
- package/dist/document-models/resource-template/gen/audience-management/error.d.ts +21 -0
- package/dist/document-models/resource-template/gen/audience-management/error.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/audience-management/error.js +20 -0
- package/dist/document-models/resource-template/gen/audience-management/operations.d.ts +8 -0
- package/dist/document-models/resource-template/gen/audience-management/operations.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/audience-management/operations.js +3 -0
- package/dist/document-models/resource-template/gen/creators.d.ts +13 -0
- package/dist/document-models/resource-template/gen/creators.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/creators.js +12 -0
- package/dist/document-models/resource-template/gen/document-model.d.ts +3 -0
- package/dist/document-models/resource-template/gen/document-model.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/document-model.js +410 -0
- package/dist/document-models/resource-template/gen/document-schema.d.ts +408 -0
- package/dist/document-models/resource-template/gen/document-schema.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/document-schema.js +33 -0
- package/dist/document-models/resource-template/gen/document-type.d.ts +2 -0
- package/dist/document-models/resource-template/gen/document-type.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/document-type.js +1 -0
- package/dist/document-models/resource-template/gen/facet-targeting/actions.d.ts +20 -0
- package/dist/document-models/resource-template/gen/facet-targeting/actions.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/facet-targeting/actions.js +1 -0
- package/dist/document-models/resource-template/gen/facet-targeting/creators.d.ts +7 -0
- package/dist/document-models/resource-template/gen/facet-targeting/creators.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/facet-targeting/creators.js +6 -0
- package/dist/document-models/resource-template/gen/facet-targeting/error.d.ts +28 -0
- package/dist/document-models/resource-template/gen/facet-targeting/error.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/facet-targeting/error.js +29 -0
- package/dist/document-models/resource-template/gen/facet-targeting/operations.d.ts +10 -0
- package/dist/document-models/resource-template/gen/facet-targeting/operations.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/facet-targeting/operations.js +3 -0
- package/dist/document-models/resource-template/gen/index.d.ts +17 -0
- package/dist/document-models/resource-template/gen/index.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/index.js +16 -0
- package/dist/document-models/resource-template/gen/option-group-management/actions.d.ts +16 -0
- package/dist/document-models/resource-template/gen/option-group-management/actions.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/option-group-management/actions.js +1 -0
- package/dist/document-models/resource-template/gen/option-group-management/creators.d.ts +6 -0
- package/dist/document-models/resource-template/gen/option-group-management/creators.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/option-group-management/creators.js +5 -0
- package/dist/document-models/resource-template/gen/option-group-management/error.d.ts +28 -0
- package/dist/document-models/resource-template/gen/option-group-management/error.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/option-group-management/error.js +29 -0
- package/dist/document-models/resource-template/gen/option-group-management/operations.d.ts +9 -0
- package/dist/document-models/resource-template/gen/option-group-management/operations.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/option-group-management/operations.js +3 -0
- package/dist/document-models/resource-template/gen/ph-factories.d.ts +23 -0
- package/dist/document-models/resource-template/gen/ph-factories.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/ph-factories.js +61 -0
- package/dist/document-models/resource-template/gen/reducer.d.ts +3 -0
- package/dist/document-models/resource-template/gen/reducer.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/reducer.js +98 -0
- package/dist/document-models/resource-template/gen/schema/index.d.ts +3 -0
- package/dist/document-models/resource-template/gen/schema/index.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/schema/index.js +2 -0
- package/dist/document-models/resource-template/gen/schema/types.d.ts +305 -0
- package/dist/document-models/resource-template/gen/schema/types.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/schema/types.js +1 -0
- package/dist/document-models/resource-template/gen/schema/zod.d.ts +37 -0
- package/dist/document-models/resource-template/gen/schema/zod.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/schema/zod.js +236 -0
- package/dist/document-models/resource-template/gen/service-category-management/actions.d.ts +12 -0
- package/dist/document-models/resource-template/gen/service-category-management/actions.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/service-category-management/actions.js +1 -0
- package/dist/document-models/resource-template/gen/service-category-management/creators.d.ts +5 -0
- package/dist/document-models/resource-template/gen/service-category-management/creators.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/service-category-management/creators.js +4 -0
- package/dist/document-models/resource-template/gen/service-category-management/error.d.ts +2 -0
- package/dist/document-models/resource-template/gen/service-category-management/error.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/service-category-management/error.js +1 -0
- package/dist/document-models/resource-template/gen/service-category-management/operations.d.ts +8 -0
- package/dist/document-models/resource-template/gen/service-category-management/operations.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/service-category-management/operations.js +3 -0
- package/dist/document-models/resource-template/gen/service-management/actions.d.ts +24 -0
- package/dist/document-models/resource-template/gen/service-management/actions.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/service-management/actions.js +1 -0
- package/dist/document-models/resource-template/gen/service-management/creators.d.ts +8 -0
- package/dist/document-models/resource-template/gen/service-management/creators.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/service-management/creators.js +7 -0
- package/dist/document-models/resource-template/gen/service-management/error.d.ts +52 -0
- package/dist/document-models/resource-template/gen/service-management/error.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/service-management/error.js +61 -0
- package/dist/document-models/resource-template/gen/service-management/operations.d.ts +11 -0
- package/dist/document-models/resource-template/gen/service-management/operations.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/service-management/operations.js +3 -0
- package/dist/document-models/resource-template/gen/template-management/actions.d.ts +20 -0
- package/dist/document-models/resource-template/gen/template-management/actions.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/template-management/actions.js +1 -0
- package/dist/document-models/resource-template/gen/template-management/creators.d.ts +7 -0
- package/dist/document-models/resource-template/gen/template-management/creators.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/template-management/creators.js +6 -0
- package/dist/document-models/resource-template/gen/template-management/error.d.ts +2 -0
- package/dist/document-models/resource-template/gen/template-management/error.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/template-management/error.js +1 -0
- package/dist/document-models/resource-template/gen/template-management/operations.d.ts +10 -0
- package/dist/document-models/resource-template/gen/template-management/operations.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/template-management/operations.js +3 -0
- package/dist/document-models/resource-template/gen/types.d.ts +12 -0
- package/dist/document-models/resource-template/gen/types.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/types.js +1 -0
- package/dist/document-models/resource-template/gen/utils.d.ts +15 -0
- package/dist/document-models/resource-template/gen/utils.d.ts.map +1 -0
- package/dist/document-models/resource-template/gen/utils.js +65 -0
- package/dist/document-models/resource-template/hooks.d.ts +11 -0
- package/dist/document-models/resource-template/hooks.d.ts.map +1 -0
- package/dist/document-models/resource-template/hooks.js +26 -0
- package/dist/document-models/resource-template/index.d.ts +10 -0
- package/dist/document-models/resource-template/index.d.ts.map +1 -0
- package/dist/document-models/resource-template/index.js +9 -0
- package/dist/document-models/resource-template/module.d.ts +5 -0
- package/dist/document-models/resource-template/module.d.ts.map +1 -0
- package/dist/document-models/resource-template/module.js +10 -0
- package/dist/document-models/resource-template/reducers/audience-management.d.ts +3 -0
- package/dist/document-models/resource-template/reducers/audience-management.d.ts.map +1 -0
- package/dist/document-models/resource-template/reducers/audience-management.js +17 -0
- package/dist/document-models/resource-template/reducers/facet-preset-management.d.ts +59 -0
- package/dist/document-models/resource-template/reducers/facet-preset-management.d.ts.map +1 -0
- package/dist/document-models/resource-template/reducers/facet-preset-management.js +52 -0
- package/dist/document-models/resource-template/reducers/facet-targeting.d.ts +3 -0
- package/dist/document-models/resource-template/reducers/facet-targeting.d.ts.map +1 -0
- package/dist/document-models/resource-template/reducers/facet-targeting.js +47 -0
- package/dist/document-models/resource-template/reducers/option-group-management.d.ts +3 -0
- package/dist/document-models/resource-template/reducers/option-group-management.d.ts.map +1 -0
- package/dist/document-models/resource-template/reducers/option-group-management.js +44 -0
- package/dist/document-models/resource-template/reducers/service-category-management.d.ts +3 -0
- package/dist/document-models/resource-template/reducers/service-category-management.d.ts.map +1 -0
- package/dist/document-models/resource-template/reducers/service-category-management.js +10 -0
- package/dist/document-models/resource-template/reducers/service-management.d.ts +3 -0
- package/dist/document-models/resource-template/reducers/service-management.d.ts.map +1 -0
- package/dist/document-models/resource-template/reducers/service-management.js +71 -0
- package/dist/document-models/resource-template/reducers/template-management.d.ts +3 -0
- package/dist/document-models/resource-template/reducers/template-management.d.ts.map +1 -0
- package/dist/document-models/resource-template/reducers/template-management.js +32 -0
- package/dist/document-models/resource-template/src/index.d.ts +2 -0
- package/dist/document-models/resource-template/src/index.d.ts.map +1 -0
- package/dist/document-models/resource-template/src/index.js +1 -0
- package/dist/document-models/resource-template/src/reducers/audience-management.d.ts +3 -0
- package/dist/document-models/resource-template/src/reducers/audience-management.d.ts.map +1 -0
- package/dist/document-models/resource-template/src/reducers/audience-management.js +17 -0
- package/dist/document-models/resource-template/src/reducers/facet-targeting.d.ts +3 -0
- package/dist/document-models/resource-template/src/reducers/facet-targeting.d.ts.map +1 -0
- package/dist/document-models/resource-template/src/reducers/facet-targeting.js +46 -0
- package/dist/document-models/resource-template/src/reducers/option-group-management.d.ts +3 -0
- package/dist/document-models/resource-template/src/reducers/option-group-management.d.ts.map +1 -0
- package/dist/document-models/resource-template/src/reducers/option-group-management.js +42 -0
- package/dist/document-models/resource-template/src/reducers/service-category-management.d.ts +3 -0
- package/dist/document-models/resource-template/src/reducers/service-category-management.d.ts.map +1 -0
- package/dist/document-models/resource-template/src/reducers/service-category-management.js +10 -0
- package/dist/document-models/resource-template/src/reducers/service-management.d.ts +3 -0
- package/dist/document-models/resource-template/src/reducers/service-management.d.ts.map +1 -0
- package/dist/document-models/resource-template/src/reducers/service-management.js +68 -0
- package/dist/document-models/resource-template/src/reducers/template-management.d.ts +3 -0
- package/dist/document-models/resource-template/src/reducers/template-management.d.ts.map +1 -0
- package/dist/document-models/resource-template/src/reducers/template-management.js +32 -0
- package/dist/document-models/resource-template/src/tests/audience-management.test.d.ts +6 -0
- package/dist/document-models/resource-template/src/tests/audience-management.test.d.ts.map +1 -0
- package/dist/document-models/resource-template/src/tests/audience-management.test.js +29 -0
- package/dist/document-models/resource-template/src/tests/document-model.test.d.ts +10 -0
- package/dist/document-models/resource-template/src/tests/document-model.test.d.ts.map +1 -0
- package/dist/document-models/resource-template/src/tests/document-model.test.js +104 -0
- package/dist/document-models/resource-template/src/tests/facet-targeting.test.d.ts +6 -0
- package/dist/document-models/resource-template/src/tests/facet-targeting.test.d.ts.map +1 -0
- package/dist/document-models/resource-template/src/tests/facet-targeting.test.js +49 -0
- package/dist/document-models/resource-template/src/tests/option-group-management.test.d.ts +6 -0
- package/dist/document-models/resource-template/src/tests/option-group-management.test.d.ts.map +1 -0
- package/dist/document-models/resource-template/src/tests/option-group-management.test.js +39 -0
- package/dist/document-models/resource-template/src/tests/service-category-management.test.d.ts +6 -0
- package/dist/document-models/resource-template/src/tests/service-category-management.test.d.ts.map +1 -0
- package/dist/document-models/resource-template/src/tests/service-category-management.test.js +29 -0
- package/dist/document-models/resource-template/src/tests/service-management.test.d.ts +6 -0
- package/dist/document-models/resource-template/src/tests/service-management.test.d.ts.map +1 -0
- package/dist/document-models/resource-template/src/tests/service-management.test.js +59 -0
- package/dist/document-models/resource-template/src/tests/template-management.test.d.ts +6 -0
- package/dist/document-models/resource-template/src/tests/template-management.test.d.ts.map +1 -0
- package/dist/document-models/resource-template/src/tests/template-management.test.js +49 -0
- package/dist/document-models/resource-template/src/utils.d.ts +2 -0
- package/dist/document-models/resource-template/src/utils.d.ts.map +1 -0
- package/dist/document-models/resource-template/src/utils.js +1 -0
- package/dist/document-models/resource-template/utils.d.ts +14 -0
- package/dist/document-models/resource-template/utils.d.ts.map +1 -0
- package/dist/document-models/resource-template/utils.js +7 -0
- package/dist/document-models/service-offering/actions.d.ts +2 -0
- package/dist/document-models/service-offering/actions.d.ts.map +1 -1
- package/dist/document-models/service-offering/gen/document-model.d.ts.map +1 -1
- package/dist/document-models/service-offering/gen/document-model.js +51 -6
- package/dist/document-models/service-offering/gen/document-schema.d.ts +35 -16
- package/dist/document-models/service-offering/gen/document-schema.d.ts.map +1 -1
- package/dist/document-models/service-offering/gen/offering-management/actions.d.ts +10 -2
- package/dist/document-models/service-offering/gen/offering-management/actions.d.ts.map +1 -1
- package/dist/document-models/service-offering/gen/offering-management/creators.d.ts +4 -2
- package/dist/document-models/service-offering/gen/offering-management/creators.d.ts.map +1 -1
- package/dist/document-models/service-offering/gen/offering-management/creators.js +3 -1
- package/dist/document-models/service-offering/gen/offering-management/error.d.ts +20 -1
- package/dist/document-models/service-offering/gen/offering-management/error.d.ts.map +1 -1
- package/dist/document-models/service-offering/gen/offering-management/error.js +25 -0
- package/dist/document-models/service-offering/gen/offering-management/operations.d.ts +3 -1
- package/dist/document-models/service-offering/gen/offering-management/operations.d.ts.map +1 -1
- package/dist/document-models/service-offering/gen/ph-factories.d.ts.map +1 -1
- package/dist/document-models/service-offering/gen/ph-factories.js +1 -0
- package/dist/document-models/service-offering/gen/reducer.d.ts.map +1 -1
- package/dist/document-models/service-offering/gen/reducer.js +9 -1
- package/dist/document-models/service-offering/gen/schema/types.d.ts +24 -11
- package/dist/document-models/service-offering/gen/schema/types.d.ts.map +1 -1
- package/dist/document-models/service-offering/gen/schema/zod.d.ts +3 -1
- package/dist/document-models/service-offering/gen/schema/zod.d.ts.map +1 -1
- package/dist/document-models/service-offering/gen/schema/zod.js +17 -0
- package/dist/document-models/service-offering/gen/utils.d.ts.map +1 -1
- package/dist/document-models/service-offering/gen/utils.js +1 -0
- package/dist/document-models/service-offering/src/reducers/offering-management.d.ts.map +1 -1
- package/dist/document-models/service-offering/src/reducers/offering-management.js +22 -4
- package/dist/document-models/service-offering/src/reducers/service-management.d.ts.map +1 -1
- package/dist/document-models/service-offering/src/reducers/service-management.js +5 -0
- package/dist/document-models/service-offering/src/tests/offering-management.test.js +1 -81
- package/dist/document-models/service-offering/src/tests/tier-management.test.d.ts +4 -0
- package/dist/document-models/service-offering/src/tests/tier-management.test.d.ts.map +1 -1
- package/dist/document-models/service-offering/src/tests/tier-management.test.js +109 -1
- package/dist/editors/builder-team-admin/components/DriveExplorer.d.ts.map +1 -1
- package/dist/editors/builder-team-admin/components/DriveExplorer.js +4 -0
- package/dist/editors/builder-team-admin/components/FolderTree.d.ts +1 -1
- package/dist/editors/builder-team-admin/components/FolderTree.d.ts.map +1 -1
- package/dist/editors/builder-team-admin/components/FolderTree.js +134 -9
- package/dist/editors/builder-team-admin/components/ResourcesServices.d.ts +8 -0
- package/dist/editors/builder-team-admin/components/ResourcesServices.d.ts.map +1 -0
- package/dist/editors/builder-team-admin/components/ResourcesServices.js +76 -0
- package/dist/editors/builder-team-admin/hooks/useResourcesServicesAutoPlacement.d.ts +27 -0
- package/dist/editors/builder-team-admin/hooks/useResourcesServicesAutoPlacement.d.ts.map +1 -0
- package/dist/editors/builder-team-admin/hooks/useResourcesServicesAutoPlacement.js +123 -0
- package/dist/editors/index.d.ts +1 -0
- package/dist/editors/index.d.ts.map +1 -1
- package/dist/editors/index.js +1 -0
- package/dist/editors/resource-template-editor/components/FacetTargeting.d.ts +9 -0
- package/dist/editors/resource-template-editor/components/FacetTargeting.d.ts.map +1 -0
- package/dist/editors/resource-template-editor/components/FacetTargeting.js +958 -0
- package/dist/editors/resource-template-editor/components/TemplateInfo.d.ts +9 -0
- package/dist/editors/resource-template-editor/components/TemplateInfo.d.ts.map +1 -0
- package/dist/editors/resource-template-editor/components/TemplateInfo.js +1288 -0
- package/dist/editors/resource-template-editor/editor.d.ts +2 -0
- package/dist/editors/resource-template-editor/editor.d.ts.map +1 -0
- package/dist/editors/resource-template-editor/editor.js +149 -0
- package/dist/editors/resource-template-editor/module.d.ts +4 -0
- package/dist/editors/resource-template-editor/module.d.ts.map +1 -0
- package/dist/editors/resource-template-editor/module.js +10 -0
- package/dist/editors/service-offering-editor/components/EditName.js +1 -1
- package/dist/editors/service-offering-editor/components/OfferingInfo.d.ts +1 -1
- package/dist/editors/service-offering-editor/components/OfferingInfo.d.ts.map +1 -1
- package/dist/editors/service-offering-editor/components/OfferingProgress.d.ts +10 -0
- package/dist/editors/service-offering-editor/components/OfferingProgress.d.ts.map +1 -0
- package/dist/editors/service-offering-editor/components/OfferingProgress.js +240 -0
- package/dist/editors/service-offering-editor/components/ResourceTemplateSelector.d.ts +9 -0
- package/dist/editors/service-offering-editor/components/ResourceTemplateSelector.d.ts.map +1 -0
- package/dist/editors/service-offering-editor/components/ResourceTemplateSelector.js +1157 -0
- package/dist/editors/service-offering-editor/components/ScopeAndFacets.d.ts +1 -1
- package/dist/editors/service-offering-editor/components/ScopeAndFacets.d.ts.map +1 -1
- package/dist/editors/service-offering-editor/components/ServiceCatalog.d.ts +1 -1
- package/dist/editors/service-offering-editor/components/ServiceCatalog.d.ts.map +1 -1
- package/dist/editors/service-offering-editor/components/ServiceCatalog.js +318 -1
- package/dist/editors/service-offering-editor/components/ServicesList.d.ts +1 -1
- package/dist/editors/service-offering-editor/components/ServicesList.d.ts.map +1 -1
- package/dist/editors/service-offering-editor/components/TabNavigation.d.ts.map +1 -1
- package/dist/editors/service-offering-editor/components/TabNavigation.js +17 -3
- package/dist/editors/service-offering-editor/components/TheMatrix.d.ts +1 -1
- package/dist/editors/service-offering-editor/components/TheMatrix.d.ts.map +1 -1
- package/dist/editors/service-offering-editor/components/TheMatrix.js +823 -29
- package/dist/editors/service-offering-editor/components/TierDefinition.d.ts +1 -1
- package/dist/editors/service-offering-editor/components/TierDefinition.d.ts.map +1 -1
- package/dist/editors/service-offering-editor/components/TierDefinition.js +406 -4
- package/dist/editors/service-offering-editor/components/TiersList.d.ts +1 -1
- package/dist/editors/service-offering-editor/components/TiersList.d.ts.map +1 -1
- package/dist/editors/service-offering-editor/editor.d.ts.map +1 -1
- package/dist/editors/service-offering-editor/editor.js +4 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/powerhouse.manifest.json +18 -0
- package/dist/style.css +25 -0
- package/dist/subgraphs/index.d.ts +1 -0
- package/dist/subgraphs/index.d.ts.map +1 -1
- package/dist/subgraphs/index.js +1 -0
- package/dist/subgraphs/resource-template/index.d.ts +11 -0
- package/dist/subgraphs/resource-template/index.d.ts.map +1 -0
- package/dist/subgraphs/resource-template/index.js +11 -0
- package/dist/subgraphs/resource-template/resolvers.d.ts +3 -0
- package/dist/subgraphs/resource-template/resolvers.d.ts.map +1 -0
- package/dist/subgraphs/resource-template/resolvers.js +312 -0
- package/dist/subgraphs/resource-template/schema.d.ts +3 -0
- package/dist/subgraphs/resource-template/schema.d.ts.map +1 -0
- package/dist/subgraphs/resource-template/schema.js +262 -0
- package/dist/subgraphs/service-offering/resolvers.d.ts.map +1 -1
- package/dist/subgraphs/service-offering/resolvers.js +24 -0
- package/dist/subgraphs/service-offering/schema.d.ts.map +1 -1
- package/dist/subgraphs/service-offering/schema.js +21 -0
- package/package.json +1 -1
|
@@ -1 +1,109 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* This is a scaffold file meant for customization:
|
|
3
|
+
* - change it by adding new tests or modifying the existing ones
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it, expect } from "vitest";
|
|
6
|
+
import { generateMock } from "@powerhousedao/codegen";
|
|
7
|
+
import { reducer, utils, isServiceOfferingDocument, addTier, AddTierInputSchema, updateTier, UpdateTierInputSchema, updateTierPricing, UpdateTierPricingInputSchema, deleteTier, DeleteTierInputSchema, addServiceLevel, AddServiceLevelInputSchema, updateServiceLevel, UpdateServiceLevelInputSchema, removeServiceLevel, RemoveServiceLevelInputSchema, addUsageLimit, AddUsageLimitInputSchema, updateUsageLimit, UpdateUsageLimitInputSchema, removeUsageLimit, RemoveUsageLimitInputSchema, } from "@powerhousedao/contributor-billing/document-models/service-offering";
|
|
8
|
+
describe("TierManagement Operations", () => {
|
|
9
|
+
it("should handle addTier operation", () => {
|
|
10
|
+
const document = utils.createDocument();
|
|
11
|
+
const input = generateMock(AddTierInputSchema());
|
|
12
|
+
const updatedDocument = reducer(document, addTier(input));
|
|
13
|
+
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
14
|
+
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
15
|
+
expect(updatedDocument.operations.global[0].action.type).toBe("ADD_TIER");
|
|
16
|
+
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
17
|
+
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
18
|
+
});
|
|
19
|
+
it("should handle updateTier operation", () => {
|
|
20
|
+
const document = utils.createDocument();
|
|
21
|
+
const input = generateMock(UpdateTierInputSchema());
|
|
22
|
+
const updatedDocument = reducer(document, updateTier(input));
|
|
23
|
+
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
24
|
+
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
25
|
+
expect(updatedDocument.operations.global[0].action.type).toBe("UPDATE_TIER");
|
|
26
|
+
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
27
|
+
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
28
|
+
});
|
|
29
|
+
it("should handle updateTierPricing operation", () => {
|
|
30
|
+
const document = utils.createDocument();
|
|
31
|
+
const input = generateMock(UpdateTierPricingInputSchema());
|
|
32
|
+
const updatedDocument = reducer(document, updateTierPricing(input));
|
|
33
|
+
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
34
|
+
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
35
|
+
expect(updatedDocument.operations.global[0].action.type).toBe("UPDATE_TIER_PRICING");
|
|
36
|
+
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
37
|
+
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
38
|
+
});
|
|
39
|
+
it("should handle deleteTier operation", () => {
|
|
40
|
+
const document = utils.createDocument();
|
|
41
|
+
const input = generateMock(DeleteTierInputSchema());
|
|
42
|
+
const updatedDocument = reducer(document, deleteTier(input));
|
|
43
|
+
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
44
|
+
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
45
|
+
expect(updatedDocument.operations.global[0].action.type).toBe("DELETE_TIER");
|
|
46
|
+
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
47
|
+
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
48
|
+
});
|
|
49
|
+
it("should handle addServiceLevel operation", () => {
|
|
50
|
+
const document = utils.createDocument();
|
|
51
|
+
const input = generateMock(AddServiceLevelInputSchema());
|
|
52
|
+
const updatedDocument = reducer(document, addServiceLevel(input));
|
|
53
|
+
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
54
|
+
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
55
|
+
expect(updatedDocument.operations.global[0].action.type).toBe("ADD_SERVICE_LEVEL");
|
|
56
|
+
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
57
|
+
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
58
|
+
});
|
|
59
|
+
it("should handle updateServiceLevel operation", () => {
|
|
60
|
+
const document = utils.createDocument();
|
|
61
|
+
const input = generateMock(UpdateServiceLevelInputSchema());
|
|
62
|
+
const updatedDocument = reducer(document, updateServiceLevel(input));
|
|
63
|
+
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
64
|
+
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
65
|
+
expect(updatedDocument.operations.global[0].action.type).toBe("UPDATE_SERVICE_LEVEL");
|
|
66
|
+
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
67
|
+
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
68
|
+
});
|
|
69
|
+
it("should handle removeServiceLevel operation", () => {
|
|
70
|
+
const document = utils.createDocument();
|
|
71
|
+
const input = generateMock(RemoveServiceLevelInputSchema());
|
|
72
|
+
const updatedDocument = reducer(document, removeServiceLevel(input));
|
|
73
|
+
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
74
|
+
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
75
|
+
expect(updatedDocument.operations.global[0].action.type).toBe("REMOVE_SERVICE_LEVEL");
|
|
76
|
+
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
77
|
+
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
78
|
+
});
|
|
79
|
+
it("should handle addUsageLimit operation", () => {
|
|
80
|
+
const document = utils.createDocument();
|
|
81
|
+
const input = generateMock(AddUsageLimitInputSchema());
|
|
82
|
+
const updatedDocument = reducer(document, addUsageLimit(input));
|
|
83
|
+
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
84
|
+
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
85
|
+
expect(updatedDocument.operations.global[0].action.type).toBe("ADD_USAGE_LIMIT");
|
|
86
|
+
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
87
|
+
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
88
|
+
});
|
|
89
|
+
it("should handle updateUsageLimit operation", () => {
|
|
90
|
+
const document = utils.createDocument();
|
|
91
|
+
const input = generateMock(UpdateUsageLimitInputSchema());
|
|
92
|
+
const updatedDocument = reducer(document, updateUsageLimit(input));
|
|
93
|
+
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
94
|
+
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
95
|
+
expect(updatedDocument.operations.global[0].action.type).toBe("UPDATE_USAGE_LIMIT");
|
|
96
|
+
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
97
|
+
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
98
|
+
});
|
|
99
|
+
it("should handle removeUsageLimit operation", () => {
|
|
100
|
+
const document = utils.createDocument();
|
|
101
|
+
const input = generateMock(RemoveUsageLimitInputSchema());
|
|
102
|
+
const updatedDocument = reducer(document, removeUsageLimit(input));
|
|
103
|
+
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
104
|
+
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
105
|
+
expect(updatedDocument.operations.global[0].action.type).toBe("REMOVE_USAGE_LIMIT");
|
|
106
|
+
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
107
|
+
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
108
|
+
});
|
|
109
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DriveExplorer.d.ts","sourceRoot":"","sources":["../../../../editors/builder-team-admin/components/DriveExplorer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"DriveExplorer.d.ts","sourceRoot":"","sources":["../../../../editors/builder-team-admin/components/DriveExplorer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAalD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,2CAmHtD"}
|
|
@@ -6,6 +6,7 @@ import { useDocumentsInSelectedDrive, showCreateDocumentModal, } from "@powerhou
|
|
|
6
6
|
import { useMemo, useState } from "react";
|
|
7
7
|
import { ExpenseReports } from "./expense-reports.js";
|
|
8
8
|
import { SnapshotReports } from "./snapshot-reports.js";
|
|
9
|
+
import { ResourcesServices } from "./ResourcesServices.js";
|
|
9
10
|
/**
|
|
10
11
|
* Main drive explorer component with sidebar navigation and content area.
|
|
11
12
|
* Layout: Left sidebar (folder tree) + Right content area (files/folders + document editor)
|
|
@@ -41,6 +42,9 @@ export function DriveExplorer({ children }) {
|
|
|
41
42
|
if (customView === "snapshot-reports") {
|
|
42
43
|
return _jsx(SnapshotReports, {});
|
|
43
44
|
}
|
|
45
|
+
if (customView === "resources-services") {
|
|
46
|
+
return _jsx(ResourcesServices, {});
|
|
47
|
+
}
|
|
44
48
|
// Default: folder contents
|
|
45
49
|
return _jsx(DriveContents, {});
|
|
46
50
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Custom view types that don't correspond to document models */
|
|
2
|
-
export type CustomView = "team-members" | "expense-reports" | "snapshot-reports" | null;
|
|
2
|
+
export type CustomView = "team-members" | "expense-reports" | "snapshot-reports" | "resources-services" | null;
|
|
3
3
|
type FolderTreeProps = {
|
|
4
4
|
onCustomViewChange?: (view: CustomView) => void;
|
|
5
5
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FolderTree.d.ts","sourceRoot":"","sources":["../../../../editors/builder-team-admin/components/FolderTree.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FolderTree.d.ts","sourceRoot":"","sources":["../../../../editors/builder-team-admin/components/FolderTree.tsx"],"names":[],"mappings":"AAgCA,iEAAiE;AACjE,MAAM,MAAM,UAAU,GAClB,cAAc,GACd,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,IAAI,CAAC;AA0GT,KAAK,eAAe,GAAG;IACrB,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,kBAAkB,EAAE,EAAE,eAAe,kDA0ZjE"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Sidebar, SidebarProvider, } from "@powerhousedao/document-engineering";
|
|
3
3
|
import { setSelectedNode, showCreateDocumentModal, useDocumentsInSelectedDrive, useSelectedDrive, isFolderNodeKind, isFileNodeKind, } from "@powerhousedao/reactor-browser";
|
|
4
|
-
import { CreditCard, FileText, User, Users, Folder, Camera,
|
|
4
|
+
import { CreditCard, FileText, User, Users, Folder, Camera, Layers, } from "lucide-react";
|
|
5
5
|
import { useMemo, useState } from "react";
|
|
6
6
|
const ICON_SIZE = 16;
|
|
7
7
|
const EXPENSE_REPORTS_FOLDER_NAME = "Expense Reports";
|
|
8
8
|
const SNAPSHOT_REPORTS_FOLDER_NAME = "Snapshot Reports";
|
|
9
|
+
const RESOURCE_TEMPLATES_FOLDER_NAME = "Resource Templates";
|
|
10
|
+
const SERVICE_OFFERINGS_FOLDER_NAME = "Service Offerings";
|
|
9
11
|
/**
|
|
10
12
|
* Maps navigation section IDs to their corresponding document types.
|
|
11
13
|
* When a section is clicked, the corresponding document type will be created or navigated to.
|
|
@@ -15,7 +17,7 @@ const SECTION_TO_DOCUMENT_TYPE = {
|
|
|
15
17
|
"builder-profile": "powerhouse/builder-profile",
|
|
16
18
|
"team-members": null, // Uses custom TeamMembers component
|
|
17
19
|
"service-subscriptions": "powerhouse/service-subscriptions",
|
|
18
|
-
"
|
|
20
|
+
"resources-services": null, // Uses custom ResourcesServices component
|
|
19
21
|
"expense-reports": null, // Uses custom ExpenseReports component
|
|
20
22
|
"snapshot-reports": null, // Uses custom SnapshotReports component
|
|
21
23
|
};
|
|
@@ -24,6 +26,7 @@ const SECTION_TO_DOCUMENT_TYPE = {
|
|
|
24
26
|
*/
|
|
25
27
|
const SECTION_TO_CUSTOM_VIEW = {
|
|
26
28
|
"team-members": "team-members",
|
|
29
|
+
"resources-services": "resources-services",
|
|
27
30
|
"expense-reports": "expense-reports",
|
|
28
31
|
"snapshot-reports": "snapshot-reports",
|
|
29
32
|
};
|
|
@@ -48,9 +51,9 @@ const BASE_NAVIGATION_SECTIONS = [
|
|
|
48
51
|
icon: _jsx(CreditCard, { size: ICON_SIZE }),
|
|
49
52
|
},
|
|
50
53
|
{
|
|
51
|
-
id: "
|
|
52
|
-
title: "
|
|
53
|
-
icon: _jsx(
|
|
54
|
+
id: "resources-services",
|
|
55
|
+
title: "Resources & Services",
|
|
56
|
+
icon: _jsx(Layers, { size: ICON_SIZE }),
|
|
54
57
|
},
|
|
55
58
|
{
|
|
56
59
|
id: "expense-reports",
|
|
@@ -119,6 +122,20 @@ export function FolderTree({ onCustomViewChange }) {
|
|
|
119
122
|
const nodes = driveDocument.state.global.nodes;
|
|
120
123
|
return nodes.find((node) => isFolderNodeKind(node) && node.name === SNAPSHOT_REPORTS_FOLDER_NAME);
|
|
121
124
|
}, [driveDocument]);
|
|
125
|
+
// Find the "Resource Templates" folder in the drive
|
|
126
|
+
const resourceTemplatesFolder = useMemo(() => {
|
|
127
|
+
if (!driveDocument)
|
|
128
|
+
return null;
|
|
129
|
+
const nodes = driveDocument.state.global.nodes;
|
|
130
|
+
return nodes.find((node) => isFolderNodeKind(node) && node.name === RESOURCE_TEMPLATES_FOLDER_NAME);
|
|
131
|
+
}, [driveDocument]);
|
|
132
|
+
// Find the "Service Offerings" folder in the drive
|
|
133
|
+
const serviceOfferingsFolder = useMemo(() => {
|
|
134
|
+
if (!driveDocument)
|
|
135
|
+
return null;
|
|
136
|
+
const nodes = driveDocument.state.global.nodes;
|
|
137
|
+
return nodes.find((node) => isFolderNodeKind(node) && node.name === SERVICE_OFFERINGS_FOLDER_NAME);
|
|
138
|
+
}, [driveDocument]);
|
|
122
139
|
// Build a set of all node IDs that are within the Expense Reports folder tree
|
|
123
140
|
const expenseReportsNodeIds = useMemo(() => {
|
|
124
141
|
const nodeIds = new Set();
|
|
@@ -161,6 +178,46 @@ export function FolderTree({ onCustomViewChange }) {
|
|
|
161
178
|
collectNodeIds(snapshotReportsFolder.id);
|
|
162
179
|
return nodeIds;
|
|
163
180
|
}, [snapshotReportsFolder, driveDocument]);
|
|
181
|
+
// Build a set of all node IDs that are within the Resource Templates folder tree
|
|
182
|
+
const resourceTemplatesNodeIds = useMemo(() => {
|
|
183
|
+
const nodeIds = new Set();
|
|
184
|
+
if (!resourceTemplatesFolder || !driveDocument)
|
|
185
|
+
return nodeIds;
|
|
186
|
+
const allNodes = driveDocument.state.global.nodes;
|
|
187
|
+
const collectNodeIds = (parentId) => {
|
|
188
|
+
nodeIds.add(parentId);
|
|
189
|
+
for (const node of allNodes) {
|
|
190
|
+
if (isFolderNodeKind(node) && node.parentFolder === parentId) {
|
|
191
|
+
collectNodeIds(node.id);
|
|
192
|
+
}
|
|
193
|
+
else if (isFileNodeKind(node) && node.parentFolder === parentId) {
|
|
194
|
+
nodeIds.add(node.id);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
collectNodeIds(resourceTemplatesFolder.id);
|
|
199
|
+
return nodeIds;
|
|
200
|
+
}, [resourceTemplatesFolder, driveDocument]);
|
|
201
|
+
// Build a set of all node IDs that are within the Service Offerings folder tree
|
|
202
|
+
const serviceOfferingsNodeIds = useMemo(() => {
|
|
203
|
+
const nodeIds = new Set();
|
|
204
|
+
if (!serviceOfferingsFolder || !driveDocument)
|
|
205
|
+
return nodeIds;
|
|
206
|
+
const allNodes = driveDocument.state.global.nodes;
|
|
207
|
+
const collectNodeIds = (parentId) => {
|
|
208
|
+
nodeIds.add(parentId);
|
|
209
|
+
for (const node of allNodes) {
|
|
210
|
+
if (isFolderNodeKind(node) && node.parentFolder === parentId) {
|
|
211
|
+
collectNodeIds(node.id);
|
|
212
|
+
}
|
|
213
|
+
else if (isFileNodeKind(node) && node.parentFolder === parentId) {
|
|
214
|
+
nodeIds.add(node.id);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
collectNodeIds(serviceOfferingsFolder.id);
|
|
219
|
+
return nodeIds;
|
|
220
|
+
}, [serviceOfferingsFolder, driveDocument]);
|
|
164
221
|
// Find the builder profile document and get its state
|
|
165
222
|
const builderProfileDocument = useMemo(() => {
|
|
166
223
|
if (!documentsInDrive)
|
|
@@ -176,7 +233,7 @@ export function FolderTree({ onCustomViewChange }) {
|
|
|
176
233
|
const state = builderProfileDocument.state?.global;
|
|
177
234
|
return state?.isOperator ?? false;
|
|
178
235
|
}, [builderProfileDocument]);
|
|
179
|
-
// Build navigation sections with dynamic expense reports
|
|
236
|
+
// Build navigation sections with dynamic expense reports, snapshot reports, and resources & services children
|
|
180
237
|
const navigationSections = useMemo(() => {
|
|
181
238
|
if (!driveDocument) {
|
|
182
239
|
return BASE_NAVIGATION_SECTIONS;
|
|
@@ -190,11 +247,35 @@ export function FolderTree({ onCustomViewChange }) {
|
|
|
190
247
|
const snapshotReportsChildren = snapshotReportsFolder
|
|
191
248
|
? buildSidebarNodesFromFolder(snapshotReportsFolder.id, allNodes)
|
|
192
249
|
: [];
|
|
250
|
+
// Build resources & services children (Resource Templates and Service Offerings folders)
|
|
251
|
+
const resourcesServicesChildren = [];
|
|
252
|
+
if (resourceTemplatesFolder) {
|
|
253
|
+
const resourceTemplatesChildren = buildSidebarNodesFromFolder(resourceTemplatesFolder.id, allNodes);
|
|
254
|
+
resourcesServicesChildren.push({
|
|
255
|
+
id: resourceTemplatesFolder.id,
|
|
256
|
+
title: RESOURCE_TEMPLATES_FOLDER_NAME,
|
|
257
|
+
icon: _jsx(Folder, { size: ICON_SIZE }),
|
|
258
|
+
children: resourceTemplatesChildren.length > 0
|
|
259
|
+
? resourceTemplatesChildren
|
|
260
|
+
: undefined,
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
if (serviceOfferingsFolder) {
|
|
264
|
+
const serviceOfferingsChildren = buildSidebarNodesFromFolder(serviceOfferingsFolder.id, allNodes);
|
|
265
|
+
resourcesServicesChildren.push({
|
|
266
|
+
id: serviceOfferingsFolder.id,
|
|
267
|
+
title: SERVICE_OFFERINGS_FOLDER_NAME,
|
|
268
|
+
icon: _jsx(Folder, { size: ICON_SIZE }),
|
|
269
|
+
children: serviceOfferingsChildren.length > 0
|
|
270
|
+
? serviceOfferingsChildren
|
|
271
|
+
: undefined,
|
|
272
|
+
});
|
|
273
|
+
}
|
|
193
274
|
// Filter and transform the sections based on isOperator flag
|
|
194
275
|
return (BASE_NAVIGATION_SECTIONS
|
|
195
|
-
// Hide "
|
|
276
|
+
// Hide "Resources & Services" when isOperator is false
|
|
196
277
|
.filter((section) => {
|
|
197
|
-
if (section.id === "
|
|
278
|
+
if (section.id === "resources-services" && !isOperator) {
|
|
198
279
|
return false;
|
|
199
280
|
}
|
|
200
281
|
return true;
|
|
@@ -208,6 +289,13 @@ export function FolderTree({ onCustomViewChange }) {
|
|
|
208
289
|
title: "Operator Profile",
|
|
209
290
|
};
|
|
210
291
|
}
|
|
292
|
+
if (section.id === "resources-services" &&
|
|
293
|
+
resourcesServicesChildren.length > 0) {
|
|
294
|
+
return {
|
|
295
|
+
...section,
|
|
296
|
+
children: resourcesServicesChildren,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
211
299
|
if (section.id === "expense-reports" &&
|
|
212
300
|
expenseReportsChildren.length > 0) {
|
|
213
301
|
return {
|
|
@@ -224,7 +312,14 @@ export function FolderTree({ onCustomViewChange }) {
|
|
|
224
312
|
}
|
|
225
313
|
return section;
|
|
226
314
|
}));
|
|
227
|
-
}, [
|
|
315
|
+
}, [
|
|
316
|
+
expenseReportsFolder,
|
|
317
|
+
snapshotReportsFolder,
|
|
318
|
+
resourceTemplatesFolder,
|
|
319
|
+
serviceOfferingsFolder,
|
|
320
|
+
driveDocument,
|
|
321
|
+
isOperator,
|
|
322
|
+
]);
|
|
228
323
|
// Create a map of document type to existing document (first one found)
|
|
229
324
|
const existingDocumentsByType = useMemo(() => {
|
|
230
325
|
const map = {};
|
|
@@ -277,6 +372,36 @@ export function FolderTree({ onCustomViewChange }) {
|
|
|
277
372
|
}
|
|
278
373
|
return;
|
|
279
374
|
}
|
|
375
|
+
// Check if this is a child node within the Resource Templates folder
|
|
376
|
+
if (resourceTemplatesNodeIds.has(node.id)) {
|
|
377
|
+
const driveNode = driveDocument?.state.global.nodes.find((n) => n.id === node.id);
|
|
378
|
+
if (driveNode && isFolderNodeKind(driveNode)) {
|
|
379
|
+
// It's a folder - navigate to it within the resources & services view
|
|
380
|
+
onCustomViewChange?.("resources-services");
|
|
381
|
+
setSelectedNode(node.id);
|
|
382
|
+
}
|
|
383
|
+
else if (driveNode && isFileNodeKind(driveNode)) {
|
|
384
|
+
// It's a document - open the document editor
|
|
385
|
+
onCustomViewChange?.(null);
|
|
386
|
+
setSelectedNode(node.id);
|
|
387
|
+
}
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
390
|
+
// Check if this is a child node within the Service Offerings folder
|
|
391
|
+
if (serviceOfferingsNodeIds.has(node.id)) {
|
|
392
|
+
const driveNode = driveDocument?.state.global.nodes.find((n) => n.id === node.id);
|
|
393
|
+
if (driveNode && isFolderNodeKind(driveNode)) {
|
|
394
|
+
// It's a folder - navigate to it within the resources & services view
|
|
395
|
+
onCustomViewChange?.("resources-services");
|
|
396
|
+
setSelectedNode(node.id);
|
|
397
|
+
}
|
|
398
|
+
else if (driveNode && isFileNodeKind(driveNode)) {
|
|
399
|
+
// It's a document - open the document editor
|
|
400
|
+
onCustomViewChange?.(null);
|
|
401
|
+
setSelectedNode(node.id);
|
|
402
|
+
}
|
|
403
|
+
return;
|
|
404
|
+
}
|
|
280
405
|
// Check if this section has a custom view
|
|
281
406
|
const customView = SECTION_TO_CUSTOM_VIEW[node.id];
|
|
282
407
|
if (customView) {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component for the Resources & Services custom view.
|
|
3
|
+
* Shows two auto-generated folders: Resource Templates and Service Offerings.
|
|
4
|
+
* Users can create powerhouse/resource-template docs in Resource Templates
|
|
5
|
+
* and powerhouse/service-offering docs in Service Offerings.
|
|
6
|
+
*/
|
|
7
|
+
export declare function ResourcesServices(): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=ResourcesServices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourcesServices.d.ts","sourceRoot":"","sources":["../../../../editors/builder-team-admin/components/ResourcesServices.tsx"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,wBAAgB,iBAAiB,4CA6PhC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { FileItem } from "@powerhousedao/design-system/connect";
|
|
3
|
+
import { FolderItem } from "@powerhousedao/design-system/connect";
|
|
4
|
+
import { isFolderNodeKind, isFileNodeKind, setSelectedNode, useSelectedNodePath, useNodesInSelectedDriveOrFolder, useUserPermissions, showCreateDocumentModal, } from "@powerhousedao/reactor-browser";
|
|
5
|
+
import { useEffect, useRef, useState } from "react";
|
|
6
|
+
import { Plus, FileText, Package } from "lucide-react";
|
|
7
|
+
import { useResourcesServicesAutoPlacement } from "../hooks/useResourcesServicesAutoPlacement.js";
|
|
8
|
+
const RESOURCE_TEMPLATES_FOLDER_NAME = "Resource Templates";
|
|
9
|
+
const SERVICE_OFFERINGS_FOLDER_NAME = "Service Offerings";
|
|
10
|
+
/**
|
|
11
|
+
* Component for the Resources & Services custom view.
|
|
12
|
+
* Shows two auto-generated folders: Resource Templates and Service Offerings.
|
|
13
|
+
* Users can create powerhouse/resource-template docs in Resource Templates
|
|
14
|
+
* and powerhouse/service-offering docs in Service Offerings.
|
|
15
|
+
*/
|
|
16
|
+
export function ResourcesServices() {
|
|
17
|
+
const hasNavigatedToFolder = useRef(false);
|
|
18
|
+
const selectedNodePath = useSelectedNodePath();
|
|
19
|
+
const nodesInCurrentFolder = useNodesInSelectedDriveOrFolder();
|
|
20
|
+
const { isAllowedToCreateDocuments } = useUserPermissions();
|
|
21
|
+
// Use the shared auto-placement hook - this handles:
|
|
22
|
+
// 1. Creating the "Resource Templates" folder if it doesn't exist
|
|
23
|
+
// 2. Creating the "Service Offerings" folder if it doesn't exist
|
|
24
|
+
const { resourceTemplatesFolder, serviceOfferingsFolder, resourceTemplateDocuments, serviceOfferingDocuments, } = useResourcesServicesAutoPlacement();
|
|
25
|
+
// Determine which folder we're currently in (if any)
|
|
26
|
+
const currentFolderId = selectedNodePath.at(-1)?.id;
|
|
27
|
+
const isInResourceTemplates = currentFolderId === resourceTemplatesFolder?.id;
|
|
28
|
+
const isInServiceOfferings = currentFolderId === serviceOfferingsFolder?.id;
|
|
29
|
+
const isInRootView = !isInResourceTemplates && !isInServiceOfferings;
|
|
30
|
+
// Navigate to root view initially (deselect any node)
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
if (resourceTemplatesFolder &&
|
|
33
|
+
serviceOfferingsFolder &&
|
|
34
|
+
!hasNavigatedToFolder.current) {
|
|
35
|
+
hasNavigatedToFolder.current = true;
|
|
36
|
+
// Don't select any node so we show the root view with both folders
|
|
37
|
+
setSelectedNode("");
|
|
38
|
+
}
|
|
39
|
+
}, [resourceTemplatesFolder, serviceOfferingsFolder]);
|
|
40
|
+
// Show loading state while folders are being created
|
|
41
|
+
if (!resourceTemplatesFolder || !serviceOfferingsFolder) {
|
|
42
|
+
return (_jsx("div", { className: "flex items-center justify-center h-64", children: _jsx("div", { className: "text-gray-500", children: "Setting up Resources & Services folders..." }) }));
|
|
43
|
+
}
|
|
44
|
+
// Handler for creating new documents
|
|
45
|
+
const handleCreateDocument = (documentType, folderId) => {
|
|
46
|
+
setSelectedNode(folderId);
|
|
47
|
+
// Small delay to ensure the folder is selected before showing modal
|
|
48
|
+
setTimeout(() => {
|
|
49
|
+
showCreateDocumentModal(documentType);
|
|
50
|
+
}, 100);
|
|
51
|
+
};
|
|
52
|
+
// Get folder and file nodes from current selection
|
|
53
|
+
const folderNodes = nodesInCurrentFolder.filter((n) => isFolderNodeKind(n));
|
|
54
|
+
const fileNodes = nodesInCurrentFolder.filter((n) => isFileNodeKind(n));
|
|
55
|
+
// Render the root view with both folder cards
|
|
56
|
+
if (isInRootView) {
|
|
57
|
+
return (_jsxs("div", { children: [_jsx("div", { className: "text-2xl font-bold text-center mb-6", children: "Resources & Services" }), _jsxs("div", { className: "space-y-6 px-6", children: [_jsx("p", { className: "text-gray-600 text-center mb-8", children: "Manage your resource templates and service offerings. Click on a folder to view or create documents." }), _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [_jsxs("div", { className: "border border-gray-200 rounded-lg p-6 hover:border-blue-400 hover:shadow-md transition-all cursor-pointer", onClick: () => setSelectedNode(resourceTemplatesFolder.id), children: [_jsxs("div", { className: "flex items-center gap-3 mb-4", children: [_jsx("div", { className: "p-2 bg-blue-50 rounded-lg", children: _jsx(FileText, { className: "w-6 h-6 text-blue-600" }) }), _jsx("h3", { className: "text-lg font-semibold", children: RESOURCE_TEMPLATES_FOLDER_NAME })] }), _jsx("p", { className: "text-gray-600 text-sm mb-4", children: "Define resource templates that can be used across service offerings." }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("span", { className: "text-sm text-gray-500", children: [resourceTemplateDocuments.length, " template", resourceTemplateDocuments.length !== 1 ? "s" : ""] }), isAllowedToCreateDocuments && (_jsxs("button", { type: "button", className: "flex items-center gap-1 text-sm text-blue-600 hover:text-blue-800", onClick: (e) => {
|
|
58
|
+
e.stopPropagation();
|
|
59
|
+
handleCreateDocument("powerhouse/resource-template", resourceTemplatesFolder.id);
|
|
60
|
+
}, children: [_jsx(Plus, { size: 14 }), "Add new"] }))] })] }), _jsxs("div", { className: "border border-gray-200 rounded-lg p-6 hover:border-indigo-400 hover:shadow-md transition-all cursor-pointer", onClick: () => setSelectedNode(serviceOfferingsFolder.id), children: [_jsxs("div", { className: "flex items-center gap-3 mb-4", children: [_jsx("div", { className: "p-2 bg-indigo-50 rounded-lg", children: _jsx(Package, { className: "w-6 h-6 text-indigo-600" }) }), _jsx("h3", { className: "text-lg font-semibold", children: SERVICE_OFFERINGS_FOLDER_NAME })] }), _jsx("p", { className: "text-gray-600 text-sm mb-4", children: "Create and manage service offerings with pricing tiers and options." }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("span", { className: "text-sm text-gray-500", children: [serviceOfferingDocuments.length, " offering", serviceOfferingDocuments.length !== 1 ? "s" : ""] }), isAllowedToCreateDocuments && (_jsxs("button", { type: "button", className: "flex items-center gap-1 text-sm text-indigo-600 hover:text-indigo-800", onClick: (e) => {
|
|
61
|
+
e.stopPropagation();
|
|
62
|
+
handleCreateDocument("powerhouse/service-offering", serviceOfferingsFolder.id);
|
|
63
|
+
}, children: [_jsx(Plus, { size: 14 }), "Add new"] }))] })] })] })] })] }));
|
|
64
|
+
}
|
|
65
|
+
// Render folder contents view (Resource Templates or Service Offerings)
|
|
66
|
+
const currentFolderName = isInResourceTemplates
|
|
67
|
+
? RESOURCE_TEMPLATES_FOLDER_NAME
|
|
68
|
+
: SERVICE_OFFERINGS_FOLDER_NAME;
|
|
69
|
+
const documentType = isInResourceTemplates
|
|
70
|
+
? "powerhouse/resource-template"
|
|
71
|
+
: "powerhouse/service-offering";
|
|
72
|
+
const hasFolders = folderNodes.length > 0;
|
|
73
|
+
const hasFiles = fileNodes.length > 0;
|
|
74
|
+
const isEmpty = !hasFolders && !hasFiles;
|
|
75
|
+
return (_jsxs("div", { children: [_jsx("div", { className: "text-2xl font-bold text-center mb-4", children: currentFolderName }), _jsxs("div", { className: "space-y-6 px-6", children: [_jsxs("div", { className: "flex h-9 flex-row items-center gap-2 text-gray-500 border-b border-gray-200 pb-3", children: [_jsx("div", { className: "transition-colors hover:text-gray-800 cursor-pointer", onClick: () => setSelectedNode(""), role: "button", children: "Resources & Services" }), _jsx("span", { children: "/" }), _jsx("div", { className: "text-gray-800", children: currentFolderName }), _jsx("span", { children: "/" }), isAllowedToCreateDocuments && (_jsxs("button", { type: "button", className: "ml-1 flex items-center justify-center gap-2 rounded-md bg-gray-50 px-2 py-1.5 transition-colors hover:bg-gray-200 hover:text-gray-800", onClick: () => showCreateDocumentModal(documentType), children: [_jsx(Plus, { size: 14 }), "Add new"] }))] }), hasFolders && (_jsxs("div", { children: [_jsx("h3", { className: "mb-2 text-sm font-bold text-gray-600", children: "Folders" }), _jsx("div", { className: "flex flex-wrap gap-4", children: folderNodes.map((folderNode) => (_jsx(FolderItem, { folderNode: folderNode }, folderNode.id))) })] })), hasFiles && (_jsxs("div", { children: [_jsx("h3", { className: "mb-2 text-sm font-semibold text-gray-600", children: "Documents" }), _jsx("div", { className: "flex flex-wrap gap-4", children: fileNodes.map((fileNode) => (_jsx(FileItem, { fileNode: fileNode }, fileNode.id))) })] })), isEmpty && (_jsxs("div", { className: "flex flex-col items-center justify-center py-12 text-center", children: [_jsx("div", { className: "text-gray-400 mb-2", children: isInResourceTemplates ? (_jsx(FileText, { className: "w-16 h-16 mx-auto" })) : (_jsx(Package, { className: "w-16 h-16 mx-auto" })) }), _jsxs("p", { className: "text-gray-500 text-sm", children: ["No ", currentFolderName.toLowerCase(), " yet.", isAllowedToCreateDocuments && (_jsxs(_Fragment, { children: [" ", "Click \"Add new\" to create your first", " ", isInResourceTemplates ? "resource template" : "service offering", "."] }))] })] }))] })] }));
|
|
76
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { FolderNode, FileNode } from "document-drive";
|
|
2
|
+
interface UseResourcesServicesAutoPlacementResult {
|
|
3
|
+
/** The Resource Templates folder node, or null if it doesn't exist yet */
|
|
4
|
+
resourceTemplatesFolder: FolderNode | null;
|
|
5
|
+
/** The Service Offerings folder node, or null if it doesn't exist yet */
|
|
6
|
+
serviceOfferingsFolder: FolderNode | null;
|
|
7
|
+
/** Set of all node IDs within the Resource Templates folder tree */
|
|
8
|
+
resourceTemplatesNodeIds: Set<string>;
|
|
9
|
+
/** Set of all node IDs within the Service Offerings folder tree */
|
|
10
|
+
serviceOfferingsNodeIds: Set<string>;
|
|
11
|
+
/** All resource template documents within the Resource Templates folder */
|
|
12
|
+
resourceTemplateDocuments: FileNode[];
|
|
13
|
+
/** All service offering documents within the Service Offerings folder */
|
|
14
|
+
serviceOfferingDocuments: FileNode[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Hook that handles automatic creation of "Resource Templates" and "Service Offerings" folders
|
|
18
|
+
* for the Resources & Services section.
|
|
19
|
+
*
|
|
20
|
+
* This hook:
|
|
21
|
+
* 1. Creates the "Resource Templates" folder if it doesn't exist
|
|
22
|
+
* 2. Creates the "Service Offerings" folder if it doesn't exist
|
|
23
|
+
* 3. Provides access to documents within each folder
|
|
24
|
+
*/
|
|
25
|
+
export declare function useResourcesServicesAutoPlacement(): UseResourcesServicesAutoPlacementResult;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=useResourcesServicesAutoPlacement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useResourcesServicesAutoPlacement.d.ts","sourceRoot":"","sources":["../../../../editors/builder-team-admin/hooks/useResourcesServicesAutoPlacement.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAQ,MAAM,gBAAgB,CAAC;AAKjE,UAAU,uCAAuC;IAC/C,0EAA0E;IAC1E,uBAAuB,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3C,yEAAyE;IACzE,sBAAsB,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1C,oEAAoE;IACpE,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,mEAAmE;IACnE,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,2EAA2E;IAC3E,yBAAyB,EAAE,QAAQ,EAAE,CAAC;IACtC,yEAAyE;IACzE,wBAAwB,EAAE,QAAQ,EAAE,CAAC;CACtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,IAAI,uCAAuC,CAiJ3F"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { useEffect, useMemo, useRef } from "react";
|
|
2
|
+
import { isFolderNodeKind, isFileNodeKind, addFolder, useSelectedDrive, useDocumentsInSelectedDrive, } from "@powerhousedao/reactor-browser";
|
|
3
|
+
const RESOURCE_TEMPLATES_FOLDER_NAME = "Resource Templates";
|
|
4
|
+
const SERVICE_OFFERINGS_FOLDER_NAME = "Service Offerings";
|
|
5
|
+
/**
|
|
6
|
+
* Hook that handles automatic creation of "Resource Templates" and "Service Offerings" folders
|
|
7
|
+
* for the Resources & Services section.
|
|
8
|
+
*
|
|
9
|
+
* This hook:
|
|
10
|
+
* 1. Creates the "Resource Templates" folder if it doesn't exist
|
|
11
|
+
* 2. Creates the "Service Offerings" folder if it doesn't exist
|
|
12
|
+
* 3. Provides access to documents within each folder
|
|
13
|
+
*/
|
|
14
|
+
export function useResourcesServicesAutoPlacement() {
|
|
15
|
+
const [driveDocument] = useSelectedDrive();
|
|
16
|
+
const documentsInDrive = useDocumentsInSelectedDrive();
|
|
17
|
+
// Track folder creation to prevent duplicates
|
|
18
|
+
const hasCreatedResourceTemplatesFolder = useRef(false);
|
|
19
|
+
const hasCreatedServiceOfferingsFolder = useRef(false);
|
|
20
|
+
// Find the "Resource Templates" folder in the drive
|
|
21
|
+
const resourceTemplatesFolder = useMemo(() => {
|
|
22
|
+
if (!driveDocument)
|
|
23
|
+
return null;
|
|
24
|
+
const nodes = driveDocument.state.global.nodes;
|
|
25
|
+
return (nodes.find((node) => isFolderNodeKind(node) &&
|
|
26
|
+
node.name === RESOURCE_TEMPLATES_FOLDER_NAME) ?? null);
|
|
27
|
+
}, [driveDocument]);
|
|
28
|
+
// Find the "Service Offerings" folder in the drive
|
|
29
|
+
const serviceOfferingsFolder = useMemo(() => {
|
|
30
|
+
if (!driveDocument)
|
|
31
|
+
return null;
|
|
32
|
+
const nodes = driveDocument.state.global.nodes;
|
|
33
|
+
return (nodes.find((node) => isFolderNodeKind(node) && node.name === SERVICE_OFFERINGS_FOLDER_NAME) ?? null);
|
|
34
|
+
}, [driveDocument]);
|
|
35
|
+
// Build a set of all node IDs within the Resource Templates folder tree
|
|
36
|
+
const resourceTemplatesNodeIds = useMemo(() => {
|
|
37
|
+
const nodeIds = new Set();
|
|
38
|
+
if (!resourceTemplatesFolder || !driveDocument)
|
|
39
|
+
return nodeIds;
|
|
40
|
+
const allNodes = driveDocument.state.global.nodes;
|
|
41
|
+
const collectNodeIds = (parentId) => {
|
|
42
|
+
nodeIds.add(parentId);
|
|
43
|
+
for (const node of allNodes) {
|
|
44
|
+
if (isFolderNodeKind(node) && node.parentFolder === parentId) {
|
|
45
|
+
collectNodeIds(node.id);
|
|
46
|
+
}
|
|
47
|
+
else if (isFileNodeKind(node) &&
|
|
48
|
+
node.parentFolder === parentId &&
|
|
49
|
+
node.documentType === "powerhouse/resource-template") {
|
|
50
|
+
nodeIds.add(node.id);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
collectNodeIds(resourceTemplatesFolder.id);
|
|
55
|
+
return nodeIds;
|
|
56
|
+
}, [resourceTemplatesFolder, driveDocument]);
|
|
57
|
+
// Build a set of all node IDs within the Service Offerings folder tree
|
|
58
|
+
const serviceOfferingsNodeIds = useMemo(() => {
|
|
59
|
+
const nodeIds = new Set();
|
|
60
|
+
if (!serviceOfferingsFolder || !driveDocument)
|
|
61
|
+
return nodeIds;
|
|
62
|
+
const allNodes = driveDocument.state.global.nodes;
|
|
63
|
+
const collectNodeIds = (parentId) => {
|
|
64
|
+
nodeIds.add(parentId);
|
|
65
|
+
for (const node of allNodes) {
|
|
66
|
+
if (isFolderNodeKind(node) && node.parentFolder === parentId) {
|
|
67
|
+
collectNodeIds(node.id);
|
|
68
|
+
}
|
|
69
|
+
else if (isFileNodeKind(node) &&
|
|
70
|
+
node.parentFolder === parentId &&
|
|
71
|
+
node.documentType === "powerhouse/service-offering") {
|
|
72
|
+
nodeIds.add(node.id);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
collectNodeIds(serviceOfferingsFolder.id);
|
|
77
|
+
return nodeIds;
|
|
78
|
+
}, [serviceOfferingsFolder, driveDocument]);
|
|
79
|
+
// Get resource template documents within the Resource Templates folder
|
|
80
|
+
const resourceTemplateDocuments = useMemo(() => {
|
|
81
|
+
if (!driveDocument)
|
|
82
|
+
return [];
|
|
83
|
+
return driveDocument.state.global.nodes.filter((node) => isFileNodeKind(node) &&
|
|
84
|
+
node.documentType === "powerhouse/resource-template" &&
|
|
85
|
+
resourceTemplatesNodeIds.has(node.id));
|
|
86
|
+
}, [driveDocument, resourceTemplatesNodeIds]);
|
|
87
|
+
// Get service offering documents within the Service Offerings folder
|
|
88
|
+
const serviceOfferingDocuments = useMemo(() => {
|
|
89
|
+
if (!driveDocument)
|
|
90
|
+
return [];
|
|
91
|
+
return driveDocument.state.global.nodes.filter((node) => isFileNodeKind(node) &&
|
|
92
|
+
node.documentType === "powerhouse/service-offering" &&
|
|
93
|
+
serviceOfferingsNodeIds.has(node.id));
|
|
94
|
+
}, [driveDocument, serviceOfferingsNodeIds]);
|
|
95
|
+
// Create Resource Templates folder if it doesn't exist
|
|
96
|
+
useEffect(() => {
|
|
97
|
+
if (!driveDocument ||
|
|
98
|
+
resourceTemplatesFolder ||
|
|
99
|
+
hasCreatedResourceTemplatesFolder.current)
|
|
100
|
+
return;
|
|
101
|
+
hasCreatedResourceTemplatesFolder.current = true;
|
|
102
|
+
const driveId = driveDocument.header.id;
|
|
103
|
+
void addFolder(driveId, RESOURCE_TEMPLATES_FOLDER_NAME);
|
|
104
|
+
}, [driveDocument, resourceTemplatesFolder]);
|
|
105
|
+
// Create Service Offerings folder if it doesn't exist
|
|
106
|
+
useEffect(() => {
|
|
107
|
+
if (!driveDocument ||
|
|
108
|
+
serviceOfferingsFolder ||
|
|
109
|
+
hasCreatedServiceOfferingsFolder.current)
|
|
110
|
+
return;
|
|
111
|
+
hasCreatedServiceOfferingsFolder.current = true;
|
|
112
|
+
const driveId = driveDocument.header.id;
|
|
113
|
+
void addFolder(driveId, SERVICE_OFFERINGS_FOLDER_NAME);
|
|
114
|
+
}, [driveDocument, serviceOfferingsFolder]);
|
|
115
|
+
return {
|
|
116
|
+
resourceTemplatesFolder,
|
|
117
|
+
serviceOfferingsFolder,
|
|
118
|
+
resourceTemplatesNodeIds,
|
|
119
|
+
serviceOfferingsNodeIds,
|
|
120
|
+
resourceTemplateDocuments,
|
|
121
|
+
serviceOfferingDocuments,
|
|
122
|
+
};
|
|
123
|
+
}
|
package/dist/editors/index.d.ts
CHANGED
|
@@ -8,4 +8,5 @@ export { SnapshotReportEditor } from "./snapshot-report-editor/module.js";
|
|
|
8
8
|
export { ExpenseReport } from "./expense-report/module.js";
|
|
9
9
|
export { ServiceSubscriptionsEditor } from "./service-subscriptions-editor/module.js";
|
|
10
10
|
export { ServiceOfferingEditor } from "./service-offering-editor/module.js";
|
|
11
|
+
export { ResourceTemplateEditor } from "./resource-template-editor/module.js";
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../editors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../editors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC"}
|
package/dist/editors/index.js
CHANGED
|
@@ -8,3 +8,4 @@ export { SnapshotReportEditor } from "./snapshot-report-editor/module.js";
|
|
|
8
8
|
export { ExpenseReport } from "./expense-report/module.js";
|
|
9
9
|
export { ServiceSubscriptionsEditor } from "./service-subscriptions-editor/module.js";
|
|
10
10
|
export { ServiceOfferingEditor } from "./service-offering-editor/module.js";
|
|
11
|
+
export { ResourceTemplateEditor } from "./resource-template-editor/module.js";
|