@opencrvs/toolkit 2.0.0-rc.fef9d21 → 2.0.0-rc.ff99998
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/create-countryconfig/index.js +103 -0
- package/create-countryconfig/package.json +21 -0
- package/dist/application-config/index.js +305 -129
- package/dist/cli.js +548 -178
- package/dist/commons/api/router.d.ts +3379 -239
- package/dist/commons/application-config/index.d.ts +17 -4
- package/dist/commons/conditionals/conditionals.d.ts +360 -10
- package/dist/commons/conditionals/validate.d.ts +52 -2
- package/dist/commons/events/ActionDocument.d.ts +6 -0
- package/dist/commons/events/ActionInput.d.ts +114 -0
- package/dist/commons/events/AdvancedSearchConfig.d.ts +342 -0
- package/dist/commons/events/Draft.d.ts +4 -2
- package/dist/commons/events/EventDocument.d.ts +3 -0
- package/dist/commons/events/EventIndex.d.ts +0 -3
- package/dist/commons/events/EventMetadata.d.ts +0 -7
- package/dist/commons/events/FieldConfig.d.ts +387 -50
- package/dist/commons/events/FieldValue.d.ts +6 -0
- package/dist/commons/events/WorkqueueConfig.d.ts +150 -150
- package/dist/commons/events/field.d.ts +53 -1
- package/dist/commons/events/index.d.ts +2 -0
- package/dist/commons/events/locations.d.ts +38 -1
- package/dist/commons/events/mocks.test.utils.d.ts +19 -0
- package/dist/commons/events/scopes.d.ts +24 -1
- package/dist/commons/events/state/flags.d.ts +16 -0
- package/dist/commons/events/state/index.d.ts +0 -4
- package/dist/commons/events/state/utils.d.ts +12 -289
- package/dist/commons/events/utils.d.ts +13 -2
- package/dist/conditionals/index.js +92 -9
- package/dist/events/index.js +1084 -261
- package/dist/migrations/v2.0/add-birth-certificate-issuance-flag.d.ts.map +1 -1
- package/dist/migrations/v2.0/add-birth-certificate-issuance-flag.js +60 -35
- package/dist/migrations/v2.0/checkout-upstream-files.d.ts +1 -1
- package/dist/migrations/v2.0/checkout-upstream-files.d.ts.map +1 -1
- package/dist/migrations/v2.0/checkout-upstream-files.js +1 -2
- package/dist/migrations/v2.0/delete-infrastructure-directory.d.ts +9 -1
- package/dist/migrations/v2.0/delete-infrastructure-directory.d.ts.map +1 -1
- package/dist/migrations/v2.0/delete-infrastructure-directory.js +66 -20
- package/dist/migrations/v2.0/fix-accept-requested-registration-function-type.d.ts +3 -0
- package/dist/migrations/v2.0/fix-accept-requested-registration-function-type.d.ts.map +1 -0
- package/dist/migrations/v2.0/fix-accept-requested-registration-function-type.js +110 -0
- package/dist/migrations/v2.0/index.d.ts +5 -3
- package/dist/migrations/v2.0/index.d.ts.map +1 -1
- package/dist/migrations/v2.0/index.js +546 -176
- package/dist/migrations/v2.0/make-built-in-validate-actions-custom.d.ts.map +1 -1
- package/dist/migrations/v2.0/make-built-in-validate-actions-custom.js +90 -1
- package/dist/migrations/v2.0/merge-infrastructure-directory.d.ts +11 -1
- package/dist/migrations/v2.0/merge-infrastructure-directory.d.ts.map +1 -1
- package/dist/migrations/v2.0/merge-infrastructure-directory.js +17 -16
- package/dist/migrations/v2.0/migrate-scopes.d.ts.map +1 -1
- package/dist/migrations/v2.0/migrate-scopes.js +54 -30
- package/dist/migrations/v2.0/migrate-workqueue-configs.d.ts.map +1 -1
- package/dist/migrations/v2.0/migrate-workqueue-configs.js +140 -59
- package/dist/notification/index.js +841 -160
- package/dist/scopes/index.d.ts +91 -16
- package/dist/scopes/index.js +55 -12
- package/opencrvs-toolkit-2.0.0-rc.ff99998.tgz +0 -0
- package/package.json +6 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/opencrvs-toolkit-2.0.0-rc.fef9d21.tgz +0 -0
|
@@ -75,7 +75,10 @@ var ActionConditional = z.discriminatedUnion("type", [
|
|
|
75
75
|
ShowConditional,
|
|
76
76
|
// Action can be shown to the user in the list but as disabled
|
|
77
77
|
EnableConditional
|
|
78
|
-
])
|
|
78
|
+
]).meta({
|
|
79
|
+
id: "ActionConditional",
|
|
80
|
+
description: "Conditional gating whether an action is shown (SHOW) or enabled (ENABLE). When omitted from an action, the action is shown and enabled for everyone."
|
|
81
|
+
});
|
|
79
82
|
var DisplayOnReviewConditional = z.object({
|
|
80
83
|
type: z.literal(ConditionalType.DISPLAY_ON_REVIEW),
|
|
81
84
|
conditional: Conditional
|
|
@@ -90,8 +93,8 @@ var FieldConditional = z.discriminatedUnion("type", [
|
|
|
90
93
|
// Field output can be shown / hidden on the review page
|
|
91
94
|
DisplayOnReviewConditional
|
|
92
95
|
]).meta({
|
|
93
|
-
|
|
94
|
-
|
|
96
|
+
id: "FieldConditional",
|
|
97
|
+
description: "Conditional gating whether a form field is shown (SHOW), enabled (ENABLE), or displayed on the review page (DISPLAY_ON_REVIEW). When omitted, the field is shown and enabled for everyone, and is displayed on review whenever it has a value."
|
|
95
98
|
});
|
|
96
99
|
|
|
97
100
|
// ../commons/src/events/TranslationConfig.ts
|
|
@@ -350,6 +353,7 @@ var DateRangeFieldValue = z7.object({
|
|
|
350
353
|
var EmailValue = z7.email();
|
|
351
354
|
var CheckboxFieldValue = z7.boolean();
|
|
352
355
|
var NumberFieldValue = z7.number();
|
|
356
|
+
var SignatureFieldValue = FileFieldValue;
|
|
353
357
|
var ButtonFieldValue = z7.number();
|
|
354
358
|
var VerificationStatusValue = z7.enum([
|
|
355
359
|
"verified",
|
|
@@ -418,28 +422,20 @@ function schemaPriority(schema) {
|
|
|
418
422
|
return idx === -1 ? 9999 : idx;
|
|
419
423
|
}
|
|
420
424
|
function safeUnion(schemas) {
|
|
425
|
+
const sortedSchemas = [...schemas].sort(
|
|
426
|
+
(a, b) => schemaPriority(a) - schemaPriority(b)
|
|
427
|
+
);
|
|
421
428
|
return z7.any().superRefine((val, ctx) => {
|
|
422
|
-
const
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
if (successful.length === 0) {
|
|
427
|
-
ctx.addIssue({
|
|
428
|
-
code: "invalid_type",
|
|
429
|
-
expected: "custom",
|
|
430
|
-
message: "Value does not match any schema"
|
|
431
|
-
});
|
|
432
|
-
return;
|
|
433
|
-
}
|
|
434
|
-
successful.sort((a, b) => schemaPriority(a) - schemaPriority(b));
|
|
435
|
-
const best = successful[0];
|
|
436
|
-
if (!best.safeParse(val).success) {
|
|
437
|
-
ctx.addIssue({
|
|
438
|
-
expected: "custom",
|
|
439
|
-
code: "invalid_type",
|
|
440
|
-
message: "Value did not match the best schema"
|
|
441
|
-
});
|
|
429
|
+
for (const schema of sortedSchemas) {
|
|
430
|
+
if (schema.safeParse(val).success) {
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
442
433
|
}
|
|
434
|
+
ctx.addIssue({
|
|
435
|
+
code: "invalid_type",
|
|
436
|
+
expected: "custom",
|
|
437
|
+
message: "Value does not match any schema"
|
|
438
|
+
});
|
|
443
439
|
}).meta({
|
|
444
440
|
description: "Value that matches exactly one of the possible schema types (TextValue, DateValue, DateRangeFieldValue). The best matching schema is chosen by priority."
|
|
445
441
|
});
|
|
@@ -656,6 +652,10 @@ var scopeByEvent = z11.preprocess(
|
|
|
656
652
|
(val) => val === void 0 ? void 0 : [val].flat(),
|
|
657
653
|
z11.array(z11.string()).optional()
|
|
658
654
|
).describe("Event type, e.g. birth, death");
|
|
655
|
+
var userRole = z11.preprocess(
|
|
656
|
+
(val) => val === void 0 ? void 0 : [val].flat(),
|
|
657
|
+
z11.array(z11.string()).optional()
|
|
658
|
+
).describe("User role, e.g. admin, field agent");
|
|
659
659
|
var scopeOptionsPlaceEvent = z11.object({
|
|
660
660
|
event: scopeByEvent,
|
|
661
661
|
placeOfEvent: JurisdictionFilter.optional()
|
|
@@ -679,6 +679,9 @@ var CustomActionScopeOptions = AllRecordScopeOptions.extend({
|
|
|
679
679
|
var AccessLevelOptions = z11.object({
|
|
680
680
|
accessLevel: JurisdictionFilter.optional()
|
|
681
681
|
});
|
|
682
|
+
var AllUserScopeOptions = AccessLevelOptions.extend({
|
|
683
|
+
role: userRole.optional()
|
|
684
|
+
});
|
|
682
685
|
var WorkqueueOrDashboardOptions = z11.object({
|
|
683
686
|
ids: z11.preprocess(
|
|
684
687
|
(val) => val === void 0 ? void 0 : [val].flat(),
|
|
@@ -688,6 +691,7 @@ var WorkqueueOrDashboardOptions = z11.object({
|
|
|
688
691
|
var AllScopeOptions = z11.object({
|
|
689
692
|
...AllRecordScopeOptions.shape,
|
|
690
693
|
...AccessLevelOptions.shape,
|
|
694
|
+
...AllUserScopeOptions.shape,
|
|
691
695
|
...WorkqueueOrDashboardOptions.shape
|
|
692
696
|
});
|
|
693
697
|
var ScopeOptionKey = AllScopeOptions.keyof();
|
|
@@ -760,6 +764,30 @@ var RecordScopeV2 = z11.discriminatedUnion("type", [
|
|
|
760
764
|
]).describe(
|
|
761
765
|
"Scopes used to check user's permission to perform actions on a record."
|
|
762
766
|
);
|
|
767
|
+
var SystemScopeType = z11.enum([
|
|
768
|
+
"organisation.read-locations",
|
|
769
|
+
"user.read",
|
|
770
|
+
"user.create",
|
|
771
|
+
"user.edit",
|
|
772
|
+
"user.search"
|
|
773
|
+
]);
|
|
774
|
+
var UserScopeType = SystemScopeType.extract([
|
|
775
|
+
"user.read",
|
|
776
|
+
"user.create",
|
|
777
|
+
"user.edit",
|
|
778
|
+
"user.search"
|
|
779
|
+
]);
|
|
780
|
+
var ScopesWithRoleOption = UserScopeType.extract(["user.edit", "user.create"]);
|
|
781
|
+
var UserScopeV2 = z11.discriminatedUnion("type", [
|
|
782
|
+
z11.object({
|
|
783
|
+
type: ScopesWithRoleOption,
|
|
784
|
+
options: AllUserScopeOptions.optional()
|
|
785
|
+
}),
|
|
786
|
+
z11.object({
|
|
787
|
+
type: UserScopeType.extract(["user.read", "user.search"]),
|
|
788
|
+
options: AccessLevelOptions.optional()
|
|
789
|
+
})
|
|
790
|
+
]);
|
|
763
791
|
var ResolvedRecordScopeV2 = z11.discriminatedUnion("type", [
|
|
764
792
|
z11.object({
|
|
765
793
|
type: ScopesWithPlaceEventOptions,
|
|
@@ -780,16 +808,14 @@ var ResolvedRecordScopeV2 = z11.discriminatedUnion("type", [
|
|
|
780
808
|
}).optional()
|
|
781
809
|
})
|
|
782
810
|
]).describe("Resolved scope with location/user IDs instead of filters.");
|
|
783
|
-
var SystemScopeType = z11.enum([
|
|
784
|
-
"organisation.read-locations",
|
|
785
|
-
"user.read",
|
|
786
|
-
"user.create",
|
|
787
|
-
"user.edit"
|
|
788
|
-
]);
|
|
789
811
|
var Scope = z11.discriminatedUnion("type", [
|
|
790
812
|
z11.object({ type: PlainScopeType }),
|
|
791
813
|
...RecordScopeV2.options,
|
|
792
|
-
|
|
814
|
+
...UserScopeV2.options,
|
|
815
|
+
z11.object({
|
|
816
|
+
type: z11.literal("organisation.read-locations"),
|
|
817
|
+
options: AccessLevelOptions.optional()
|
|
818
|
+
}),
|
|
793
819
|
z11.object({
|
|
794
820
|
type: z11.literal("workqueue"),
|
|
795
821
|
options: WorkqueueOrDashboardOptions
|
|
@@ -809,7 +835,9 @@ var ScopeType = z11.enum([
|
|
|
809
835
|
var EncodedScope = z11.string().brand("EncodedScope");
|
|
810
836
|
var DEFAULT_SCOPE_OPTIONS = {
|
|
811
837
|
placeOfEvent: JurisdictionFilter.enum.all,
|
|
812
|
-
accessLevel: JurisdictionFilter.enum.all
|
|
838
|
+
accessLevel: JurisdictionFilter.enum.all,
|
|
839
|
+
registeredIn: JurisdictionFilter.enum.all,
|
|
840
|
+
declaredIn: JurisdictionFilter.enum.all
|
|
813
841
|
};
|
|
814
842
|
|
|
815
843
|
// ../commons/src/authentication.ts
|
|
@@ -962,8 +990,9 @@ var RequestedCorrectionAction = ActionBase.extend(
|
|
|
962
990
|
var ApprovedCorrectionAction = ActionBase.extend(
|
|
963
991
|
z13.object({
|
|
964
992
|
type: z13.literal(ActionType.APPROVE_CORRECTION),
|
|
965
|
-
requestId: z13.string()
|
|
993
|
+
requestId: z13.string(),
|
|
966
994
|
// TODO move into 'content' property
|
|
995
|
+
content: z13.object({ immediateCorrection: z13.boolean().optional() }).optional()
|
|
967
996
|
}).shape
|
|
968
997
|
);
|
|
969
998
|
var RejectedCorrectionAction = ActionBase.extend(
|
|
@@ -1055,6 +1084,9 @@ var FlagConfig = z14.object({
|
|
|
1055
1084
|
"Indicates if this flag expects an action to be performed to be cleared."
|
|
1056
1085
|
),
|
|
1057
1086
|
label: TranslationConfig.describe("Human readable label of the flag.")
|
|
1087
|
+
}).meta({
|
|
1088
|
+
id: "FlagConfig",
|
|
1089
|
+
description: "Configuration for a custom flag that can be added to or removed from records by event actions."
|
|
1058
1090
|
});
|
|
1059
1091
|
var ActionFlagConfig = z14.object({
|
|
1060
1092
|
id: Flag,
|
|
@@ -1062,6 +1094,9 @@ var ActionFlagConfig = z14.object({
|
|
|
1062
1094
|
conditional: Conditional.optional().describe(
|
|
1063
1095
|
"When conditional is met, the operation is performed on the flag. If not provided, the operation is performed unconditionally."
|
|
1064
1096
|
)
|
|
1097
|
+
}).meta({
|
|
1098
|
+
id: "ActionFlagConfig",
|
|
1099
|
+
description: "Add or remove operation applied to a flag when the parent action is accepted. Optionally gated by a conditional."
|
|
1065
1100
|
});
|
|
1066
1101
|
|
|
1067
1102
|
// ../commons/src/events/EventMetadata.ts
|
|
@@ -1083,8 +1118,7 @@ var ActionCreationMetadata = z15.object({
|
|
|
1083
1118
|
),
|
|
1084
1119
|
createdByUserType: z15.enum(["user", "system"]).nullish().describe("Whether the user is a normal user or a system."),
|
|
1085
1120
|
acceptedAt: z15.iso.datetime().describe("Timestamp when the action request was accepted."),
|
|
1086
|
-
createdByRole: z15.string().optional().describe("Role of the user at the time of action request creation.")
|
|
1087
|
-
createdBySignature: z15.string().nullish().describe("Signature of the user who created the action request.")
|
|
1121
|
+
createdByRole: z15.string().optional().describe("Role of the user at the time of action request creation.")
|
|
1088
1122
|
});
|
|
1089
1123
|
var RegistrationCreationMetadata = ActionCreationMetadata.extend({
|
|
1090
1124
|
registrationNumber: z15.string().describe(
|
|
@@ -1112,9 +1146,6 @@ var EventMetadata = z15.object({
|
|
|
1112
1146
|
createdAtLocation: UUID.nullish().describe(
|
|
1113
1147
|
"Location of the user who created the event."
|
|
1114
1148
|
),
|
|
1115
|
-
createdBySignature: DocumentPath.nullish().describe(
|
|
1116
|
-
"Signature of the user who created the event."
|
|
1117
|
-
),
|
|
1118
1149
|
updatedAtLocation: UUID.nullish().describe(
|
|
1119
1150
|
"Location of the user who last changed the status."
|
|
1120
1151
|
),
|
|
@@ -1378,14 +1409,31 @@ var FieldId = import_v43.default.string().superRefine((val, ctx) => {
|
|
|
1378
1409
|
}
|
|
1379
1410
|
}).describe("Unique identifier for the field");
|
|
1380
1411
|
var FieldReference = import_v43.default.object({
|
|
1381
|
-
$$field: FieldId,
|
|
1412
|
+
$$field: FieldId.describe("Id of the field to reference"),
|
|
1382
1413
|
$$subfield: import_v43.default.array(import_v43.default.string()).optional().default([]).describe(
|
|
1383
1414
|
'If the FieldValue is an object, subfield can be used to refer to e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
|
|
1415
|
+
),
|
|
1416
|
+
$$code: import_v43.default.string().optional().describe(
|
|
1417
|
+
"Serialised client-side function body. When present the expression is evaluated rather than dereferenced."
|
|
1384
1418
|
)
|
|
1385
|
-
}).describe(
|
|
1419
|
+
}).describe(
|
|
1420
|
+
"Reference to a field value, with an optional client-side computation applied."
|
|
1421
|
+
);
|
|
1422
|
+
var ComputedDefaultValue = import_v43.default.object({
|
|
1423
|
+
$$code: import_v43.default.string().describe(
|
|
1424
|
+
"Serialised client-side function body. Receives (undefined, context) where context includes $now, $online, and system variables."
|
|
1425
|
+
)
|
|
1426
|
+
}).describe("A context-only computation used as a field default value.");
|
|
1386
1427
|
var ValidationConfig = import_v43.default.object({
|
|
1387
|
-
validator: Conditional
|
|
1388
|
-
|
|
1428
|
+
validator: Conditional.describe(
|
|
1429
|
+
"Conditional expression that must hold for the field value to be considered valid."
|
|
1430
|
+
),
|
|
1431
|
+
message: TranslationConfig.describe(
|
|
1432
|
+
"Error message displayed when the validator does not hold."
|
|
1433
|
+
)
|
|
1434
|
+
}).meta({
|
|
1435
|
+
id: "ValidationConfig",
|
|
1436
|
+
description: "Validation rule applied to a form field. The validator is a conditional expression that must hold for the field value to be considered valid."
|
|
1389
1437
|
});
|
|
1390
1438
|
var requiredSchema = import_v43.default.union([
|
|
1391
1439
|
import_v43.default.boolean(),
|
|
@@ -1416,7 +1464,7 @@ var BaseField = import_v43.default.object({
|
|
|
1416
1464
|
"Indicates whether the field can be modified during record correction."
|
|
1417
1465
|
),
|
|
1418
1466
|
value: FieldReference.or(import_v43.default.array(FieldReference)).optional().describe(
|
|
1419
|
-
"Reference to the source field or fields. When a value is defined, it is copied from the parent field when changed. If multiple references are provided, the first truthy value is used."
|
|
1467
|
+
"Reference to the source field or fields. When a value is defined, it is copied from the parent field when changed. If multiple references are provided, the first truthy value is used. A FieldReference with $$code computes the value via a custom client-side function."
|
|
1420
1468
|
),
|
|
1421
1469
|
analytics: import_v43.default.boolean().default(false).optional().describe(
|
|
1422
1470
|
"Indicates whether the field is included in analytics. When enabled, its value becomes available in the analytics dashboard."
|
|
@@ -1424,30 +1472,39 @@ var BaseField = import_v43.default.object({
|
|
|
1424
1472
|
}).describe("Common properties shared across all field types.");
|
|
1425
1473
|
var Divider = BaseField.extend({
|
|
1426
1474
|
type: import_v43.default.literal(FieldType.DIVIDER)
|
|
1475
|
+
}).meta({
|
|
1476
|
+
description: "A horizontal line divider",
|
|
1477
|
+
id: "Divider"
|
|
1427
1478
|
});
|
|
1428
1479
|
var TextField = BaseField.extend({
|
|
1429
1480
|
type: import_v43.default.literal(FieldType.TEXT),
|
|
1430
|
-
defaultValue: import_v43.default.union([NonEmptyTextValue, SerializedUserField]).optional(),
|
|
1481
|
+
defaultValue: import_v43.default.union([NonEmptyTextValue, SerializedUserField, ComputedDefaultValue]).optional(),
|
|
1431
1482
|
configuration: import_v43.default.object({
|
|
1432
1483
|
maxLength: import_v43.default.number().optional().describe("Maximum length of the text"),
|
|
1433
1484
|
type: import_v43.default.enum(["text", "password"]).optional(),
|
|
1434
1485
|
prefix: TranslationConfig.optional(),
|
|
1435
1486
|
postfix: TranslationConfig.optional()
|
|
1436
1487
|
}).default({ type: "text" }).optional()
|
|
1437
|
-
}).
|
|
1488
|
+
}).meta({
|
|
1489
|
+
description: "A text input field",
|
|
1490
|
+
id: "TextField"
|
|
1491
|
+
});
|
|
1438
1492
|
var NumberField = BaseField.extend({
|
|
1439
1493
|
type: import_v43.default.literal(FieldType.NUMBER),
|
|
1440
|
-
defaultValue: NumberFieldValue.optional(),
|
|
1494
|
+
defaultValue: NumberFieldValue.or(ComputedDefaultValue).optional(),
|
|
1441
1495
|
configuration: import_v43.default.object({
|
|
1442
1496
|
min: import_v43.default.number().optional().describe("Minimum value"),
|
|
1443
1497
|
max: import_v43.default.number().optional().describe("Maximum value"),
|
|
1444
1498
|
prefix: TranslationConfig.optional(),
|
|
1445
1499
|
postfix: TranslationConfig.optional()
|
|
1446
1500
|
}).optional()
|
|
1447
|
-
}).
|
|
1501
|
+
}).meta({
|
|
1502
|
+
description: "A number input field",
|
|
1503
|
+
id: "NumberField"
|
|
1504
|
+
});
|
|
1448
1505
|
var TextAreaField = BaseField.extend({
|
|
1449
1506
|
type: import_v43.default.literal(FieldType.TEXTAREA),
|
|
1450
|
-
defaultValue: NonEmptyTextValue.optional(),
|
|
1507
|
+
defaultValue: NonEmptyTextValue.or(ComputedDefaultValue).optional(),
|
|
1451
1508
|
configuration: import_v43.default.object({
|
|
1452
1509
|
maxLength: import_v43.default.number().optional().describe("Maximum length of the text"),
|
|
1453
1510
|
rows: import_v43.default.number().optional().describe("Number of visible text lines"),
|
|
@@ -1455,7 +1512,10 @@ var TextAreaField = BaseField.extend({
|
|
|
1455
1512
|
prefix: TranslationConfig.optional(),
|
|
1456
1513
|
postfix: TranslationConfig.optional()
|
|
1457
1514
|
}).default({ rows: 4 }).optional()
|
|
1458
|
-
}).
|
|
1515
|
+
}).meta({
|
|
1516
|
+
description: "A multiline text input",
|
|
1517
|
+
id: "TextAreaField"
|
|
1518
|
+
});
|
|
1459
1519
|
var ImageMimeType = import_v43.default.enum([
|
|
1460
1520
|
"image/png",
|
|
1461
1521
|
"image/jpg",
|
|
@@ -1478,58 +1538,76 @@ var SignatureField = BaseField.extend({
|
|
|
1478
1538
|
signaturePromptLabel: TranslationConfig.describe(
|
|
1479
1539
|
"Title of the signature modal"
|
|
1480
1540
|
),
|
|
1481
|
-
defaultValue:
|
|
1541
|
+
defaultValue: SignatureFieldValue.or(ComputedDefaultValue).optional(),
|
|
1482
1542
|
configuration: import_v43.default.object({
|
|
1483
1543
|
maxFileSize: import_v43.default.number().describe("Maximum file size in bytes").default(DEFAULT_MAX_FILE_SIZE_BYTES),
|
|
1484
1544
|
acceptedFileTypes: MimeType.array().optional().describe("List of allowed file formats for the signature")
|
|
1485
1545
|
}).default({
|
|
1486
1546
|
maxFileSize: DEFAULT_MAX_FILE_SIZE_BYTES
|
|
1487
1547
|
})
|
|
1488
|
-
}).
|
|
1548
|
+
}).meta({
|
|
1549
|
+
description: "A signature input field",
|
|
1550
|
+
id: "SignatureField"
|
|
1551
|
+
});
|
|
1489
1552
|
var EmailField = BaseField.extend({
|
|
1490
1553
|
type: import_v43.default.literal(FieldType.EMAIL),
|
|
1491
1554
|
configuration: import_v43.default.object({
|
|
1492
1555
|
maxLength: import_v43.default.number().optional().describe("Maximum length of the text")
|
|
1493
1556
|
}).default({ maxLength: 255 }).optional(),
|
|
1494
|
-
defaultValue: NonEmptyTextValue.optional()
|
|
1557
|
+
defaultValue: NonEmptyTextValue.or(ComputedDefaultValue).optional()
|
|
1558
|
+
}).meta({
|
|
1559
|
+
description: "An email input field",
|
|
1560
|
+
id: "EmailField"
|
|
1495
1561
|
});
|
|
1496
1562
|
var DateField = BaseField.extend({
|
|
1497
1563
|
type: import_v43.default.literal(FieldType.DATE),
|
|
1498
|
-
defaultValue: SerializedNowDateTime.or(PlainDate).optional().describe("Default date value(yyyy-MM-dd)"),
|
|
1564
|
+
defaultValue: SerializedNowDateTime.or(PlainDate).or(ComputedDefaultValue).optional().describe("Default date value(yyyy-MM-dd)"),
|
|
1499
1565
|
configuration: import_v43.default.object({
|
|
1500
1566
|
notice: TranslationConfig.describe(
|
|
1501
1567
|
"Text to display above the date input"
|
|
1502
1568
|
).optional()
|
|
1503
1569
|
}).optional()
|
|
1504
|
-
}).
|
|
1570
|
+
}).meta({
|
|
1571
|
+
description: "A date input (yyyy-MM-dd)",
|
|
1572
|
+
id: "DateField"
|
|
1573
|
+
});
|
|
1505
1574
|
var AgeField = BaseField.extend({
|
|
1506
1575
|
type: import_v43.default.literal(FieldType.AGE),
|
|
1507
|
-
defaultValue: NumberFieldValue.optional(),
|
|
1576
|
+
defaultValue: NumberFieldValue.or(ComputedDefaultValue).optional(),
|
|
1508
1577
|
configuration: import_v43.default.object({
|
|
1509
1578
|
asOfDate: FieldReference,
|
|
1510
1579
|
prefix: TranslationConfig.optional(),
|
|
1511
1580
|
postfix: TranslationConfig.optional()
|
|
1512
1581
|
})
|
|
1513
|
-
}).
|
|
1582
|
+
}).meta({
|
|
1583
|
+
description: "An age input field which uses the current date as the asOfDate",
|
|
1584
|
+
id: "AgeField"
|
|
1585
|
+
});
|
|
1514
1586
|
var TimeField = BaseField.extend({
|
|
1515
1587
|
type: import_v43.default.literal(FieldType.TIME),
|
|
1516
|
-
defaultValue: SerializedNowDateTime.or(TimeValue).optional().describe("Default time value (HH-mm)"),
|
|
1588
|
+
defaultValue: SerializedNowDateTime.or(TimeValue).or(ComputedDefaultValue).optional().describe("Default time value (HH-mm)"),
|
|
1517
1589
|
configuration: import_v43.default.object({
|
|
1518
1590
|
use12HourFormat: import_v43.default.boolean().optional().describe("Whether to use 12-hour format"),
|
|
1519
1591
|
notice: TranslationConfig.describe(
|
|
1520
1592
|
"Text to display above the time input"
|
|
1521
1593
|
).optional()
|
|
1522
1594
|
}).optional()
|
|
1523
|
-
}).
|
|
1595
|
+
}).meta({
|
|
1596
|
+
description: "A single time input (HH-mm)",
|
|
1597
|
+
id: "TimeField"
|
|
1598
|
+
});
|
|
1524
1599
|
var DateRangeField = BaseField.extend({
|
|
1525
1600
|
type: import_v43.default.literal(FieldType.DATE_RANGE),
|
|
1526
|
-
defaultValue: DateRangeFieldValue.optional(),
|
|
1601
|
+
defaultValue: DateRangeFieldValue.or(ComputedDefaultValue).optional(),
|
|
1527
1602
|
configuration: import_v43.default.object({
|
|
1528
1603
|
notice: TranslationConfig.describe(
|
|
1529
1604
|
"Text to display above the date input"
|
|
1530
1605
|
).optional()
|
|
1531
1606
|
}).optional()
|
|
1532
|
-
}).
|
|
1607
|
+
}).meta({
|
|
1608
|
+
description: "A date range input ({ start: yyyy-MM-dd, end: yyyy-MM-dd })",
|
|
1609
|
+
id: "DateRangeField"
|
|
1610
|
+
});
|
|
1533
1611
|
var HtmlFontVariant = import_v43.default.enum([
|
|
1534
1612
|
"reg12",
|
|
1535
1613
|
"reg14",
|
|
@@ -1573,21 +1651,33 @@ var ImageViewField = BaseField.extend({
|
|
|
1573
1651
|
type: import_v43.default.literal(FieldType.IMAGE_VIEW),
|
|
1574
1652
|
defaultValue: NonEmptyTextValue.optional(),
|
|
1575
1653
|
configuration: ImageConfiguration
|
|
1576
|
-
}).
|
|
1654
|
+
}).meta({
|
|
1655
|
+
description: "A read-only image component for form pages",
|
|
1656
|
+
id: "ImageViewField"
|
|
1657
|
+
});
|
|
1577
1658
|
var Paragraph = BaseField.extend({
|
|
1578
1659
|
type: import_v43.default.literal(FieldType.PARAGRAPH),
|
|
1579
1660
|
configuration: ParagraphConfiguration
|
|
1580
|
-
}).
|
|
1661
|
+
}).meta({
|
|
1662
|
+
description: "A read-only HTML <p> paragraph",
|
|
1663
|
+
id: "Paragraph"
|
|
1664
|
+
});
|
|
1581
1665
|
var Heading = BaseField.extend({
|
|
1582
1666
|
type: import_v43.default.literal(FieldType.HEADING),
|
|
1583
1667
|
configuration: HeadingConfiguration
|
|
1584
|
-
}).
|
|
1668
|
+
}).meta({
|
|
1669
|
+
description: "A read-only heading component for form pages",
|
|
1670
|
+
id: "Heading"
|
|
1671
|
+
});
|
|
1585
1672
|
var PageHeader = BaseField.extend({
|
|
1586
1673
|
type: import_v43.default.literal(FieldType.PAGE_HEADER)
|
|
1587
|
-
}).
|
|
1674
|
+
}).meta({
|
|
1675
|
+
description: "A read-only header component for form pages",
|
|
1676
|
+
id: "PageHeader"
|
|
1677
|
+
});
|
|
1588
1678
|
var File = BaseField.extend({
|
|
1589
1679
|
type: import_v43.default.literal(FieldType.FILE),
|
|
1590
|
-
defaultValue: FileFieldValue.optional(),
|
|
1680
|
+
defaultValue: FileFieldValue.or(ComputedDefaultValue).optional(),
|
|
1591
1681
|
configuration: import_v43.default.object({
|
|
1592
1682
|
maxFileSize: import_v43.default.number().describe("Maximum file size in bytes").default(DEFAULT_MAX_FILE_SIZE_BYTES),
|
|
1593
1683
|
acceptedFileTypes: MimeType.array().optional().describe("List of allowed file formats for the signature"),
|
|
@@ -1603,7 +1693,10 @@ var File = BaseField.extend({
|
|
|
1603
1693
|
}).default({
|
|
1604
1694
|
maxFileSize: DEFAULT_MAX_FILE_SIZE_BYTES
|
|
1605
1695
|
})
|
|
1606
|
-
}).
|
|
1696
|
+
}).meta({
|
|
1697
|
+
description: "A file upload field",
|
|
1698
|
+
id: "File"
|
|
1699
|
+
});
|
|
1607
1700
|
var SelectOption = import_v43.default.object({
|
|
1608
1701
|
value: import_v43.default.string().describe("The value of the option"),
|
|
1609
1702
|
label: import_v43.default.union([import_v43.default.string(), TranslationConfig]).describe("The label of the option"),
|
|
@@ -1611,7 +1704,7 @@ var SelectOption = import_v43.default.object({
|
|
|
1611
1704
|
});
|
|
1612
1705
|
var NumberWithUnitField = BaseField.extend({
|
|
1613
1706
|
type: import_v43.default.literal(FieldType.NUMBER_WITH_UNIT),
|
|
1614
|
-
defaultValue: NumberWithUnitFieldValue.optional(),
|
|
1707
|
+
defaultValue: NumberWithUnitFieldValue.or(ComputedDefaultValue).optional(),
|
|
1615
1708
|
options: import_v43.default.array(SelectOption).describe("A list of options for the unit select"),
|
|
1616
1709
|
configuration: import_v43.default.object({
|
|
1617
1710
|
min: import_v43.default.number().optional().describe("Minimum value of the number field"),
|
|
@@ -1620,17 +1713,23 @@ var NumberWithUnitField = BaseField.extend({
|
|
|
1620
1713
|
"Placeholder for the number field"
|
|
1621
1714
|
)
|
|
1622
1715
|
}).optional()
|
|
1623
|
-
}).
|
|
1716
|
+
}).meta({
|
|
1717
|
+
description: "A number with unit input field",
|
|
1718
|
+
id: "NumberWithUnitField"
|
|
1719
|
+
});
|
|
1624
1720
|
var RadioGroup = BaseField.extend({
|
|
1625
1721
|
type: import_v43.default.literal(FieldType.RADIO_GROUP),
|
|
1626
|
-
defaultValue: TextValue.optional(),
|
|
1722
|
+
defaultValue: TextValue.or(ComputedDefaultValue).optional(),
|
|
1627
1723
|
options: import_v43.default.array(SelectOption).describe("A list of options"),
|
|
1628
1724
|
configuration: import_v43.default.object({
|
|
1629
1725
|
styles: import_v43.default.object({
|
|
1630
1726
|
size: import_v43.default.enum(["NORMAL", "LARGE"]).optional()
|
|
1631
1727
|
}).optional()
|
|
1632
1728
|
}).optional()
|
|
1633
|
-
}).
|
|
1729
|
+
}).meta({
|
|
1730
|
+
description: "A grouped radio button field",
|
|
1731
|
+
id: "RadioGroup"
|
|
1732
|
+
});
|
|
1634
1733
|
var BulletList = BaseField.extend({
|
|
1635
1734
|
type: import_v43.default.literal(FieldType.BULLET_LIST),
|
|
1636
1735
|
items: import_v43.default.array(TranslationConfig).describe("A list of items"),
|
|
@@ -1639,10 +1738,13 @@ var BulletList = BaseField.extend({
|
|
|
1639
1738
|
fontVariant: HtmlFontVariant.optional()
|
|
1640
1739
|
}).optional()
|
|
1641
1740
|
}).default({})
|
|
1642
|
-
}).
|
|
1741
|
+
}).meta({
|
|
1742
|
+
description: "A list of bullet points",
|
|
1743
|
+
id: "BulletList"
|
|
1744
|
+
});
|
|
1643
1745
|
var Select = BaseField.extend({
|
|
1644
1746
|
type: import_v43.default.literal(FieldType.SELECT),
|
|
1645
|
-
defaultValue: TextValue.optional(),
|
|
1747
|
+
defaultValue: TextValue.or(ComputedDefaultValue).optional(),
|
|
1646
1748
|
options: import_v43.default.array(SelectOption).describe("A list of options"),
|
|
1647
1749
|
noOptionsMessage: TranslationConfig.optional().describe(
|
|
1648
1750
|
`
|
|
@@ -1654,16 +1756,22 @@ var Select = BaseField.extend({
|
|
|
1654
1756
|
{ ..., defaultMessage: "'{input}' is not listed among the health facilities." }
|
|
1655
1757
|
`
|
|
1656
1758
|
)
|
|
1657
|
-
}).
|
|
1759
|
+
}).meta({
|
|
1760
|
+
description: "A select input field",
|
|
1761
|
+
id: "Select"
|
|
1762
|
+
});
|
|
1658
1763
|
var SelectDateRangeOption = import_v43.default.object({
|
|
1659
1764
|
value: SelectDateRangeValue.describe("The value of the option"),
|
|
1660
1765
|
label: TranslationConfig.describe("The label of the option")
|
|
1661
1766
|
});
|
|
1662
1767
|
var SelectDateRangeField = BaseField.extend({
|
|
1663
1768
|
type: import_v43.default.literal(FieldType.SELECT_DATE_RANGE),
|
|
1664
|
-
defaultValue: SelectDateRangeValue.optional(),
|
|
1769
|
+
defaultValue: SelectDateRangeValue.or(ComputedDefaultValue).optional(),
|
|
1665
1770
|
options: import_v43.default.array(SelectDateRangeOption).describe("A list of options")
|
|
1666
|
-
}).
|
|
1771
|
+
}).meta({
|
|
1772
|
+
description: "A date range selection field",
|
|
1773
|
+
id: "SelectDateRangeField"
|
|
1774
|
+
});
|
|
1667
1775
|
var NameConfig = import_v43.default.object({
|
|
1668
1776
|
firstname: import_v43.default.object({ required: requiredSchema, label: TranslationConfig.optional() }).optional(),
|
|
1669
1777
|
middlename: import_v43.default.object({ required: requiredSchema, label: TranslationConfig.optional() }).optional(),
|
|
@@ -1675,7 +1783,7 @@ var NameField = BaseField.extend({
|
|
|
1675
1783
|
firstname: SerializedUserField.or(NonEmptyTextValue).optional(),
|
|
1676
1784
|
middlename: SerializedUserField.or(NonEmptyTextValue).optional(),
|
|
1677
1785
|
surname: SerializedUserField.or(NonEmptyTextValue).optional()
|
|
1678
|
-
}).optional(),
|
|
1786
|
+
}).or(ComputedDefaultValue).optional(),
|
|
1679
1787
|
configuration: import_v43.default.object({
|
|
1680
1788
|
name: NameConfig.default({
|
|
1681
1789
|
firstname: { required: true },
|
|
@@ -1694,26 +1802,41 @@ var NameField = BaseField.extend({
|
|
|
1694
1802
|
surname: { required: true }
|
|
1695
1803
|
}
|
|
1696
1804
|
}).optional()
|
|
1697
|
-
}).
|
|
1805
|
+
}).meta({
|
|
1806
|
+
description: "A field for entering a persons name",
|
|
1807
|
+
id: "NameField"
|
|
1808
|
+
});
|
|
1698
1809
|
var PhoneField = BaseField.extend({
|
|
1699
|
-
defaultValue: NonEmptyTextValue.optional(),
|
|
1810
|
+
defaultValue: NonEmptyTextValue.or(ComputedDefaultValue).optional(),
|
|
1700
1811
|
type: import_v43.default.literal(FieldType.PHONE)
|
|
1701
|
-
}).
|
|
1812
|
+
}).meta({
|
|
1813
|
+
description: "A field for entering a phone number",
|
|
1814
|
+
id: "PhoneField"
|
|
1815
|
+
});
|
|
1702
1816
|
var IdField = BaseField.extend({
|
|
1703
|
-
defaultValue: NonEmptyTextValue.optional(),
|
|
1817
|
+
defaultValue: NonEmptyTextValue.or(ComputedDefaultValue).optional(),
|
|
1704
1818
|
type: import_v43.default.literal(FieldType.ID)
|
|
1705
|
-
}).
|
|
1819
|
+
}).meta({
|
|
1820
|
+
description: "A field for entering an ID",
|
|
1821
|
+
id: "IdField"
|
|
1822
|
+
});
|
|
1706
1823
|
var Checkbox = BaseField.extend({
|
|
1707
1824
|
type: import_v43.default.literal(FieldType.CHECKBOX),
|
|
1708
|
-
defaultValue: CheckboxFieldValue.default(false)
|
|
1709
|
-
}).
|
|
1825
|
+
defaultValue: CheckboxFieldValue.or(ComputedDefaultValue).default(false)
|
|
1826
|
+
}).meta({
|
|
1827
|
+
description: "A boolean checkbox field",
|
|
1828
|
+
id: "Checkbox"
|
|
1829
|
+
});
|
|
1710
1830
|
var Country = BaseField.extend({
|
|
1711
1831
|
type: import_v43.default.literal(FieldType.COUNTRY),
|
|
1712
|
-
defaultValue: NonEmptyTextValue.optional(),
|
|
1832
|
+
defaultValue: NonEmptyTextValue.or(ComputedDefaultValue).optional(),
|
|
1713
1833
|
optionOverrides: import_v43.default.array(SelectOption.omit({ label: true })).optional().describe(
|
|
1714
1834
|
"Conditionals for specific countries. Countries not listed are always shown and enabled."
|
|
1715
1835
|
)
|
|
1716
|
-
}).
|
|
1836
|
+
}).meta({
|
|
1837
|
+
description: "A field for selecting a country",
|
|
1838
|
+
id: "Country"
|
|
1839
|
+
});
|
|
1717
1840
|
var AllowedLocations = JurisdictionReference.optional().describe(
|
|
1718
1841
|
"Limits which location options are selectable depending on user jurisdiction and location."
|
|
1719
1842
|
);
|
|
@@ -1722,28 +1845,33 @@ var AdministrativeAreas = import_v43.default.enum([
|
|
|
1722
1845
|
"HEALTH_FACILITY",
|
|
1723
1846
|
"CRVS_OFFICE"
|
|
1724
1847
|
]);
|
|
1725
|
-
var AdministrativeAreaConfiguration = import_v43.default.object({
|
|
1726
|
-
partOf: FieldReference.optional().describe("Parent location"),
|
|
1727
|
-
type: AdministrativeAreas,
|
|
1728
|
-
allowedLocations: AllowedLocations
|
|
1729
|
-
}).describe("Administrative area options");
|
|
1730
1848
|
var AdministrativeAreaField = BaseField.extend({
|
|
1731
1849
|
type: import_v43.default.literal(FieldType.ADMINISTRATIVE_AREA),
|
|
1732
|
-
defaultValue: import_v43.default.union([NonEmptyTextValue, SerializedUserField]).optional(),
|
|
1733
|
-
configuration:
|
|
1734
|
-
|
|
1850
|
+
defaultValue: import_v43.default.union([NonEmptyTextValue, SerializedUserField, ComputedDefaultValue]).optional(),
|
|
1851
|
+
configuration: import_v43.default.object({
|
|
1852
|
+
partOf: FieldReference.optional().describe("Parent location"),
|
|
1853
|
+
type: AdministrativeAreas,
|
|
1854
|
+
allowedLocations: AllowedLocations
|
|
1855
|
+
}).describe("Administrative area options")
|
|
1856
|
+
}).meta({
|
|
1857
|
+
description: "Administrative area input field",
|
|
1858
|
+
id: "AdministrativeAreaField"
|
|
1859
|
+
});
|
|
1735
1860
|
var LocationInput = BaseField.extend({
|
|
1736
1861
|
type: import_v43.default.literal(FieldType.LOCATION),
|
|
1737
|
-
defaultValue: import_v43.default.union([NonEmptyTextValue, SerializedUserField]).optional(),
|
|
1862
|
+
defaultValue: import_v43.default.union([NonEmptyTextValue, SerializedUserField, ComputedDefaultValue]).optional(),
|
|
1738
1863
|
configuration: import_v43.default.object({
|
|
1739
1864
|
locationTypes: import_v43.default.array(import_v43.default.string()).optional().describe("Types of the locations that are available for selection."),
|
|
1740
1865
|
allowedLocations: AllowedLocations
|
|
1741
1866
|
}).optional()
|
|
1742
|
-
}).
|
|
1867
|
+
}).meta({
|
|
1868
|
+
description: "A field for selecting a location",
|
|
1869
|
+
id: "LocationInput"
|
|
1870
|
+
});
|
|
1743
1871
|
var FileUploadWithOptions = BaseField.extend({
|
|
1744
1872
|
type: import_v43.default.literal(FieldType.FILE_WITH_OPTIONS),
|
|
1745
1873
|
options: import_v43.default.array(SelectOption).describe("A list of options"),
|
|
1746
|
-
defaultValue: FileFieldWithOptionValue.optional(),
|
|
1874
|
+
defaultValue: FileFieldWithOptionValue.or(ComputedDefaultValue).optional(),
|
|
1747
1875
|
configuration: import_v43.default.object({
|
|
1748
1876
|
maxFileSize: import_v43.default.number().describe("Maximum file size in bytes").default(DEFAULT_MAX_FILE_SIZE_BYTES),
|
|
1749
1877
|
maxImageSize: import_v43.default.object({
|
|
@@ -1753,15 +1881,18 @@ var FileUploadWithOptions = BaseField.extend({
|
|
|
1753
1881
|
}).default({
|
|
1754
1882
|
maxFileSize: DEFAULT_MAX_FILE_SIZE_BYTES
|
|
1755
1883
|
})
|
|
1884
|
+
}).meta({
|
|
1885
|
+
description: "A field for uploading files with file type options",
|
|
1886
|
+
id: "FileUploadWithOptions"
|
|
1756
1887
|
});
|
|
1757
1888
|
var Facility = BaseField.extend({
|
|
1758
1889
|
type: import_v43.default.literal(FieldType.FACILITY),
|
|
1759
|
-
defaultValue: NonEmptyTextValue.optional(),
|
|
1890
|
+
defaultValue: NonEmptyTextValue.or(ComputedDefaultValue).optional(),
|
|
1760
1891
|
configuration: import_v43.default.object({ allowedLocations: AllowedLocations }).optional()
|
|
1761
1892
|
}).describe("Input field for a facility");
|
|
1762
1893
|
var Office = BaseField.extend({
|
|
1763
1894
|
type: import_v43.default.literal(FieldType.OFFICE),
|
|
1764
|
-
defaultValue: NonEmptyTextValue.optional(),
|
|
1895
|
+
defaultValue: NonEmptyTextValue.or(ComputedDefaultValue).optional(),
|
|
1765
1896
|
configuration: import_v43.default.object({ allowedLocations: AllowedLocations }).optional()
|
|
1766
1897
|
}).describe("Input field for an office");
|
|
1767
1898
|
var DefaultAddressFieldValue = DomesticAddressFieldValue.extend({
|
|
@@ -1797,8 +1928,11 @@ var Address = BaseField.extend({
|
|
|
1797
1928
|
).optional(),
|
|
1798
1929
|
allowedLocations: AllowedLocations
|
|
1799
1930
|
}).optional(),
|
|
1800
|
-
defaultValue: DefaultAddressFieldValue.optional()
|
|
1801
|
-
}).
|
|
1931
|
+
defaultValue: DefaultAddressFieldValue.or(ComputedDefaultValue).optional()
|
|
1932
|
+
}).meta({
|
|
1933
|
+
description: "Address input field \u2013 a combination of location and text fields",
|
|
1934
|
+
id: "Address"
|
|
1935
|
+
});
|
|
1802
1936
|
var StaticDataEntry = import_v43.default.object({
|
|
1803
1937
|
id: import_v43.default.string().describe("ID for the data entry."),
|
|
1804
1938
|
label: TranslationConfig,
|
|
@@ -1813,7 +1947,10 @@ var DataField = BaseField.extend({
|
|
|
1813
1947
|
subtitle: TranslationConfig.optional(),
|
|
1814
1948
|
data: import_v43.default.array(DataEntry)
|
|
1815
1949
|
})
|
|
1816
|
-
}).
|
|
1950
|
+
}).meta({
|
|
1951
|
+
description: "A field for displaying a table of read-only data",
|
|
1952
|
+
id: "DataField"
|
|
1953
|
+
});
|
|
1817
1954
|
var ButtonSize = import_v43.default.enum(["small", "medium", "large"]);
|
|
1818
1955
|
var ButtonType = import_v43.default.enum([
|
|
1819
1956
|
"primary",
|
|
@@ -1838,13 +1975,19 @@ var ButtonConfiguration = import_v43.default.object({
|
|
|
1838
1975
|
});
|
|
1839
1976
|
var ButtonField = BaseField.extend({
|
|
1840
1977
|
type: import_v43.default.literal(FieldType.BUTTON),
|
|
1841
|
-
defaultValue: ButtonFieldValue.optional(),
|
|
1978
|
+
defaultValue: ButtonFieldValue.or(ComputedDefaultValue).optional(),
|
|
1842
1979
|
configuration: ButtonConfiguration
|
|
1843
|
-
}).
|
|
1980
|
+
}).meta({
|
|
1981
|
+
description: "A generic button that can be used to trigger an action",
|
|
1982
|
+
id: "ButtonField"
|
|
1983
|
+
});
|
|
1844
1984
|
var FieldGroup = BaseField.extend({
|
|
1845
1985
|
type: import_v43.default.literal(FieldType.FIELD_GROUP),
|
|
1846
1986
|
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
1847
1987
|
fields: import_v43.default.lazy(() => import_v43.default.array(FieldConfig))
|
|
1988
|
+
}).meta({
|
|
1989
|
+
description: "A group of fields that are displayed together",
|
|
1990
|
+
id: "FieldGroup"
|
|
1848
1991
|
});
|
|
1849
1992
|
var AlphaPrintButton = BaseField.extend({
|
|
1850
1993
|
type: import_v43.default.literal(FieldType.ALPHA_PRINT_BUTTON),
|
|
@@ -1854,10 +1997,13 @@ var AlphaPrintButton = BaseField.extend({
|
|
|
1854
1997
|
"Label for the print button"
|
|
1855
1998
|
)
|
|
1856
1999
|
})
|
|
1857
|
-
}).
|
|
2000
|
+
}).meta({
|
|
2001
|
+
description: "An experimental print button field for printing certificates during the declaration process",
|
|
2002
|
+
id: "AlphaPrintButton"
|
|
2003
|
+
});
|
|
1858
2004
|
var HttpField = BaseField.extend({
|
|
1859
2005
|
type: import_v43.default.literal(FieldType.HTTP),
|
|
1860
|
-
defaultValue: HttpFieldValue.optional(),
|
|
2006
|
+
defaultValue: HttpFieldValue.or(ComputedDefaultValue).optional(),
|
|
1861
2007
|
configuration: import_v43.default.object({
|
|
1862
2008
|
trigger: FieldReference.optional().describe(
|
|
1863
2009
|
"Reference to the field that triggers the HTTP request when its value changes. If not provided, the HTTP request is triggered once on component mount."
|
|
@@ -1870,20 +2016,30 @@ var HttpField = BaseField.extend({
|
|
|
1870
2016
|
params: import_v43.default.record(import_v43.default.string(), import_v43.default.union([import_v43.default.string(), FieldReference])).optional(),
|
|
1871
2017
|
timeout: import_v43.default.number().default(15e3).describe("Request timeout in milliseconds")
|
|
1872
2018
|
})
|
|
1873
|
-
}).
|
|
2019
|
+
}).meta({
|
|
2020
|
+
description: "Makes a background HTTP request to an external service and stores the response so other fields can use it. Has no visible UI \u2014 pair with LOADER to show request status.",
|
|
2021
|
+
id: "HttpField"
|
|
2022
|
+
});
|
|
1874
2023
|
var AutocompleteField = BaseField.extend({
|
|
1875
2024
|
type: import_v43.default.literal(FieldType.AUTOCOMPLETE),
|
|
1876
2025
|
configuration: import_v43.default.object({
|
|
1877
|
-
url: import_v43.default.string().describe(
|
|
2026
|
+
url: import_v43.default.string().describe(
|
|
2027
|
+
"URL to fetch autocomplete suggestions from. This should be a country config server endpoint."
|
|
2028
|
+
).optional(),
|
|
1878
2029
|
method: import_v43.default.enum(["GET", "POST"]).default("GET").optional(),
|
|
1879
2030
|
defaultOptions: import_v43.default.array(
|
|
1880
2031
|
import_v43.default.object({
|
|
1881
2032
|
label: import_v43.default.string(),
|
|
1882
2033
|
value: import_v43.default.string()
|
|
1883
2034
|
})
|
|
1884
|
-
).optional()
|
|
2035
|
+
).optional().describe(
|
|
2036
|
+
"Manual entry is supported through configuration, allowing users to provide values not currently represented in the dataset."
|
|
2037
|
+
)
|
|
1885
2038
|
})
|
|
1886
|
-
}).
|
|
2039
|
+
}).meta({
|
|
2040
|
+
description: "Generic autocomplete component designed for use with large dictionary-based datasets. The component supports dynamic retrieval of options from configurable data sources and is intended for datasets that may contain tens or hundreds of thousands of records.",
|
|
2041
|
+
id: "AutocompleteField"
|
|
2042
|
+
});
|
|
1887
2043
|
var SearchField = HttpField.extend({
|
|
1888
2044
|
type: import_v43.default.literal(FieldType.SEARCH),
|
|
1889
2045
|
configuration: SearchQuery.pick({
|
|
@@ -1916,6 +2072,9 @@ var SearchField = HttpField.extend({
|
|
|
1916
2072
|
ok: TranslationConfig.optional()
|
|
1917
2073
|
}).optional()
|
|
1918
2074
|
})
|
|
2075
|
+
}).meta({
|
|
2076
|
+
description: "A search input field",
|
|
2077
|
+
id: "SearchField"
|
|
1919
2078
|
});
|
|
1920
2079
|
var LinkButtonField = BaseField.extend({
|
|
1921
2080
|
type: import_v43.default.literal(FieldType.LINK_BUTTON),
|
|
@@ -1924,28 +2083,35 @@ var LinkButtonField = BaseField.extend({
|
|
|
1924
2083
|
text: TranslationConfig.describe("Text to display on the button"),
|
|
1925
2084
|
icon: import_v43.default.string().optional().describe("Icon for the button. You can find icons from OpenCRVS UI-Kit.")
|
|
1926
2085
|
})
|
|
1927
|
-
}).
|
|
2086
|
+
}).meta({
|
|
2087
|
+
description: "A button that opens a URL link",
|
|
2088
|
+
id: "LinkButtonField"
|
|
2089
|
+
});
|
|
1928
2090
|
var VerificationStatus = BaseField.extend({
|
|
1929
2091
|
type: import_v43.default.literal(FieldType.VERIFICATION_STATUS),
|
|
1930
|
-
defaultValue: VerificationStatusValue.optional(),
|
|
2092
|
+
defaultValue: VerificationStatusValue.or(ComputedDefaultValue).optional(),
|
|
1931
2093
|
configuration: import_v43.default.object({
|
|
1932
2094
|
status: TranslationConfig.describe("Text to display on the status pill."),
|
|
1933
2095
|
description: TranslationConfig.describe(
|
|
1934
2096
|
"Explaining text on the banner in form."
|
|
1935
2097
|
)
|
|
1936
2098
|
})
|
|
2099
|
+
}).meta({
|
|
2100
|
+
description: "Displays a verification state (e.g. ID verified / pending). Often paired with ID_READER \u2014 it can read its value off an ID_READER rather than holding its own.",
|
|
2101
|
+
id: "VerificationStatus"
|
|
1937
2102
|
});
|
|
1938
2103
|
var QueryParamReaderField = BaseField.extend({
|
|
1939
2104
|
type: import_v43.default.literal(FieldType.QUERY_PARAM_READER),
|
|
1940
2105
|
configuration: import_v43.default.object({
|
|
1941
2106
|
pickParams: import_v43.default.array(import_v43.default.string()).describe("List of query parameters to read from the URL")
|
|
1942
2107
|
})
|
|
1943
|
-
}).
|
|
1944
|
-
"A field that maps URL query params into form values and clears them afterward"
|
|
1945
|
-
|
|
2108
|
+
}).meta({
|
|
2109
|
+
description: "A field that maps URL query params into form values and clears them afterward",
|
|
2110
|
+
id: "QueryParamReaderField"
|
|
2111
|
+
});
|
|
1946
2112
|
var QrReaderField = BaseField.extend({
|
|
1947
2113
|
type: import_v43.default.literal(FieldType.QR_READER),
|
|
1948
|
-
defaultValue: QrReaderFieldValue.optional(),
|
|
2114
|
+
defaultValue: QrReaderFieldValue.or(ComputedDefaultValue).optional(),
|
|
1949
2115
|
configuration: import_v43.default.object({
|
|
1950
2116
|
validator: import_v43.default.any().meta({
|
|
1951
2117
|
description: "JSON Schema to validate the scanned QR code data against before populating the form fields.",
|
|
@@ -1953,21 +2119,27 @@ var QrReaderField = BaseField.extend({
|
|
|
1953
2119
|
})
|
|
1954
2120
|
}).optional()
|
|
1955
2121
|
}).meta({
|
|
1956
|
-
description: "
|
|
2122
|
+
description: "QR code reader field, including optional JSON Schema validator.",
|
|
1957
2123
|
id: "QrReaderField"
|
|
1958
2124
|
});
|
|
1959
2125
|
var IdReaderField = BaseField.extend({
|
|
1960
2126
|
type: import_v43.default.literal(FieldType.ID_READER),
|
|
1961
|
-
defaultValue: IdReaderFieldValue.optional(),
|
|
2127
|
+
defaultValue: IdReaderFieldValue.or(ComputedDefaultValue).optional(),
|
|
1962
2128
|
methods: import_v43.default.array(
|
|
1963
2129
|
import_v43.default.union([QrReaderField, LinkButtonField]).describe("Methods for reading an ID")
|
|
1964
2130
|
)
|
|
2131
|
+
}).meta({
|
|
2132
|
+
description: "A wrapper around nested form fields, specifically QR_READER and LINK_BUTTON. It can hold the QR_READERs value.",
|
|
2133
|
+
id: "IdReaderField"
|
|
1965
2134
|
});
|
|
1966
2135
|
var CustomField = BaseField.extend({
|
|
1967
2136
|
type: import_v43.default.literal(FieldType._EXPERIMENTAL_CUSTOM),
|
|
1968
2137
|
defaultValue: CustomFieldValue.optional(),
|
|
1969
2138
|
src: import_v43.default.string().describe("Module source path for the custom field component"),
|
|
1970
2139
|
configuration: import_v43.default.unknown().optional()
|
|
2140
|
+
}).meta({
|
|
2141
|
+
description: "An expiremental custom field that is defined by a module source path",
|
|
2142
|
+
id: "CustomField"
|
|
1971
2143
|
});
|
|
1972
2144
|
var FieldStyleVariant = import_v43.default.enum(["default", "highlighted"]);
|
|
1973
2145
|
var LoaderField = BaseField.extend({
|
|
@@ -1977,22 +2149,25 @@ var LoaderField = BaseField.extend({
|
|
|
1977
2149
|
configuration: import_v43.default.object({
|
|
1978
2150
|
text: TranslationConfig.describe("Display text above the loading spinner")
|
|
1979
2151
|
})
|
|
1980
|
-
}).
|
|
1981
|
-
"A non-interactive field that indicates an in progress operation in form"
|
|
1982
|
-
|
|
2152
|
+
}).meta({
|
|
2153
|
+
description: "A non-interactive field that indicates an in progress operation in form",
|
|
2154
|
+
id: "LoaderField"
|
|
2155
|
+
});
|
|
1983
2156
|
var HiddenField = BaseField.extend({
|
|
1984
2157
|
type: import_v43.default.literal(FieldType.ALPHA_HIDDEN),
|
|
1985
2158
|
required: import_v43.default.boolean().default(false).optional(),
|
|
1986
2159
|
defaultValue: TextValue.optional()
|
|
1987
|
-
}).
|
|
1988
|
-
"A non-interactive, hidden field that only hold a value in the form"
|
|
1989
|
-
|
|
2160
|
+
}).meta({
|
|
2161
|
+
description: "A non-interactive, hidden field that only hold a value in the form",
|
|
2162
|
+
id: "HiddenField"
|
|
2163
|
+
});
|
|
1990
2164
|
var UserRoleField = BaseField.extend({
|
|
1991
2165
|
type: import_v43.default.literal(FieldType.USER_ROLE),
|
|
1992
2166
|
defaultValue: TextValue.optional()
|
|
1993
|
-
}).
|
|
1994
|
-
"A select dropdown that is automatically populated with available user roles"
|
|
1995
|
-
|
|
2167
|
+
}).meta({
|
|
2168
|
+
description: "A select dropdown that is automatically populated with available user roles",
|
|
2169
|
+
id: "UserRoleField"
|
|
2170
|
+
});
|
|
1996
2171
|
var FieldConfig = import_v43.default.discriminatedUnion("type", [
|
|
1997
2172
|
FieldGroup,
|
|
1998
2173
|
Address,
|
|
@@ -2078,8 +2253,8 @@ var ApplicationConfig = z20.object({
|
|
|
2078
2253
|
})
|
|
2079
2254
|
),
|
|
2080
2255
|
PHONE_NUMBER_PATTERN: z20.string().or(z20.instanceof(RegExp)),
|
|
2081
|
-
USER_NOTIFICATION_DELIVERY_METHOD: z20.
|
|
2082
|
-
INFORMANT_NOTIFICATION_DELIVERY_METHOD: z20.
|
|
2256
|
+
USER_NOTIFICATION_DELIVERY_METHOD: z20.enum(["email", "sms"]),
|
|
2257
|
+
INFORMANT_NOTIFICATION_DELIVERY_METHOD: z20.enum(["email", "sms"]),
|
|
2083
2258
|
SEARCH_DEFAULT_CRITERIA: SearchCriteria.optional().default("TRACKING_ID"),
|
|
2084
2259
|
ADDITIONAL_USER_FIELDS: z20.array(FieldConfig).optional().default([])
|
|
2085
2260
|
});
|
|
@@ -2097,8 +2272,8 @@ var BackgroundConfig = z20.object({
|
|
|
2097
2272
|
var LoginConfig = z20.object({
|
|
2098
2273
|
COUNTRY: z20.string(),
|
|
2099
2274
|
LANGUAGES: z20.array(z20.string()),
|
|
2100
|
-
USER_NOTIFICATION_DELIVERY_METHOD: z20.
|
|
2101
|
-
INFORMANT_NOTIFICATION_DELIVERY_METHOD: z20.
|
|
2275
|
+
USER_NOTIFICATION_DELIVERY_METHOD: z20.enum(["email", "sms"]),
|
|
2276
|
+
INFORMANT_NOTIFICATION_DELIVERY_METHOD: z20.enum(["email", "sms"]),
|
|
2102
2277
|
PHONE_NUMBER_PATTERN: z20.string().or(z20.instanceof(RegExp)),
|
|
2103
2278
|
LOGIN_BACKGROUND: BackgroundConfig,
|
|
2104
2279
|
SENTRY: z20.string().optional()
|
|
@@ -2110,6 +2285,7 @@ var ClientConfig = z20.object({
|
|
|
2110
2285
|
COUNTRY: z20.string(),
|
|
2111
2286
|
LANGUAGES: z20.array(z20.string()),
|
|
2112
2287
|
SENTRY: z20.string().optional(),
|
|
2288
|
+
LOGIN_URL: z20.string().optional(),
|
|
2113
2289
|
REGISTER_BACKGROUND: BackgroundConfig,
|
|
2114
2290
|
DASHBOARDS: z20.array(
|
|
2115
2291
|
z20.object({
|