@voplus/morpho-csp 11.2.9 → 11.3.0-dev.0
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/es/components/LegalContactSelect/index.d.ts +7 -0
- package/es/components/LegalContactSelect/index.js +127 -12
- package/es/components/LegalContactSelect/index.js.map +1 -1
- package/es/data/clda-form/conversion.d.ts +9 -6
- package/es/data/clda-form/conversion.js +11 -18
- package/es/data/clda-form/conversion.js.map +1 -1
- package/es/data/clda-form/identityAdapter.d.ts +60 -0
- package/es/data/clda-form/identityAdapter.js +196 -0
- package/es/data/clda-form/identityAdapter.js.map +1 -0
- package/es/data/clda-form/interfaces.d.ts +20 -1
- package/es/data/clda-form/saveFormDraft.d.ts +4 -0
- package/es/data/clda-form/saveFormDraft.js +21 -0
- package/es/data/clda-form/saveFormDraft.js.map +1 -0
- package/es/data/clda-form/types.d.ts +31 -2
- package/es/modules/corporate/background-investigation/risk-profile/components/IdentityProperties/IdentityShapeFields.d.ts +35 -0
- package/es/modules/corporate/background-investigation/risk-profile/components/IdentityProperties/IdentityShapeFields.js +53 -0
- package/es/modules/corporate/background-investigation/risk-profile/components/IdentityProperties/IdentityShapeFields.js.map +1 -0
- package/es/modules/corporate/background-investigation/risk-profile/components/IdentityProperties/index.js +41 -15
- package/es/modules/corporate/background-investigation/risk-profile/components/IdentityProperties/index.js.map +1 -1
- package/es/modules/corporate/background-investigation/risk-profile/components/IdentityProperties/state.d.ts +59 -1
- package/es/modules/corporate/background-investigation/risk-profile/components/IdentityProperties/state.js +244 -15
- package/es/modules/corporate/background-investigation/risk-profile/components/IdentityProperties/state.js.map +1 -1
- package/es/modules/corporate/company/components/CorporateOfficerSelect/index.d.ts +5 -0
- package/es/modules/corporate/company/components/CorporateOfficerSelect/index.js +13 -7
- package/es/modules/corporate/company/components/CorporateOfficerSelect/index.js.map +1 -1
- package/es/modules/corporate/company/identity/components/NewLegalContactDialog/Step3.d.ts +2 -2
- package/es/modules/corporate/company/identity/components/NewLegalContactDialog/Step3.js +20 -24
- package/es/modules/corporate/company/identity/components/NewLegalContactDialog/Step3.js.map +1 -1
- package/es/modules/corporate/company/identity/components/NewLegalContactDialog/Step4.d.ts +2 -2
- package/es/modules/corporate/company/identity/components/NewLegalContactDialog/Step4.js +38 -11
- package/es/modules/corporate/company/identity/components/NewLegalContactDialog/Step4.js.map +1 -1
- package/es/modules/corporate/company/identity/components/NewLegalContactDialog/index.d.ts +3 -3
- package/es/modules/corporate/company/identity/components/NewLegalContactDialog/index.js.map +1 -1
- package/es/modules/corporate/company/identity/components/NewLegalContactDialog/state.d.ts +25 -4
- package/es/modules/corporate/company/identity/components/NewLegalContactDialog/state.js +88 -5
- package/es/modules/corporate/company/identity/components/NewLegalContactDialog/state.js.map +1 -1
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/DialogShell.d.ts +13 -0
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/DialogShell.js +20 -0
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/DialogShell.js.map +1 -0
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/Page1.js +28 -28
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/Page1.js.map +1 -1
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/Page2.js +3 -4
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/Page2.js.map +1 -1
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/Page3.js +16 -9
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/Page3.js.map +1 -1
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/Page4.d.ts +2 -2
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/Page4.js +128 -61
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/Page4.js.map +1 -1
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/Page5.d.ts +2 -2
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/Page5.js +119 -24
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/Page5.js.map +1 -1
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/index.d.ts +0 -1
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/index.js +16 -8
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/index.js.map +1 -1
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/state.d.ts +274 -23
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/state.js +560 -210
- package/es/modules/corporate/company/identity/components/SelectLegalContactDialog/state.js.map +1 -1
- package/es/modules/corporate/components/CorporateSelect/index.d.ts +12 -1
- package/es/modules/corporate/components/CorporateSelect/index.js +19 -5
- package/es/modules/corporate/components/CorporateSelect/index.js.map +1 -1
- package/es/modules/corporate/legal-generation/components/AppointOfficer/index.d.ts +6 -1
- package/es/modules/corporate/legal-generation/components/AppointOfficer/index.js +3 -2
- package/es/modules/corporate/legal-generation/components/AppointOfficer/index.js.map +1 -1
- package/es/modules/corporate/legal-generation/components/CorporateRepresentative/index.d.ts +6 -1
- package/es/modules/corporate/legal-generation/components/CorporateRepresentative/index.js +3 -2
- package/es/modules/corporate/legal-generation/components/CorporateRepresentative/index.js.map +1 -1
- package/es/modules/corporate/legal-generation/components/IssueShares/Fields.js +3 -3
- package/es/modules/corporate/legal-generation/components/IssueShares/Fields.js.map +1 -1
- package/es/modules/corporate/legal-generation/components/IssueShares/interface.d.ts +1 -1
- package/es/modules/corporate/legal-generation/components/PowerOfAttroney/Fields.d.ts +16 -1
- package/es/modules/corporate/legal-generation/components/PowerOfAttroney/Fields.js +27 -9
- package/es/modules/corporate/legal-generation/components/PowerOfAttroney/Fields.js.map +1 -1
- package/es/modules/corporate/legal-generation/components/PowerOfAttroney/interface.d.ts +5 -2
- package/es/modules/corporate/legal-generation/components/ResignationLetter/Fields.js +1 -1
- package/es/modules/corporate/legal-generation/components/ResignationLetter/Fields.js.map +1 -1
- package/es/modules/corporate/legal-generation/components/ShareTransfer/Fields.d.ts +13 -1
- package/es/modules/corporate/legal-generation/components/ShareTransfer/Fields.js +24 -6
- package/es/modules/corporate/legal-generation/components/ShareTransfer/Fields.js.map +1 -1
- package/es/modules/corporate/legal-generation/components/ShareTransfer/interface.d.ts +5 -2
- package/es/modules/corporate/legal-generation/components/SubmitButton/index.d.ts +11 -3
- package/es/modules/corporate/legal-generation/components/SubmitButton/index.js +9 -3
- package/es/modules/corporate/legal-generation/components/SubmitButton/index.js.map +1 -1
- package/es/modules/corporate/legal-generation/fields/AppointOfficerFields.d.ts +31 -2
- package/es/modules/corporate/legal-generation/fields/AppointOfficerFields.js +52 -37
- package/es/modules/corporate/legal-generation/fields/AppointOfficerFields.js.map +1 -1
- package/es/modules/corporate/legal-generation/fields/CorporateRepresentativeFields.d.ts +27 -2
- package/es/modules/corporate/legal-generation/fields/CorporateRepresentativeFields.js +78 -21
- package/es/modules/corporate/legal-generation/fields/CorporateRepresentativeFields.js.map +1 -1
- package/es/modules/corporate/legal-generation/fields/ParentCompanyDetailsFields.d.ts +17 -0
- package/es/modules/corporate/legal-generation/fields/ParentCompanyDetailsFields.js +36 -0
- package/es/modules/corporate/legal-generation/fields/ParentCompanyDetailsFields.js.map +1 -0
- package/es/modules/corporate/legal-generation/fields/renderCapturedIdentityColumn.d.ts +11 -0
- package/es/modules/corporate/legal-generation/fields/renderCapturedIdentityColumn.js +25 -0
- package/es/modules/corporate/legal-generation/fields/renderCapturedIdentityColumn.js.map +1 -0
- package/es/modules/corporate/legal-generation/fields/state/index.d.ts +7 -0
- package/es/modules/corporate/legal-generation/fields/state/index.js +5 -0
- package/es/modules/corporate/legal-generation/fields/state/index.js.map +1 -0
- package/es/modules/corporate/legal-generation/fields/state/types.d.ts +37 -0
- package/es/modules/corporate/legal-generation/fields/state/types.js +27 -0
- package/es/modules/corporate/legal-generation/fields/state/types.js.map +1 -0
- package/es/modules/corporate/legal-generation/fields/state/useCapturedIdentityField.d.ts +28 -0
- package/es/modules/corporate/legal-generation/fields/state/useCapturedIdentityField.js +45 -0
- package/es/modules/corporate/legal-generation/fields/state/useCapturedIdentityField.js.map +1 -0
- package/es/modules/corporate/legal-generation/fields/state/useIdentityShapeCapture.d.ts +31 -0
- package/es/modules/corporate/legal-generation/fields/state/useIdentityShapeCapture.js +47 -0
- package/es/modules/corporate/legal-generation/fields/state/useIdentityShapeCapture.js.map +1 -0
- package/es/modules/corporate/legal-generation/fields/state/useLegalGenerationIdentityCapture.d.ts +35 -0
- package/es/modules/corporate/legal-generation/fields/state/useLegalGenerationIdentityCapture.js +36 -0
- package/es/modules/corporate/legal-generation/fields/state/useLegalGenerationIdentityCapture.js.map +1 -0
- package/es/modules/corporate/legal-generation/fields/state/useOperateField.d.ts +15 -0
- package/es/modules/corporate/legal-generation/fields/state/useOperateField.js +27 -0
- package/es/modules/corporate/legal-generation/fields/state/useOperateField.js.map +1 -0
- package/es/modules/corporate/legal-generation/form/AppointOfficerForm.d.ts +18 -9
- package/es/modules/corporate/legal-generation/form/AppointOfficerForm.js +130 -28
- package/es/modules/corporate/legal-generation/form/AppointOfficerForm.js.map +1 -1
- package/es/modules/corporate/legal-generation/form/CorporateRepresentativeForm.d.ts +27 -17
- package/es/modules/corporate/legal-generation/form/CorporateRepresentativeForm.js +112 -24
- package/es/modules/corporate/legal-generation/form/CorporateRepresentativeForm.js.map +1 -1
- package/es/modules/corporate/legal-generation/form/legalGenerationSubmit.d.ts +637 -0
- package/es/modules/corporate/legal-generation/form/legalGenerationSubmit.js +840 -0
- package/es/modules/corporate/legal-generation/form/legalGenerationSubmit.js.map +1 -0
- package/es/modules/corporate/legal-generation/form/useLegalGenerationDocument.d.ts +23 -0
- package/es/modules/corporate/legal-generation/form/useLegalGenerationDocument.js +55 -0
- package/es/modules/corporate/legal-generation/form/useLegalGenerationDocument.js.map +1 -0
- package/es/modules/corporate/legal-generation/pages/CorporateLegalGeneration/index.js +38 -8
- package/es/modules/corporate/legal-generation/pages/CorporateLegalGeneration/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/components/CLDAContactList/index.js +50 -33
- package/es/modules/self-registration/clda-form/components/CLDAContactList/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/components/ContactFields/index.d.ts +5 -2
- package/es/modules/self-registration/clda-form/components/ContactFields/index.js +6 -3
- package/es/modules/self-registration/clda-form/components/ContactFields/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/components/DataProtectionOfficer/NewDPODialog/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/components/DataProtectionOfficer/NewDPODialog/index.js +7 -18
- package/es/modules/self-registration/clda-form/components/DataProtectionOfficer/NewDPODialog/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/components/NewDirectorDialog/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/components/NewDirectorDialog/index.js +7 -18
- package/es/modules/self-registration/clda-form/components/NewDirectorDialog/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/components/NewSecretaryDialog/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/components/NewSecretaryDialog/index.js +7 -18
- package/es/modules/self-registration/clda-form/components/NewSecretaryDialog/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/components/NewShareholderDialog/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/components/NewShareholderDialog/index.js +7 -18
- package/es/modules/self-registration/clda-form/components/NewShareholderDialog/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/components/useContactEditSession.d.ts +35 -0
- package/es/modules/self-registration/clda-form/components/useContactEditSession.js +51 -0
- package/es/modules/self-registration/clda-form/components/useContactEditSession.js.map +1 -0
- package/es/modules/self-registration/clda-form/incorporation/appoint-representative/components/NewOfficerDetailItem/index.d.ts +2 -3
- package/es/modules/self-registration/clda-form/incorporation/appoint-representative/components/NewOfficerDetailItem/index.js +60 -12
- package/es/modules/self-registration/clda-form/incorporation/appoint-representative/components/NewOfficerDetailItem/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/appoint-representative/components/NewOfficerDetailList/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/incorporation/appoint-representative/components/NewOfficerDetailList/index.js +3 -5
- package/es/modules/self-registration/clda-form/incorporation/appoint-representative/components/NewOfficerDetailList/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/appoint-representative/index.js +7 -21
- package/es/modules/self-registration/clda-form/incorporation/appoint-representative/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/CompanyGeneralForm.js +6 -5
- package/es/modules/self-registration/clda-form/incorporation/company-general/CompanyGeneralForm.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddAllotmentDialog/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddAllotmentDialog/index.js +23 -28
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddAllotmentDialog/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddBankOpeningDialog/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddBankOpeningDialog/index.js +11 -24
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddBankOpeningDialog/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddDivideDialog/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddDivideDialog/index.js +13 -8
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddDivideDialog/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddOfficerDialog/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddOfficerDialog/index.js +11 -24
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddOfficerDialog/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddRedonminationDialog/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddRedonminationDialog/index.js +18 -9
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddRedonminationDialog/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddRemoveOfficerDialog/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddRemoveOfficerDialog/index.js +11 -24
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddRemoveOfficerDialog/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddTransferDialog/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddTransferDialog/index.js +23 -28
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AddTransferDialog/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AllotmentItem/index.d.ts +2 -3
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AllotmentItem/index.js +81 -14
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AllotmentItem/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AllotmentList/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AllotmentList/index.js +11 -15
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/AllotmentList/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/BankOpeningContactItem/index.d.ts +2 -3
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/BankOpeningContactItem/index.js +34 -5
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/BankOpeningContactItem/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/BankOpeningList/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/BankOpeningList/index.js +4 -5
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/BankOpeningList/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/CapitalReceiptSelect/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/CapitalReceiptSelect/index.js +5 -4
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/CapitalReceiptSelect/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/OfficerDetailItem/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/OfficerDetailItem/index.js +32 -12
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/OfficerDetailItem/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/TransferItem/index.d.ts +2 -3
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/TransferItem/index.js +80 -13
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/TransferItem/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/TransferList/index.d.ts +1 -2
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/TransferList/index.js +7 -9
- package/es/modules/self-registration/clda-form/incorporation/company-general/components/TransferList/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/incorporation/components/FormContactEditor/index.d.ts +3 -0
- package/es/modules/self-registration/clda-form/incorporation/components/FormContactEditor/index.js +4 -2
- package/es/modules/self-registration/clda-form/incorporation/components/FormContactEditor/index.js.map +1 -1
- package/es/modules/self-registration/clda-form/pages/CLDAFormDefaultView/Content.js +16 -1
- package/es/modules/self-registration/clda-form/pages/CLDAFormDefaultView/Content.js.map +1 -1
- package/es/routes.d.ts +1 -1
- package/es/routes.js +4 -2
- package/es/routes.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { CapturedShapeFieldValues } from "@voplus/morpho-compliance/es/components/CapturedShapeFields";
|
|
2
|
+
import type { IIdentityShape } from "@voplus/morpho-compliance/es/data/identityShape";
|
|
3
|
+
import type { IIdentityShapeSnapshot } from "./types";
|
|
4
|
+
/** The captured-shape state of a manual-entry block, plus its capture/clear transitions. */
|
|
5
|
+
export interface IdentityShapeCapture {
|
|
6
|
+
/** The shape being captured, or undefined while the picker is still on screen. */
|
|
7
|
+
shape?: IIdentityShape;
|
|
8
|
+
/** The identity values captured under `shape`'s policies. */
|
|
9
|
+
values: CapturedShapeFieldValues;
|
|
10
|
+
/** Freeze `next` as the identity's captured shape, dropping the values it no longer captures. */
|
|
11
|
+
capture: (next: IIdentityShape) => void;
|
|
12
|
+
/** Record one captured field's value. */
|
|
13
|
+
setValue: (field: keyof CapturedShapeFieldValues, value?: string) => void;
|
|
14
|
+
/** Return to the picker, discarding the capture. */
|
|
15
|
+
clear: () => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Owns the captured-shape half of a manual-entry block's state. The captured shape is the
|
|
19
|
+
* whole `IIdentityShape` — its `name`, `family`, `subject` and per-field `policies` are frozen
|
|
20
|
+
* with it, so the block can both show what was captured and keep rendering the policy-driven
|
|
21
|
+
* fields after the shape leaves the tenant's catalog (spec:3712/3713).
|
|
22
|
+
*
|
|
23
|
+
* `initialShape`/`initialValues` are how a reopened document restores the exact snapshot this
|
|
24
|
+
* block wrote: the capture is held whole rather than by id, so re-opening never re-resolves the
|
|
25
|
+
* shared catalog and a later edit or deletion of the source shape cannot change what renders.
|
|
26
|
+
*
|
|
27
|
+
* @param initialShape the identity's already-captured shape, when re-opening a saved document.
|
|
28
|
+
* @param initialValues the values captured alongside it.
|
|
29
|
+
* @returns the captured shape and values plus their capture/setValue/clear transitions.
|
|
30
|
+
*/
|
|
31
|
+
export declare function useIdentityShapeCapture(initialShape?: IIdentityShapeSnapshot, initialValues?: CapturedShapeFieldValues): IdentityShapeCapture;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { useCallback, useState } from "react";
|
|
2
|
+
import { clearHiddenFields } from "@voplus/morpho-compliance/es/components/CapturedShapeFields";
|
|
3
|
+
import { freezeIdentityShape } from "./types";
|
|
4
|
+
// spec:3848 — CSP form identities retain their selected shape snapshot
|
|
5
|
+
/**
|
|
6
|
+
* Owns the captured-shape half of a manual-entry block's state. The captured shape is the
|
|
7
|
+
* whole `IIdentityShape` — its `name`, `family`, `subject` and per-field `policies` are frozen
|
|
8
|
+
* with it, so the block can both show what was captured and keep rendering the policy-driven
|
|
9
|
+
* fields after the shape leaves the tenant's catalog (spec:3712/3713).
|
|
10
|
+
*
|
|
11
|
+
* `initialShape`/`initialValues` are how a reopened document restores the exact snapshot this
|
|
12
|
+
* block wrote: the capture is held whole rather than by id, so re-opening never re-resolves the
|
|
13
|
+
* shared catalog and a later edit or deletion of the source shape cannot change what renders.
|
|
14
|
+
*
|
|
15
|
+
* @param initialShape the identity's already-captured shape, when re-opening a saved document.
|
|
16
|
+
* @param initialValues the values captured alongside it.
|
|
17
|
+
* @returns the captured shape and values plus their capture/setValue/clear transitions.
|
|
18
|
+
*/
|
|
19
|
+
export function useIdentityShapeCapture(initialShape, initialValues) {
|
|
20
|
+
// A reopened document restores a copy, never the catalog's own object: the capture has to stay
|
|
21
|
+
// byte-identical to what was saved even if the catalog later mutates its entry (spec:3848).
|
|
22
|
+
const [baseline] = useState(() => (initialShape ? freezeIdentityShape(initialShape) : undefined));
|
|
23
|
+
const [shape, setShape] = useState(() => initialShape ? freezeIdentityShape(initialShape) : undefined);
|
|
24
|
+
const [values, setValues] = useState(initialValues ?? {});
|
|
25
|
+
// spec:3713 — a replacement shape drops the values of every field it no longer captures,
|
|
26
|
+
// so a hidden alias/issuing country/expiry date can never survive into the payload.
|
|
27
|
+
// The replacement itself is also frozen, so the capture carries the whole shape rather than a
|
|
28
|
+
// reference into the tenant's live catalog.
|
|
29
|
+
const capture = useCallback((next) => {
|
|
30
|
+
const frozen = next.source === baseline?.source
|
|
31
|
+
? freezeIdentityShape(baseline)
|
|
32
|
+
: freezeIdentityShape(next);
|
|
33
|
+
setShape(frozen);
|
|
34
|
+
setValues((current) => clearHiddenFields(frozen, current));
|
|
35
|
+
}, [baseline]);
|
|
36
|
+
/** Record one captured field's value. */
|
|
37
|
+
const setValue = useCallback((field, value) => {
|
|
38
|
+
setValues((current) => ({ ...current, [field]: value }));
|
|
39
|
+
}, []);
|
|
40
|
+
/** Return to the picker, discarding the capture. */
|
|
41
|
+
const clear = useCallback(() => {
|
|
42
|
+
setShape(undefined);
|
|
43
|
+
setValues({});
|
|
44
|
+
}, []);
|
|
45
|
+
return { shape, values, capture, setValue, clear };
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=useIdentityShapeCapture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIdentityShapeCapture.js","sourceRoot":"","sources":["../../../../../../src/modules/corporate/legal-generation/fields/state/useIdentityShapeCapture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6DAA6D,CAAC;AAKhG,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAgB9C,uEAAuE;AACvE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,uBAAuB,CACtC,YAAqC,EACrC,aAAwC;IAExC,+FAA+F;IAC/F,4FAA4F;IAC5F,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAClG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAA6B,GAAG,EAAE,CACnE,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAC5D,CAAC;IACF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA2B,aAAa,IAAI,EAAE,CAAC,CAAC;IAEpF,yFAAyF;IACzF,oFAAoF;IACpF,8FAA8F;IAC9F,4CAA4C;IAC5C,MAAM,OAAO,GAAG,WAAW,CAC1B,CAAC,IAAoB,EAAE,EAAE;QACxB,MAAM,MAAM,GACX,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,MAAM;YAC/B,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC;YAC/B,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC9B,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjB,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC,EACD,CAAC,QAAQ,CAAC,CACV,CAAC;IAEF,yCAAyC;IACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,KAAqC,EAAE,KAAc,EAAE,EAAE;QACtF,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,oDAAoD;IACpD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,SAAS,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACpD,CAAC"}
|
package/es/modules/corporate/legal-generation/fields/state/useLegalGenerationIdentityCapture.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { CapturedShapeFieldsProps, CapturedShapeFieldValues } from "@voplus/morpho-compliance/es/components/CapturedShapeFields";
|
|
2
|
+
import type { IIdentityCapture } from "./types";
|
|
3
|
+
import type { IdentityShapeCapture } from "./useIdentityShapeCapture";
|
|
4
|
+
/** Initial capture and current validation messages supplied by a legal-generation field block. */
|
|
5
|
+
export interface LegalGenerationIdentityCaptureOptions {
|
|
6
|
+
/** Saved identity takes precedence when reopening an existing document. */
|
|
7
|
+
identity?: IIdentityCapture;
|
|
8
|
+
/** Unsaved capture seeds the fields when no saved identity is supplied. */
|
|
9
|
+
draft?: IIdentityCapture;
|
|
10
|
+
/** Current captured-field errors passed through to the pure column renderer. */
|
|
11
|
+
identityFieldErrors?: CapturedShapeFieldsProps["fieldErrors"];
|
|
12
|
+
}
|
|
13
|
+
/** Capture state, parent-form snapshot and policy inputs used in the caller's current render. */
|
|
14
|
+
export interface LegalGenerationIdentityCapture extends IdentityShapeCapture {
|
|
15
|
+
/** Memoized complete capture mirrored to the nearest parent Form. */
|
|
16
|
+
snapshot?: IIdentityCapture;
|
|
17
|
+
/** Read a captured policy, defaulting to omitted before a shape is picked. */
|
|
18
|
+
policyFor: (field: keyof CapturedShapeFieldValues) => "omitted" | "available" | "mandatory";
|
|
19
|
+
/** Whether the captured policy shows the field in this render. */
|
|
20
|
+
isVisible: (field: keyof CapturedShapeFieldValues) => boolean;
|
|
21
|
+
/** Current snapshot, error and edit inputs for the pure column renderer. */
|
|
22
|
+
capturedFields: CapturedShapeFieldsProps;
|
|
23
|
+
/** Whether the caller's name row includes its existing alias column. */
|
|
24
|
+
aliasVisible: boolean;
|
|
25
|
+
/** Visible document attributes; callers retain their row grouping and widths. */
|
|
26
|
+
documentFields: ("issuingCountry" | "expiryDate")[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Compose the existing initial-only capture lifecycle and parent Form mirroring at the caller's
|
|
30
|
+
* unconditional hook position. Saved shape/value restoration, frozen A baseline and callback
|
|
31
|
+
* ownership remain in the underlying hooks; policy and renderer inputs stay in this render.
|
|
32
|
+
* @param options - Saved capture, fallback draft and current field errors.
|
|
33
|
+
* @returns Capture transitions and current inputs for the caller's existing picker and layout.
|
|
34
|
+
*/
|
|
35
|
+
export declare function useLegalGenerationIdentityCapture({ identity, draft, identityFieldErrors, }: LegalGenerationIdentityCaptureOptions): LegalGenerationIdentityCapture;
|
package/es/modules/corporate/legal-generation/fields/state/useLegalGenerationIdentityCapture.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
import { useCapturedIdentityField } from "./useCapturedIdentityField";
|
|
3
|
+
import { useIdentityShapeCapture } from "./useIdentityShapeCapture";
|
|
4
|
+
/**
|
|
5
|
+
* Compose the existing initial-only capture lifecycle and parent Form mirroring at the caller's
|
|
6
|
+
* unconditional hook position. Saved shape/value restoration, frozen A baseline and callback
|
|
7
|
+
* ownership remain in the underlying hooks; policy and renderer inputs stay in this render.
|
|
8
|
+
* @param options - Saved capture, fallback draft and current field errors.
|
|
9
|
+
* @returns Capture transitions and current inputs for the caller's existing picker and layout.
|
|
10
|
+
*/
|
|
11
|
+
// spec:1929 — CSP: 手动分支按已采集形状的策略显示身份字段。
|
|
12
|
+
// spec:3848 — CSP: 保留冻结身份快照并持续镜像到父表单。
|
|
13
|
+
export function useLegalGenerationIdentityCapture({ identity, draft, identityFieldErrors, }) {
|
|
14
|
+
const restored = identity ?? draft;
|
|
15
|
+
const current = useIdentityShapeCapture(restored?.shape, restored?.values);
|
|
16
|
+
const { shape, values, setValue } = current;
|
|
17
|
+
const snapshot = useMemo(() => (shape ? { shape, values } : undefined), [shape, values]);
|
|
18
|
+
useCapturedIdentityField(snapshot);
|
|
19
|
+
/** An empty picker omits all fields until a shape is captured. */
|
|
20
|
+
const policyFor = (field) => shape?.policies[field] ?? "omitted";
|
|
21
|
+
/** Preserve the policy reads in the caller's current React render. */
|
|
22
|
+
const isVisible = (field) => policyFor(field) !== "omitted";
|
|
23
|
+
const capturedFields = { shape, values, fieldErrors: identityFieldErrors, onChange: setValue };
|
|
24
|
+
const aliasVisible = isVisible("alias");
|
|
25
|
+
const documentFields = ["issuingCountry", "expiryDate"].filter(isVisible);
|
|
26
|
+
return {
|
|
27
|
+
...current,
|
|
28
|
+
snapshot,
|
|
29
|
+
policyFor,
|
|
30
|
+
isVisible,
|
|
31
|
+
capturedFields,
|
|
32
|
+
aliasVisible,
|
|
33
|
+
documentFields,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=useLegalGenerationIdentityCapture.js.map
|
package/es/modules/corporate/legal-generation/fields/state/useLegalGenerationIdentityCapture.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLegalGenerationIdentityCapture.js","sourceRoot":"","sources":["../../../../../../src/modules/corporate/legal-generation/fields/state/useLegalGenerationIdentityCapture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAOhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AA6BpE;;;;;;GAMG;AACH,wCAAwC;AACxC,sCAAsC;AACtC,MAAM,UAAU,iCAAiC,CAAC,EACjD,QAAQ,EACR,KAAK,EACL,mBAAmB,GACoB;IACvC,MAAM,QAAQ,GAAG,QAAQ,IAAI,KAAK,CAAC;IACnC,MAAM,OAAO,GAAG,uBAAuB,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3E,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAC7C,CAAC,KAAK,EAAE,MAAM,CAAC,CACf,CAAC;IACF,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAEnC,kEAAkE;IAClE,MAAM,SAAS,GAAG,CACjB,KAAqC,EACG,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;IAChF,sEAAsE;IACtE,MAAM,SAAS,GAAG,CAAC,KAAqC,EAAW,EAAE,CACpE,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;IAChC,MAAM,cAAc,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC/F,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,cAAc,GAAI,CAAC,gBAAgB,EAAE,YAAY,CAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAErF,OAAO;QACN,GAAG,OAAO;QACV,QAAQ;QACR,SAAS;QACT,SAAS;QACT,cAAc;QACd,YAAY;QACZ,cAAc;KACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** The parent form field each manual-entry block reports the mode it is rendering under. */
|
|
2
|
+
export declare const OPERATE_FIELD_NAME = "Operate";
|
|
3
|
+
/**
|
|
4
|
+
* Mirrors a manual-entry block's mode onto the parent form's `Operate` value, so the branch the user
|
|
5
|
+
* actually picked is the branch the submitting form composes.
|
|
6
|
+
*
|
|
7
|
+
* The mode is the block's own local state — its radio is a plain controlled group rather than a
|
|
8
|
+
* named field (see the block) — while `onFinish` is handed only REGISTERED form fields. Left on the
|
|
9
|
+
* block alone, `Operate` reaches `onFinish` as `undefined`, so every submit composes the manual
|
|
10
|
+
* branch and the selected entity's id is never sent (spec:1930). The submitting form registers this
|
|
11
|
+
* name as a hidden field.
|
|
12
|
+
*
|
|
13
|
+
* @param mode the branch the block is rendering: `Search` for select-existing, `Create` for manual.
|
|
14
|
+
*/
|
|
15
|
+
export declare function useOperateField(mode: "Search" | "Create"): void;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Form } from "antd";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
/** The parent form field each manual-entry block reports the mode it is rendering under. */
|
|
4
|
+
export const OPERATE_FIELD_NAME = "Operate";
|
|
5
|
+
// spec:1929 — CSP: 需要指定人员的表单提供“选择已有”与“手动录入”两种单选模式
|
|
6
|
+
// spec:1930 — CSP: 使用“Select existing”模式时,表单发送所选实体的 id;手动模式发送用户键入的字段
|
|
7
|
+
/**
|
|
8
|
+
* Mirrors a manual-entry block's mode onto the parent form's `Operate` value, so the branch the user
|
|
9
|
+
* actually picked is the branch the submitting form composes.
|
|
10
|
+
*
|
|
11
|
+
* The mode is the block's own local state — its radio is a plain controlled group rather than a
|
|
12
|
+
* named field (see the block) — while `onFinish` is handed only REGISTERED form fields. Left on the
|
|
13
|
+
* block alone, `Operate` reaches `onFinish` as `undefined`, so every submit composes the manual
|
|
14
|
+
* branch and the selected entity's id is never sent (spec:1930). The submitting form registers this
|
|
15
|
+
* name as a hidden field.
|
|
16
|
+
*
|
|
17
|
+
* @param mode the branch the block is rendering: `Search` for select-existing, `Create` for manual.
|
|
18
|
+
*/
|
|
19
|
+
export function useOperateField(mode) {
|
|
20
|
+
const form = Form.useFormInstance();
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (form.getFieldValue(OPERATE_FIELD_NAME) !== mode) {
|
|
23
|
+
form.setFieldValue(OPERATE_FIELD_NAME, mode);
|
|
24
|
+
}
|
|
25
|
+
}, [form, mode]);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=useOperateField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOperateField.js","sourceRoot":"","sources":["../../../../../../src/modules/corporate/legal-generation/fields/state/useOperateField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,4FAA4F;AAC5F,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C,kDAAkD;AAClD,qEAAqE;AACrE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,IAAyB;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAEpC,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC;YACrD,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { IAddress } from "@voplus/morpho-ui/es/data";
|
|
2
2
|
import React from "react";
|
|
3
|
+
import type { IIdentityCapture } from "../fields/state";
|
|
4
|
+
import type { ILegalGenerationCompany, ILegalGenerationReopened } from "./legalGenerationSubmit";
|
|
3
5
|
export interface IAppointOfficerValues {
|
|
4
|
-
/**
|
|
5
|
-
Company
|
|
6
|
-
Id: string;
|
|
7
|
-
Name: string;
|
|
8
|
-
};
|
|
6
|
+
/** The company the document is composed for: the picker's corporate, or a restored pair. */
|
|
7
|
+
Company?: ILegalGenerationCompany;
|
|
9
8
|
/** */
|
|
10
9
|
DocumentDate: string;
|
|
11
10
|
/** */
|
|
@@ -18,14 +17,24 @@ export interface IAppointOfficerValues {
|
|
|
18
17
|
Email?: string;
|
|
19
18
|
/** */
|
|
20
19
|
Contact?: string;
|
|
21
|
-
/** */
|
|
22
|
-
|
|
20
|
+
/** 手动模式所选身份形状的 source 编号(spec:1929)。 */
|
|
21
|
+
IdentityShape?: number;
|
|
23
22
|
/** */
|
|
24
23
|
IdentityNumber?: string | number;
|
|
25
24
|
/** */
|
|
26
|
-
|
|
25
|
+
FullName?: string;
|
|
27
26
|
/** */
|
|
28
27
|
Country?: string;
|
|
28
|
+
/** */
|
|
29
|
+
Address?: IAddress;
|
|
30
|
+
/** 手动模式采集的完整身份快照:冻结的形状及其字段策略下录入的值(spec:3848)。 */
|
|
31
|
+
Identity?: IIdentityCapture;
|
|
32
|
+
}
|
|
33
|
+
/** Host seed for reopening a saved gallery appointment form. */
|
|
34
|
+
export interface IAppointOfficerFormProps {
|
|
35
|
+
/** The persisted document the form was reopened on, when the gallery opened one (spec:3848). */
|
|
36
|
+
reopened?: ILegalGenerationReopened;
|
|
29
37
|
}
|
|
30
|
-
|
|
38
|
+
/** Compose the appointment branch and keep the returned capture for a same-form retry. */
|
|
39
|
+
declare const AppointOfficerForm: (props: IAppointOfficerFormProps) => React.JSX.Element;
|
|
31
40
|
export default AppointOfficerForm;
|
|
@@ -1,47 +1,149 @@
|
|
|
1
1
|
import { AppointOfficerFields } from "../fields";
|
|
2
|
-
import {
|
|
2
|
+
import { EMPTY_ADDRESS } from "../fields/AppointOfficerFields";
|
|
3
|
+
import { Form, message } from "antd";
|
|
3
4
|
import React from "react";
|
|
4
5
|
import { SubmitButton } from "../components";
|
|
5
6
|
import dayjs from "dayjs";
|
|
6
7
|
import { useIdentityStore } from "../../../../data/identity";
|
|
7
|
-
|
|
8
|
+
import { useApplicationContext } from "@voplus/morpho-data";
|
|
9
|
+
import { IDENTITY_FIELD_NAME, IDENTITY_SHAPE_FIELD_NAME, OPERATE_FIELD_NAME, } from "../fields/state";
|
|
10
|
+
import { saveLegalGeneration, SUPPORTED_OFFICER_POSITIONS, isSupportedOfficerPosition, validateLegalGenerationCapture, submitLegalGeneration, toReopenedLegalGeneration, } from "./legalGenerationSubmit";
|
|
11
|
+
/** The legal-generation document this wrapper form is composed for. */
|
|
12
|
+
const DOCUMENT_NAME = "Appoint Officer";
|
|
13
|
+
/** Compose the appointment branch and keep the returned capture for a same-form retry. */
|
|
14
|
+
const AppointOfficerForm = (props) => {
|
|
15
|
+
const [reopened, setReopened] = React.useState(props.reopened);
|
|
16
|
+
const [revision, setRevision] = React.useState(0);
|
|
17
|
+
const savedRef = React.useRef(props.reopened);
|
|
18
|
+
const inFlight = React.useRef(false);
|
|
19
|
+
const [pending, setPending] = React.useState(false);
|
|
20
|
+
const [identityFieldErrors, setIdentityFieldErrors] = React.useState({});
|
|
8
21
|
const identityStore = useIdentityStore();
|
|
9
|
-
|
|
10
|
-
|
|
22
|
+
const application = useApplicationContext();
|
|
23
|
+
return (React.createElement(Form, { key: revision, layout: "vertical", disabled: pending, onFinish: onFinish, initialValues: {
|
|
24
|
+
// The company has no default: the submit endpoint requires a real corporate id, so an
|
|
25
|
+
// unpicked control has to read as empty for its required rule to report it.
|
|
26
|
+
Company: undefined,
|
|
11
27
|
DocumentDate: "",
|
|
12
28
|
EffectiveDate: "",
|
|
13
29
|
Officer: { id: "", name: "" },
|
|
14
30
|
OfficerType: "",
|
|
15
31
|
Email: "",
|
|
16
32
|
Contact: "",
|
|
17
|
-
|
|
33
|
+
IdentityShape: undefined,
|
|
18
34
|
IdentityNumber: "",
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
line2: "",
|
|
22
|
-
city: "",
|
|
23
|
-
state: "",
|
|
24
|
-
postalCode: "",
|
|
25
|
-
country: "",
|
|
26
|
-
},
|
|
35
|
+
FullName: "",
|
|
36
|
+
Country: "",
|
|
27
37
|
Operate: "Search",
|
|
38
|
+
// Reopening a saved document seeds the fields the persisted content carries; the
|
|
39
|
+
// capture itself travels on the block's `identity` prop below (spec:3848).
|
|
40
|
+
...reopened?.values,
|
|
41
|
+
// A restored undefined/null address must not override the eager Address control's full value.
|
|
42
|
+
Address: { ...EMPTY_ADDRESS, ...(reopened?.values.Address ?? {}) },
|
|
28
43
|
} },
|
|
29
|
-
React.createElement(AppointOfficerFields,
|
|
30
|
-
React.createElement(
|
|
44
|
+
React.createElement(AppointOfficerFields, { companyDisabled: !!reopened, identityFieldErrors: identityFieldErrors, identity: reopened?.identity, mode: reopened ? (reopened.mode === "manual" ? "Create" : "Search") : undefined }),
|
|
45
|
+
React.createElement(Form.Item, { name: OPERATE_FIELD_NAME, noStyle: true, hidden: true }),
|
|
46
|
+
React.createElement(Form.Item, { name: IDENTITY_FIELD_NAME, noStyle: true, hidden: true }),
|
|
47
|
+
React.createElement(Form.Item, { name: IDENTITY_SHAPE_FIELD_NAME, noStyle: true, hidden: true }),
|
|
48
|
+
React.createElement(SubmitButton, { pending: pending })));
|
|
31
49
|
// spec:1928 — CSP: On submit, document-date and effective-date fields are normalised to YYYY-MM-DD before being sent
|
|
32
|
-
// spec:1930 — CSP:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
50
|
+
// spec:1930 — CSP: 使用“Select existing”模式时,表单发送所选实体的 id;手动模式发送用户键入的字段
|
|
51
|
+
// spec:3848 — CSP form identities retain their selected shape snapshot
|
|
52
|
+
// spec:3850 — CSP: 法律文书生成表单提交时把组合后的载荷送交转换
|
|
53
|
+
/**
|
|
54
|
+
* Composes the branch the user submitted and hands it to the conversion (spec:1930, spec:3850):
|
|
55
|
+
* `Search` carries the picked officer's id and drops every typed field, `Create` carries the typed
|
|
56
|
+
* person fields plus the complete captured snapshot and no id. A refused handoff surfaces its
|
|
57
|
+
* message and leaves the form and its values untouched, ready for a correction and a retry.
|
|
58
|
+
*
|
|
59
|
+
* A form reopened on a persisted document is *saved* instead of submitted (spec:3848): the submit
|
|
60
|
+
* endpoint always creates a new document, so resubmitting would duplicate the one the user opened,
|
|
61
|
+
* while the same-id save resolves the current mode and selection on the server and regenerates
|
|
62
|
+
* the existing ZIP. A successful returned capture seeds the next edit session.
|
|
63
|
+
*/
|
|
64
|
+
async function onFinish(values) {
|
|
65
|
+
if (inFlight.current)
|
|
66
|
+
return;
|
|
67
|
+
// spec:1930 — A selected officer keeps its exact picker id and supported saved position.
|
|
68
|
+
// spec:3850 — Reject unsupported configured-template positions before persistence starts.
|
|
69
|
+
const restoredOfficer = savedRef.current?.values.Officer;
|
|
70
|
+
const officerPosition = values.Operate === "Search"
|
|
71
|
+
? values.Officer?.position ??
|
|
72
|
+
(values.Officer?.id === restoredOfficer?.id
|
|
73
|
+
? savedRef.current?.values.OfficerType
|
|
74
|
+
: undefined)
|
|
75
|
+
: values.OfficerType;
|
|
76
|
+
const hasChosenPosition = values.Operate === "Search" ? !!values.Officer?.id : !!values.OfficerType;
|
|
77
|
+
if (hasChosenPosition && !isSupportedOfficerPosition(officerPosition)) {
|
|
78
|
+
message.error(`Only ${SUPPORTED_OFFICER_POSITIONS.join(" and ")} appointments are supported.`);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const errors = values.Operate === "Create" ? validateLegalGenerationCapture(values.Identity) : {};
|
|
82
|
+
setIdentityFieldErrors(errors);
|
|
83
|
+
if (Object.keys(errors).length)
|
|
84
|
+
return;
|
|
85
|
+
inFlight.current = true;
|
|
86
|
+
setPending(true);
|
|
87
|
+
try {
|
|
88
|
+
const { Company, DocumentDate, EffectiveDate, Officer, Operate } = values;
|
|
89
|
+
const branch = Operate === "Search"
|
|
90
|
+
? // Select-existing: exactly the picked officer's id, no typed person field (spec:1930).
|
|
91
|
+
{ OfficerId: Officer?.id }
|
|
92
|
+
: {
|
|
93
|
+
// Manual: the typed person fields plus the complete captured snapshot — the
|
|
94
|
+
// frozen shape and the values captured under its policies (spec:1930, spec:3848).
|
|
95
|
+
FullName: values.FullName,
|
|
96
|
+
Country: values.Country,
|
|
97
|
+
OfficerType: values.OfficerType,
|
|
98
|
+
Email: values.Email,
|
|
99
|
+
Contact: values.Contact,
|
|
100
|
+
IdentityShape: values.IdentityShape,
|
|
101
|
+
IdentityNumber: values.IdentityNumber,
|
|
102
|
+
Address: values.Address,
|
|
103
|
+
Identity: values.Identity,
|
|
104
|
+
};
|
|
105
|
+
const submission = {
|
|
106
|
+
documentName: DOCUMENT_NAME,
|
|
107
|
+
mode: Operate === "Search" ? "select-existing" : "manual",
|
|
108
|
+
branch,
|
|
109
|
+
company: Company,
|
|
110
|
+
documentDate: DocumentDate ? dayjs(DocumentDate).format("YYYY-MM-DD") : "",
|
|
111
|
+
effectiveDate: EffectiveDate ? dayjs(EffectiveDate).format("YYYY-MM-DD") : "",
|
|
112
|
+
};
|
|
113
|
+
const outcome = savedRef.current
|
|
114
|
+
? await saveLegalGeneration({
|
|
115
|
+
endpoint: application.api.currentEndPoint,
|
|
116
|
+
accessToken: application.user.info.accessToken,
|
|
117
|
+
id: savedRef.current.id,
|
|
118
|
+
submission,
|
|
119
|
+
})
|
|
120
|
+
: await submitLegalGeneration({
|
|
121
|
+
endpoint: application.api.currentEndPoint,
|
|
122
|
+
accessToken: application.user.info.accessToken,
|
|
123
|
+
submission,
|
|
124
|
+
});
|
|
125
|
+
// The returned server content becomes the next edit session and saved id; a failure leaves
|
|
126
|
+
// the controls and frozen capture mounted with every entered value intact.
|
|
127
|
+
if (outcome.result) {
|
|
128
|
+
const saved = toReopenedLegalGeneration({
|
|
129
|
+
id: outcome.result.id,
|
|
130
|
+
metaKey: outcome.result.metaKey,
|
|
131
|
+
name: outcome.result.document?.name ?? outcome.result.documentName,
|
|
132
|
+
country: "SGP",
|
|
133
|
+
content: outcome.result.content,
|
|
134
|
+
});
|
|
135
|
+
if (saved) {
|
|
136
|
+
savedRef.current = saved;
|
|
137
|
+
setReopened(saved);
|
|
138
|
+
setRevision((value) => value + 1);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return outcome;
|
|
142
|
+
}
|
|
143
|
+
finally {
|
|
144
|
+
inFlight.current = false;
|
|
145
|
+
setPending(false);
|
|
146
|
+
}
|
|
45
147
|
}
|
|
46
148
|
};
|
|
47
149
|
export default AppointOfficerForm;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppointOfficerForm.js","sourceRoot":"","sources":["../../../../../src/modules/corporate/legal-generation/form/AppointOfficerForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"AppointOfficerForm.js","sourceRoot":"","sources":["../../../../../src/modules/corporate/legal-generation/form/AppointOfficerForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,36 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { IIdentity } from "../../../../data/identity";
|
|
2
|
+
import type { IIdentityCapture } from "../fields/state";
|
|
3
|
+
import type { ILegalGenerationCompany, ILegalGenerationParentDetails, ILegalGenerationReopened } from "./legalGenerationSubmit";
|
|
4
|
+
/** 当前表单值;母公司显示字段只记录明确的文书补丁。 */
|
|
3
5
|
export interface ICorporateRepresentativeValues {
|
|
4
|
-
/**
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
};
|
|
9
|
-
/** */
|
|
10
|
-
ParentCompany: {
|
|
11
|
-
Id: string;
|
|
12
|
-
Name: string;
|
|
13
|
-
};
|
|
6
|
+
/** 用户编辑过的母公司显示值。 */
|
|
7
|
+
ParentCompanyDetails?: ILegalGenerationParentDetails;
|
|
8
|
+
/** The Singapore company the document is composed for: the picker's corporate, or a restored pair. */
|
|
9
|
+
Company?: ILegalGenerationCompany;
|
|
14
10
|
/** */
|
|
11
|
+
ParentCompany: ILegalGenerationCompany;
|
|
12
|
+
/** The foreign parent organization country; independent of the representative identity. */
|
|
15
13
|
Country: string;
|
|
14
|
+
/** Required manual representative identity country; separate from shape issuingCountry. */
|
|
15
|
+
RepresentativeCountry: string;
|
|
16
16
|
/** document date */
|
|
17
17
|
Date: string;
|
|
18
|
+
/** The contact picked in select-existing mode (spec:1930). */
|
|
19
|
+
LegalContact?: IIdentity;
|
|
18
20
|
/** */
|
|
19
|
-
IdentityName
|
|
20
|
-
/** */
|
|
21
|
-
|
|
21
|
+
IdentityName?: string;
|
|
22
|
+
/** 手动模式所选身份形状的 source 编号(spec:1929)。 */
|
|
23
|
+
IdentityShape?: number;
|
|
22
24
|
/** */
|
|
23
|
-
IdentityNumber
|
|
25
|
+
IdentityNumber?: string | number;
|
|
26
|
+
/** 手动模式采集的完整身份快照:冻结的形状及其字段策略下录入的值(spec:3848)。 */
|
|
27
|
+
Identity?: IIdentityCapture;
|
|
28
|
+
}
|
|
29
|
+
/** Host seed for reopening a saved gallery representative form. */
|
|
30
|
+
export interface ICorporateRepresentativeFormProps {
|
|
31
|
+
/** The persisted document the form was reopened on, when the gallery opened one (spec:3848). */
|
|
32
|
+
reopened?: ILegalGenerationReopened;
|
|
24
33
|
}
|
|
25
|
-
|
|
34
|
+
/** Compose the representative and parent data, retaining the returned saved capture. */
|
|
35
|
+
declare const CorporateRepresentativeForm: (props: ICorporateRepresentativeFormProps) => JSX.Element;
|
|
26
36
|
export default CorporateRepresentativeForm;
|