@genesislcap/foundation-forms 15.50.2 → 15.50.3-holiday-picker.1

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.
Files changed (27) hide show
  1. package/dist/custom-elements.json +390 -0
  2. package/dist/dts/index.d.ts +2 -0
  3. package/dist/dts/index.d.ts.map +1 -1
  4. package/dist/dts/jsonforms/renderers/DatePickerControlRenderer.d.ts +40 -0
  5. package/dist/dts/jsonforms/renderers/DatePickerControlRenderer.d.ts.map +1 -0
  6. package/dist/dts/jsonforms/renderers/RenderersRanks.d.ts +2 -0
  7. package/dist/dts/jsonforms/renderers/RenderersRanks.d.ts.map +1 -1
  8. package/dist/dts/jsonforms/renderers/ValueDateControlRenderer.d.ts +41 -0
  9. package/dist/dts/jsonforms/renderers/ValueDateControlRenderer.d.ts.map +1 -0
  10. package/dist/dts/jsonforms/renderers/date-value-format.d.ts +44 -0
  11. package/dist/dts/jsonforms/renderers/date-value-format.d.ts.map +1 -0
  12. package/dist/dts/jsonforms/renderers/renderer-data.d.ts +17 -0
  13. package/dist/dts/jsonforms/renderers/renderer-data.d.ts.map +1 -0
  14. package/dist/dts/types.d.ts +184 -1
  15. package/dist/dts/types.d.ts.map +1 -1
  16. package/dist/dts/utils/validation.d.ts +32 -0
  17. package/dist/dts/utils/validation.d.ts.map +1 -1
  18. package/dist/esm/index.js +2 -0
  19. package/dist/esm/jsonforms/renderers/DatePickerControlRenderer.js +131 -0
  20. package/dist/esm/jsonforms/renderers/RenderersRanks.js +2 -0
  21. package/dist/esm/jsonforms/renderers/ValueDateControlRenderer.js +223 -0
  22. package/dist/esm/jsonforms/renderers/date-value-format.js +70 -0
  23. package/dist/esm/jsonforms/renderers/renderer-data.js +36 -0
  24. package/dist/esm/utils/validation.js +39 -0
  25. package/dist/foundation-forms.api.json +479 -2
  26. package/dist/foundation-forms.d.ts +278 -1
  27. package/package.json +13 -13
