@powerhousedao/network-admin 0.0.35 → 0.0.37
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.map +1 -1
- package/dist/document-models/index.js +0 -1
- package/dist/document-models/network-profile/gen/document-model.d.ts +2 -2
- package/dist/document-models/network-profile/gen/document-model.d.ts.map +1 -1
- package/dist/document-models/network-profile/gen/index.d.ts +2 -0
- package/dist/document-models/network-profile/gen/index.d.ts.map +1 -1
- package/dist/document-models/network-profile/gen/index.js +1 -0
- package/dist/document-models/network-profile/gen/network-profile-management/actions.js +1 -1
- package/dist/document-models/network-profile/gen/network-profile-management/creators.js +1 -2
- package/dist/document-models/network-profile/gen/network-profile-management/object.d.ts +12 -12
- package/dist/document-models/network-profile/gen/network-profile-management/object.d.ts.map +1 -1
- package/dist/document-models/network-profile/gen/network-profile-management/object.js +0 -3
- package/dist/document-models/network-profile/gen/network-profile-management/operations.js +1 -3
- package/dist/document-models/network-profile/gen/object.d.ts +3 -3
- package/dist/document-models/network-profile/gen/object.d.ts.map +1 -1
- package/dist/document-models/network-profile/gen/object.js +0 -2
- package/dist/document-models/network-profile/gen/ph-factories.d.ts +10 -6
- package/dist/document-models/network-profile/gen/ph-factories.d.ts.map +1 -1
- package/dist/document-models/network-profile/gen/ph-factories.js +4 -1
- package/dist/document-models/network-profile/gen/reducer.d.ts +2 -2
- package/dist/document-models/network-profile/gen/reducer.d.ts.map +1 -1
- package/dist/document-models/network-profile/gen/reducer.js +4 -1
- package/dist/document-models/network-profile/gen/types.d.ts +6 -9
- package/dist/document-models/network-profile/gen/types.d.ts.map +1 -1
- package/dist/document-models/network-profile/gen/types.js +0 -1
- package/dist/document-models/network-profile/gen/utils.d.ts +19 -9
- package/dist/document-models/network-profile/gen/utils.d.ts.map +1 -1
- package/dist/document-models/network-profile/gen/utils.js +34 -26
- package/dist/document-models/network-profile/index.d.ts +4 -10
- package/dist/document-models/network-profile/index.d.ts.map +1 -1
- package/dist/document-models/network-profile/index.js +3 -4
- package/dist/document-models/network-profile/src/reducers/network-profile-management.js +5 -5
- package/dist/document-models/network-profile/src/tests/document-model.test.js +1 -1
- package/dist/document-models/network-profile/src/tests/network-profile-management.test.js +0 -1
- package/dist/document-models/payment-terms/gen/clauses/actions.js +1 -1
- package/dist/document-models/payment-terms/gen/clauses/creators.js +1 -2
- package/dist/document-models/payment-terms/gen/clauses/object.d.ts +7 -7
- package/dist/document-models/payment-terms/gen/clauses/object.d.ts.map +1 -1
- package/dist/document-models/payment-terms/gen/clauses/object.js +0 -3
- package/dist/document-models/payment-terms/gen/clauses/operations.js +1 -3
- package/dist/document-models/payment-terms/gen/document-model.d.ts +2 -2
- package/dist/document-models/payment-terms/gen/document-model.d.ts.map +1 -1
- package/dist/document-models/payment-terms/gen/index.d.ts +2 -0
- package/dist/document-models/payment-terms/gen/index.d.ts.map +1 -1
- package/dist/document-models/payment-terms/gen/index.js +1 -0
- package/dist/document-models/payment-terms/gen/milestones/actions.js +1 -1
- package/dist/document-models/payment-terms/gen/milestones/creators.js +1 -2
- package/dist/document-models/payment-terms/gen/milestones/object.d.ts +6 -6
- package/dist/document-models/payment-terms/gen/milestones/object.d.ts.map +1 -1
- package/dist/document-models/payment-terms/gen/milestones/object.js +0 -3
- package/dist/document-models/payment-terms/gen/milestones/operations.js +1 -3
- package/dist/document-models/payment-terms/gen/object.d.ts +3 -3
- package/dist/document-models/payment-terms/gen/object.d.ts.map +1 -1
- package/dist/document-models/payment-terms/gen/object.js +0 -2
- package/dist/document-models/payment-terms/gen/ph-factories.d.ts +10 -6
- package/dist/document-models/payment-terms/gen/ph-factories.d.ts.map +1 -1
- package/dist/document-models/payment-terms/gen/ph-factories.js +4 -1
- package/dist/document-models/payment-terms/gen/reducer.d.ts +2 -2
- package/dist/document-models/payment-terms/gen/reducer.d.ts.map +1 -1
- package/dist/document-models/payment-terms/gen/reducer.js +4 -1
- package/dist/document-models/payment-terms/gen/terms/actions.js +1 -1
- package/dist/document-models/payment-terms/gen/terms/creators.js +1 -2
- package/dist/document-models/payment-terms/gen/terms/object.d.ts +7 -7
- package/dist/document-models/payment-terms/gen/terms/object.d.ts.map +1 -1
- package/dist/document-models/payment-terms/gen/terms/object.js +0 -3
- package/dist/document-models/payment-terms/gen/terms/operations.js +1 -3
- package/dist/document-models/payment-terms/gen/types.d.ts +6 -9
- package/dist/document-models/payment-terms/gen/types.d.ts.map +1 -1
- package/dist/document-models/payment-terms/gen/types.js +0 -1
- package/dist/document-models/payment-terms/gen/utils.d.ts +19 -9
- package/dist/document-models/payment-terms/gen/utils.d.ts.map +1 -1
- package/dist/document-models/payment-terms/gen/utils.js +34 -26
- package/dist/document-models/payment-terms/index.d.ts +4 -10
- package/dist/document-models/payment-terms/index.d.ts.map +1 -1
- package/dist/document-models/payment-terms/index.js +3 -4
- package/dist/document-models/payment-terms/src/tests/document-model.test.js +1 -1
- package/dist/document-models/request-for-proposals/gen/contex-document/actions.js +1 -1
- package/dist/document-models/request-for-proposals/gen/contex-document/creators.js +1 -2
- package/dist/document-models/request-for-proposals/gen/contex-document/object.d.ts +3 -3
- package/dist/document-models/request-for-proposals/gen/contex-document/object.d.ts.map +1 -1
- package/dist/document-models/request-for-proposals/gen/contex-document/object.js +0 -3
- package/dist/document-models/request-for-proposals/gen/contex-document/operations.js +1 -3
- package/dist/document-models/request-for-proposals/gen/document-model.d.ts +2 -2
- package/dist/document-models/request-for-proposals/gen/document-model.d.ts.map +1 -1
- package/dist/document-models/request-for-proposals/gen/index.d.ts +3 -0
- package/dist/document-models/request-for-proposals/gen/index.d.ts.map +1 -1
- package/dist/document-models/request-for-proposals/gen/index.js +2 -0
- package/dist/document-models/request-for-proposals/gen/object.d.ts +3 -3
- package/dist/document-models/request-for-proposals/gen/object.d.ts.map +1 -1
- package/dist/document-models/request-for-proposals/gen/object.js +0 -2
- package/dist/document-models/request-for-proposals/gen/ph-factories.d.ts +10 -6
- package/dist/document-models/request-for-proposals/gen/ph-factories.d.ts.map +1 -1
- package/dist/document-models/request-for-proposals/gen/ph-factories.js +9 -4
- package/dist/document-models/request-for-proposals/gen/proposals/actions.js +1 -1
- package/dist/document-models/request-for-proposals/gen/proposals/creators.js +1 -2
- package/dist/document-models/request-for-proposals/gen/proposals/object.d.ts +4 -4
- package/dist/document-models/request-for-proposals/gen/proposals/object.d.ts.map +1 -1
- package/dist/document-models/request-for-proposals/gen/proposals/object.js +0 -3
- package/dist/document-models/request-for-proposals/gen/proposals/operations.js +1 -3
- package/dist/document-models/request-for-proposals/gen/reducer.d.ts +2 -2
- package/dist/document-models/request-for-proposals/gen/reducer.d.ts.map +1 -1
- package/dist/document-models/request-for-proposals/gen/reducer.js +4 -1
- package/dist/document-models/request-for-proposals/gen/rfp-state/actions.js +1 -1
- package/dist/document-models/request-for-proposals/gen/rfp-state/creators.js +1 -2
- package/dist/document-models/request-for-proposals/gen/rfp-state/object.d.ts +2 -2
- package/dist/document-models/request-for-proposals/gen/rfp-state/object.d.ts.map +1 -1
- package/dist/document-models/request-for-proposals/gen/rfp-state/object.js +0 -3
- package/dist/document-models/request-for-proposals/gen/rfp-state/operations.js +1 -3
- package/dist/document-models/request-for-proposals/gen/types.d.ts +6 -9
- package/dist/document-models/request-for-proposals/gen/types.d.ts.map +1 -1
- package/dist/document-models/request-for-proposals/gen/types.js +0 -1
- package/dist/document-models/request-for-proposals/gen/utils.d.ts +19 -9
- package/dist/document-models/request-for-proposals/gen/utils.d.ts.map +1 -1
- package/dist/document-models/request-for-proposals/gen/utils.js +41 -29
- package/dist/document-models/request-for-proposals/index.d.ts +4 -10
- package/dist/document-models/request-for-proposals/index.d.ts.map +1 -1
- package/dist/document-models/request-for-proposals/index.js +3 -4
- package/dist/document-models/request-for-proposals/src/tests/contex-document.test.js +0 -1
- package/dist/document-models/request-for-proposals/src/tests/document-model.test.js +1 -1
- package/dist/document-models/request-for-proposals/src/tests/proposals.test.js +0 -1
- package/dist/document-models/request-for-proposals/src/tests/rfp-state.test.js +0 -1
- package/dist/document-models/workstream/gen/document-model.d.ts +2 -2
- package/dist/document-models/workstream/gen/document-model.d.ts.map +1 -1
- package/dist/document-models/workstream/gen/index.d.ts +2 -0
- package/dist/document-models/workstream/gen/index.d.ts.map +1 -1
- package/dist/document-models/workstream/gen/index.js +1 -0
- package/dist/document-models/workstream/gen/object.d.ts +3 -3
- package/dist/document-models/workstream/gen/object.d.ts.map +1 -1
- package/dist/document-models/workstream/gen/object.js +0 -2
- package/dist/document-models/workstream/gen/ph-factories.d.ts +10 -6
- package/dist/document-models/workstream/gen/ph-factories.d.ts.map +1 -1
- package/dist/document-models/workstream/gen/ph-factories.js +4 -1
- package/dist/document-models/workstream/gen/proposals/actions.js +1 -1
- package/dist/document-models/workstream/gen/proposals/creators.js +1 -2
- package/dist/document-models/workstream/gen/proposals/object.d.ts +5 -5
- package/dist/document-models/workstream/gen/proposals/object.d.ts.map +1 -1
- package/dist/document-models/workstream/gen/proposals/object.js +0 -3
- package/dist/document-models/workstream/gen/proposals/operations.js +1 -3
- package/dist/document-models/workstream/gen/reducer.d.ts +2 -2
- package/dist/document-models/workstream/gen/reducer.d.ts.map +1 -1
- package/dist/document-models/workstream/gen/reducer.js +4 -1
- package/dist/document-models/workstream/gen/types.d.ts +6 -9
- package/dist/document-models/workstream/gen/types.d.ts.map +1 -1
- package/dist/document-models/workstream/gen/types.js +0 -1
- package/dist/document-models/workstream/gen/utils.d.ts +19 -9
- package/dist/document-models/workstream/gen/utils.d.ts.map +1 -1
- package/dist/document-models/workstream/gen/utils.js +34 -26
- package/dist/document-models/workstream/gen/workstream/actions.js +1 -1
- package/dist/document-models/workstream/gen/workstream/creators.js +1 -2
- package/dist/document-models/workstream/gen/workstream/object.d.ts +6 -6
- package/dist/document-models/workstream/gen/workstream/object.d.ts.map +1 -1
- package/dist/document-models/workstream/gen/workstream/object.js +0 -3
- package/dist/document-models/workstream/gen/workstream/operations.js +1 -3
- package/dist/document-models/workstream/index.d.ts +4 -10
- package/dist/document-models/workstream/index.d.ts.map +1 -1
- package/dist/document-models/workstream/index.js +3 -4
- package/dist/document-models/workstream/src/tests/document-model.test.js +1 -1
- package/dist/document-models/workstream/src/tests/proposals-reducers.test.js +0 -2
- package/dist/document-models/workstream/src/tests/workstream-reducers.test.js +0 -2
- package/dist/editors/index.js +0 -1
- package/dist/editors/network-admin/components/DriveExplorer.d.ts.map +1 -1
- package/dist/editors/network-admin/components/DriveExplorer.js +36 -22
- package/dist/editors/network-admin/components/icons/PaymentIcon.d.ts +1 -1
- package/dist/editors/network-admin/components/icons/PaymentIcon.d.ts.map +1 -1
- package/dist/editors/network-admin/components/icons/RfpIcon.d.ts +1 -1
- package/dist/editors/network-admin/components/icons/RfpIcon.d.ts.map +1 -1
- package/dist/editors/network-admin/components/icons/SowIcon.d.ts +1 -1
- package/dist/editors/network-admin/components/icons/SowIcon.d.ts.map +1 -1
- package/dist/editors/network-admin/components/icons/WorkstreamIcon.d.ts +1 -1
- package/dist/editors/network-admin/components/icons/WorkstreamIcon.d.ts.map +1 -1
- package/dist/editors/network-admin/editor.d.ts +3 -2
- package/dist/editors/network-admin/editor.d.ts.map +1 -1
- package/dist/editors/network-admin/editor.js +2 -7
- package/dist/editors/network-admin/index.d.ts +2 -2
- package/dist/editors/network-admin/index.d.ts.map +1 -1
- package/dist/editors/network-admin/index.js +14 -2
- package/dist/editors/network-profile/editor.d.ts.map +1 -1
- package/dist/editors/network-profile/editor.js +29 -30
- package/dist/editors/network-profile/index.d.ts.map +1 -1
- package/dist/editors/network-profile/index.js +3 -1
- package/dist/editors/payment-terms/basic-terms-tab.d.ts +1 -1
- package/dist/editors/payment-terms/basic-terms-tab.d.ts.map +1 -1
- package/dist/editors/payment-terms/basic-terms-tab.js +5 -6
- package/dist/editors/payment-terms/clauses-tab.d.ts +2 -2
- package/dist/editors/payment-terms/clauses-tab.d.ts.map +1 -1
- package/dist/editors/payment-terms/clauses-tab.js +26 -31
- package/dist/editors/payment-terms/cost-materials-tab.d.ts +1 -1
- package/dist/editors/payment-terms/cost-materials-tab.d.ts.map +1 -1
- package/dist/editors/payment-terms/cost-materials-tab.js +4 -5
- package/dist/editors/payment-terms/editor.d.ts.map +1 -1
- package/dist/editors/payment-terms/editor.js +2 -4
- package/dist/editors/payment-terms/escrow-tab.d.ts +1 -1
- package/dist/editors/payment-terms/escrow-tab.d.ts.map +1 -1
- package/dist/editors/payment-terms/escrow-tab.js +3 -4
- package/dist/editors/payment-terms/evaluation-tab.d.ts +1 -1
- package/dist/editors/payment-terms/evaluation-tab.d.ts.map +1 -1
- package/dist/editors/payment-terms/evaluation-tab.js +4 -5
- package/dist/editors/payment-terms/index.d.ts.map +1 -1
- package/dist/editors/payment-terms/index.js +3 -1
- package/dist/editors/payment-terms/milestones-tab.d.ts +1 -1
- package/dist/editors/payment-terms/milestones-tab.d.ts.map +1 -1
- package/dist/editors/payment-terms/milestones-tab.js +6 -8
- package/dist/editors/payment-terms/retainer-tab.d.ts +1 -1
- package/dist/editors/payment-terms/retainer-tab.d.ts.map +1 -1
- package/dist/editors/payment-terms/retainer-tab.js +4 -5
- package/dist/editors/request-for-proposals/editor.d.ts.map +1 -1
- package/dist/editors/request-for-proposals/editor.js +48 -51
- package/dist/editors/request-for-proposals/index.d.ts.map +1 -1
- package/dist/editors/request-for-proposals/index.js +3 -1
- package/dist/editors/workstream/editor.d.ts.map +1 -1
- package/dist/editors/workstream/editor.js +289 -307
- package/dist/editors/workstream/index.d.ts.map +1 -1
- package/dist/editors/workstream/index.js +3 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/processors/factory.d.ts +1 -1
- package/dist/processors/factory.d.ts.map +1 -1
- package/dist/processors/factory.js +0 -2
- package/dist/processors/index.js +0 -1
- package/dist/processors/workstreams/factory.d.ts +1 -1
- package/dist/processors/workstreams/factory.d.ts.map +1 -1
- package/dist/processors/workstreams/factory.js +0 -3
- package/dist/processors/workstreams/index.d.ts +2 -2
- package/dist/processors/workstreams/index.d.ts.map +1 -1
- package/dist/processors/workstreams/index.js +2 -6
- package/dist/processors/workstreams/migrations.d.ts +1 -1
- package/dist/processors/workstreams/migrations.d.ts.map +1 -1
- package/dist/processors/workstreams/migrations.js +0 -1
- package/dist/scripts/sow-mirror/mirror_sow_state.js +4 -4
- package/dist/style.css +17947 -1776
- package/dist/subgraphs/index.js +0 -1
- package/dist/subgraphs/network-profile/index.d.ts +2 -2
- package/dist/subgraphs/network-profile/index.d.ts.map +1 -1
- package/dist/subgraphs/network-profile/index.js +2 -2
- package/dist/subgraphs/network-profile/resolvers.d.ts +2 -2
- package/dist/subgraphs/network-profile/resolvers.d.ts.map +1 -1
- package/dist/subgraphs/network-profile/resolvers.js +0 -1
- package/dist/subgraphs/networks/index.d.ts +2 -2
- package/dist/subgraphs/networks/index.d.ts.map +1 -1
- package/dist/subgraphs/networks/index.js +2 -2
- package/dist/subgraphs/networks/resolvers.d.ts +2 -2
- package/dist/subgraphs/networks/resolvers.d.ts.map +1 -1
- package/dist/subgraphs/networks/resolvers.js +0 -1
- package/dist/subgraphs/payment-terms/index.d.ts +2 -2
- package/dist/subgraphs/payment-terms/index.d.ts.map +1 -1
- package/dist/subgraphs/payment-terms/index.js +2 -2
- package/dist/subgraphs/payment-terms/resolvers.d.ts +2 -2
- package/dist/subgraphs/payment-terms/resolvers.d.ts.map +1 -1
- package/dist/subgraphs/payment-terms/resolvers.js +0 -1
- package/dist/subgraphs/request-for-proposals/index.d.ts +2 -2
- package/dist/subgraphs/request-for-proposals/index.d.ts.map +1 -1
- package/dist/subgraphs/request-for-proposals/index.js +2 -2
- package/dist/subgraphs/request-for-proposals/resolvers.d.ts +2 -2
- package/dist/subgraphs/request-for-proposals/resolvers.d.ts.map +1 -1
- package/dist/subgraphs/request-for-proposals/resolvers.js +0 -1
- package/dist/subgraphs/workstream/index.d.ts +2 -2
- package/dist/subgraphs/workstream/index.d.ts.map +1 -1
- package/dist/subgraphs/workstream/index.js +2 -2
- package/dist/subgraphs/workstream/resolvers.d.ts +2 -2
- package/dist/subgraphs/workstream/resolvers.d.ts.map +1 -1
- package/dist/subgraphs/workstream/resolvers.js +0 -1
- package/dist/subgraphs/workstreams/index.d.ts +2 -2
- package/dist/subgraphs/workstreams/index.d.ts.map +1 -1
- package/dist/subgraphs/workstreams/index.js +2 -2
- package/dist/subgraphs/workstreams/resolvers.d.ts +2 -2
- package/dist/subgraphs/workstreams/resolvers.d.ts.map +1 -1
- package/dist/subgraphs/workstreams/resolvers.js +0 -3
- package/package.json +29 -47
- package/dist/editors/network-admin/config.d.ts +0 -3
- package/dist/editors/network-admin/config.d.ts.map +0 -1
- package/dist/editors/network-admin/config.js +0 -11
- package/dist/vite.config.d.ts +0 -3
- package/dist/vite.config.d.ts.map +0 -1
- package/dist/vite.config.js +0 -69
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"milestones-tab.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/milestones-tab.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"milestones-tab.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/milestones-tab.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,SAAS,EAET,kBAAkB,EACnB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAE9F,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,OAAO,mBAAmB,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,EAC5B,UAAU,EACV,QAAQ,EACR,OAAO,EACP,QAAgB,GACjB,EAAE,kBAAkB,2CA+VpB"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useCallback, useMemo } from "react";
|
|
3
3
|
import { ObjectSetTable, TextInput, DatePicker, } from "@powerhousedao/document-engineering";
|
|
4
|
-
import { Button, } from "@powerhousedao/
|
|
5
|
-
import {
|
|
6
|
-
import { generateId } from "document-model/core";
|
|
7
|
-
import {} from "../../document-models/payment-terms/index.js";
|
|
4
|
+
import { Button, Icon, toast } from "@powerhousedao/design-system";
|
|
5
|
+
import { generateId } from "document-model";
|
|
8
6
|
export function MilestonesTab({ milestones, dispatch, actions, currency = "USD", }) {
|
|
9
7
|
const [isAddingNew, setIsAddingNew] = useState(false);
|
|
10
8
|
const [newMilestone, setNewMilestone] = useState({
|
|
@@ -133,7 +131,7 @@ export function MilestonesTab({ milestones, dispatch, actions, currency = "USD",
|
|
|
133
131
|
toast("Milestone deleted", {
|
|
134
132
|
type: "success",
|
|
135
133
|
});
|
|
136
|
-
}, size: "
|
|
134
|
+
}, size: "small", className: "text-red-600 hover:text-red-800", children: _jsx(Icon, { name: "Trash", size: 16 }) })),
|
|
137
135
|
},
|
|
138
136
|
], [actions, currency, dispatch]);
|
|
139
137
|
const handleAddMilestone = useCallback((e) => {
|
|
@@ -177,7 +175,7 @@ export function MilestonesTab({ milestones, dispatch, actions, currency = "USD",
|
|
|
177
175
|
});
|
|
178
176
|
setIsAddingNew(false);
|
|
179
177
|
}, [newMilestone, dispatch, actions, currency]);
|
|
180
|
-
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Milestones" }), _jsxs("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: [milestones.length, " milestone(s) defined"] })] }), _jsxs(Button, { onClick: () => setIsAddingNew(!isAddingNew), color: "light", size: "
|
|
178
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Milestones" }), _jsxs("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: [milestones.length, " milestone(s) defined"] })] }), _jsxs(Button, { onClick: () => setIsAddingNew(!isAddingNew), color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: [_jsx(Icon, { name: "Plus", size: 16, className: "mr-2" }), "Add Milestone"] })] }), isAddingNew && (_jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border dark:border-gray-600", children: [_jsx("h3", { className: "text-lg font-medium mb-4 dark:text-white", children: "Add New Milestone" }), _jsxs("form", { onSubmit: handleAddMilestone, className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsx(TextInput, { label: "Name *", value: newMilestone.name, onChange: (e) => setNewMilestone({ ...newMilestone, name: e.target.value }), className: "w-full", required: true }), _jsx(TextInput, { label: `Amount (${currency}) *`, type: "number", value: newMilestone.amount, onChange: (e) => setNewMilestone({ ...newMilestone, amount: e.target.value }), className: "w-full", placeholder: "0.00", step: "0.01", required: true }), _jsx(DatePicker, { value: newMilestone.expectedCompletionDate
|
|
181
179
|
? new Date(newMilestone.expectedCompletionDate)
|
|
182
180
|
: undefined, onChange: (e) => {
|
|
183
181
|
const date = e.target.value ? new Date(e.target.value) : null;
|
|
@@ -188,7 +186,7 @@ export function MilestonesTab({ milestones, dispatch, actions, currency = "USD",
|
|
|
188
186
|
}, name: "expected-completion-date", placeholder: "Select expected completion date" }), _jsxs("div", { className: "flex items-center pt-6", children: [_jsx("input", { type: "checkbox", id: "requiresApproval", checked: newMilestone.requiresApproval, onChange: (e) => setNewMilestone({
|
|
189
187
|
...newMilestone,
|
|
190
188
|
requiresApproval: e.target.checked,
|
|
191
|
-
}), className: "mr-2 h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded" }), _jsx("label", { htmlFor: "requiresApproval", className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: "Requires Approval" })] })] }), _jsxs("div", { className: "flex gap-3", children: [_jsx(Button, { type: "submit", color: "light", size: "
|
|
189
|
+
}), className: "mr-2 h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded" }), _jsx("label", { htmlFor: "requiresApproval", className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: "Requires Approval" })] })] }), _jsxs("div", { className: "flex gap-3", children: [_jsx(Button, { type: "submit", color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: "Add Milestone" }), _jsx(Button, { type: "button", onClick: () => {
|
|
192
190
|
setIsAddingNew(false);
|
|
193
191
|
setNewMilestone({
|
|
194
192
|
name: "",
|
|
@@ -196,7 +194,7 @@ export function MilestonesTab({ milestones, dispatch, actions, currency = "USD",
|
|
|
196
194
|
expectedCompletionDate: "",
|
|
197
195
|
requiresApproval: true,
|
|
198
196
|
});
|
|
199
|
-
}, color: "light", size: "
|
|
197
|
+
}, color: "light", size: "small", className: "cursor-pointer hover:bg-gray-600 hover:text-white", children: "Cancel" })] })] })] })), milestones.length > 0 ? (_jsx(ObjectSetTable, { data: milestones, columns: columns, onAdd: () => setIsAddingNew(true), onDelete: (row) => {
|
|
200
198
|
dispatch(actions.deleteMilestone({ id: row.id }));
|
|
201
199
|
toast("Milestone deleted", {
|
|
202
200
|
type: "success",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { PaymentTermsState } from "../../document-models/payment-terms/gen/schema/types.js";
|
|
2
2
|
import type { PaymentTermsAction } from "../../document-models/payment-terms/gen/actions.js";
|
|
3
|
-
import {
|
|
3
|
+
import { actions as paymentTermsActions } from "../../document-models/payment-terms/index.js";
|
|
4
4
|
export interface RetainerTabProps {
|
|
5
5
|
state: PaymentTermsState;
|
|
6
6
|
dispatch: (action: PaymentTermsAction) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retainer-tab.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/retainer-tab.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"retainer-tab.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/retainer-tab.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,yDAAyD,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAE9F,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,OAAO,mBAAmB,CAAC;CACrC;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,gBAAgB,2CA+RzE"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useCallback, useMemo } from "react";
|
|
3
|
-
import { TextInput, Select, Textarea, DatePicker,
|
|
4
|
-
import { toast } from "@powerhousedao/design-system";
|
|
5
|
-
import {} from "../../document-models/payment-terms/index.js";
|
|
3
|
+
import { TextInput, Select, Textarea, DatePicker, } from "@powerhousedao/document-engineering";
|
|
4
|
+
import { Button, toast } from "@powerhousedao/design-system";
|
|
6
5
|
export function RetainerTab({ state, dispatch, actions }) {
|
|
7
6
|
const [isEditing, setIsEditing] = useState(false);
|
|
8
7
|
const [formData, setFormData] = useState({
|
|
@@ -72,7 +71,7 @@ export function RetainerTab({ state, dispatch, actions }) {
|
|
|
72
71
|
setIsEditing(false);
|
|
73
72
|
}, [state.retainerDetails]);
|
|
74
73
|
if (!isEditing) {
|
|
75
|
-
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex justify-between items-center mb-4", children: [_jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Retainer Configuration" }), _jsx(Button, { onClick: () => setIsEditing(true), color: "light", size: "
|
|
74
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex justify-between items-center mb-4", children: [_jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Retainer Configuration" }), _jsx(Button, { onClick: () => setIsEditing(true), color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: state.retainerDetails
|
|
76
75
|
? "Edit Configuration"
|
|
77
76
|
: "Configure Retainer" })] }), state.retainerDetails ? (_jsxs("div", { className: "grid grid-cols-2 gap-6", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Retainer Amount" }), _jsx("p", { className: "text-lg dark:text-white", children: state.retainerDetails.retainerAmount
|
|
78
77
|
? `${state.retainerDetails.retainerAmount.value} ${state.retainerDetails.retainerAmount.unit}`
|
|
@@ -87,5 +86,5 @@ export function RetainerTab({ state, dispatch, actions }) {
|
|
|
87
86
|
}, name: "start-date", placeholder: "Select start date", required: true }), _jsx(DatePicker, { value: formData.endDate ? new Date(formData.endDate) : undefined, onChange: (e) => {
|
|
88
87
|
const date = e.target.value ? new Date(e.target.value) : null;
|
|
89
88
|
setFormData({ ...formData, endDate: date?.toISOString() || "" });
|
|
90
|
-
}, name: "end-date", placeholder: "Select end date (optional)" }), _jsx("div", { className: "col-span-2", children: _jsx(Textarea, { label: "Services Included *", value: formData.servicesIncluded, onChange: (e) => setFormData({ ...formData, servicesIncluded: e.target.value }), className: "w-full", rows: 4, placeholder: "Describe the services included in the retainer...", required: true }) }), _jsx("div", { className: "col-span-2", children: _jsxs("div", { className: "flex items-center", children: [_jsx("input", { type: "checkbox", id: "autoRenew", checked: formData.autoRenew, onChange: (e) => setFormData({ ...formData, autoRenew: e.target.checked }), className: "mr-2 h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded" }), _jsx("label", { htmlFor: "autoRenew", className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: "Auto-Renew Retainer" })] }) })] }), _jsxs("div", { className: "flex gap-3", children: [_jsx(Button, { type: "submit", color: "light", size: "
|
|
89
|
+
}, name: "end-date", placeholder: "Select end date (optional)" }), _jsx("div", { className: "col-span-2", children: _jsx(Textarea, { label: "Services Included *", value: formData.servicesIncluded, onChange: (e) => setFormData({ ...formData, servicesIncluded: e.target.value }), className: "w-full", rows: 4, placeholder: "Describe the services included in the retainer...", required: true }) }), _jsx("div", { className: "col-span-2", children: _jsxs("div", { className: "flex items-center", children: [_jsx("input", { type: "checkbox", id: "autoRenew", checked: formData.autoRenew, onChange: (e) => setFormData({ ...formData, autoRenew: e.target.checked }), className: "mr-2 h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded" }), _jsx("label", { htmlFor: "autoRenew", className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: "Auto-Renew Retainer" })] }) })] }), _jsxs("div", { className: "flex gap-3", children: [_jsx(Button, { type: "submit", color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: "Save Configuration" }), _jsx(Button, { type: "button", onClick: handleCancel, color: "light", size: "small", className: "cursor-pointer hover:bg-gray-600 hover:text-white", children: "Cancel" })] })] }));
|
|
91
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/request-for-proposals/editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/request-for-proposals/editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAiB1D,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AAYjC,MAAM,CAAC,OAAO,UAAU,MAAM,4CA2O7B"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { actions, } from "../../document-models/request-for-proposals/index.js";
|
|
3
3
|
import { DatePicker, Select, TextInput, NumberInput, } from "@powerhousedao/document-engineering";
|
|
4
4
|
import { toast, ToastContainer } from "@powerhousedao/design-system";
|
|
5
5
|
import { MarkdownEditor } from "./markdown-editor.js";
|
|
6
6
|
import { useSelectedRequestForProposalsDocument } from "../hooks/useRequestForProposalsDocument.js";
|
|
7
|
-
import { DocumentToolbar } from "@powerhousedao/design-system";
|
|
8
7
|
const statusOptions = [
|
|
9
8
|
{ label: "DRAFT", value: "DRAFT" },
|
|
10
9
|
{ label: "REQUEST_FOR_COMMMENTS", value: "REQUEST_FOR_COMMMENTS" },
|
|
@@ -27,55 +26,53 @@ export default function Editor() {
|
|
|
27
26
|
}
|
|
28
27
|
return true;
|
|
29
28
|
};
|
|
30
|
-
return (_jsxs(
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
return (_jsxs("div", { className: "w-full bg-gray-50", children: [_jsxs("div", { className: "p-6 max-w-4xl mx-auto min-h-screen", children: [_jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsx("h1", { className: "text-3xl font-bold text-gray-900 mb-2", children: "Request for Proposals" }) }), _jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsxs("div", { className: "flex flex-row gap-6", children: [_jsxs("div", { className: "flex-1", children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Code" }), _jsx(TextInput, { className: "w-full", defaultValue: state.code || "", onBlur: (e) => {
|
|
30
|
+
if (e.target.value !== state.code) {
|
|
31
|
+
dispatch(actions.editRfp({ code: e.target.value }));
|
|
32
|
+
}
|
|
33
|
+
}, placeholder: "Enter rfp code" })] }), _jsxs("div", { className: "flex-1", children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Title" }), _jsx(TextInput, { className: "w-full", defaultValue: state.title || "", onBlur: (e) => {
|
|
34
|
+
if (e.target.value !== state.title) {
|
|
35
|
+
dispatch(actions.editRfp({ title: e.target.value }));
|
|
36
|
+
}
|
|
37
|
+
}, placeholder: "Enter rfp title" })] }), _jsx("div", { className: "w-[150px]", children: _jsx(Select, { label: "Status", options: statusOptions, value: state.status, onChange: (value) => dispatch(actions.editRfp({ status: value })) }) })] }) }), _jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsx(MarkdownEditor, { height: 200, label: "Summary", value: state.summary ?? "", onChange: () => { }, onBlur: (value) => dispatch(actions.editRfp({ summary: value })) }) }), _jsxs("div", { className: "flex flex-row justify-between bg-white rounded-lg p-6 mb-6 shadow-sm", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Submission Deadline" }), _jsx("div", { className: "w-[250px]", children: _jsx(DatePicker, { value: state.deadline ? new Date(state.deadline) : undefined, onChange: (e) => {
|
|
38
|
+
const date = e.target.value ? new Date(e.target.value) : null;
|
|
39
|
+
dispatch(actions.editRfp({ deadline: date?.toISOString() }));
|
|
40
|
+
}, name: "submission-deadline", placeholder: "Select submission deadline" }) })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Budget Range" }), _jsxs("div", { className: "flex flex-row gap-2", children: [_jsx(NumberInput, { name: "minimum-budget", defaultValue: state.budgetRange?.min || undefined, onBlur: (e) => {
|
|
41
|
+
const newMin = Number(e.target.value);
|
|
42
|
+
if (newMin !== Number(state.budgetRange?.min)) {
|
|
43
|
+
// Validate before dispatching
|
|
44
|
+
if (validateBudgetRange(newMin, state.budgetRange?.max || null)) {
|
|
45
|
+
dispatch(actions.editRfp({
|
|
46
|
+
budgetRange: { min: newMin },
|
|
47
|
+
}));
|
|
33
48
|
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
|
|
49
|
+
}
|
|
50
|
+
}, placeholder: "Minimum budget", className: "w-[140px]" }), _jsx("span", { className: "text-gray-500", children: "-" }), _jsx(NumberInput, { name: "maximum-budget", defaultValue: state.budgetRange?.max || undefined, onBlur: (e) => {
|
|
51
|
+
const newMax = Number(e.target.value);
|
|
52
|
+
if (newMax !== Number(state.budgetRange?.max)) {
|
|
53
|
+
// Validate before dispatching
|
|
54
|
+
if (validateBudgetRange(state.budgetRange?.min || null, newMax)) {
|
|
55
|
+
dispatch(actions.editRfp({
|
|
56
|
+
budgetRange: { max: newMax },
|
|
57
|
+
}));
|
|
37
58
|
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (validateBudgetRange(state.budgetRange?.min || null, newMax)) {
|
|
58
|
-
dispatch(actions.editRfp({
|
|
59
|
-
budgetRange: { max: newMax },
|
|
60
|
-
}));
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}, placeholder: "Maximum budget", className: "w-[140px]" }), _jsx(Select, { placeholder: "Currency", options: [
|
|
64
|
-
"USD",
|
|
65
|
-
"EUR",
|
|
66
|
-
"GBP",
|
|
67
|
-
"JPY",
|
|
68
|
-
"CHF",
|
|
69
|
-
"CNY",
|
|
70
|
-
"DKK",
|
|
71
|
-
"USDC",
|
|
72
|
-
"USDS",
|
|
73
|
-
"DAI",
|
|
74
|
-
].map((currency) => ({ label: currency, value: currency })), value: state.budgetRange?.currency || "", onChange: (value) => {
|
|
75
|
-
if (value !== state.budgetRange?.currency) {
|
|
76
|
-
dispatch(actions.editRfp({
|
|
77
|
-
budgetRange: { currency: value },
|
|
78
|
-
}));
|
|
79
|
-
}
|
|
80
|
-
}, className: "w-[115px]" })] })] })] }), _jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsx(MarkdownEditor, { height: 200, label: "Eligibility Criteria", value: state.eligibilityCriteria ?? "", onChange: () => { }, onBlur: (value) => dispatch(actions.editRfp({ eligibilityCriteria: value })) }) }), _jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsx(MarkdownEditor, { height: 200, label: "Evaluation Criteria", value: state.evaluationCriteria ?? "", onChange: () => { }, onBlur: (value) => dispatch(actions.editRfp({ evaluationCriteria: value })) }) })] }), _jsx(ToastContainer, { position: "bottom-right", autoClose: 5000, hideProgressBar: false, newestOnTop: false, closeOnClick: true, rtl: false, pauseOnFocusLoss: true, draggable: true, pauseOnHover: true, theme: "light" })] })] }));
|
|
59
|
+
}
|
|
60
|
+
}, placeholder: "Maximum budget", className: "w-[140px]" }), _jsx(Select, { placeholder: "Currency", options: [
|
|
61
|
+
"USD",
|
|
62
|
+
"EUR",
|
|
63
|
+
"GBP",
|
|
64
|
+
"JPY",
|
|
65
|
+
"CHF",
|
|
66
|
+
"CNY",
|
|
67
|
+
"DKK",
|
|
68
|
+
"USDC",
|
|
69
|
+
"USDS",
|
|
70
|
+
"DAI",
|
|
71
|
+
].map((currency) => ({ label: currency, value: currency })), value: state.budgetRange?.currency || "", onChange: (value) => {
|
|
72
|
+
if (value !== state.budgetRange?.currency) {
|
|
73
|
+
dispatch(actions.editRfp({
|
|
74
|
+
budgetRange: { currency: value },
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
}, className: "w-[115px]" })] })] })] }), _jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsx(MarkdownEditor, { height: 200, label: "Eligibility Criteria", value: state.eligibilityCriteria ?? "", onChange: () => { }, onBlur: (value) => dispatch(actions.editRfp({ eligibilityCriteria: value })) }) }), _jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsx(MarkdownEditor, { height: 200, label: "Evaluation Criteria", value: state.evaluationCriteria ?? "", onChange: () => { }, onBlur: (value) => dispatch(actions.editRfp({ evaluationCriteria: value })) }) })] }), _jsx(ToastContainer, { position: "bottom-right", autoClose: 5000, hideProgressBar: false, newestOnTop: false, closeOnClick: true, rtl: false, pauseOnFocusLoss: true, draggable: true, pauseOnHover: true, theme: "light" })] }));
|
|
81
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../editors/request-for-proposals/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,eAAO,MAAM,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../editors/request-for-proposals/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,eAAO,MAAM,MAAM,EAAE,YASpB,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -4,7 +4,9 @@ export const module = {
|
|
|
4
4
|
documentTypes: ["powerhouse/rfp"],
|
|
5
5
|
config: {
|
|
6
6
|
id: "request-for-proposals-editor",
|
|
7
|
-
|
|
7
|
+
disableExternalControls: true,
|
|
8
|
+
documentToolbarEnabled: true,
|
|
9
|
+
showSwitchboardLink: true,
|
|
8
10
|
},
|
|
9
11
|
};
|
|
10
12
|
export default module;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/workstream/editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EAGZ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/workstream/editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AAqCxB,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AAsBjC,MAAM,CAAC,OAAO,UAAU,MAAM,4CA8xC7B"}
|