@genesislcap/foundation-forms 14.427.0 → 14.427.2-alpha-e0ffaad.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.
Files changed (91) hide show
  1. package/dist/custom-elements.json +307 -389
  2. package/dist/dts/filters/filters.template.d.ts.map +1 -1
  3. package/dist/dts/form.d.ts +4 -10
  4. package/dist/dts/form.d.ts.map +1 -1
  5. package/dist/dts/form.styles.d.ts.map +1 -1
  6. package/dist/dts/form.template.d.ts.map +1 -1
  7. package/dist/dts/index.d.ts +2 -0
  8. package/dist/dts/index.d.ts.map +1 -1
  9. package/dist/dts/jsonforms/json-forms.d.ts +2 -2
  10. package/dist/dts/jsonforms/json-forms.d.ts.map +1 -1
  11. package/dist/dts/jsonforms/renderers/ArrayListWrapperRenderer.d.ts.map +1 -1
  12. package/dist/dts/jsonforms/renderers/BooleanControlRenderer.d.ts.map +1 -1
  13. package/dist/dts/jsonforms/renderers/CategorizationWrapperRenderer.d.ts.map +1 -1
  14. package/dist/dts/jsonforms/renderers/ConnectedMultiselectControlRenderer.d.ts.map +1 -1
  15. package/dist/dts/jsonforms/renderers/ConnectedSelectControlRenderer.d.ts.map +1 -1
  16. package/dist/dts/jsonforms/renderers/ControlWrapperRenderer.d.ts +31 -11
  17. package/dist/dts/jsonforms/renderers/ControlWrapperRenderer.d.ts.map +1 -1
  18. package/dist/dts/jsonforms/renderers/DateControlRenderer.d.ts +2 -1
  19. package/dist/dts/jsonforms/renderers/DateControlRenderer.d.ts.map +1 -1
  20. package/dist/dts/jsonforms/renderers/EnumControlRenderer.d.ts +2 -1
  21. package/dist/dts/jsonforms/renderers/EnumControlRenderer.d.ts.map +1 -1
  22. package/dist/dts/jsonforms/renderers/EnumRadioGroupControlRenderer.d.ts.map +1 -1
  23. package/dist/dts/jsonforms/renderers/FilterDateControlRenderer.d.ts +2 -1
  24. package/dist/dts/jsonforms/renderers/FilterDateControlRenderer.d.ts.map +1 -1
  25. package/dist/dts/jsonforms/renderers/FilterNumberControlRenderer.d.ts +2 -1
  26. package/dist/dts/jsonforms/renderers/FilterNumberControlRenderer.d.ts.map +1 -1
  27. package/dist/dts/jsonforms/renderers/FilterTimeControlRenderer.d.ts +2 -1
  28. package/dist/dts/jsonforms/renderers/FilterTimeControlRenderer.d.ts.map +1 -1
  29. package/dist/dts/jsonforms/renderers/LayoutArrayRenderer.d.ts +2 -1
  30. package/dist/dts/jsonforms/renderers/LayoutArrayRenderer.d.ts.map +1 -1
  31. package/dist/dts/jsonforms/renderers/LayoutFormGridRenderer.d.ts +2 -1
  32. package/dist/dts/jsonforms/renderers/LayoutFormGridRenderer.d.ts.map +1 -1
  33. package/dist/dts/jsonforms/renderers/LayoutGroupRenderer.d.ts +2 -1
  34. package/dist/dts/jsonforms/renderers/LayoutGroupRenderer.d.ts.map +1 -1
  35. package/dist/dts/jsonforms/renderers/LayoutHorizontalRenderer.d.ts +2 -1
  36. package/dist/dts/jsonforms/renderers/LayoutHorizontalRenderer.d.ts.map +1 -1
  37. package/dist/dts/jsonforms/renderers/LayoutRenderer.d.ts +21 -5
  38. package/dist/dts/jsonforms/renderers/LayoutRenderer.d.ts.map +1 -1
  39. package/dist/dts/jsonforms/renderers/LayoutVertical2ColumnsRenderer.d.ts +2 -1
  40. package/dist/dts/jsonforms/renderers/LayoutVertical2ColumnsRenderer.d.ts.map +1 -1
  41. package/dist/dts/jsonforms/renderers/MulticolumnDropdownControlRenderer.d.ts.map +1 -1
  42. package/dist/dts/jsonforms/renderers/NumberControlRenderer.d.ts +2 -1
  43. package/dist/dts/jsonforms/renderers/NumberControlRenderer.d.ts.map +1 -1
  44. package/dist/dts/jsonforms/renderers/SegmentedControlRenderer.d.ts.map +1 -1
  45. package/dist/dts/jsonforms/renderers/StepperWrapperRenderer.d.ts.map +1 -1
  46. package/dist/dts/jsonforms/renderers/StringArrayControlRenderer.d.ts.map +1 -1
  47. package/dist/dts/jsonforms/renderers/StringControlRenderer.d.ts.map +1 -1
  48. package/dist/dts/jsonforms/renderers/VerticalCategorizationWrapperRenderer.d.ts.map +1 -1
  49. package/dist/dts/jsonforms/renderers/dispatch-renderer.d.ts.map +1 -1
  50. package/dist/dts/jsonforms/testers/isOneOfNumber.d.ts.map +1 -1
  51. package/dist/dts/react.d.ts +0 -20
  52. package/dist/dts/types.d.ts +18 -0
  53. package/dist/dts/types.d.ts.map +1 -1
  54. package/dist/esm/filters/filters.template.js +1 -2
  55. package/dist/esm/form.js +2 -1
  56. package/dist/esm/form.styles.js +14 -40
  57. package/dist/esm/form.template.js +1 -2
  58. package/dist/esm/index.js +2 -0
  59. package/dist/esm/jsonforms/json-forms.js +28 -1
  60. package/dist/esm/jsonforms/renderers/ArrayListWrapperRenderer.js +48 -46
  61. package/dist/esm/jsonforms/renderers/BooleanControlRenderer.js +19 -20
  62. package/dist/esm/jsonforms/renderers/CategorizationWrapperRenderer.js +9 -4
  63. package/dist/esm/jsonforms/renderers/ConnectedMultiselectControlRenderer.js +38 -40
  64. package/dist/esm/jsonforms/renderers/ConnectedSelectControlRenderer.js +39 -39
  65. package/dist/esm/jsonforms/renderers/ControlWrapperRenderer.js +102 -131
  66. package/dist/esm/jsonforms/renderers/DateControlRenderer.js +41 -43
  67. package/dist/esm/jsonforms/renderers/EnumControlRenderer.js +27 -27
  68. package/dist/esm/jsonforms/renderers/EnumRadioGroupControlRenderer.js +30 -32
  69. package/dist/esm/jsonforms/renderers/FilterDateControlRenderer.js +81 -77
  70. package/dist/esm/jsonforms/renderers/FilterNumberControlRenderer.js +54 -51
  71. package/dist/esm/jsonforms/renderers/FilterTimeControlRenderer.js +69 -69
  72. package/dist/esm/jsonforms/renderers/LayoutArrayRenderer.js +7 -8
  73. package/dist/esm/jsonforms/renderers/LayoutFormGridRenderer.js +27 -26
  74. package/dist/esm/jsonforms/renderers/LayoutGroupRenderer.js +36 -32
  75. package/dist/esm/jsonforms/renderers/LayoutHorizontalRenderer.js +27 -26
  76. package/dist/esm/jsonforms/renderers/LayoutRenderer.js +36 -44
  77. package/dist/esm/jsonforms/renderers/LayoutVertical2ColumnsRenderer.js +18 -17
  78. package/dist/esm/jsonforms/renderers/MulticolumnDropdownControlRenderer.js +39 -41
  79. package/dist/esm/jsonforms/renderers/NumberControlRenderer.js +30 -30
  80. package/dist/esm/jsonforms/renderers/SegmentedControlRenderer.js +25 -27
  81. package/dist/esm/jsonforms/renderers/StepperWrapperRenderer.js +2 -1
  82. package/dist/esm/jsonforms/renderers/StringArrayControlRenderer.js +18 -20
  83. package/dist/esm/jsonforms/renderers/StringControlRenderer.js +41 -42
  84. package/dist/esm/jsonforms/renderers/VerticalCategorizationWrapperRenderer.js +13 -9
  85. package/dist/esm/jsonforms/renderers/dispatch-renderer.js +1 -0
  86. package/dist/esm/jsonforms/testers/isOneOfNumber.js +2 -1
  87. package/dist/foundation-forms.api.json +115 -3
  88. package/dist/foundation-forms.d.ts +75 -10
  89. package/dist/react.cjs +0 -14
  90. package/dist/react.mjs +0 -12
  91. package/package.json +15 -15