@@ -0,0 +1,70 @@
1
+ const ISO_DATE = /^(\d{4})-(\d{2})-(\d{2})$/;
2
+ /** The date picker's internal `value` wire format, `MM-DD-YYYY` (`DATE_PICKER_VALUE_FORMAT`). */
3
+ const PICKER_WIRE_VALUE = /^(\d{2})-(\d{2})-(\d{4})$/;
4
+ const pad = (n) => n.toString().padStart(2, '0');
5
+ /**
6
+ * Parses a stored date control value — an ISO `YYYY-MM-DD` string or UTC-midnight epoch
7
+ * milliseconds — into its calendar parts. Returns `undefined` for anything else.
8
+ * @internal
9
+ */
10
+ export function parseDateValue(value) {
11
+ if (typeof value === 'number' && Number.isFinite(value)) {
12
+ const date = new Date(value);
13
+ return {
14
+ year: date.getUTCFullYear(),
15
+ month: date.getUTCMonth() + 1,
16
+ day: date.getUTCDate(),
17
+ };
18
+ }
19
+ const match = typeof value === 'string' ? ISO_DATE.exec(value) : null;
20
+ return match
21
+ ? { year: Number(match[1]), month: Number(match[2]), day: Number(match[3]) }
22
+ : undefined;
23
+ }
24
+ /**
25
+ * Serialises calendar parts as an ISO `YYYY-MM-DD` string or UTC-midnight epoch milliseconds.
26
+ * @internal
27
+ */
28
+ export function formatDateValue(parts, valueFormat) {
29
+ return valueFormat === 'epoch'
30
+ ? Date.UTC(parts.year, parts.month - 1, parts.day)
31
+ : `${parts.year}-${pad(parts.month)}-${pad(parts.day)}`;
32
+ }
33
+ /**
34
+ * Converts a date control value (ISO `YYYY-MM-DD` or UTC-midnight epoch milliseconds) into
35
+ * `valueFormat`, or `undefined` when it isn't a date (which clears the control).
36
+ * @internal
37
+ */
38
+ export function toDateControlValue(value, valueFormat) {
39
+ const parts = parseDateValue(value);
40
+ return parts ? formatDateValue(parts, valueFormat) : undefined;
41
+ }
42
+ /**
43
+ * Normalises a date control value to ISO `YYYY-MM-DD`, or `undefined` when it isn't a date.
44
+ * @internal
45
+ */
46
+ export function toIsoDateValue(value) {
47
+ return toDateControlValue(value, 'iso');
48
+ }
49
+ /**
50
+ * Converts a stored date control value (either storage format) into the picker's `MM-DD-YYYY`
51
+ * wire value, or `''` when it isn't a date.
52
+ * @internal
53
+ */
54
+ export function toPickerWireValue(value) {
55
+ const parts = parseDateValue(value);
56
+ return parts ? `${pad(parts.month)}-${pad(parts.day)}-${parts.year}` : '';
57
+ }
58
+ /**
59
+ * Converts the picker's `value-changed` detail into a storage format; the inverse of
60
+ * `toPickerWireValue`.
61
+ * @internal
62
+ */
63
+ export function fromPickerWireValue(value, valueFormat) {
64
+ const match = value ? PICKER_WIRE_VALUE.exec(value) : null;
65
+ if (!match) {
66
+ return undefined;
67
+ }
68
+ const [, month, day, year] = match;
69
+ return formatDateValue({ year: Number(year), month: Number(month), day: Number(day) }, valueFormat);
70
+ }
@@ -0,0 +1,36 @@
1
+ /** A control's `uischema.options`, typed for its renderer. */
2
+ export function rendererOptionsOf(x) {
3
+ var _a, _b;
4
+ return ((_b = (_a = x.control.uischema) === null || _a === void 0 ? void 0 : _a.options) !== null && _b !== void 0 ? _b : {});
5
+ }
6
+ /**
7
+ * The whole form's data, not just this control's, so a control nested anywhere (including in
8
+ * array rows) can read top-level sibling fields such as a trade currency or start date.
9
+ */
10
+ export function rootDataOf(x) {
11
+ var _a, _b, _c;
12
+ return (_c = (_b = (_a = x.jsonforms) === null || _a === void 0 ? void 0 : _a.core) === null || _b === void 0 ? void 0 : _b.data) !== null && _c !== void 0 ? _c : {};
13
+ }
14
+ /** A top-level sibling field's value when it's a non-empty string, else `undefined`. */
15
+ export function siblingStringOf(x, field) {
16
+ if (!field) {
17
+ return undefined;
18
+ }
19
+ const value = rootDataOf(x)[field];
20
+ return typeof value === 'string' && value ? value : undefined;
21
+ }
22
+ /**
23
+ * Calendar codes from a fixed list plus a top-level sibling field, which may hold an array or a
24
+ * string separated by `;` (as Genesis calendar fields store them), commas or spaces. Returned
25
+ * space-separated, deduped, for a date-picker code attribute; `undefined` when there are none.
26
+ */
27
+ export function calendarCodesOf(x, fixed, field) {
28
+ const value = field ? rootDataOf(x)[field] : undefined;
29
+ const fromField = Array.isArray(value)
30
+ ? value.filter((code) => typeof code === 'string')
31
+ : typeof value === 'string'
32
+ ? value.split(/[\s,;]+/)
33
+ : [];
34
+ const codes = Array.from(new Set([...(fixed !== null && fixed !== void 0 ? fixed : []), ...fromField].map((code) => code.trim()).filter(Boolean)));
35
+ return codes.length ? codes.join(' ') : undefined;
36
+ }
@@ -1,3 +1,4 @@
1
+ import { toIsoDateValue } from '../jsonforms/renderers/date-value-format';
1
2
  /**
2
3
  * Ensures the value of the current field (the one the validator is on) matches the one of the target field.
3
4
  * @param target - any other field
@@ -23,6 +24,44 @@ export const mustMatch = (target) => {
23
24
  ];
24
25
  };
25
26
  };
27
+ const dateOrderValidator = (target, violates, message) => (data, path) => {
28
+ if (!(path === null || path === void 0 ? void 0 : path.length) || !(target === null || target === void 0 ? void 0 : target.length) || !data)
29
+ return [];
30
+ // ISO `YYYY-MM-DD` strings compare chronologically; either field may hold ISO or epoch.
31
+ const value = toIsoDateValue(data === null || data === void 0 ? void 0 : data[path]);
32
+ const targetValue = toIsoDateValue(data === null || data === void 0 ? void 0 : data[target]);
33
+ if (!value || !targetValue || !violates(value, targetValue))
34
+ return [];
35
+ return [
36
+ {
37
+ instancePath: `/${path}`,
38
+ message,
39
+ schemaPath: '',
40
+ keyword: '',
41
+ params: {},
42
+ },
43
+ ];
44
+ };
45
+ /**
46
+ * Ensures the date in the current field (the one the validator is on) is on or after the date in
47
+ * the target field, e.g. an end date that can't be before its start date. Either field may hold
48
+ * an ISO `YYYY-MM-DD` string or epoch milliseconds; no error while either is empty.
49
+ * @param target - the other date field, e.g. `'START_DATE'`
50
+ * @param message - the error shown on the current field; defaults to `Must not be before <target>`
51
+ * @returns a validator function that will be run by the smart form during the client-side validation stage
52
+ * @public
53
+ */
54
+ export const mustBeOnOrAfter = (target, message = `Must not be before ${target}`) => dateOrderValidator(target, (value, targetValue) => value < targetValue, message);
55
+ /**
56
+ * Ensures the date in the current field (the one the validator is on) is on or before the date
57
+ * in the target field, e.g. a start date that can't be after its end date. Either field may hold
58
+ * an ISO `YYYY-MM-DD` string or epoch milliseconds; no error while either is empty.
59
+ * @param target - the other date field, e.g. `'END_DATE'`
60
+ * @param message - the error shown on the current field; defaults to `Must not be after <target>`
61
+ * @returns a validator function that will be run by the smart form during the client-side validation stage
62
+ * @public
63
+ */
64
+ export const mustBeOnOrBefore = (target, message = `Must not be after ${target}`) => dateOrderValidator(target, (value, targetValue) => value > targetValue, message);
26
65
  const describeError = (prop, parentProps) => {
27
66
  const pSchema = parentProps[prop] || {};
28
67
  const constraints = ['required'];
@@ -1241,6 +1241,192 @@
1241
1241
  "endIndex": 2
1242
1242
  }
