@astroapps/forms-core 1.1.0 → 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.
@@ -10,6 +10,7 @@ export interface ControlState {
10
10
  definition: ControlDefinition;
11
11
  schemaInterface: SchemaInterface;
12
12
  dataNode?: SchemaDataNode | undefined;
13
+ display?: string;
13
14
  stateId?: string;
14
15
  style?: object;
15
16
  layoutStyle?: object;
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,15 +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;
1565
- controls.createScopedEffect(function (c) {
1566
- var textDisplay = isDisplayControl(def) && isTextDisplay(def.displayData) ? def.displayData : undefined;
1567
- evalExpr(c, textDisplay == null ? void 0 : textDisplay.text, df.text, textDisplay && firstExpr(formNode, exports.DynamicPropertyType.Display), coerceString);
1568
- }, displayOverrides);
1569
- controls.createScopedEffect(function (c) {
1570
- var htmlDisplay = isDisplayControl(def) && isHtmlDisplay(def.displayData) ? def.displayData : undefined;
1571
- evalExpr(c, htmlDisplay == null ? void 0 : htmlDisplay.html, df.html, htmlDisplay && firstExpr(formNode, exports.DynamicPropertyType.Display), coerceString);
1572
- }, displayOverrides);
1569
+ var _displayOverrides$fie = displayOverrides.fields,
1570
+ text = _displayOverrides$fie.text,
1571
+ html = _displayOverrides$fie.html;
1573
1572
  controls.updateComputedValue(of.displayData, function () {
1574
1573
  return isDisplayControl(def) ? createOverrideProxy(def.displayData, displayOverrides) : undefined;
1575
1574
  });
@@ -1621,7 +1620,8 @@ function createFormState(schemaInterface, evaluators) {
1621
1620
  layoutStyle = _control$fields.layoutStyle,
1622
1621
  allowedOptions = _control$fields.allowedOptions,
1623
1622
  disabled = _control$fields.disabled,
1624
- variables = _control$fields.variables;
1623
+ variables = _control$fields.variables,
1624
+ display = _control$fields.display;
1625
1625
  controls.createScopedEffect(function (c) {
1626
1626
  return evalExpr(c, undefined, style, firstExpr(formNode, exports.DynamicPropertyType.Style), coerceStyle);
1627
1627
  }, scope);
@@ -1633,6 +1633,9 @@ function createFormState(schemaInterface, evaluators) {
1633
1633
  return x;
1634
1634
  });
1635
1635
  }, scope);
1636
+ controls.createScopedEffect(function (c) {
1637
+ return evalExpr(c, undefined, display, firstExpr(formNode, exports.DynamicPropertyType.Display), coerceString);
1638
+ }, scope);
1636
1639
  controls.updateComputedValue(dataNode, function () {
1637
1640
  return lookupDataNode(definition, parent);
1638
1641
  });
@@ -1655,6 +1658,17 @@ function createFormState(schemaInterface, evaluators) {
1655
1658
  dn.control.disabled = disabled.value;
1656
1659
  }
1657
1660
  }, scope);
1661
+ controls.createSyncEffect(function () {
1662
+ if (isDisplayControl(def)) {
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
+ }
1670
+ }
1671
+ }, displayOverrides);
1658
1672
  setupValidation(controlImpl, definition, dataNode, schemaInterface, parent, formNode, runAsync);
1659
1673
  controls.createSyncEffect(function () {
1660
1674
  var _dataNode$value;
@@ -1736,7 +1750,8 @@ function createOverrideProxy(proxyFor, handlers) {
1736
1750
  return new Proxy(proxyFor, {
1737
1751
  get: function get(target, p, receiver) {
1738
1752
  if (Object.hasOwn(overrides, p)) {
1739
- return overrides[p].value;
1753
+ var nv = overrides[p].value;
1754
+ if (nv !== NoOverride) return nv;
1740
1755
  }
1741
1756
  return Reflect.get(target, p, receiver);
1742
1757
  },
@@ -1755,6 +1770,8 @@ function createOverrideProxy(proxyFor, handlers) {
1755
1770
  }
1756
1771
  });
1757
1772
  }
1773
+ var NoValue = function NoValue() {};
1774
+ var NoOverride = new NoValue();
1758
1775
 
1759
1776
  exports.DefaultSchemaInterface = DefaultSchemaInterface;
1760
1777
  exports.FormNode = FormNode;
@@ -1837,6 +1854,7 @@ exports.makeScalarField = makeScalarField;
1837
1854
  exports.makeSchemaDataNode = makeSchemaDataNode;
1838
1855
  exports.mergeField = mergeField;
1839
1856
  exports.mergeFields = mergeFields;
1857
+ exports.mergeOption = mergeOption;
1840
1858
  exports.missingField = missingField;
1841
1859
  exports.relativePath = relativePath;
1842
1860
  exports.relativeSegmentPath = relativeSegmentPath;