@@ -706,6 +706,30 @@
706
706
  "module": "./jsonforms/renderers/LayoutVerticalCategorizationRenderer"
707
707
  }
708
708
  },
709
+ {
710
+ "kind": "js",
711
+ "name": "controlWrapperTemplate",
712
+ "declaration": {
713
+ "name": "controlWrapperTemplate",
714
+ "module": "./jsonforms/renderers/ControlWrapperRenderer"
715
+ }
716
+ },
717
+ {
718
+ "kind": "js",
719
+ "name": "controlWrapperStyles",
720
+ "declaration": {
721
+ "name": "controlWrapperStyles",
722
+ "module": "./jsonforms/renderers/ControlWrapperRenderer"
723
+ }
724
+ },
725
+ {
726
+ "kind": "js",
727
+ "name": "layoutWrapperTemplate",
728
+ "declaration": {
729
+ "name": "layoutWrapperTemplate",
730
+ "module": "./jsonforms/renderers/LayoutRenderer"
731
+ }
732
+ },
709
733
  {
710
734
  "kind": "js",
711
735
  "name": "*",
@@ -1291,234 +1315,6 @@
1291
1315
  }
1292
1316
  ]
1293
1317
  },
1294
- {
1295
- "kind": "javascript-module",
1296
- "path": "src/jsonforms/json-forms.ts",
1297
- "declarations": [
1298
- {
1299
- "kind": "class",
1300
- "description": "JSON Forms host element for schema-driven UI.",
1301
- "name": "JSONForms",
1302
- "members": [
1303
- {
1304
- "kind": "field",
1305
- "name": "submitted",
1306
- "type": {
1307
- "text": "boolean"
1308
- }
1309
- },
1310
- {
1311
- "kind": "field",
1312
- "name": "prefix"
1313
- },
1314
- {
1315
- "kind": "method",
1316
- "name": "prefixChanged"
1317
- },
1318
- {
1319
- "kind": "field",
1320
- "name": "jsonforms"
1321
- },
1322
- {
1323
- "kind": "field",
1324
- "name": "i18n"
1325
- },
1326
- {
1327
- "kind": "field",
1328
- "name": "uichemaToUse"
1329
- },
1330
- {
1331
- "kind": "field",
1332
- "name": "schema"
1333
- },
1334
- {
1335
- "kind": "method",
1336
- "name": "schemaChanged"
1337
- },
1338
- {
1339
- "kind": "field",
1340
- "name": "uischema",
1341
- "type": {
1342
- "text": "UISchemaElement"
1343
- }
1344
- },
1345
- {
1346
- "kind": "method",
1347
- "name": "uischemaChanged"
1348
- },
1349
- {
1350
- "kind": "field",
1351
- "name": "data"
1352
- },
1353
- {
1354
- "kind": "method",
1355
- "name": "dataChanged"
1356
- },
1357
- {
1358
- "kind": "field",
1359
- "name": "renderers",
1360
- "type": {
1361
- "text": "JsonFormsRendererRegistryEntry[]"
1362
- }
1363
- },
1364
- {
1365
- "kind": "method",
1366
- "name": "renderersChanged"
1367
- },
1368
- {
1369
- "kind": "field",
1370
- "name": "validationMode",
1371
- "type": {
1372
- "text": "ValidationMode"
1373
- }
1374
- },
1375
- {
1376
- "kind": "method",
1377
- "name": "validationModeChanged"
1378
- },
1379
- {
1380
- "kind": "field",
1381
- "name": "ajv",
1382
- "type": {
1383
- "text": "Ajv"
1384
- }
1385
- },
1386
- {
1387
- "kind": "method",
1388
- "name": "ajvChanged"
1389
- },
1390
- {
1391
- "kind": "field",
1392
- "name": "readonly",
1393
- "type": {
1394
- "text": "boolean"
1395
- }
1396
- },
1397
- {
1398
- "kind": "method",
1399
- "name": "readonlyChanged"
1400
- },
1401
- {
1402
- "kind": "field",
1403
- "name": "config",
1404
- "type": {
1405
- "text": "any"
1406
- }
1407
- },
1408
- {
1409
- "kind": "method",
1410
- "name": "configChanged"
1411
- },
1412
- {
1413
- "kind": "field",
1414
- "name": "rowSubmitStatuses",
1415
- "type": {
1416
- "text": "Map<number, BulkRowStatus>"
1417
- },
1418
- "default": "new Map()",
1419
- "description": "Row submit statuses for bulk insert mode.\nPassed from the parent foundation-form."
1420
- },
1421
- {
1422
- "kind": "method",
1423
- "name": "rowSubmitStatusesChanged"
1424
- },
1425
- {
1426
- "kind": "field",
1427
- "name": "bulkInsert",
1428
- "type": {
1429
- "text": "boolean"
1430
- },
1431
- "default": "false",
1432
- "description": "Whether the form is in bulk insert mode.\nPassed from the parent foundation-form."
1433
- },
1434
- {
1435
- "kind": "method",
1436
- "name": "bulkInsertChanged"
1437
- },
1438
- {
1439
- "kind": "field",
1440
- "name": "props",
1441
- "type": {
1442
- "text": "RendererProps"
1443
- },
1444
- "readonly": true
1445
- },
1446
- {
1447
- "kind": "field",
1448
- "name": "dispatch"
1449
- },
1450
- {
1451
- "kind": "field",
1452
- "name": "validate",
1453
- "description": "Performs client-side validation by running the validator defined in the UI schema.",
1454
- "parameters": [
1455
- {
1456
- "description": "the UI schema",
1457
- "name": "uischema"
1458
- }
1459
- ],
1460
- "return": {
1461
- "type": {
1462
- "text": ""
1463
- }
1464
- }
1465
- },
1466
- {
1467
- "kind": "method",
1468
- "name": "copyUISchemaToClipboard"
1469
- }
1470
- ],
1471
- "events": [
1472
- {
1473
- "description": "Bubbles from nested dispatch-renderer when a control emits change (e.g. multiselect)",
1474
- "name": "change"
1475
- },
1476
- {
1477
- "description": "Fired when bound form data changes",
1478
- "name": "data-change"
1479
- }
1480
- ],
1481
- "attributes": [
1482
- {
1483
- "type": {
1484
- "text": "boolean"
1485
- },
1486
- "fieldName": "submitted"
1487
- },
1488
- {
1489
- "type": {
1490
- "text": "boolean"
1491
- },
1492
- "fieldName": "readonly"
1493
- }
1494
- ],
1495
- "superclass": {
1496
- "name": "FASTElement",
1497
- "package": "@microsoft/fast-element"
1498
- },
1499
- "tagName": "json-forms",
1500
- "customElement": true
1501
- }
1502
- ],
1503
- "exports": [
1504
- {
1505
- "kind": "js",
1506
- "name": "JSONForms",
1507
- "declaration": {
1508
- "name": "JSONForms",
1509
- "module": "src/jsonforms/json-forms.ts"
1510
- }
1511
- },
1512
- {
1513
- "kind": "custom-element-definition",
1514
- "name": "json-forms",
1515
- "declaration": {
1516
- "name": "JSONForms",
1517
- "module": "src/jsonforms/json-forms.ts"
1518
- }
1519
- }
1520
- ]
1521
- },
1522
1318
  {
1523
1319
  "kind": "javascript-module",
1524
1320
  "path": "src/utils/confirmation-dialog-utils.ts",
@@ -1853,50 +1649,278 @@
1853
1649
  },