1243
1243
  },
1244
+ {
1245
+ "kind": "Variable",
1246
+ "canonicalReference": "@genesislcap/foundation-forms!DatePickerControlRendererEntry:var",
1247
+ "docComment": "/**\n * Renderer entry for a date-picker control. Opt in per form via `additionalRenderers`:\n * ```ts\n * import { DatePickerControlRendererEntry } from '@genesislcap/foundation-forms';\n * form.additionalRenderers = [DatePickerControlRendererEntry];\n * ```\n *\n * It then matches every `format: \"date\"` string field, plus fields with `options.datePicker`.\n *\n * @public\n */\n",
1248
+ "excerptTokens": [
1249
+ {
1250
+ "kind": "Content",
1251
+ "text": "DatePickerControlRendererEntry: "
1252
+ },
1253
+ {
1254
+ "kind": "Reference",
1255
+ "text": "RendererEntry",
1256
+ "canonicalReference": "@genesislcap/foundation-forms!RendererEntry:type"
1257
+ }
1258
+ ],
1259
+ "fileUrlPath": "src/jsonforms/renderers/DatePickerControlRenderer.ts",
1260
+ "isReadonly": true,
1261
+ "releaseTag": "Public",
1262
+ "name": "DatePickerControlRendererEntry",
1263
+ "variableTypeTokenRange": {
1264
+ "startIndex": 1,
1265
+ "endIndex": 2
1266
+ }
1267
+ },
1268
+ {
1269
+ "kind": "Function",
1270
+ "canonicalReference": "@genesislcap/foundation-forms!DatePickerControlRendererTemplate:function(1)",
1271
+ "docComment": "/**\n * Renders a `<prefix-date-picker>` for a date control, storing an ISO `YYYY-MM-DD` string by default or UTC-midnight epoch milliseconds with `options.valueFormat: 'epoch'`.\n *\n * `allow-empty` keeps an unset field empty rather than defaulting to today, and `strict-free-text` reverts typed dates the calendar couldn't pick. The picker has no `disabled` state, so a disabled control blocks pointer events on its wrapper.\n *\n * @public\n */\n",
1272
+ "excerptTokens": [
1273
+ {
1274
+ "kind": "Content",
1275
+ "text": "DatePickerControlRendererTemplate: (prefix?: "
1276
+ },
1277
+ {
1278
+ "kind": "Content",
1279
+ "text": "string"
1280
+ },
1281
+ {
1282
+ "kind": "Content",
1283
+ "text": ") => "
1284
+ },
1285
+ {
1286
+ "kind": "Content",
1287
+ "text": "import(\"@microsoft/fast-element\")."
1288
+ },
1289
+ {
1290
+ "kind": "Reference",
1291
+ "text": "ViewTemplate",
1292
+ "canonicalReference": "@microsoft/fast-element!ViewTemplate:class"
1293
+ },
1294
+ {
1295
+ "kind": "Content",
1296
+ "text": "<"
1297
+ },
1298
+ {
1299
+ "kind": "Reference",
1300
+ "text": "DispatchRenderer",
1301
+ "canonicalReference": "@genesislcap/foundation-forms!~DispatchRenderer:class"
1302
+ },
1303
+ {
1304
+ "kind": "Content",
1305
+ "text": ", any>"
1306
+ }
1307
+ ],
1308
+ "fileUrlPath": "src/jsonforms/renderers/DatePickerControlRenderer.ts",
1309
+ "returnTypeTokenRange": {
1310
+ "startIndex": 3,
1311
+ "endIndex": 8
1312
+ },
1313
+ "releaseTag": "Public",
1314
+ "overloadIndex": 1,
1315
+ "parameters": [
1316
+ {
1317
+ "parameterName": "prefix",
1318
+ "parameterTypeTokenRange": {
1319
+ "startIndex": 1,
1320
+ "endIndex": 2
1321
+ },
1322
+ "isOptional": true
1323
+ }
1324
+ ],
1325
+ "name": "DatePickerControlRendererTemplate"
1326
+ },
1327
+ {
1328
+ "kind": "TypeAlias",
1329
+ "canonicalReference": "@genesislcap/foundation-forms!DatePickerRendererOptions:type",
1330
+ "docComment": "/**\n * Configuration options for the date-picker control renderer (`DatePickerControlRendererEntry`).\n *\n * @public\n */\n",
1331
+ "excerptTokens": [
1332
+ {
1333
+ "kind": "Content",
1334
+ "text": "export type DatePickerRendererOptions = "
1335
+ },
1336
+ {
1337
+ "kind": "Reference",
1338
+ "text": "StandardRendererOptions",
1339
+ "canonicalReference": "@genesislcap/foundation-forms!StandardRendererOptions:interface"
1340
+ },
1341
+ {
1342
+ "kind": "Content",
1343
+ "text": " & {\n datePicker?: true;\n valueFormat?: "
1344
+ },
1345
+ {
1346
+ "kind": "Reference",
1347
+ "text": "DateValueFormat",
1348
+ "canonicalReference": "@genesislcap/foundation-forms!DateValueFormat:type"
1349
+ },
1350
+ {
1351
+ "kind": "Content",
1352
+ "text": ";\n locale?: string;\n displayFormat?: string;\n hideWeekends?: boolean;\n holidayCalendars?: boolean;\n businessCenters?: string[];\n businessCentersField?: string;\n exchangeCodes?: string[];\n exchangeCodesField?: string;\n currencyCodes?: string[];\n currencyField?: string;\n minDate?: string;\n maxDate?: string;\n minDateField?: string;\n maxDateField?: string;\n rangeEndField?: string;\n allowFreeText?: boolean;\n}"
1353
+ },
1354
+ {
1355
+ "kind": "Content",
1356
+ "text": ";"
1357
+ }
1358
+ ],
1359
+ "fileUrlPath": "src/types.ts",
1360
+ "releaseTag": "Public",
1361
+ "name": "DatePickerRendererOptions",
1362
+ "typeTokenRange": {
1363
+ "startIndex": 1,
1364
+ "endIndex": 5
1365
+ }
1366
+ },
1367
+ {
1368
+ "kind": "TypeAlias",
1369
+ "canonicalReference": "@genesislcap/foundation-forms!DateValueFormat:type",
1370
+ "docComment": "/**\n * Storage format for a date written by the date-picker and value-date control renderers: - `'iso'` — an ISO 8601 calendar date string, `YYYY-MM-DD` (e.g. `2026-09-25`). Matches JSON Schema `format: \"date\"` and the FpML/CDM convention, sorts correctly as a string, and parses natively everywhere. - `'epoch'` — UTC-midnight epoch milliseconds, the genesis `DATE` wire format.\n *\n * @public\n */\n",
1371
+ "excerptTokens": [
1372
+ {
1373
+ "kind": "Content",
1374
+ "text": "export type DateValueFormat = "
1375
+ },
1376
+ {
1377
+ "kind": "Content",
1378
+ "text": "'iso' | 'epoch'"
1379
+ },
1380
+ {
1381
+ "kind": "Content",
1382
+ "text": ";"
1383
+ }
1384
+ ],
1385
+ "fileUrlPath": "src/types.ts",
1386
+ "releaseTag": "Public",
1387
+ "name": "DateValueFormat",
1388
+ "typeTokenRange": {
1389
+ "startIndex": 1,
1390
+ "endIndex": 2
1391
+ }
1392
+ },
1393
+ {
1394
+ "kind": "Variable",
1395
+ "canonicalReference": "@genesislcap/foundation-forms!DEFAULT_INDEX_CONVENTIONS:var",
1396
+ "docComment": "/**\n * Default settlement convention per overnight benchmark index, applied when the control's `options.indexField` sibling carries one of these codes: a short name (`SOFR`) or its FpML `floatingRateIndexScheme` code (`USD-SOFR`, checked against scheme 3-14).\n *\n * @public\n */\n",
1397
+ "excerptTokens": [
1398
+ {
1399
+ "kind": "Content",
1400
+ "text": "DEFAULT_INDEX_CONVENTIONS: "
1401
+ },
1402
+ {
1403
+ "kind": "Reference",
1404
+ "text": "Record",
1405
+ "canonicalReference": "!Record:type"
1406
+ },
1407
+ {
1408
+ "kind": "Content",
1409
+ "text": "<string, "
1410
+ },
1411
+ {
1412
+ "kind": "Reference",
1413
+ "text": "IndexConvention",
1414
+ "canonicalReference": "@genesislcap/foundation-forms!~IndexConvention:interface"
1415
+ },
1416
+ {
1417
+ "kind": "Content",
1418
+ "text": ">"
1419
+ }
1420
+ ],
1421
+ "fileUrlPath": "src/jsonforms/renderers/ValueDateControlRenderer.ts",
1422
+ "isReadonly": true,
1423
+ "releaseTag": "Public",
1424
+ "name": "DEFAULT_INDEX_CONVENTIONS",
1425
+ "variableTypeTokenRange": {
1426
+ "startIndex": 1,
1427
+ "endIndex": 5
1428
+ }
1429
+ },
1244
1430
  {
1245
1431
  "kind": "Function",
1246
1432
  "canonicalReference": "@genesislcap/foundation-forms!downloadCsvTemplate:function(1)",
@@ -4045,6 +4231,120 @@
4045
4231
  "endIndex": 9
4046
4232
  }
