Standard implementation of IInputValueHost. It owns a list of Validators which support its validate() function. Use ValueHostConfig.valueHostType = "Input" for the ValidationManager to use this class.

Each instance depends on a few things, all passed into the constructor:

  • valueHostsManager - Typically this is the ValidationManager.
  • InputValueHostConfig - The business logic supplies these rules to implement a ValueHost's name, label, data type, validation rules, and other business logic metadata.
  • InputValueHostInstanceState - InstanceState used by this InputValueHost including its validators. If the caller changes any of these, discard the instance and create a new one.

Hierarchy (view full)

Implements

Constructors

Accessors

  • get isValid(): boolean
  • Value is setup by calling validate(). It does not run validate() itself. Returns false when instanceState.status is Invalid. Any other ValidationStatus return true. This follows an old style validation rule of everything is valid when not explicitly marked invalid. That means when it hasn't be run through validation or was undetermined as a result of validation. Recommend using doNotSave for more clarity.

    Returns boolean

  • get config(): TConfig
  • Always supplied by constructor. Treat it as immutable. Expected to be changed only by the caller (business logic) and at that time, it must replace this instance with a new one and a new Config instance.

    Returns TConfig

  • get isChanged(): boolean
  • Determines how the validation system sees the Value in terms of editing. When true, it was changed. When false, it was not. The setValue()/setInputValue()/setValues() functions are the only ones to change this flag. They all set it to true automatically except set it to false when the option.Reset is true. The ValueHost.validate() function may skip validation of an InputValueHost when IsChanged is false, depending on the options for validate. For example, calling validate immediately after loading up the form, you want to avoid showing Category=Require validators. Those should appear only if the user edits, or when the user attempts to submit.

    Returns boolean

