@astroapps/forms-core 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.cjs CHANGED
@@ -704,6 +704,11 @@ function mergeField(field, mergeInto) {
704
704
  return extras.length ? [].concat(f, extras) : f;
705
705
  }
706
706
  }
707
+ function mergeOption(fields, name, value, fieldName) {
708
+ return fields.map(function (x) {
709
+ return x.field === fieldName ? addFieldOption(x, name, value) : x;
710
+ });
711
+ }
707
712
  function mergeFields(fields, name, value, newFields) {
708
713
  var withType = fields.map(function (x) {
709
714
  return x.isTypeField ? addFieldOption(x, name, value) : x;
@@ -1561,7 +1566,9 @@ function createFormState(schemaInterface, evaluators) {
1561
1566
  var def = formNode.definition;
1562
1567
  var definition = createOverrideProxy(def, definitionOverrides);
1563
1568
  var of = definitionOverrides.fields;
1564
- var df = displayOverrides.fields;
1569
+ var _displayOverrides$fie = displayOverrides.fields,
1570
+ text = _displayOverrides$fie.text,
1571
+ html = _displayOverrides$fie.html;
1565
1572
  controls.updateComputedValue(of.displayData, function () {
1566
1573
  return isDisplayControl(def) ? createOverrideProxy(def.displayData, displayOverrides) : undefined;
1567
1574
  });
@@ -1653,7 +1660,13 @@ function createFormState(schemaInterface, evaluators) {
1653
1660
  }, scope);
1654
1661
  controls.createSyncEffect(function () {
1655
1662
  if (isDisplayControl(def)) {
1656
- if (isTextDisplay(def.displayData)) df.text.value = display.value;else if (isHtmlDisplay(def.displayData)) df.html.value = display.value;
1663
+ if (display.value !== undefined) {
1664
+ text.value = isTextDisplay(def.displayData) ? display.value : NoOverride;
1665
+ html.value = isHtmlDisplay(def.displayData) ? display.value : NoOverride;
1666
+ } else {
1667
+ text.value = NoOverride;
1668
+ html.value = NoOverride;
1669
+ }
1657
1670
  }
1658
1671
  }, displayOverrides);
1659
1672
  setupValidation(controlImpl, definition, dataNode, schemaInterface, parent, formNode, runAsync);
@@ -1737,7 +1750,8 @@ function createOverrideProxy(proxyFor, handlers) {
1737
1750
  return new Proxy(proxyFor, {
1738
1751
  get: function get(target, p, receiver) {
1739
1752
  if (Object.hasOwn(overrides, p)) {
1740
- return overrides[p].value;
1753
+ var nv = overrides[p].value;
1754
+ if (nv !== NoOverride) return nv;
1741
1755
  }
1742
1756
  return Reflect.get(target, p, receiver);
1743
1757
  },
@@ -1756,6 +1770,8 @@ function createOverrideProxy(proxyFor, handlers) {
1756
1770
  }
1757
1771
  });
1758
1772
  }
1773
+ var NoValue = function NoValue() {};
1774
+ var NoOverride = new NoValue();
1759
1775
 
1760
1776
  exports.DefaultSchemaInterface = DefaultSchemaInterface;
1761
1777
  exports.FormNode = FormNode;
@@ -1838,6 +1854,7 @@ exports.makeScalarField = makeScalarField;
1838
1854
  exports.makeSchemaDataNode = makeSchemaDataNode;
1839
1855
  exports.mergeField = mergeField;
1840
1856
  exports.mergeFields = mergeFields;
1857
+ exports.mergeOption = mergeOption;
1841
1858
  exports.missingField = missingField;
1842
1859
  exports.relativePath = relativePath;
1843
1860
  exports.relativeSegmentPath = relativeSegmentPath;