4047
4233
  },
4234
+ {
4235
+ "kind": "Function",
4236
+ "canonicalReference": "@genesislcap/foundation-forms!mustBeOnOrAfter:function(1)",
4237
+ "docComment": "/**\n * Ensures the date in the current field (the one the validator is on) is on or after the date in the target field, e.g. an end date that can't be before its start date. Either field may hold an ISO `YYYY-MM-DD` string or epoch milliseconds; no error while either is empty.\n *\n * @param target - the other date field, e.g. `'START_DATE'`\n *\n * @param message - the error shown on the current field; defaults to `Must not be before <target>`\n *\n * @returns a validator function that will be run by the smart form during the client-side validation stage\n *\n * @public\n */\n",
4238
+ "excerptTokens": [
4239
+ {
4240
+ "kind": "Content",
4241
+ "text": "mustBeOnOrAfter: (target: "
4242
+ },
4243
+ {
4244
+ "kind": "Content",
4245
+ "text": "string"
4246
+ },
4247
+ {
4248
+ "kind": "Content",
4249
+ "text": ", message?: "
4250
+ },
4251
+ {
4252
+ "kind": "Content",
4253
+ "text": "string"
4254
+ },
4255
+ {
4256
+ "kind": "Content",
4257
+ "text": ") => "
4258
+ },
4259
+ {
4260
+ "kind": "Content",
4261
+ "text": "(data: any, path: any) => {\n instancePath: string;\n message: string;\n schemaPath: string;\n keyword: string;\n params: {};\n}[]"
4262
+ }
4263
+ ],
4264
+ "fileUrlPath": "src/utils/validation.ts",
4265
+ "returnTypeTokenRange": {
4266
+ "startIndex": 5,
4267
+ "endIndex": 6
4268
+ },
4269
+ "releaseTag": "Public",
4270
+ "overloadIndex": 1,
4271
+ "parameters": [
4272
+ {
4273
+ "parameterName": "target",
4274
+ "parameterTypeTokenRange": {
4275
+ "startIndex": 1,
4276
+ "endIndex": 2
4277
+ },
4278
+ "isOptional": false
4279
+ },
4280
+ {
4281
+ "parameterName": "message",
4282
+ "parameterTypeTokenRange": {
4283
+ "startIndex": 3,
4284
+ "endIndex": 4
4285
+ },
4286
+ "isOptional": true
4287
+ }
4288
+ ],
4289
+ "name": "mustBeOnOrAfter"
4290
+ },
4291
+ {
4292
+ "kind": "Function",
4293
+ "canonicalReference": "@genesislcap/foundation-forms!mustBeOnOrBefore:function(1)",
4294
+ "docComment": "/**\n * Ensures the date in the current field (the one the validator is on) is on or before the date in the target field, e.g. a start date that can't be after its end date. Either field may hold an ISO `YYYY-MM-DD` string or epoch milliseconds; no error while either is empty.\n *\n * @param target - the other date field, e.g. `'END_DATE'`\n *\n * @param message - the error shown on the current field; defaults to `Must not be after <target>`\n *\n * @returns a validator function that will be run by the smart form during the client-side validation stage\n *\n * @public\n */\n",
4295
+ "excerptTokens": [
4296
+ {
4297
+ "kind": "Content",
4298
+ "text": "mustBeOnOrBefore: (target: "
4299
+ },
4300
+ {
4301
+ "kind": "Content",
4302
+ "text": "string"
4303
+ },
4304
+ {
4305
+ "kind": "Content",
4306
+ "text": ", message?: "
4307
+ },
4308
+ {
4309
+ "kind": "Content",
4310
+ "text": "string"
4311
+ },
4312
+ {
4313
+ "kind": "Content",
4314
+ "text": ") => "
4315
+ },
4316
+ {
4317
+ "kind": "Content",
4318
+ "text": "(data: any, path: any) => {\n instancePath: string;\n message: string;\n schemaPath: string;\n keyword: string;\n params: {};\n}[]"
4319
+ }
4320
+ ],
4321
+ "fileUrlPath": "src/utils/validation.ts",
4322
+ "returnTypeTokenRange": {
4323
+ "startIndex": 5,
4324
+ "endIndex": 6
4325
+ },
4326
+ "releaseTag": "Public",
4327
+ "overloadIndex": 1,
4328
+ "parameters": [
4329
+ {
4330
+ "parameterName": "target",
4331
+ "parameterTypeTokenRange": {
4332
+ "startIndex": 1,
4333
+ "endIndex": 2
4334
+ },
4335
+ "isOptional": false
4336
+ },
4337
+ {
4338
+ "parameterName": "message",
4339
+ "parameterTypeTokenRange": {
4340
+ "startIndex": 3,
4341
+ "endIndex": 4
4342
+ },
4343
+ "isOptional": true
4344
+ }
4345
+ ],
4346
+ "name": "mustBeOnOrBefore"
4347
+ },
4048
4348
  {
4049
4349
  "kind": "Function",
4050
4350
  "canonicalReference": "@genesislcap/foundation-forms!mustMatch:function(1)",
@@ -5756,7 +6056,43 @@
5756
6056
  },