Methods

  • Consuming system assigns the same value it assigns to the input field/element. In HTML, this is typically called by the onchanged event handler.

    It can also be called by the oninput event handler so long as options.duringEdit=true. If runs validation when options.validate=true.

    When setting the input value, it is important to also set the native value so the Data Type Check conditions to work. DataTypeCheckCondition itself reports an error if you set the native value to undefined.

    To set the native value, you can do it manually, but also consider setting up a DataTypeParser on the inputValueOptionConfig.parserLookupKey to do it automatically. When setup, setInputValue() will run the parser and call setInput() or setInputAsUndefined() for you.

    Parameters

    • value: any
    • Optional options: SetInputValueOptions

      duringEdit - Set to true when handling an intermediate change activity, such as a keystroke changed a textbox but the user remains in the textbox. For example, on the HTMLInputElement.oninput event. This will involve only validators that make sense during such an edit. Specifically their Condition implements IEvaluateConditionDuringEdits. The IEvaluateConditionDuringEdits.evaluateDuringEdit() function is used instead of ICondition.evaluate().

      • validate - Invoke validation after setting the value.
      • reset - Clears validation (except when validate=true) and sets IsChanged to false.
      • disableParser - When true, do not use the DataTypeParser to convert from input value to native value.
      • conversionErrorTokenValue - When setting the value to undefined, it means there was an error converting. Provide a string here that is a UI friendly error message. It will appear in the Category=Require validator within the {ConversionError} token. A Data Type parser will also setup the conversionErrorTokenValue if it reports an error.

    Returns void

  • Determines if parsing is setup and the value is parsable (must be a string). If so, it determines the native value, and calls upon setValues() to handle it all. If the parser detects an error, the native value will be set to undefined and options.conversionErrorTokenValue gets set to the parser's reported error info. Supports config.parserDataType and config.parserCreator.

    Parameters

    • inputValue: any
    • options: SetInputValueOptions

      Set disableParser = true to prevent parsing. When duringEdit=true, parsing is not supported and this function returns false.

    Returns boolean

    True used the parser and finished with setValues. No further work is needed. False means the parser is not used, and setInputValue should continue.

  • Sets both (native data type) Value and input field/element Value at the same time and optionally invokes validation. Use when the consuming system resolves both input and native values at the same time so there is one state change and attempt to validate.

    NOTE: The DataTypeParser feature is not used by this function as you have already done the parsing to establish the native value.

    Parameters

    • nativeValue: any

      Can be undefined to indicate the value could not be resolved from the input field/element's value, such as inability to convert a string to a date. All other values, including null and the empty string, are considered real data.

    • inputValue: any

      Can be undefined to indicate there is no value. All other values, including null and the empty string, are considered real data.

    • Optional options: SetValueOptions

      validate - Invoke validation after setting the value. Reset - Clears validation (except when validate=true) and sets IsChanged to false. ConversionErrorTokenValue - When setting the value to undefined, it means there was an error converting. Provide a string here that is a UI friendly error message. It will appear in the Category=Require validator within the {ConversionError} token.

    Returns void

  • System consumer assigns the native value to make it available to most Conditions during validation.

    Parameters

    • value: any
    • Optional options: SetValueOptions

      validate - Invoke validation after setting the value. Reset - Clears validation (except when validate=true) and sets IsChanged to false. ConversionErrorTokenValue - When setting the value to undefined, it means there was an error converting. Provide a string here that is a UI friendly error message. It will appear in the Category=Require validator within the {ConversionError} token.

    Returns void

  • When the ValueHost is disabled, it clears any validation issues. A call to validate() will return null until the ValueHost is enabled again. If the Enabler condition changes the state to enabled, it remains up to the user to call validate() again to get the new state. While disabled, some validation activity can still happen:

    • BusinessLogicErrors can be set, but will not be available with getIssuesFound() until the ValueHost is enabled again.
    • The onValueHostValidationStateChanged event will be raised on actions that change the state, such as setting a BusinessLogicError. Otherwise all calls to get ValidationStatus will act as if the ValueHost has no errors, except for ValidationState which is set to Disabled.

    Parameters

    • enabled: boolean

    Returns void

  • Helper to call onValueHostValidationStateChanged due to a change in the state associated with Validate itself or BusinessLogicErrors. It also asks ValidationManager to call onValidationStateChanged so observers that only watch for validation from a high level will be notified.

    This may still be called when the ValueHost is disabled, so long as an underlying state has changed. The call to setEnabled(false) itself calls clearValidation() which usually triggers this event allow the UI to know to handle the discarded valuehost's validation data.

    Parameters

    Returns void

  • Lists all issues found (error messages and supporting info) for a single Validatable ValueHost so the input field/element can show error messages and adjust its appearance.

    Parameters

    • Optional group: string

    Returns null | IssueFound[]

    An array of issues found. When null, there are no issues and the data is valid. If there are issues, when all have severity = warning, the data is also valid. Anything else means invalid data. Each contains:

    • name - The name for the ValueHost that contains this error. Use to hook up a click in the summary that scrolls the associated input field/element into view and sets focus.
    • errorCode - Identifies the validator supplying the issue.
    • severity - Helps style the error. Expect Severe, Error, and Warning levels.
    • errorMessage - Fully prepared, tokens replaced and formatting rules applied
    • summaryMessage - The message suited for a Validation Summary widget.
  • Adds or replaces all IssueFound items that are associated with this ValueHost. It ignores those with another ValueHost name, allowing for the same list to be culled by all ValueHosts. (As a result, it never changes the values sent in, or the array itself.) Replacement when the errorCode is the same. This call invokes the onValueHostValidationStateChanged callback if there were IssueFound items applied.

    Use case: client-side getting server-side Jivs-generated IssuesFound, so the UI can incorporate it.

    Parameters

    Returns boolean

  • Runs validation against some of all validators. If at least one validator was NoMatch, it returns ValueHostValidateResult with all of the NoMatches in issuesFound. If all were Matched, it returns ValueHostValidateResult.Value and issuesFound=null. If there are no validators, or all validators were skipped (disabled), it returns ValidationStatus.Undetermined. Updates this ValueHost's InstanceState and notifies parent if changes were made.

    When called an it is disabled, it clears existing data and returns null. If the enabled state changes, the user must call validate again to get the new state.

    Parameters

    • Optional options: ValidateOptions

      Provides guidance on which validators to include.

    Returns null | ValueHostValidateResult

    Non-null when there is something to report. null if there was nothing to evaluate which includes all existing validators reporting "Undetermined"

  • When Business Logic gathers data from the UI, it runs its own final validation. If its own business rule has been violated, it should be passed here where it becomes exposed to the Validation Summary (getIssuesFound) and optionally for an individual ValueHostName, by specifying that valueHostName in AssociatedValueHostName. Each time called, it adds to the existing list. Use clearBusinessLogicErrors() first if starting a fresh list. It calls onValueHostValidationStateChanged if there was a changed to the state.

    In this class, we first see if the errorcode in the error matches an existing validator. If so, we use that validator, and add an IssueFound from that validator.

    Parameters

    • error: BusinessLogicError

      A business logic error to show. If it has an errorCode assigned and the same errorCode is already recorded here, the new entry replaces the old one.

    • Optional options: ValidateOptions

    Returns boolean

    true when a change was made to the known validation state.

  • Consuming system calls this when it attempts to resolve the input field/element value but cannot. It identifies that the native value is undefined. Note this does not reset IsChanged to false without explicitly specifying options.Reset = true;

    Parameters

    • Optional options: SetValueOptions

      validate - Invoke validation after setting the value. Reset - Clears validation (except when validate=true) and sets IsChanged to false. ConversionErrorTokenValue - When setting the value to undefined, it means there was an error converting. Provide a string here that is a UI friendly error message. It will appear in the Category=Require validator within the {ConversionError} token.

    Returns void

  • Determines if the ValueHost is enabled for user interaction. It is enabled unless you explicilty set it to false using ValueHostConfig.initialEnabled : false, setup the EnablerCondition which determines when it is enabled, or the ValueHost's own setEnabled() function.

    When disabled, the data values of the ValueHost do not get changed by setValue() and related functions. However, those functions offer the overrideDisabled option to force the change.

    When disabled and the ValueHost have validators, all validation is disabled and its ValidationStatus reports ValidationState.Disabled.

    Returns boolean

Generated using TypeDoc v0.25.12