@powerhousedao/contributor-billing 0.1.40 → 0.1.41
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/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/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 +47 -2
- 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 +1 -1
- 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 +21 -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 +14 -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/option-group-management.d.ts.map +1 -1
- package/dist/document-models/service-offering/src/reducers/option-group-management.js +8 -11
- 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 +12 -15
- package/dist/document-models/service-offering/src/reducers/tier-management.d.ts.map +1 -1
- package/dist/document-models/service-offering/src/reducers/tier-management.js +19 -21
- 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 +451 -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 +988 -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/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 +1050 -0
- package/dist/editors/service-offering-editor/components/ServicesList.d.ts.map +1 -1
- package/dist/editors/service-offering-editor/components/ServicesList.js +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.map +1 -1
- package/dist/editors/service-offering-editor/components/TheMatrix.js +284 -25
- package/dist/editors/service-offering-editor/editor.d.ts.map +1 -1
- package/dist/editors/service-offering-editor/editor.js +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/style.css +25 -0
- package/package.json +1 -1
|
@@ -10,31 +10,29 @@ export const serviceOfferingTierManagementOperations = {
|
|
|
10
10
|
amount: action.input.amount || null,
|
|
11
11
|
currency: action.input.currency,
|
|
12
12
|
billingCycle: action.input.billingCycle,
|
|
13
|
-
setupFee: action.input.setupFee || null
|
|
13
|
+
setupFee: action.input.setupFee || null
|
|
14
14
|
},
|
|
15
|
-
isCustomPricing: action.input.isCustomPricing || false
|
|
15
|
+
isCustomPricing: action.input.isCustomPricing || false
|
|
16
16
|
});
|
|
17
17
|
state.lastModified = action.input.lastModified;
|
|
18
18
|
},
|
|
19
19
|
updateTierOperation(state, action) {
|
|
20
|
-
const tier = state.tiers.find(
|
|
20
|
+
const tier = state.tiers.find(t => t.id === action.input.id);
|
|
21
21
|
if (tier) {
|
|
22
22
|
if (action.input.name) {
|
|
23
23
|
tier.name = action.input.name;
|
|
24
24
|
}
|
|
25
|
-
if (action.input.description !== undefined &&
|
|
26
|
-
action.input.description !== null) {
|
|
25
|
+
if (action.input.description !== undefined && action.input.description !== null) {
|
|
27
26
|
tier.description = action.input.description;
|
|
28
27
|
}
|
|
29
|
-
if (action.input.isCustomPricing !== undefined &&
|
|
30
|
-
action.input.isCustomPricing !== null) {
|
|
28
|
+
if (action.input.isCustomPricing !== undefined && action.input.isCustomPricing !== null) {
|
|
31
29
|
tier.isCustomPricing = action.input.isCustomPricing;
|
|
32
30
|
}
|
|
33
31
|
}
|
|
34
32
|
state.lastModified = action.input.lastModified;
|
|
35
33
|
},
|
|
36
34
|
updateTierPricingOperation(state, action) {
|
|
37
|
-
const tier = state.tiers.find(
|
|
35
|
+
const tier = state.tiers.find(t => t.id === action.input.tierId);
|
|
38
36
|
if (tier) {
|
|
39
37
|
if (action.input.amount !== undefined) {
|
|
40
38
|
tier.pricing.amount = action.input.amount;
|
|
@@ -52,14 +50,14 @@ export const serviceOfferingTierManagementOperations = {
|
|
|
52
50
|
state.lastModified = action.input.lastModified;
|
|
53
51
|
},
|
|
54
52
|
deleteTierOperation(state, action) {
|
|
55
|
-
const tierIndex = state.tiers.findIndex(
|
|
53
|
+
const tierIndex = state.tiers.findIndex(t => t.id === action.input.id);
|
|
56
54
|
if (tierIndex !== -1) {
|
|
57
55
|
state.tiers.splice(tierIndex, 1);
|
|
58
56
|
}
|
|
59
57
|
state.lastModified = action.input.lastModified;
|
|
60
58
|
},
|
|
61
59
|
addServiceLevelOperation(state, action) {
|
|
62
|
-
const tier = state.tiers.find(
|
|
60
|
+
const tier = state.tiers.find(t => t.id === action.input.tierId);
|
|
63
61
|
if (tier) {
|
|
64
62
|
tier.serviceLevels.push({
|
|
65
63
|
id: action.input.serviceLevelId,
|
|
@@ -69,15 +67,15 @@ export const serviceOfferingTierManagementOperations = {
|
|
|
69
67
|
variations: action.input.variations || null,
|
|
70
68
|
annexes: action.input.annexes || null,
|
|
71
69
|
customValue: action.input.customValue || null,
|
|
72
|
-
setupFee: action.input.setupFee || null
|
|
70
|
+
setupFee: action.input.setupFee || null
|
|
73
71
|
});
|
|
74
72
|
}
|
|
75
73
|
state.lastModified = action.input.lastModified;
|
|
76
74
|
},
|
|
77
75
|
updateServiceLevelOperation(state, action) {
|
|
78
|
-
const tier = state.tiers.find(
|
|
76
|
+
const tier = state.tiers.find(t => t.id === action.input.tierId);
|
|
79
77
|
if (tier) {
|
|
80
|
-
const serviceLevel = tier.serviceLevels.find(
|
|
78
|
+
const serviceLevel = tier.serviceLevels.find(sl => sl.id === action.input.serviceLevelId);
|
|
81
79
|
if (serviceLevel) {
|
|
82
80
|
if (action.input.level) {
|
|
83
81
|
serviceLevel.level = action.input.level;
|
|
@@ -102,9 +100,9 @@ export const serviceOfferingTierManagementOperations = {
|
|
|
102
100
|
state.lastModified = action.input.lastModified;
|
|
103
101
|
},
|
|
104
102
|
removeServiceLevelOperation(state, action) {
|
|
105
|
-
const tier = state.tiers.find(
|
|
103
|
+
const tier = state.tiers.find(t => t.id === action.input.tierId);
|
|
106
104
|
if (tier) {
|
|
107
|
-
const serviceLevelIndex = tier.serviceLevels.findIndex(
|
|
105
|
+
const serviceLevelIndex = tier.serviceLevels.findIndex(sl => sl.id === action.input.serviceLevelId);
|
|
108
106
|
if (serviceLevelIndex !== -1) {
|
|
109
107
|
tier.serviceLevels.splice(serviceLevelIndex, 1);
|
|
110
108
|
}
|
|
@@ -112,7 +110,7 @@ export const serviceOfferingTierManagementOperations = {
|
|
|
112
110
|
state.lastModified = action.input.lastModified;
|
|
113
111
|
},
|
|
114
112
|
addUsageLimitOperation(state, action) {
|
|
115
|
-
const tier = state.tiers.find(
|
|
113
|
+
const tier = state.tiers.find(t => t.id === action.input.tierId);
|
|
116
114
|
if (tier) {
|
|
117
115
|
tier.usageLimits.push({
|
|
118
116
|
id: action.input.limitId,
|
|
@@ -120,15 +118,15 @@ export const serviceOfferingTierManagementOperations = {
|
|
|
120
118
|
metric: action.input.metric,
|
|
121
119
|
limit: action.input.limit || null,
|
|
122
120
|
resetPeriod: action.input.resetPeriod || null,
|
|
123
|
-
notes: action.input.notes || null
|
|
121
|
+
notes: action.input.notes || null
|
|
124
122
|
});
|
|
125
123
|
}
|
|
126
124
|
state.lastModified = action.input.lastModified;
|
|
127
125
|
},
|
|
128
126
|
updateUsageLimitOperation(state, action) {
|
|
129
|
-
const tier = state.tiers.find(
|
|
127
|
+
const tier = state.tiers.find(t => t.id === action.input.tierId);
|
|
130
128
|
if (tier) {
|
|
131
|
-
const usageLimit = tier.usageLimits.find(
|
|
129
|
+
const usageLimit = tier.usageLimits.find(ul => ul.id === action.input.limitId);
|
|
132
130
|
if (usageLimit) {
|
|
133
131
|
if (action.input.metric) {
|
|
134
132
|
usageLimit.metric = action.input.metric;
|
|
@@ -147,9 +145,9 @@ export const serviceOfferingTierManagementOperations = {
|
|
|
147
145
|
state.lastModified = action.input.lastModified;
|
|
148
146
|
},
|
|
149
147
|
removeUsageLimitOperation(state, action) {
|
|
150
|
-
const tier = state.tiers.find(
|
|
148
|
+
const tier = state.tiers.find(t => t.id === action.input.tierId);
|
|
151
149
|
if (tier) {
|
|
152
|
-
const limitIndex = tier.usageLimits.findIndex(
|
|
150
|
+
const limitIndex = tier.usageLimits.findIndex(ul => ul.id === action.input.limitId);
|
|
153
151
|
if (limitIndex !== -1) {
|
|
154
152
|
tier.usageLimits.splice(limitIndex, 1);
|
|
155
153
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { describe, it, expect } from "vitest";
|
|
6
6
|
import { generateMock } from "@powerhousedao/codegen";
|
|
7
|
-
import { reducer, utils, isServiceOfferingDocument, updateOfferingInfo, UpdateOfferingInfoInputSchema, updateOfferingStatus, UpdateOfferingStatusInputSchema, setOperator, SetOperatorInputSchema, setOfferingId, SetOfferingIdInputSchema,
|
|
7
|
+
import { reducer, utils, isServiceOfferingDocument, updateOfferingInfo, UpdateOfferingInfoInputSchema, updateOfferingStatus, UpdateOfferingStatusInputSchema, setOperator, SetOperatorInputSchema, setOfferingId, SetOfferingIdInputSchema, } from "@powerhousedao/contributor-billing/document-models/service-offering";
|
|
8
8
|
describe("OfferingManagement Operations", () => {
|
|
9
9
|
it("should handle updateOfferingInfo operation", () => {
|
|
10
10
|
const document = utils.createDocument();
|
|
@@ -46,84 +46,4 @@ describe("OfferingManagement Operations", () => {
|
|
|
46
46
|
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
47
47
|
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
48
48
|
});
|
|
49
|
-
it("should handle addTargetAudience operation", () => {
|
|
50
|
-
const document = utils.createDocument();
|
|
51
|
-
const input = generateMock(AddTargetAudienceInputSchema());
|
|
52
|
-
const updatedDocument = reducer(document, addTargetAudience(input));
|
|
53
|
-
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
54
|
-
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
55
|
-
expect(updatedDocument.operations.global[0].action.type).toBe("ADD_TARGET_AUDIENCE");
|
|
56
|
-
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
57
|
-
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
58
|
-
});
|
|
59
|
-
it("should handle removeTargetAudience operation", () => {
|
|
60
|
-
const document = utils.createDocument();
|
|
61
|
-
const input = generateMock(RemoveTargetAudienceInputSchema());
|
|
62
|
-
const updatedDocument = reducer(document, removeTargetAudience(input));
|
|
63
|
-
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
64
|
-
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
65
|
-
expect(updatedDocument.operations.global[0].action.type).toBe("REMOVE_TARGET_AUDIENCE");
|
|
66
|
-
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
67
|
-
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
68
|
-
});
|
|
69
|
-
it("should handle setFacetTarget operation", () => {
|
|
70
|
-
const document = utils.createDocument();
|
|
71
|
-
const input = generateMock(SetFacetTargetInputSchema());
|
|
72
|
-
const updatedDocument = reducer(document, setFacetTarget(input));
|
|
73
|
-
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
74
|
-
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
75
|
-
expect(updatedDocument.operations.global[0].action.type).toBe("SET_FACET_TARGET");
|
|
76
|
-
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
77
|
-
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
78
|
-
});
|
|
79
|
-
it("should handle removeFacetTarget operation", () => {
|
|
80
|
-
const document = utils.createDocument();
|
|
81
|
-
const input = generateMock(RemoveFacetTargetInputSchema());
|
|
82
|
-
const updatedDocument = reducer(document, removeFacetTarget(input));
|
|
83
|
-
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
84
|
-
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
85
|
-
expect(updatedDocument.operations.global[0].action.type).toBe("REMOVE_FACET_TARGET");
|
|
86
|
-
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
87
|
-
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
88
|
-
});
|
|
89
|
-
it("should handle addFacetOption operation", () => {
|
|
90
|
-
const document = utils.createDocument();
|
|
91
|
-
const input = generateMock(AddFacetOptionInputSchema());
|
|
92
|
-
const updatedDocument = reducer(document, addFacetOption(input));
|
|
93
|
-
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
94
|
-
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
95
|
-
expect(updatedDocument.operations.global[0].action.type).toBe("ADD_FACET_OPTION");
|
|
96
|
-
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
97
|
-
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
98
|
-
});
|
|
99
|
-
it("should handle removeFacetOption operation", () => {
|
|
100
|
-
const document = utils.createDocument();
|
|
101
|
-
const input = generateMock(RemoveFacetOptionInputSchema());
|
|
102
|
-
const updatedDocument = reducer(document, removeFacetOption(input));
|
|
103
|
-
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
104
|
-
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
105
|
-
expect(updatedDocument.operations.global[0].action.type).toBe("REMOVE_FACET_OPTION");
|
|
106
|
-
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
107
|
-
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
108
|
-
});
|
|
109
|
-
it("should handle setSetupServices operation", () => {
|
|
110
|
-
const document = utils.createDocument();
|
|
111
|
-
const input = generateMock(SetSetupServicesInputSchema());
|
|
112
|
-
const updatedDocument = reducer(document, setSetupServices(input));
|
|
113
|
-
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
114
|
-
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
115
|
-
expect(updatedDocument.operations.global[0].action.type).toBe("SET_SETUP_SERVICES");
|
|
116
|
-
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
117
|
-
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
118
|
-
});
|
|
119
|
-
it("should handle setRecurringServices operation", () => {
|
|
120
|
-
const document = utils.createDocument();
|
|
121
|
-
const input = generateMock(SetRecurringServicesInputSchema());
|
|
122
|
-
const updatedDocument = reducer(document, setRecurringServices(input));
|
|
123
|
-
expect(isServiceOfferingDocument(updatedDocument)).toBe(true);
|
|
124
|
-
expect(updatedDocument.operations.global).toHaveLength(1);
|
|
125
|
-
expect(updatedDocument.operations.global[0].action.type).toBe("SET_RECURRING_SERVICES");
|
|
126
|
-
expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
|
|
127
|
-
expect(updatedDocument.operations.global[0].index).toEqual(0);
|
|
128
|
-
});
|
|
129
49
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tier-management.test.d.ts","sourceRoot":"","sources":["../../../../../document-models/service-offering/src/tests/tier-management.test.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"tier-management.test.d.ts","sourceRoot":"","sources":["../../../../../document-models/service-offering/src/tests/tier-management.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -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"}
|