5757
6057
  {
5758
6058
  "kind": "Content",
5759
- "text": ", 'data'>>"
6059
+ "text": ", 'data'>> & "
6060
+ },
6061
+ {
6062
+ "kind": "Reference",
6063
+ "text": "Partial",
6064
+ "canonicalReference": "!Partial:type"
6065
+ },
6066
+ {
6067
+ "kind": "Content",
6068
+ "text": "<"
6069
+ },
6070
+ {
6071
+ "kind": "Reference",
6072
+ "text": "ValueDateRendererOptions",
6073
+ "canonicalReference": "@genesislcap/foundation-forms!ValueDateRendererOptions:type"
6074
+ },
6075
+ {
6076
+ "kind": "Content",
6077
+ "text": "> & "
6078
+ },
6079
+ {
6080
+ "kind": "Reference",
6081
+ "text": "Partial",
6082
+ "canonicalReference": "!Partial:type"
6083
+ },
6084
+ {
6085
+ "kind": "Content",
6086
+ "text": "<"
6087
+ },
6088
+ {
6089
+ "kind": "Reference",
6090
+ "text": "DatePickerRendererOptions",
6091
+ "canonicalReference": "@genesislcap/foundation-forms!DatePickerRendererOptions:type"
6092
+ },
6093
+ {
6094
+ "kind": "Content",
6095
+ "text": ">"
5760
6096
  },
