@opencrvs/toolkit 2.0.0-rc.ff04b30 → 2.0.0-rc.ff8df64

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.
@@ -386,6 +386,9 @@ export declare function findLastAssignmentAction(actions: Action[]): {
386
386
  createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
387
387
  annotation?: Record<string, import("./FieldValue").FieldUpdateValue> | null | undefined;
388
388
  originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
389
+ content?: {
390
+ immediateCorrection?: boolean | undefined;
391
+ } | undefined;
389
392
  } | {
390
393
  id: string & import("zod").$brand<"UUID">;
391
394
  transactionId: string;
@@ -559,7 +562,15 @@ export declare function timePeriodToDateRange(value: SelectDateRangeValue): {
559
562
  };
560
563
  export declare function mergeDrafts(currentDraft: Draft, incomingDraft: Draft): Draft;
561
564
  export declare function getPendingAction(actions: Action[]): ActionDocument;
562
- export declare function getCompleteActionAnnotation(annotation: ActionUpdate, event: EventDocument, action: ActionDocument): ActionUpdate;
565
+ export declare function getCompleteActionAnnotation(event: EventDocument, action: ActionDocument): ActionUpdate;
566
+ /**
567
+ * Resolves the complete content for an action, inheriting from its original
568
+ * Requested action when the Accepted action carries no content of its own.
569
+ *
570
+ * Mirrors the same "originalActionId → merge from Requested" pattern used by
571
+ * getCompleteActionAnnotation and getCompleteActionDeclaration.
572
+ */
573
+ export declare function getCompleteActionContent(event: EventDocument, action: ActionDocument): Record<string, unknown> | null | undefined;
563
574
  export declare function getCompleteActionDeclaration<T extends EventState | ActionUpdate>(declaration: T, event: EventDocument, action: ActionDocument): T;
564
575
  export declare function getAcceptedActions(event: EventDocument): ActionDocument[];
565
576
  export declare function aggregateActionDeclarations(event: EventDocument): EventState;
@@ -30,6 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/conditionals/index.ts
31
31
  var conditionals_exports = {};
32
32
  __export(conditionals_exports, {
33
+ always: () => always,
33
34
  alwaysTrue: () => alwaysTrue,
34
35
  and: () => and,
35
36
  createFieldConditionals: () => createFieldConditionals,
@@ -454,6 +455,9 @@ function not(condition) {
454
455
  function never() {
455
456
  return not(alwaysTrue());
456
457
  }
458
+ function always() {
459
+ return defineConditional(alwaysTrue());
460
+ }
457
461
  function jsonFieldPath(field) {
458
462
  return [field.$$field, ...field.$$subfield].join("/");
459
463
  }
@@ -1001,7 +1005,54 @@ function createFieldConditionals(fieldId) {
1001
1005
  }
1002
1006
  },
1003
1007
  required: [fieldId]
1004
- })
1008
+ }),
1009
+ /**
1010
+ * Custom client-side validator. The provided function is serialised and executed
1011
+ * just-in-time on the client only. External references (e.g. lodash) are not
1012
+ * available inside the function body — all logic must be self-contained.
1013
+ *
1014
+ * @example
1015
+ * field('nid').customClientValidator((value) => {
1016
+ * // LUHN check — all logic must be inline
1017
+ * const digits = String(value).split('').map(Number)
1018
+ * // ...
1019
+ * return isValid
1020
+ * })
1021
+ */
1022
+ customClientValidator(validationFn) {
1023
+ const code = validationFn.toString();
1024
+ return defineFormConditional({
1025
+ type: "object",
1026
+ properties: wrapToPath(
1027
+ { [fieldId]: { customClientValidator: { code } } },
1028
+ this.$$subfield
1029
+ ),
1030
+ required: [fieldId]
1031
+ });
1032
+ },
1033
+ /**
1034
+ * Custom client-side evaluation. Returns a {@link FieldReference} descriptor
1035
+ * that can be used as the `value` property or a DATA component entry.
1036
+ * The function receives the referenced field's value as the first argument and
1037
+ * the full form context as the second; its return value replaces the field reference.
1038
+ * The function is serialised and executed just-in-time on the client only.
1039
+ * External references (e.g. lodash) are not available inside the function body.
1040
+ *
1041
+ * For computing a default value without referencing a specific field, use
1042
+ * `evaluate(fn)` in the `defaultValue` property instead.
1043
+ *
1044
+ * @example
1045
+ * field('a').customClientEvaluation((aValue, ctx) =>
1046
+ * Number(aValue) + Number(ctx.$form.b)
1047
+ * )
1048
+ */
1049
+ customClientEvaluation(computationFn) {
1050
+ return {
1051
+ $$code: computationFn.toString(),
1052
+ $$field: fieldId,
1053
+ $$subfield: this.$$subfield
1054
+ };
1055
+ }
1005
1056
  };
1006
1057
  }
1007
1058