@astroapps/forms-core 1.1.1 → 1.2.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.
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, {
@@ -1309,8 +1312,8 @@ function createValidators(def, context) {
1309
1312
  });
1310
1313
  }
1311
1314
  }
1312
- function setupValidation(controlImpl, definition, dataNode, schemaInterface, parent, formNode, runAsync) {
1313
- const validationEnabled = createScopedComputed(controlImpl, () => !definition.hidden);
1315
+ function setupValidation(controlImpl, definition, dataNode, schemaInterface, parent, formNode, hidden, runAsync) {
1316
+ const validationEnabled = createScopedComputed(controlImpl, () => !hidden.value);
1314
1317
  const validatorsScope = createCleanupScope();
1315
1318
  createEffect(() => {
1316
1319
  validatorsScope.cleanup();
@@ -1403,7 +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;
1409
+ const {
1410
+ text,
1411
+ html
1412
+ } = displayOverrides.fields;
1407
1413
  updateComputedValue(of.displayData, () => isDisplayControl(def) ? createOverrideProxy(def.displayData, displayOverrides) : undefined);
1408
1414
  createScopedEffect(c => {
1409
1415
  evalExpr(c, def.hidden, of.hidden, firstExpr(formNode, DynamicPropertyType.Visible), r => !r);
@@ -1466,10 +1472,16 @@ function createFormState(schemaInterface, evaluators = defaultEvaluators) {
1466
1472
  }, scope);
1467
1473
  createSyncEffect(() => {
1468
1474
  if (isDisplayControl(def)) {
1469
- if (isTextDisplay(def.displayData)) df.text.value = display.value;else if (isHtmlDisplay(def.displayData)) df.html.value = display.value;
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
+ }
1470
1482
  }
1471
1483
  }, displayOverrides);
1472
- setupValidation(controlImpl, definition, dataNode, schemaInterface, parent, formNode, runAsync);
1484
+ setupValidation(controlImpl, definition, dataNode, schemaInterface, parent, formNode, hidden, runAsync);
1473
1485
  createSyncEffect(() => {
1474
1486
  var _dataNode$value;
1475
1487
  const dn = (_dataNode$value = dataNode.value) == null ? void 0 : _dataNode$value.control;
@@ -1542,7 +1554,8 @@ function createOverrideProxy(proxyFor, handlers) {
1542
1554
  return new Proxy(proxyFor, {
1543
1555
  get(target, p, receiver) {
1544
1556
  if (Object.hasOwn(overrides, p)) {
1545
- return overrides[p].value;
1557
+ const nv = overrides[p].value;
1558
+ if (nv !== NoOverride) return nv;
1546
1559
  }
1547
1560
  return Reflect.get(target, p, receiver);
1548
1561
  },
@@ -1561,6 +1574,8 @@ function createOverrideProxy(proxyFor, handlers) {
1561
1574
  }
1562
1575
  });
1563
1576
  }
1577
+ class NoValue {}
1578
+ const NoOverride = new NoValue();
1564
1579
 
1565
- 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 };
1566
1581
  //# sourceMappingURL=index.js.map