5761
6097
  {
5762
6098
  "kind": "Content",
@@ -5768,7 +6104,7 @@
5768
6104
  "name": "UiSchemaElementOptions",
5769
6105
  "typeTokenRange": {
5770
6106
  "startIndex": 1,
5771
- "endIndex": 49
6107
+ "endIndex": 57
5772
6108
  }
5773
6109
  },
5774
6110
  {
@@ -5841,6 +6177,147 @@
5841
6177
  "startIndex": 1,
5842
6178
  "endIndex": 6
5843
6179
  }
6180
+ },
6181
+ {
6182
+ "kind": "Variable",
6183
+ "canonicalReference": "@genesislcap/foundation-forms!ValueDateControlRendererEntry:var",
6184
+ "docComment": "/**\n * Renderer entry for a value-date control. Opt in per form via `additionalRenderers`:\n * ```ts\n * import { ValueDateControlRendererEntry } from '@genesislcap/foundation-forms';\n * form.additionalRenderers = [ValueDateControlRendererEntry];\n * ```\n *\n * and mark the field with `options: { valueDate: true, baseCurrencyField: 'BASE_CCY', ... }`.\n *\n * @public\n */\n",
6185
+ "excerptTokens": [
6186
+ {
6187
+ "kind": "Content",
6188
+ "text": "ValueDateControlRendererEntry: "
6189
+ },
6190
+ {
6191
+ "kind": "Reference",
6192
+ "text": "RendererEntry",
6193
+ "canonicalReference": "@genesislcap/foundation-forms!RendererEntry:type"
6194
+ }
6195
+ ],
6196
+ "fileUrlPath": "src/jsonforms/renderers/ValueDateControlRenderer.ts",
6197
+ "isReadonly": true,
6198
+ "releaseTag": "Public",
6199
+ "name": "ValueDateControlRendererEntry",
6200
+ "variableTypeTokenRange": {
6201
+ "startIndex": 1,
6202
+ "endIndex": 2
6203
+ }
6204
+ },
6205
+ {
6206
+ "kind": "Function",
6207
+ "canonicalReference": "@genesislcap/foundation-forms!ValueDateControlRendererTemplate:function(1)",
6208
+ "docComment": "/**\n * Renders a `<foundation-value-date>` bound to sibling fields (currency pair, index, trade date) via `options`, and writes the resolved delivery date back as this control's value.\n *\n * Every binding re-pushes on each form-wide re-render, so values the user can change in the widget are cached per renderer and echoed back instead of being reset.\n *\n * @public\n */\n",
6209
+ "excerptTokens": [
6210
+ {
6211
+ "kind": "Content",
6212
+ "text": "ValueDateControlRendererTemplate: (prefix?: "
6213
+ },
6214
+ {
6215
+ "kind": "Content",
6216
+ "text": "string"
6217
+ },
6218
+ {
6219
+ "kind": "Content",
6220
+ "text": ") => "
6221
+ },
6222
+ {
6223
+ "kind": "Content",
6224
+ "text": "import(\"@microsoft/fast-element\")."
6225
+ },
6226
+ {
6227
+ "kind": "Reference",
6228
+ "text": "ViewTemplate",
6229
+ "canonicalReference": "@microsoft/fast-element!ViewTemplate:class"
6230
+ },
6231
+ {
6232
+ "kind": "Content",
6233
+ "text": "<"
6234
+ },
6235
+ {
6236
+ "kind": "Reference",
6237
+ "text": "DispatchRenderer",
6238
+ "canonicalReference": "@genesislcap/foundation-forms!~DispatchRenderer:class"
6239
+ },
6240
+ {
6241
+ "kind": "Content",
6242
+ "text": ", any>"
6243
+ }
6244
+ ],
6245
+ "fileUrlPath": "src/jsonforms/renderers/ValueDateControlRenderer.ts",
6246
+ "returnTypeTokenRange": {
6247
+ "startIndex": 3,
6248
+ "endIndex": 8
6249
+ },
6250
+ "releaseTag": "Public",
6251
+ "overloadIndex": 1,
6252
+ "parameters": [
6253
+ {
6254
+ "parameterName": "prefix",
6255
+ "parameterTypeTokenRange": {
6256
+ "startIndex": 1,
6257
+ "endIndex": 2
6258
+ },
6259
+ "isOptional": true
6260
+ }
6261
+ ],
6262
+ "name": "ValueDateControlRendererTemplate"
6263
+ },
6264
+ {
6265
+ "kind": "TypeAlias",
6266
+ "canonicalReference": "@genesislcap/foundation-forms!ValueDateRendererOptions:type",
6267
+ "docComment": "/**\n * Configuration options for the value-date control renderer. Activated by `valueDate: true`; reads its currencies, index and trade date from sibling fields.\n *\n * @public\n */\n",
6268
+ "excerptTokens": [
6269
+ {
6270
+ "kind": "Content",
6271
+ "text": "export type ValueDateRendererOptions = "
6272
+ },
6273
+ {
6274
+ "kind": "Reference",
6275
+ "text": "StandardRendererOptions",
6276
+ "canonicalReference": "@genesislcap/foundation-forms!StandardRendererOptions:interface"
6277
+ },
6278
+ {
6279
+ "kind": "Content",
6280
+ "text": " & {\n valueDate: true;\n baseCurrencyField?: string;\n quoteCurrencyField?: string;\n indexField?: string;\n tradeDateField?: string;\n spotLag?: "
6281
+ },
6282
+ {
6283
+ "kind": "Reference",
6284
+ "text": "SpotLag",
6285
+ "canonicalReference": "@genesislcap/foundation-ui!SpotLag:type"
6286
+ },
6287
+ {
6288
+ "kind": "Content",
6289
+ "text": ";\n dayRollConvention?: "
6290
+ },
6291
+ {
6292
+ "kind": "Reference",
6293
+ "text": "DayRollConvention",
6294
+ "canonicalReference": "@genesislcap/foundation-ui!DayRollConvention:type"
6295
+ },
6296
+ {
6297
+ "kind": "Content",
6298
+ "text": ";\n valueFormat?: "
6299
+ },
6300
+ {
6301
+ "kind": "Reference",
6302
+ "text": "DateValueFormat",
6303
+ "canonicalReference": "@genesislcap/foundation-forms!DateValueFormat:type"
6304
+ },
6305
+ {
6306
+ "kind": "Content",
6307
+ "text": ";\n holidayCalendars?: boolean;\n}"
6308
+ },
6309
+ {
6310
+ "kind": "Content",
6311
+ "text": ";"
6312
+ }
6313
+ ],
6314
+ "fileUrlPath": "src/types.ts",
6315
+ "releaseTag": "Public",
6316
+ "name": "ValueDateRendererOptions",
6317
+ "typeTokenRange": {
6318
+ "startIndex": 1,
6319
+ "endIndex": 9
6320
+ }
5844
6321
  }
5845
6322
  ]
5846
6323
  }