@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.
package/lib/index.js CHANGED
@@ -617,6 +617,9 @@ function mergeField(field, mergeInto) {
617
617
  return extras.length ? [...f, ...extras] : f;
618
618
  }
619
619
  }
620
+ function mergeOption(fields, name, value, fieldName) {
621
+ return fields.map(x => x.field === fieldName ? addFieldOption(x, name, value) : x);
622
+ }
620
623
  function mergeFields(fields, name, value, newFields) {
621
624
  const withType = fields.map(x => x.isTypeField ? addFieldOption(x, name, value) : x);
622
625
  return newFields.map(x => _extends({}, x, {
@@ -1403,15 +1406,10 @@ function createFormState(schemaInterface, evaluators = defaultEvaluators) {
1403
1406
  const def = formNode.definition;
1404
1407
  const definition = createOverrideProxy(def, definitionOverrides);
1405
1408
  const of = definitionOverrides.fields;
1406
- const df = displayOverrides.fields;
1407
- createScopedEffect(c => {
1408
- const textDisplay = isDisplayControl(def) && isTextDisplay(def.displayData) ? def.displayData : undefined;
1409
- evalExpr(c, textDisplay == null ? void 0 : textDisplay.text, df.text, textDisplay && firstExpr(formNode, DynamicPropertyType.Display), coerceString);
1410
- }, displayOverrides);
1411
- createScopedEffect(c => {
1412
- const htmlDisplay = isDisplayControl(def) && isHtmlDisplay(def.displayData) ? def.displayData : undefined;
1413
- evalExpr(c, htmlDisplay == null ? void 0 : htmlDisplay.html, df.html, htmlDisplay && firstExpr(formNode, DynamicPropertyType.Display), coerceString);
1414
- }, displayOverrides);
1409
+ const {
1410
+ text,
1411
+ html
1412
+ } = displayOverrides.fields;
1415
1413
  updateComputedValue(of.displayData, () => isDisplayControl(def) ? createOverrideProxy(def.displayData, displayOverrides) : undefined);
1416
1414
  createScopedEffect(c => {
1417
1415
  evalExpr(c, def.hidden, of.hidden, firstExpr(formNode, DynamicPropertyType.Visible), r => !r);
@@ -1451,11 +1449,13 @@ function createFormState(schemaInterface, evaluators = defaultEvaluators) {
1451
1449
  layoutStyle,
1452
1450
  allowedOptions,
1453
1451
  disabled,
1454
- variables
1452
+ variables,
1453
+ display
1455
1454
  } = control.fields;
1456
1455
  createScopedEffect(c => evalExpr(c, undefined, style, firstExpr(formNode, DynamicPropertyType.Style), coerceStyle), scope);
1457
1456
  createScopedEffect(c => evalExpr(c, undefined, layoutStyle, firstExpr(formNode, DynamicPropertyType.LayoutStyle), coerceStyle), scope);
1458
1457
  createScopedEffect(c => evalExpr(c, undefined, allowedOptions, firstExpr(formNode, DynamicPropertyType.AllowedOptions), x => x), scope);
1458
+ createScopedEffect(c => evalExpr(c, undefined, display, firstExpr(formNode, DynamicPropertyType.Display), coerceString), scope);
1459
1459
  updateComputedValue(dataNode, () => lookupDataNode(definition, parent));
1460
1460
  updateComputedValue(hidden, () => !!cf.hidden.value || definition.hidden || dataNode.value && (!validDataNode(dataNode.value) || hideDisplayOnly(dataNode.value, schemaInterface, definition)));
1461
1461
  updateComputedValue(readonly, () => !!cf.readonly.value || isControlReadonly(definition));
@@ -1470,6 +1470,17 @@ function createFormState(schemaInterface, evaluators = defaultEvaluators) {
1470
1470
  dn.control.disabled = disabled.value;
1471
1471
  }
1472
1472
  }, scope);
1473
+ createSyncEffect(() => {
1474
+ if (isDisplayControl(def)) {
1475
+ if (display.value !== undefined) {
1476
+ text.value = isTextDisplay(def.displayData) ? display.value : NoOverride;
1477
+ html.value = isHtmlDisplay(def.displayData) ? display.value : NoOverride;
1478
+ } else {
1479
+ text.value = NoOverride;
1480
+ html.value = NoOverride;
1481
+ }
1482
+ }
1483
+ }, displayOverrides);
1473
1484
  setupValidation(controlImpl, definition, dataNode, schemaInterface, parent, formNode, runAsync);
1474
1485
  createSyncEffect(() => {
1475
1486
  var _dataNode$value;
@@ -1543,7 +1554,8 @@ function createOverrideProxy(proxyFor, handlers) {
1543
1554
  return new Proxy(proxyFor, {
1544
1555
  get(target, p, receiver) {
1545
1556
  if (Object.hasOwn(overrides, p)) {
1546
- return overrides[p].value;
1557
+ const nv = overrides[p].value;
1558
+ if (nv !== NoOverride) return nv;
1547
1559
  }
1548
1560
  return Reflect.get(target, p, receiver);
1549
1561
  },
@@ -1562,6 +1574,8 @@ function createOverrideProxy(proxyFor, handlers) {
1562
1574
  }
1563
1575
  });
1564
1576
  }
1577
+ class NoValue {}
1578
+ const NoOverride = new NoValue();
1565
1579
 
1566
- export { ActionStyle, AdornmentPlacement, ControlAdornmentType, ControlDefinitionType, DataRenderType, DateComparison, DefaultSchemaInterface, DisplayDataType, DynamicPropertyType, ExpressionType, FieldType, FormNode, FormTree, GroupRenderType, IconLibrary, IconPlacement, SchemaDataNode, SchemaDataTree, SchemaDataTreeImpl, SchemaNode, SchemaTags, SchemaTree, SyncTextType, ValidationMessageType, ValidatorType, addFieldOption, boolField, buildSchema, compoundField, createControlMap, createFormLookup, createFormState, createFormTree, createOverrideProxy, createSchemaDataNode, createSchemaLookup, createSchemaNode, createSchemaTree, createScoped, createScopedComputed, dateField, dateTimeField, defaultCompoundField, defaultScalarField, defaultSchemaInterface, doubleField, fieldPathForDefinition, findField, fontAwesomeIcon, getControlStateId, getDisplayOnlyOptions, getGroupRendererOptions, getJsonPath, getMetaFields, getRootDataNode, getSchemaFieldList, getSchemaNodePath, getSchemaNodePathString, getSchemaPath, getTagParam, hideDisplayOnly, intField, isActionControl, isArrayRenderer, isAutoCompleteClasses, isAutocompleteRenderer, isCheckEntryClasses, isCompoundField, isCompoundNode, isControlDisabled, isControlDisplayOnly, isControlReadonly, isDataControl, isDataGroupRenderer, isDateTimeRenderer, isDialogRenderer, isDisplayControl, isDisplayOnlyRenderer, isFlexRenderer, isGridRenderer, isGroupControl, isHtmlDisplay, isInlineRenderer, isScalarField, isSelectChildRenderer, isTabsRenderer, isTextDisplay, isTextfieldRenderer, isWizardRenderer, jsonPathString, legacyFormNode, lookupDataNode, makeCompoundField, makeParamTag, makeScalarField, makeSchemaDataNode, mergeField, mergeFields, missingField, relativePath, relativeSegmentPath, resolveSchemaNode, resolveSchemas, schemaDataForFieldPath, schemaDataForFieldRef, schemaForFieldPath, schemaForFieldRef, stringField, stringOptionsField, timeField, traverseData, traverseParents, traverseSchemaPath, validDataNode, visitControlData, visitControlDataArray, visitControlDefinition, visitFormData, visitFormDataInContext, visitFormDataNode, withScalarOptions };
1580
+ export { ActionStyle, AdornmentPlacement, ControlAdornmentType, ControlDefinitionType, DataRenderType, DateComparison, DefaultSchemaInterface, DisplayDataType, DynamicPropertyType, ExpressionType, FieldType, FormNode, FormTree, GroupRenderType, IconLibrary, IconPlacement, SchemaDataNode, SchemaDataTree, SchemaDataTreeImpl, SchemaNode, SchemaTags, SchemaTree, SyncTextType, ValidationMessageType, ValidatorType, addFieldOption, boolField, buildSchema, compoundField, createControlMap, createFormLookup, createFormState, createFormTree, createOverrideProxy, createSchemaDataNode, createSchemaLookup, createSchemaNode, createSchemaTree, createScoped, createScopedComputed, dateField, dateTimeField, defaultCompoundField, defaultScalarField, defaultSchemaInterface, doubleField, fieldPathForDefinition, findField, fontAwesomeIcon, getControlStateId, getDisplayOnlyOptions, getGroupRendererOptions, getJsonPath, getMetaFields, getRootDataNode, getSchemaFieldList, getSchemaNodePath, getSchemaNodePathString, getSchemaPath, getTagParam, hideDisplayOnly, intField, isActionControl, isArrayRenderer, isAutoCompleteClasses, isAutocompleteRenderer, isCheckEntryClasses, isCompoundField, isCompoundNode, isControlDisabled, isControlDisplayOnly, isControlReadonly, isDataControl, isDataGroupRenderer, isDateTimeRenderer, isDialogRenderer, isDisplayControl, isDisplayOnlyRenderer, isFlexRenderer, isGridRenderer, isGroupControl, isHtmlDisplay, isInlineRenderer, isScalarField, isSelectChildRenderer, isTabsRenderer, isTextDisplay, isTextfieldRenderer, isWizardRenderer, jsonPathString, legacyFormNode, lookupDataNode, makeCompoundField, makeParamTag, makeScalarField, makeSchemaDataNode, mergeField, mergeFields, mergeOption, missingField, relativePath, relativeSegmentPath, resolveSchemaNode, resolveSchemas, schemaDataForFieldPath, schemaDataForFieldRef, schemaForFieldPath, schemaForFieldRef, stringField, stringOptionsField, timeField, traverseData, traverseParents, traverseSchemaPath, validDataNode, visitControlData, visitControlDataArray, visitControlDefinition, visitFormData, visitFormDataInContext, visitFormDataNode, withScalarOptions };
1567
1581
  //# sourceMappingURL=index.js.map