1854
1650
  "parameters": [
1855
1651
  {
1856
- "name": "errors",
1652
+ "name": "errors",
1653
+ "type": {
1654
+ "text": "Array<any> | undefined"
1655
+ }
1656
+ },
1657
+ {
1658
+ "name": "schema",
1659
+ "type": {
1660
+ "text": "any"
1661
+ }
1662
+ },
1663
+ {
1664
+ "name": "controlPath",
1665
+ "type": {
1666
+ "text": "string | undefined"
1667
+ }
1668
+ },
1669
+ {
1670
+ "name": "uiCustomMsg",
1671
+ "optional": true,
1672
+ "type": {
1673
+ "text": "string"
1674
+ }
1675
+ }
1676
+ ],
1677
+ "description": "Computes a human-friendly anyOf error message for a given control path.\nPrefers UI schema custom message, then JSON schema errorMessage.anyOf, then a constructed fallback.",
1678
+ "privacy": "public"
1679
+ }
1680
+ ],
1681
+ "exports": [
1682
+ {
1683
+ "kind": "js",
1684
+ "name": "mustMatch",
1685
+ "declaration": {
1686
+ "name": "mustMatch",
1687
+ "module": "src/utils/validation.ts"
1688
+ }
1689
+ },
1690
+ {
1691
+ "kind": "js",
1692
+ "name": "getAnyOfErrorMessage",
1693
+ "declaration": {
1694
+ "name": "getAnyOfErrorMessage",
1695
+ "module": "src/utils/validation.ts"
1696
+ }
1697
+ }
1698
+ ]
1699
+ },
1700
+ {
1701
+ "kind": "javascript-module",
1702
+ "path": "src/jsonforms/json-forms.ts",
1703
+ "declarations": [
1704
+ {
1705
+ "kind": "class",
1706
+ "description": "JSON Forms host element for schema-driven UI.",
1707
+ "name": "JSONForms",
1708
+ "members": [
1709
+ {
1710
+ "kind": "field",
1711
+ "name": "submitted",
1712
+ "type": {
1713
+ "text": "boolean"
1714
+ }
1715
+ },
1716
+ {
1717
+ "kind": "field",
1718
+ "name": "prefix"
1719
+ },
1720
+ {
1721
+ "kind": "method",
1722
+ "name": "prefixChanged"
1723
+ },
1724
+ {
1725
+ "kind": "field",
1726
+ "name": "jsonforms"
1727
+ },
1728
+ {
1729
+ "kind": "field",
1730
+ "name": "i18n"
1731
+ },
1732
+ {
1733
+ "kind": "field",
1734
+ "name": "uichemaToUse"
1735
+ },
1736
+ {
1737
+ "kind": "field",
1738
+ "name": "schema"
1739
+ },
1740
+ {
1741
+ "kind": "method",
1742
+ "name": "schemaChanged"
1743
+ },
1744
+ {
1745
+ "kind": "field",
1746
+ "name": "uischema",
1747
+ "type": {
1748
+ "text": "UISchemaElement"
1749
+ }
1750
+ },
1751
+ {
1752
+ "kind": "method",
1753
+ "name": "uischemaChanged"
1754
+ },
1755
+ {
1756
+ "kind": "field",
1757
+ "name": "data"
1758
+ },
1759
+ {
1760
+ "kind": "method",
1761
+ "name": "dataChanged"
1762
+ },
1763
+ {
1764
+ "kind": "field",
1765
+ "name": "renderers",
1766
+ "type": {
1767
+ "text": "JsonFormsRendererRegistryEntry[]"
1768
+ }
1769
+ },
1770
+ {
1771
+ "kind": "method",
1772
+ "name": "renderersChanged"
1773
+ },
1774
+ {
1775
+ "kind": "field",
1776
+ "name": "validationMode",
1777
+ "type": {
1778
+ "text": "ValidationMode"
1779
+ }
1780
+ },
1781
+ {
1782
+ "kind": "method",
1783
+ "name": "validationModeChanged"
1784
+ },
1785
+ {
1786
+ "kind": "field",
1787
+ "name": "ajv",
1857
1788
  "type": {
1858
- "text": "Array<any> | undefined"
1789
+ "text": "Ajv"
1859
1790
  }
1860
1791
  },
1861
1792
  {
1862
- "name": "schema",
1793
+ "kind": "method",
1794
+ "name": "ajvChanged"
1795
+ },
1796
+ {
1797
+ "kind": "field",
1798
+ "name": "readonly",
1863
1799
  "type": {
1864
- "text": "any"
1800
+ "text": "boolean"
1865
1801
  }
1866
1802
  },
1867
1803
  {
1868
- "name": "controlPath",
1804
+ "kind": "method",
1805
+ "name": "readonlyChanged"
1806
+ },
1807
+ {
1808
+ "kind": "field",
1809
+ "name": "config",
1869
1810
  "type": {
1870
- "text": "string | undefined"
1811
+ "text": "any"
1871
1812
  }
1872
1813
  },
1873
1814
  {
1874
- "name": "uiCustomMsg",
1875
- "optional": true,
1815
+ "kind": "method",
1816
+ "name": "configChanged"
1817
+ },
1818
+ {
1819
+ "kind": "field",
1820
+ "name": "rowSubmitStatuses",
1876
1821
  "type": {
1877
- "text": "string"
1822
+ "text": "Map<number, BulkRowStatus>"
1823
+ },
1824
+ "default": "new Map()",
1825
+ "description": "Row submit statuses for bulk insert mode.\nPassed from the parent foundation-form."
1826
+ },
1827
+ {
1828
+ "kind": "method",
1829
+ "name": "rowSubmitStatusesChanged"
1830
+ },
1831
+ {
1832
+ "kind": "field",
1833
+ "name": "bulkInsert",
1834
+ "type": {
1835
+ "text": "boolean"
1836
+ },
1837
+ "default": "false",
1838
+ "description": "Whether the form is in bulk insert mode.\nPassed from the parent foundation-form."
1839
+ },
1840
+ {
1841
+ "kind": "method",
1842
+ "name": "bulkInsertChanged"
1843
+ },
1844
+ {
1845
+ "kind": "field",
1846
+ "name": "props",
1847
+ "type": {
1848
+ "text": "RendererProps"
1849
+ },
1850
+ "readonly": true
1851
+ },
1852
+ {
1853
+ "kind": "field",
1854
+ "name": "dispatch"
1855
+ },
1856
+ {
1857
+ "kind": "field",
1858
+ "name": "validate",
1859
+ "description": "Performs client-side validation by running the validator defined in the UI schema.",
1860
+ "parameters": [
1861
+ {
1862
+ "description": "the UI schema",
1863
+ "name": "uischema"
1864
+ }
1865
+ ],
1866
+ "return": {
1867
+ "type": {
1868
+ "text": ""
1869
+ }
1878
1870
  }
1871
+ },
1872
+ {
1873
+ "kind": "method",
1874
+ "name": "copyUISchemaToClipboard"
1879
1875
  }
1880
1876
  ],
1881
- "description": "Computes a human-friendly anyOf error message for a given control path.\nPrefers UI schema custom message, then JSON schema errorMessage.anyOf, then a constructed fallback.",
1882
- "privacy": "public"
1877
+ "events": [
1878
+ {
1879
+ "description": "Bubbles from nested dispatch-renderer when a control emits change (e.g. multiselect)",
1880
+ "name": "change"
1881
+ },
1882
+ {
1883
+ "description": "Fired when bound form data changes",
1884
+ "name": "data-change"
1885
+ }
1886
+ ],
1887
+ "attributes": [
1888
+ {
1889
+ "type": {
1890
+ "text": "boolean"
1891
+ },
1892
+ "fieldName": "submitted"
1893
+ },
1894
+ {
1895
+ "type": {
1896
+ "text": "boolean"
1897
+ },
1898
+ "fieldName": "readonly"
1899
+ }
1900
+ ],
1901
+ "superclass": {
1902
+ "name": "FASTElement",
1903
+ "package": "@microsoft/fast-element"
1904
+ },
1905
+ "tagName": "json-forms",
1906
+ "customElement": true
1883
1907
  }
1884
1908
  ],
1885
1909
  "exports": [
1886
1910
  {
1887
1911
  "kind": "js",
1888
- "name": "mustMatch",
1912
+ "name": "JSONForms",
1889
1913
  "declaration": {
1890
- "name": "mustMatch",
1891
- "module": "src/utils/validation.ts"
1914
+ "name": "JSONForms",
1915
+ "module": "src/jsonforms/json-forms.ts"
1892
1916
  }
1893
1917
  },
1894
1918
  {
1895
- "kind": "js",
1896
- "name": "getAnyOfErrorMessage",
1919
+ "kind": "custom-element-definition",
1920
+ "name": "json-forms",
1897
1921
  "declaration": {
1898
- "name": "getAnyOfErrorMessage",
1899
- "module": "src/utils/validation.ts"
1922
+ "name": "JSONForms",
1923
+ "module": "src/jsonforms/json-forms.ts"
1900
1924
  }
1901
1925
  }
1902
1926
  ]
@@ -2266,113 +2290,31 @@
2266
2290
  "path": "src/jsonforms/renderers/ControlWrapperRenderer.ts",
2267
2291
  "declarations": [
2268
2292
  {
2269
- "kind": "variable",
2270
- "name": "ControlWrapperRendererTemplate",
2271
- "default": "html`\n <template>\n ${when(\n (x) => x.control?.visible,\n html`\n <div\n class=${(x) =>\n classNames(\n ['wrapperRoot', true],\n ['labelLeft', x.jsonForms?.core?.uischema?.options?.labelPlacement === 'left'],\n )}\n id=${(x) => x.control.path + '-wrapper'}\n data-test-id=${(x) => x.control.path + '-wrapper'}\n role=\"group\"\n aria-labelledby=${(x) => (x.computedLabel ? x.control.path + '-label' : null)}\n >\n ${when(\n (x) => x.computedLabel,\n html`\n <label\n id=\"${(x) => x.control.path + '-label'}\"\n for=\"${(x) => x.control.path}\"\n class=\"${(x) => classNames('label', ['visually-hidden', x.hideLabel])}\"\n >\n <span>\n ${(x) => x.computedLabel}${when(\n (x) => x.control.uischema?.options?.tooltip,\n (x) => x.getPrefixedTooltip,\n )}\n </span>\n </label>\n `,\n )}\n\n <div class=\"wrapper\" part=\"wrapper\">\n <slot></slot>\n </div>\n <div\n class=\"${(x) =>\n (x.control.errors || x.anyOfError) && x.touched ? 'error' : 'description'}\"\n >\n ${(x) =>\n x.touched && (x.control.errors || x.anyOfError)\n ? [x.control.errors, x.anyOfError].filter(Boolean).join(' ')\n : x.showDescription\n ? x.control.description\n : ''}\n </div>\n </div>\n `,\n )}\n </template>\n`"
2272
- },
2273
- {
2274
- "kind": "class",
2275
- "description": "",
2276
- "name": "ControlWrapper",
2277
- "members": [
2278
- {
2279
- "kind": "field",
2280
- "name": "control"
2281
- },
2282
- {
2283
- "kind": "field",
2284
- "name": "jsonForms"
2285
- },
2286
- {
2287
- "kind": "field",
2288
- "name": "touched",
2289
- "type": {
2290
- "text": "boolean"
2291
- }
2292
- },
2293
- {
2294
- "kind": "field",
2295
- "name": "hideLabel",
2296
- "type": {
2297
- "text": "boolean"
2298
- },
2299
- "default": "false"
2300
- },
2301
- {
2302
- "kind": "field",
2303
- "name": "prefix",
2304
- "type": {
2305
- "text": "string"
2306
- }
2307
- },
2308
- {
2309
- "kind": "field",
2310
- "name": "showDescription",
2311
- "readonly": true
2312
- },
2313
- {
2314
- "kind": "field",
2315
- "name": "computedLabel",
2316
- "readonly": true
2317
- },
2318
- {
2319
- "kind": "field",
2320
- "name": "getPrefixedTooltip",
2321
- "readonly": true
2322
- },
2323
- {
2324
- "kind": "field",
2325
- "name": "anyOfError",
2326
- "readonly": true
2293
+ "kind": "function",
2294
+ "name": "controlWrapperTemplate",
2295
+ "return": {
2296
+ "type": {
2297
+ "text": "ViewTemplate<DispatchRenderer>"
2327
2298
  }
2328
- ],
2329
- "attributes": [
2330
- {
2331
- "name": "hide-label",
2332
- "type": {
2333
- "text": "boolean"
2334
- },
2335
- "default": "false",
2336
- "fieldName": "hideLabel"
2337
- },
2299
+ },
2300
+ "parameters": [
2338
2301
  {
2339
- "name": "prefix",
2302
+ "name": "options",
2340
2303
  "type": {
2341
- "text": "string"
2342
- },
2343
- "fieldName": "prefix"
2304
+ "text": "ControlWrapperOptions"
2305
+ }
2344
2306
  }
2345
2307
  ],
2346
- "superclass": {
2347
- "name": "FASTElement",
2348
- "package": "@microsoft/fast-element"
2349
- },
2350
- "tagName": "control-wrapper",
2351
- "customElement": true
2308
+ "description": "Light-DOM-friendly control wrapper that replaces the former `<control-wrapper>`\ncustom element. Renders label, error/description slots, and composes a provided\ninner control template inline within the renderer's template so that bindings\nstay on the `DispatchRenderer` source.",
2309
+ "privacy": "public"
2352
2310
  }
2353
2311
  ],
2354
2312
  "exports": [
2355
2313
  {
2356
2314
  "kind": "js",
2357
- "name": "ControlWrapperRendererTemplate",
2315
+ "name": "controlWrapperTemplate",
2358
2316
  "declaration": {
2359
- "name": "ControlWrapperRendererTemplate",
2360
- "module": "src/jsonforms/renderers/ControlWrapperRenderer.ts"
2361
- }
2362
- },
2363
- {
2364
- "kind": "js",
2365
- "name": "ControlWrapper",
2366
- "declaration": {
2367
- "name": "ControlWrapper",
2368
- "module": "src/jsonforms/renderers/ControlWrapperRenderer.ts"
2369
- }
2370
- },
2371
- {
2372
- "kind": "custom-element-definition",
2373
- "name": "control-wrapper",
2374
- "declaration": {
2375
- "name": "ControlWrapper",
2317
+ "name": "controlWrapperTemplate",
2376
2318
  "module": "src/jsonforms/renderers/ControlWrapperRenderer.ts"
2377
2319
  }
2378
2320
  }
@@ -2401,7 +2343,7 @@
2401
2343
  "type": {
2402
2344
  "text": "RendererEntry"
2403
2345
  },
2404
- "default": "{\n renderer: html`\n ${(x) => DateControlRendererTemplate(x.prefix)}\n `,\n tester: rankWith(DATE_CONTROL_RANK, isOneOfDate),\n mapper: mapStateToControlProps, // TODO: change mapper to handle dates instead of doing it in the template\n}"
2346
+ "default": "{\n renderer: html`\n ${(x) => DateControlRendererTemplate(x.prefix)}\n `,\n tester: rankWith(DATE_CONTROL_RANK, isOneOfDate),\n mapper: mapStateToControlProps,\n}"
2405
2347
  }
2406
2348
  ],
2407
2349
  "exports": [
@@ -2614,7 +2556,7 @@
2614
2556
  "type": {
2615
2557
  "text": "RendererEntry"
2616
2558
  },
2617
- "default": "{\n renderer: html`\n ${(x) => DateControlRendererTemplate(x.prefix)}\n `,\n tester: rankWith(DATE_CONTROL_RANK, isOneOfDate),\n mapper: mapStateToControlProps, // TODO: change mapper to handle dates instead of doing it in the template\n}"
2559
+ "default": "{\n renderer: html`\n ${(x) => DateControlRendererTemplate(x.prefix)}\n `,\n tester: rankWith(DATE_CONTROL_RANK, isOneOfDate),\n mapper: mapStateToControlProps,\n}"
2618
2560
  }
2619
2561
  ],
2620
2562
  "exports": [
@@ -2704,7 +2646,7 @@
2704
2646
  "type": {
2705
2647
  "text": "RendererEntry"
2706
2648
  },
2707
- "default": "{\n renderer: html`\n ${(x) => TimeControlRendererTemplate(x.prefix)}\n `,\n tester: rankWith(TIME_CONTROL_RANK, isOneOfTime),\n mapper: mapStateToControlProps, // TODO: change mapper to handle dates instead of doing it in the template\n}"
2649
+ "default": "{\n renderer: html`\n ${(x) => TimeControlRendererTemplate(x.prefix)}\n `,\n tester: rankWith(TIME_CONTROL_RANK, isOneOfTime),\n mapper: mapStateToControlProps,\n}"
2708
2650
  }
2709
2651
  ],
2710
2652
  "exports": [
@@ -2770,7 +2712,7 @@
2770
2712
  {
2771
2713
  "kind": "variable",
2772
2714
  "name": "LayoutArrayRendererTemplate",
2773
- "default": "html`\n <template>\n <div style=\"${(x) => (x.control.uischema.options?.border ? borderStyle : '')}\">\n <control-wrapper\n :control=${(x) => x.control}\n :jsonForms=${(x) => x.jsonforms}\n :touched=${(x) => x.touched}\n ?submitted=${(x) => x.submitted}\n >\n <array-list-wrapper :form=${(x) => x} :control=${(x) => x.control}></array-list-wrapper>\n </control-wrapper>\n </div>\n </template>\n`"
2715
+ "default": "html<DispatchRenderer>`\n <template>\n <div style=\"${(x) => (x.control.uischema.options?.border ? borderStyle : '')}\">\n ${controlWrapperTemplate({\n prefix: 'zero',\n innerTemplate: html<DispatchRenderer>`\n <array-list-wrapper :form=${(x) => x} :control=${(x) => x.control}></array-list-wrapper>\n `,\n })}\n </div>\n </template>\n`"
2774
2716
  },
2775
2717
  {
2776
2718
  "kind": "variable",
@@ -2844,7 +2786,7 @@
2844
2786
  {
2845
2787
  "kind": "variable",
2846
2788
  "name": "LayoutFormGridRendererTemplate",
2847
- "default": "html`\n <template>\n <layout-wrapper :control=${(x) => x.control}>\n <div\n style=\"\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 8px;\n \"\n >\n ${repeat(\n (x) => x.control.uischema.elements,\n html`\n <dispatch-renderer\n ?submitted=${(x, ctx) => ctx.parent.submitted}\n :dispatch=${(x, ctx) => ctx.parent.dispatch}\n :jsonforms=${(x, ctx) => ctx.parent.jsonforms}\n :prefix=${(x, ctx) => ctx.parent.prefix}\n :props=${(x, ctx) => ({\n uischema: x,\n schema: ctx.parent.control.schema,\n renderers: ctx.parent.control.renderers,\n path: ctx.parent.control.path,\n enabled: ctx.parent.control.enabled,\n })}\n ></dispatch-renderer>\n `,\n )}\n </div>\n </layout-wrapper>\n </template>\n`"
2789
+ "default": "html<DispatchRenderer>`\n <template>\n ${layoutWrapperTemplate({\n innerTemplate: html<DispatchRenderer>`\n <div\n style=\"\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 8px;\n \"\n >\n ${repeat(\n (x) => x.control.uischema.elements,\n html`\n <dispatch-renderer\n ?submitted=${(x, ctx) => ctx.parent.submitted}\n :dispatch=${(x, ctx) => ctx.parent.dispatch}\n :jsonforms=${(x, ctx) => ctx.parent.jsonforms}\n :prefix=${(x, ctx) => ctx.parent.prefix}\n :props=${(x, ctx) => ({\n uischema: x,\n schema: ctx.parent.control.schema,\n renderers: ctx.parent.control.renderers,\n path: ctx.parent.control.path,\n enabled: ctx.parent.control.enabled,\n })}\n ></dispatch-renderer>\n `,\n )}\n </div>\n `,\n })}\n </template>\n`"
2848
2790
  },
2849
2791
  {
2850
2792
  "kind": "variable",
@@ -2881,7 +2823,7 @@
2881
2823
  {
2882
2824
  "kind": "variable",
2883
2825
  "name": "LayoutGroupRendererTemplate",
2884
- "default": "html`\n <template>\n <layout-wrapper :control=${(x) => x.control} hide-label>\n <div>\n ${when(\n (x) => x.control.label,\n html`\n <div\n for=\"${(x) => x.control.path + '-wrapper'}\"\n style=\"color: var(--neutral-foreground-rest);\n padding-bottom: calc(var(--design-unit) * 1px);\n margin-bottom: calc(var(--design-unit) * 4px);\n font-weight: 600;\n font-size: var(--type-ramp-base-font-size);\n display: flex;\n justify-content: space-between;\"\n >\n ${(x) => x.control.label}\n </div>\n `,\n )}\n ${repeat(\n (x) => x.control.uischema.options.childElements,\n html`\n <dispatch-renderer\n ?submitted=${(x, ctx) => ctx.parent.submitted}\n :dispatch=${(x, ctx) => ctx.parent.dispatch}\n :jsonforms=${(x, ctx) => ctx.parent.jsonforms}\n :prefix=${(x, ctx) => ctx.parent.prefix}\n :props=${(x, ctx) => ({\n uischema: x,\n schema: ctx.parent.control.schema,\n renderers: ctx.parent.control.renderers,\n path: ctx.parent.control.path,\n enabled: ctx.parent.control.enabled,\n })}\n ></dispatch-renderer>\n `,\n )}\n </div>\n </layout-wrapper>\n </template>\n`"
2826
+ "default": "html<DispatchRenderer>`\n <template>\n ${layoutWrapperTemplate({\n hideLabel: true,\n innerTemplate: html<DispatchRenderer>`\n <div>\n ${when(\n (x) => x.control.label,\n html<DispatchRenderer>`\n <div\n for=\"${(x) => x.control.path + '-wrapper'}\"\n style=\"color: var(--neutral-foreground-rest);\n padding-bottom: calc(var(--design-unit) * 1px);\n margin-bottom: calc(var(--design-unit) * 4px);\n font-weight: 600;\n font-size: var(--type-ramp-base-font-size);\n display: flex;\n justify-content: space-between;\"\n >\n ${(x) => x.control.label}\n </div>\n `,\n )}\n ${repeat(\n (x) => x.control.uischema.options.childElements,\n html`\n <dispatch-renderer\n ?submitted=${(x, ctx) => ctx.parent.submitted}\n :dispatch=${(x, ctx) => ctx.parent.dispatch}\n :jsonforms=${(x, ctx) => ctx.parent.jsonforms}\n :prefix=${(x, ctx) => ctx.parent.prefix}\n :props=${(x, ctx) => ({\n uischema: x,\n schema: ctx.parent.control.schema,\n renderers: ctx.parent.control.renderers,\n path: ctx.parent.control.path,\n enabled: ctx.parent.control.enabled,\n })}\n ></dispatch-renderer>\n `,\n )}\n </div>\n `,\n })}\n </template>\n`"
2885
2827
  },
2886
2828
  {
2887
2829
  "kind": "variable",
@@ -2918,7 +2860,7 @@
2918
2860
  {
2919
2861
  "kind": "variable",
2920
2862
  "name": "LayoutHorizontalRendererTemplate",
2921
- "default": "html`\n <template>\n <layout-wrapper :control=${(x) => x.control}>\n <div\n style=\"\n display: flex;\n flex-direction: row;\n gap: 10px\"\n >\n ${repeat(\n (x) => x.control.uischema.elements,\n html`\n <dispatch-renderer\n style=\"flex: 1; min-width: 0\"\n ?submitted=${(x, ctx) => ctx.parent.submitted}\n :dispatch=${(x, ctx) => ctx.parent.dispatch}\n :jsonforms=${(x, ctx) => ctx.parent.jsonforms}\n :prefix=${(x, ctx) => ctx.parent.prefix}\n :props=${(x, ctx) => ({\n uischema: x,\n schema: ctx.parent.control.schema,\n renderers: ctx.parent.control.renderers,\n path: ctx.parent.control.path,\n enabled: ctx.parent.control.enabled,\n })}\n ></dispatch-renderer>\n `,\n )}\n </div>\n </layout-wrapper>\n </template>\n`"
2863
+ "default": "html<DispatchRenderer>`\n <template>\n ${layoutWrapperTemplate({\n innerTemplate: html<DispatchRenderer>`\n <div\n style=\"\n display: flex;\n flex-direction: row;\n gap: 10px\"\n >\n ${repeat(\n (x) => x.control.uischema.elements,\n html`\n <dispatch-renderer\n style=\"flex: 1; min-width: 0\"\n ?submitted=${(x, ctx) => ctx.parent.submitted}\n :dispatch=${(x, ctx) => ctx.parent.dispatch}\n :jsonforms=${(x, ctx) => ctx.parent.jsonforms}\n :prefix=${(x, ctx) => ctx.parent.prefix}\n :props=${(x, ctx) => ({\n uischema: x,\n schema: ctx.parent.control.schema,\n renderers: ctx.parent.control.renderers,\n path: ctx.parent.control.path,\n enabled: ctx.parent.control.enabled,\n })}\n ></dispatch-renderer>\n `,\n )}\n </div>\n `,\n })}\n </template>\n`"
2922
2864
  },
2923
2865
  {
2924
2866
  "kind": "variable",
@@ -2953,44 +2895,28 @@
2953
2895
  "path": "src/jsonforms/renderers/LayoutRenderer.ts",
2954
2896
  "declarations": [
2955
2897
  {
2956
- "kind": "class",
2957
- "description": "",
2958
- "name": "LayoutWrapper",
2959
- "members": [
2960
- {
2961
- "kind": "field",
2962
- "name": "control"
2963
- },
2964
- {
2965
- "kind": "field",
2966
- "name": "hideLabel",
2967
- "type": {
2968
- "text": "boolean"
2969
- },
2970
- "default": "false"
2898
+ "kind": "function",
2899
+ "name": "layoutWrapperTemplate",
2900
+ "return": {
2901
+ "type": {
2902
+ "text": "ViewTemplate<DispatchRenderer>"
2971
2903
  }
2972
- ],
2973
- "attributes": [
2904
+ },
2905
+ "parameters": [
2974
2906
  {
2975
- "name": "hide-label",
2907
+ "name": "options",
2976
2908
  "type": {
2977
- "text": "boolean"
2978
- },
2979
- "default": "false",
2980
- "fieldName": "hideLabel"
2909
+ "text": "LayoutWrapperOptions"
2910
+ }
2981
2911
  }
2982
2912
  ],
2983
- "superclass": {
2984
- "name": "FASTElement",
2985
- "package": "@microsoft/fast-element"
2986
- },
2987
- "tagName": "layout-wrapper",
2988
- "customElement": true
2913
+ "description": "Light-DOM-friendly layout wrapper that replaces the former `<layout-wrapper>`\ncustom element. Renders the (optional) control label and, when the control is\nvisible, composes the provided inner template inline so that bindings stay on\nthe `DispatchRenderer` source.",
2914
+ "privacy": "public"
2989
2915
  },
2990
2916
  {
2991
2917
  "kind": "variable",
2992
2918
  "name": "LayoutRendererTemplate",
2993
- "default": "html`\n <template>\n <layout-wrapper :control=${(x) => x.control}>\n <div>\n ${repeat(\n (x) => x.control.uischema.elements,\n html`\n <dispatch-renderer\n ?submitted=${(x, ctx) => ctx.parent.submitted}\n :dispatch=${(x, ctx) => ctx.parent.dispatch}\n :jsonforms=${(x, ctx) => ctx.parent.jsonforms}\n :prefix=${(x, ctx) => ctx.parent.prefix}\n :props=${(x, ctx) => ({\n uischema: x,\n schema: ctx.parent.control.schema,\n renderers: ctx.parent.control.renderers,\n path: ctx.parent.control.path,\n enabled: ctx.parent.control.enabled,\n })}\n ></dispatch-renderer>\n `,\n )}\n </div>\n </layout-wrapper>\n </template>\n`"
2919
+ "default": "html<DispatchRenderer>`\n <template>\n ${layoutWrapperTemplate({\n innerTemplate: html<DispatchRenderer>`\n <div>\n ${repeat(\n (x) => x.control.uischema.elements,\n html`\n <dispatch-renderer\n ?submitted=${(x, ctx) => ctx.parent.submitted}\n :dispatch=${(x, ctx) => ctx.parent.dispatch}\n :jsonforms=${(x, ctx) => ctx.parent.jsonforms}\n :prefix=${(x, ctx) => ctx.parent.prefix}\n :props=${(x, ctx) => ({\n uischema: x,\n schema: ctx.parent.control.schema,\n renderers: ctx.parent.control.renderers,\n path: ctx.parent.control.path,\n enabled: ctx.parent.control.enabled,\n })}\n ></dispatch-renderer>\n `,\n )}\n </div>\n `,\n })}\n </template>\n`"
2994
2920
  },
2995
2921
  {
2996
2922
  "kind": "variable",
@@ -3004,17 +2930,9 @@
3004
2930
  "exports": [
3005
2931
  {
3006
2932
  "kind": "js",
3007
- "name": "LayoutWrapper",
3008
- "declaration": {
3009
- "name": "LayoutWrapper",
3010
- "module": "src/jsonforms/renderers/LayoutRenderer.ts"
3011
- }
3012
- },
3013
- {
3014
- "kind": "custom-element-definition",
3015
- "name": "layout-wrapper",
2933
+ "name": "layoutWrapperTemplate",
3016
2934
  "declaration": {
3017
- "name": "LayoutWrapper",
2935
+ "name": "layoutWrapperTemplate",
3018
2936
  "module": "src/jsonforms/renderers/LayoutRenderer.ts"
3019
2937
  }
3020
2938
  },
@@ -3080,7 +2998,7 @@
3080
2998
  {
3081
2999
  "kind": "variable",
3082
3000
  "name": "LayoutVertical2ColumnsRendererTemplate",
3083
- "default": "html`\n <template>\n <layout-wrapper :control=${(x) => x.control}>\n <div\n style=\"\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: space-between;\"\n >\n ${repeat(\n (x) => x.control.uischema.elements,\n html`\n <div style=\"width: 49%\">\n <dispatch-renderer\n ?submitted=${(x, ctx) => ctx.parent.submitted}\n :dispatch=${(x, ctx) => ctx.parent.dispatch}\n :jsonforms=${(x, ctx) => ctx.parent.jsonforms}\n :prefix=${(x, ctx) => ctx.parent.prefix}\n :props=${(x, ctx) => ({\n uischema: x,\n schema: ctx.parent.control.schema,\n renderers: ctx.parent.control.renderers,\n path: ctx.parent.control.path,\n enabled: ctx.parent.control.enabled,\n })}\n ></dispatch-renderer>\n </div>\n </div>\n `,\n )}\n </layout-wrapper>\n </template>\n`"
3001
+ "default": "html<DispatchRenderer>`\n <template>\n ${layoutWrapperTemplate({\n innerTemplate: html<DispatchRenderer>`\n <div\n style=\"\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: space-between;\"\n >\n ${repeat(\n (x) => x.control.uischema.elements,\n html`\n <div style=\"width: 49%\">\n <dispatch-renderer\n ?submitted=${(x, ctx) => ctx.parent.submitted}\n :dispatch=${(x, ctx) => ctx.parent.dispatch}\n :jsonforms=${(x, ctx) => ctx.parent.jsonforms}\n :prefix=${(x, ctx) => ctx.parent.prefix}\n :props=${(x, ctx) => ({\n uischema: x,\n schema: ctx.parent.control.schema,\n renderers: ctx.parent.control.renderers,\n path: ctx.parent.control.path,\n enabled: ctx.parent.control.enabled,\n })}\n ></dispatch-renderer>\n </div>\n `,\n )}\n </div>\n `,\n })}\n </template>\n`"
3084
3002
  },
3085
3003
  {
3086
3004
  "kind": "variable",