Lion Logo Lion Fundamentals Guides Components Blog Toggle darkmode

Checkbox Group: API Table

class: LionCheckbox, lion-checkbox

Fields

NamePrivacyTypeDefaultDescriptionInherited From
choiceValuepublicstring|anyThe value that will be registered to the modelValue of the parent ChoiceGroup. Recommended to be a stringChoiceInputMixin
modelValuepublic{value:string|any,checked:boolean}{ value: '', checked: false }Whereas 'normal' `.modelValue`s usually store a complex/typed version of a view value, choice inputs have a slightly different approach. In order to remain their Single Source of Truth characteristic, choice inputs store both the value and 'checkedness', in the format { value: 'x', checked: true } Different from the platform, this also allows to serialize the 'non checkedness', allowing to restore form state easily and inform the server about unchecked options.FormControlMixin
disabledpublicbooleanfalseBoolean indicating whether or not this element is disabled.DisabledMixin
checkedpublicbooleanChoiceInputMixin
valuepublicThe view value. Will be delegated to `._inputNode.value`FormatMixin
formatOnprotectedstring'change'Event that will trigger formatting (more precise, visual update of the view, so the user sees the formatted value) Default: 'change'FormatMixin
formatOptionspublic({})Configuration object that will be available inside the formatter functionFormatMixin
formattedValuepublicstring|undefinedundefinedThe view value is the result of the formatter function (when available). The result will be stored in the native _inputNode (usually an input[type=text]). Examples: - For a date input, this would be '20/01/1999' (dependent on locale). - For a number input, this could be '1,234.56' (a String representation of modelValue 1234.56)FormatMixin
serializedValuepublicstring|undefinedundefinedThe serialized version of the model value. This value exists for maximal compatibility with the platform API. The serialized value can be an interface in context where data binding is not supported and a serialized string needs to be set. Examples: - For a date input, this would be the iso format of a date, e.g. '1999-01-20'. - For a number input this would be the String representation of a float ('1234.56' instead of 1234.56) When no parser is available, the value is usually the same as the formattedValue (being _inputNode.value)FormatMixin
_isPastingprotectedbooleanfalseWhether the user is pasting content. Allows Subclassers to do this in their subclass:FormatMixin
_isHandlingUserInputprotectedbooleanfalseFlag that will be set when user interaction takes place (for instance after an 'input' event). Will be added as meta info to the `model-value-changed` event. Depending on whether a user is interacting, formatting logic will be handled differently.FormatMixin
_inputNodeprotectedHTMLInputElement | HTMLTextAreaElementThe interactive (form) element. Can be a native element like input/textarea/select or an element with tabindex > -1FormControlMixin
selectionStartpublicnumberNativeTextFieldMixin
selectionEndpublicnumberNativeTextFieldMixin
_focusableNodeprotectedHTMLElementThe focusable element: could be an input, textarea, select, button or any other element with tabindex > -1LionField
autocompletepublicstring | undefinedundefinedDelegates this property to input/textarea/select.NativeTextFieldMixin
focusedpublicbooleanfalseWhether the focusable element within (`._focusableNode`) is focused. Reflects to attribute '[focused]' as a styling hookFocusMixin
focusedVisiblepublicbooleanfalseWhether the focusable element within (`._focusableNode`) matches ':focus-visible' Reflects to attribute '[focused-visible]' as a styling hook See: https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visibleFocusMixin
autofocuspublicbooleanfalseFocusMixin
labelpublicstring''The label text for the input node. When no value is defined, textContent of [slot=label] will be usedFormControlMixin
helpTextpublicstring''The helpt text for the input node. When no value is defined, textContent of [slot=help-text] will be usedFormControlMixin
fieldNamepublicstringWill be used in validation messages to refer to the current fieldFormControlMixin
_labelNodeprotectedElement where label will be rendered toFormControlMixin
_helpTextNodeprotectedElement where help text will be rendered toFormControlMixin
_feedbackNodeprotectedElement where validation feedback will be rendered toFormControlMixin
readOnlypublicbooleanfalseA Boolean attribute which, if present, indicates that the user should not be able to edit the value of the input. The difference between disabled and readonly is that read-only controls can still function, whereas disabled controls generally do not function as controls until they are enabled. (From: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)FormControlMixin
labelSrOnlypublicbooleanfalseThe label will only be visible for srceen readers when trueFormControlMixin
_inputIdprotectedstringUnique id that can be used in all light domFormControlMixin
_ariaLabelledNodespublicHTMLElement[][]Contains all elements that should end up in aria-labelledby of `._inputNode`FormControlMixin
_ariaDescribedNodespublicHTMLElement[][]Contains all elements that should end up in aria-describedby of `._inputNode`FormControlMixin
_repropagationRolepublic'child'|'choice-group'|'fieldset''child'Based on the role, details of handling model-value-changed repropagation differ.FormControlMixin
_isRepropagationEndpointpublicbooleanfalseBy default, a field with _repropagationRole 'choice-group' will act as an 'endpoint'. This means it will be considered as an individual field: for a select, individual options will not be part of the formPath. They will. Similarly, components that (a11y wise) need to be fieldsets, but 'interaction wise' (from Application Developer perspective) need to be more like fields (think of an amount-input with a currency select box next to it), can set this to true to hide private internals in the formPath.FormControlMixin
typepublicstring'text'LionInput
placeholderpublicstring''LionInput
namepublicstring''The name the element will be registered with to the .formElements collection of the parent. Also, it serves as the key of key/value pairs in modelValue/serializedValue objectsFormRegisteringMixin
_parentFormGroupprotectedFormRegistrarHost | undefinedundefinedThe registrar this FormControl registers to, Usually a descendant of FormGroup or ChoiceGroupFormRegisteringMixin
allowCrossRootRegistrationpublicbooleanfalseTo encourage accessibility best practices, `form-element-register` events do not pierce through shadow roots. This forces the developer to create form groups and fieldsets that automatically allow the creation of accessible relationships in the same dom tree. Use this option if you know what you're doing. It will then be possible to nest FormControls inside shadow dom. See https://lion-web.netlify.app/fundamentals/rationales/accessibility/#shadow-roots-and-accessibilityFormRegisteringMixin
_requestedToBeDisabledprotectedbooleanfalseDisabledMixin
_feedbackConditionMetaprotectedAllows Subclassers to add meta info for feedbackConditionLionField
touchedpublicbooleanfalseTrue when user has focused and left(blurred) the field.InteractionStateMixin
dirtypublicbooleanfalseTrue when user has changed the value of the field.InteractionStateMixin
prefilledpublicbooleanfalseTrue when user has left non-empty field or input is prefilled. The name must be seen from the point of view of the input field: once the user enters the input field, the value is non-empty.InteractionStateMixin
filledpublicbooleanfalseTrue when the modelValue is non-empty (see _isEmpty in FormControlMixin)InteractionStateMixin
_leaveEventprotectedstring'blur'The event that triggers the touched stateInteractionStateMixin
_valueChangedEventprotectedstring'model-value-changed'The event that triggers the dirty stateInteractionStateMixin
submittedpublicInteractionStateMixin
operationModepublicOperationModeTypes of input interaction of the FormControl (for instance 'enter'|'select'|'upload')ValidateMixin
_allValidatorsprotectedValidator[]Combination of validators provided by Application Developer and the default validatorsValidateMixin
hasFeedbackForpublicValidationType[][]As soon as validation happens (after modelValue/validators/validator param change), this array is updated with the active ValidationTypes ('error'|'warning'|'success'|'info' etc.). Notice the difference with `.showsFeedbackFor`, which filters `.hasFeedbackFor` based on `.feedbackCondition()`. For styling purposes, will be reflected to [has-feedback-for="error warning"]. This can be useful for subtle visual feedback on keyup, like a red/green border around an input.ValidateMixin
showsFeedbackForpublicValidationType[][]Based on outcome of feedbackCondition, this array decides what ValidationTypes should be shown in validationFeedback, based on meta data like interaction states. For styling purposes, it reflects it `[shows-feedback-for="error warning"]`ValidateMixin
validationStatespublicValidationStates{}The outcome of a validation 'round'. Keyed by ValidationType and Validator nameValidateMixin
isPendingpublicbooleanfalseFlag indicating whether async validation is pending. Creates attribute [is-pending] as a styling hookValidateMixin
validatorspublicValidator[][]Used by Application Developers to add Validators to a FormControl.ValidateMixin
defaultValidatorspublicValidator[][]Used by Subclassers to add default Validators to a particular FormControl. A date input for instance, always needs the isDate validator.ValidateMixin
_visibleMessagesAmountprotectednumber1The amount of feedback messages that will visible in LionValidationFeedbackValidateMixin

Methods

NamePrivacyDescriptionParametersReturnInherited From
_choiceGraphicTemplateprotectedChoiceInputMixin
_afterTemplateprotectedChoiceInputMixin
_preventDuplicateLabelClickprotectedThe native platform fires an event for both the click on the label, and also the redispatched click on the native input element. This results in two click events arriving at the host, but we only want one. This method prevents the duplicate click and ensures the correct isTrusted event with the correct event.target arrives at the host.ev: EventChoiceInputMixin
_toggleCheckedprotectedev: EventChoiceInputMixin
_syncNameToParentFormGroupprotectedOverride this in case of extending ChoiceInputMixin and requiring to sync differently with parent form group name Right now it checks tag name match where the parent form group tagname should include the child field tagname ('checkbox' is included in 'checkbox-group')ChoiceInputMixin
_proxyInputEventprotectedThis can be called whenever the view value should be updated. Dependent on component type ("input" for <input> or "change" for <select>(mainly for IE)) a different event should be used as source for the "user-input-changed" event (which can be seen as an abstraction layer on top of other events (input, change, whatever))FormatMixin
_onModelValueChangedprotectedResponds to modelValue changes in the synchronous cycle (most subclassers should listen to the asynchronous cycle ('modelValue' in the .updated lifecycle)){ modelValue }, old: { modelValue:unknown }, newV: { modelValue:unknown }FormatMixin
parserpublicConverts viewValue to modelValue For instance, a localized date to a Date Objectv: string, opts: FormatOptions*FormatMixin
formatterpublicConverts modelValue to formattedValue (formattedValue will be synced with `._inputNode.value`) For instance, a Date object to a localized date.modelValue: ChoiceInputModelValuestringFormatMixin
clearpublicClears modelValue. Interaction states are not cleared (use resetInteractionState for this)LionField
_isEmptyprotectedUsed for required validator.modelValue: anybooleanFormControlMixin
_syncValueUpwardsprotectedSynchronization from `._inputNode.value` to `LionField` (flow [2]) Downwards syncing should only happen for `LionField`.value changes from 'above'. This triggers _onModelValueChanged and connects user input to the parsing/formatting/serializing loop.FormatMixin
preprocessorpublicPreprocessors could be considered 'live formatters'. Their result is shown to the user on keyup instead of after blurring the field. The biggest difference between preprocessors and formatters is their moment of execution: preprocessors are run before modelValue is computed (and work based on view value), whereas formatters are run after the parser (and are based on modelValue) Automatically formats code while typing. It depends on a preprocessro that smartly updates the viewValue and caret position for best UX.v: string, opts: FormatOptions & { prevViewValue: string; currentCaretIndex: number }{ viewValue:string; caretIndex:number; }|string|undefinedFormatMixin
serializerpublicConverts `.modelValue` to `.serializedValue` For instance, a Date object to an iso formatted date stringv: ?stringFormatMixin
deserializerpublicConverts `.serializedValue` to `.modelValue` For instance, an iso formatted date string to a Date objectv: ??FormatMixin
_calculateValuesprotectedResponsible for storing all representations(modelValue, serializedValue, formattedValue and value) of the input value. Prevents infinite loops, so all value observers can be treated like they will only be called once, without indirectly calling other observers. (in fact, some are called twice, but the __preventRecursiveTrigger lock prevents the second call from having effect).{ source }, config: {source:'model'|'serialized'|'formatted'|null}FormatMixin
_dispatchModelValueChangedEventprotectedThis is wrapped in a distinct method, so that parents can control when the changed event is fired. For objects, a deep comparison might be needed.args: { modelValue: unknown; }[]FormatMixin
_reflectBackFormattedValueToUserprotectedSynchronization from `LionField.value` to `._inputNode.value` - flow [1] will always be reflected back - flow [2] will not be reflected back when this flow was triggered via `@user-input-changed` (this will happen later, when `formatOn` condition is met)FormatMixin
_reflectBackOnprotectedEvery time .formattedValue is attempted to sync to the view value (on change/blur and on modelValue change), this condition is checked. When enhancing it, it's recommended to call via `return this._myExtraCondition && super._reflectBackOn()`booleanFormatMixin
_onUserInputChangedprotectedFormatMixin
__onCompositionEventprotected{ type }, event: EventFormatMixin
_setValueAndPreserveCaretprotectedRestores the cursor to its original position after updating the value.newValue: stringNativeTextFieldMixin
focuspublicCalls `focus()` on focusable element withinFocusMixin
blurpublicCalls `blur()` on focusable element withinFocusMixin
_triggerInitialModelValueChangedEventprotectedFormControlMixin
_enhanceLightDomClassesprotectedFormControlMixin
_enhanceLightDomA11yprotectedFormControlMixin
_enhanceLightDomA11yForAdditionalSlotsprotectedEnhances additional slots(prefix, suffix, before, after) defined by developer. When boolean attribute data-label or data-description is found, the slot element will be connected to the input via aria-labelledby or aria-describedbyadditionalSlots: string[]FormControlMixin
__reflectAriaAttrprotectedWill handle help text, validation feedback and character counter, prefix/suffix/before/after (if they contain data-description flag attr). Also, contents of id references that will be put in the <lion-field>._ariaDescribedby property from an external context, will be read by a screen reader.attrName: string, nodes: Element[], reorder: boolean|undefinedFormControlMixin
_groupOneTemplateprotectedTemplateResultFormControlMixin
_groupTwoTemplateprotectedTemplateResultFormControlMixin
_labelTemplateprotectedTemplateResultFormControlMixin
_helpTextTemplateprotectedTemplateResultFormControlMixin
_inputGroupTemplateprotectedTemplateResultFormControlMixin
_inputGroupBeforeTemplateprotectedTemplateResultFormControlMixin
_inputGroupPrefixTemplateprotectedTemplateResult | nothingFormControlMixin
_inputGroupInputTemplateprotectedTemplateResultFormControlMixin
_inputGroupSuffixTemplateprotectedTemplateResult | nothingFormControlMixin
_inputGroupAfterTemplateprotectedTemplateResultFormControlMixin
_feedbackTemplateprotectedTemplateResultFormControlMixin
_getAriaDescriptionElementsprotectedThis function exposes descripion elements that a FormGroup should expose to its children. See FormGroupMixin.__getAllDescriptionElementsInParentChain()Array.<HTMLElement>FormControlMixin
addToAriaLabelledBypublicAllows to add extra element references to aria-labelledby attribute.element: HTMLElement, { idPrefix = '', reorder = true }, customConfig: {idPrefix?:string; reorder?: boolean}FormControlMixin
removeFromAriaLabelledBypublicAllows to remove element references from aria-labelledby attribute.element: HTMLElementFormControlMixin
addToAriaDescribedBypublicAllows to add element references to aria-describedby attribute.element: HTMLElement, { idPrefix = '', reorder = true }, customConfig: {idPrefix?:string; reorder?: boolean}FormControlMixin
removeFromAriaDescribedBypublicAllows to remove element references from aria-describedby attribute.element: HTMLElementFormControlMixin
__getDirectSlotChildprotectedslotName: stringHTMLElement | undefinedFormControlMixin
_dispatchInitialModelValueChangedEventprotectedFormControlMixin
_onBeforeRepropagateChildrenValuesprotectedHook for Subclassers to add logic before repropagationev: CustomEventFormControlMixin
__repropagateChildrenValuesprotectedev: CustomEventFormControlMixin
_repropagationConditionprotectedBased on provided target, this condition determines whether received model-value-changed event should be repropagatedtarget: FormControlHostFormControlMixin
_onLabelClickprotectedFormControlMixin
makeRequestToBeDisabledpublicDisabledMixin
retractRequestToBeDisabledpublicDisabledMixin
initInteractionStatepublicEvaluations performed on connectedCallback. This method is public, so it can be called at a later moment (when we need to wait for registering children for instance) as well. Since this method will be called twice in last mentioned scenario, it must stay idempotent.InteractionStateMixin
_iStateOnLeaveprotectedSets touched value to true and reevaluates prefilled state. When false, on next interaction, user will start with a clean state.InteractionStateMixin
_iStateOnValueChangeprotectedSets dirty value and validates when already touched or invalidInteractionStateMixin
resetInteractionStatepublicResets touched and dirty, and recomputes prefilledLionField
_onTouchedChangedprotectedDispatches event on touched state changeInteractionStateMixin
_onDirtyChangedprotectedDispatches event on touched state changeInteractionStateMixin
_showFeedbackConditionForprotectedDefault feedbackCondition condition, used by Subclassers, that will be used when `feedbackCondition()` is not overridden by Application Developer. Show the validity feedback when returning true, don't show when falsetype: string, meta: InteractionStatesValidateMixin
validatepublicTriggered by: - modelValue change - change in the 'validators' array - change in the config of an individual Validator Three situations are handled: - a1) the FormControl is empty: further execution is halted. When the Required Validator (being mutually exclusive to the other Validators) is applied, it will end up in the validation result (as the only Validator, since further execution was halted). - a2) there are synchronous Validators: this is the most common flow. When modelValue hasn't changed since last async results were generated, 'sync results' are merged with the 'async results'. - a3) there are asynchronous Validators: for instance when server side evaluation is needed. Executions are scheduled and awaited and the 'async results' are merged with the 'sync results'. - b) there are MetaValidators. After steps a1, a2, or a3 are finished, the holistic MetaValidators (evaluating the total result of the 'regular' (a1, a2 and a3) validators) will be run... Situations a2 and a3 are not mutually exclusive and can be triggered within one `validate()` call. Situation b will occur after every call.{ clearCurrentResult = false }, opts: { clearCurrentResult?: boolean }ValidateMixin
__executeValidatorsprotectedValidateMixin
_onValidatorUpdatedprotectede: Event|CustomEventValidateMixin
_updateFeedbackComponentprotectedResponsible for retrieving messages from Validators and (delegation of) rendering them. For `._feedbackNode` (extension of LionValidationFeedback): - retrieve messages from highest prio Validators - provide the result to custom feedback node and let the custom node decide on their renderings In both cases: - we compute the 'show' flag (like 'hasErrorVisible') for all types - we set the customValidity message of the highest prio Validator - we set aria-invalid="true" in case hasErrorVisible is trueValidateMixin
feedbackConditionpublicAllows the Application Developer to specify when a feedback message should be showntype: string, meta: object, currentCondition: ((type: string, meta: object) => boolean)booleanValidateMixin
_hasFeedbackVisibleForprotectedUsed to translate `.hasFeedbackFor` and `.shouldShowFeedbackFor` to `.showsFeedbackFor`type: stringValidateMixin
_updateShouldShowFeedbackForprotectedValidateMixin
_prioritizeAndFilterFeedbackprotectedOrders all active validators in this.__validationResult. Can also filter out occurrences (based on interaction states){ validationResult }, opts: { validationResult: Validator[] }Validator[]ValidateMixin
resetpublicResets modelValue to initial value. Interaction states are clearedLionField
_onChangeprotectedDispatches custom bubble eventev: Event=LionField

Events

NameTypeDescriptionInherited From
model-value-changedCustomEventFormControlMixin
user-input-changedEventLionField
focusEventFocusMixin
blurEventFocusMixin
focusinEventFocusMixin
focusoutEventFocusMixin
form-element-name-changedCustomEventFormControlMixin
form-element-registerCustomEventFormRegisteringMixin
touched-changedEventInteractionStateMixin
dirty-changedEventInteractionStateMixin
showsFeedbackForChangedEventValidateMixin
EventValidateMixin
shouldShowFeedbackForChangedEventValidateMixin
validate-performedEventprivate event that should be listened to by LionFieldSetValidateMixin

Attributes

NameFieldInherited From
checkedcheckedChoiceInputMixin
disableddisabledDisabledMixin
modelValuemodelValueChoiceInputMixin
choiceValuechoiceValueChoiceInputMixin
autocompleteautocompleteNativeTextFieldMixin
focusedfocusedFocusMixin
focused-visiblefocusedVisibleFocusMixin
autofocusautofocusFocusMixin
readonlyreadOnlyFormControlMixin
labellabelFormControlMixin
label-sr-onlylabelSrOnlyFormControlMixin
help-texthelpTextFormControlMixin
typetypeLionInput
placeholderplaceholderLionInput
namenameFormRegisteringMixin
allow-cross-root-registrationallowCrossRootRegistrationFormRegisteringMixin
touchedtouchedInteractionStateMixin
dirtydirtyInteractionStateMixin
filledfilledInteractionStateMixin
shows-feedback-forshowsFeedbackForValidateMixin
is-pendingisPendingValidateMixin

class: LionCheckboxGroup, lion-checkbox-group

Fields

NamePrivacyTypeDefaultDescriptionInherited From
multipleChoicepublicbooleantrueWhen false (default), modelValue and serializedValue will reflect the currently selected choice (usually a string). When true, modelValue will and serializedValue will be an array of strings.ChoiceGroupMixin
modelValuepublicObject keyed by formElements names, containing formElements' modelValuesFormControlMixin
serializedValuepublicObject keyed by formElements names, containing formElements' serializedValuesFormGroupMixin
formattedValuepublicObject keyed by formElements names, containing formElements' formattedValuesFormGroupMixin
operationModepublicOperationModeTypes of input interaction of the FormControl (for instance 'enter'|'select'|'upload')ValidateMixin
_repropagationRolepublic'child'|'choice-group'|'fieldset''choice-group'Based on the role, details of handling model-value-changed repropagation differ.FormControlMixin
formElementspublicFormControlsCollectionnew FormControlsCollection()Closely mimics the natively supported HTMLFormControlsCollection. It can be accessed both like an array and an object (based on control/element names).FormRegistrarMixin
_isFormOrFieldsetprotectedbooleanfalseFlag that determines how ".formElements" should behave. For a regular fieldset (see LionFieldset) we expect ".formElements" to be accessible as an object. In case of a radio-group, a checkbox-group or a select/listbox, it should act like an array (see ChoiceGroupMixin). Usually, when false, we deal with a choice-group (radio-group, checkbox-group, (multi)select)FormRegistrarMixin
initCompletepublicPromise<any>new Promise((resolve, reject) => { this.__resolveInitComplete = resolve; this.__rejectInitComplete = reject; })initComplete resolves after all pending initialization logic (for instance `<form-group .serializedValue=$>`) is executedFormRegistrarMixin
registrationCompletepublicPromise<any> & {done?:boolean}new Promise((resolve, reject) => { this.__resolveRegistrationComplete = resolve; this.__rejectRegistrationComplete = reject; })registrationComplete waits for all children formElements to have registeredFormRegistrarMixin
donepublicbooleanfalseFormRegistrarMixin
_allValidatorsprotectedValidator[]Combination of validators provided by Application Developer and the default validatorsValidateMixin
_feedbackConditionMetaprotectedAllows Subclassers to add meta info for feedbackConditionValidateMixin
hasFeedbackForpublicValidationType[][]As soon as validation happens (after modelValue/validators/validator param change), this array is updated with the active ValidationTypes ('error'|'warning'|'success'|'info' etc.). Notice the difference with `.showsFeedbackFor`, which filters `.hasFeedbackFor` based on `.feedbackCondition()`. For styling purposes, will be reflected to [has-feedback-for="error warning"]. This can be useful for subtle visual feedback on keyup, like a red/green border around an input.ValidateMixin
showsFeedbackForpublicValidationType[][]Based on outcome of feedbackCondition, this array decides what ValidationTypes should be shown in validationFeedback, based on meta data like interaction states. For styling purposes, it reflects it `[shows-feedback-for="error warning"]`ValidateMixin
validationStatespublicValidationStates{}The outcome of a validation 'round'. Keyed by ValidationType and Validator nameValidateMixin
isPendingpublicbooleanfalseFlag indicating whether async validation is pending. Creates attribute [is-pending] as a styling hookValidateMixin
validatorspublicValidator[][]Used by Application Developers to add Validators to a FormControl.ValidateMixin
defaultValidatorspublicValidator[][]Used by Subclassers to add default Validators to a particular FormControl. A date input for instance, always needs the isDate validator.ValidateMixin
_visibleMessagesAmountprotectednumber1The amount of feedback messages that will visible in LionValidationFeedbackValidateMixin
touchedpublicbooleanfalseTrue when user has focused and left(blurred) the field.FormGroupMixin
dirtypublicbooleanfalseTrue when user has changed the value of the field.FormGroupMixin
prefilledpublicbooleanfalseTrue when user has left non-empty field or input is prefilled. The name must be seen from the point of view of the input field: once the user enters the input field, the value is non-empty.FormGroupMixin
filledpublicbooleanfalseTrue when the modelValue is non-empty (see _isEmpty in FormControlMixin)InteractionStateMixin
_leaveEventprotectedstring'blur'The event that triggers the touched stateInteractionStateMixin
_valueChangedEventprotectedstring'model-value-changed'The event that triggers the dirty stateInteractionStateMixin
submittedpublicbooleanfalseTrue when parent form is submittedFormGroupMixin
_inputNodeprotectedThe host element with role group (or radio-group or form) containing necessary aria attributesFormControlMixin
_initialModelValueprotectedGathers initial model values of all children. Used when resetGroup() is called.FormGroupMixin
valuepublicstring''FormGroupMixin
disabledpublicbooleanfalseDisables all formElements in groupDisabledMixin
focusedpublicbooleanfalseTrue when any of the children is focused.FormGroupMixin
__descriptionElementsInParentChainprotectednew Set()FormGroupMixin
__pendingValuesprotected{modelValue?:{[key:string]: any}, serializedValue?:{[key:string]: any}}{ modelValue: {}, serializedValue: {} }FormGroupMixin
labelpublicstring''The label text for the input node. When no value is defined, textContent of [slot=label] will be usedFormControlMixin
helpTextpublicstring''The helpt text for the input node. When no value is defined, textContent of [slot=help-text] will be usedFormControlMixin
fieldNamepublicstringWill be used in validation messages to refer to the current fieldFormControlMixin
_labelNodeprotectedElement where label will be rendered toFormControlMixin
_helpTextNodeprotectedElement where help text will be rendered toFormControlMixin
_feedbackNodeprotectedElement where validation feedback will be rendered toFormControlMixin
readOnlypublicbooleanfalseA Boolean attribute which, if present, indicates that the user should not be able to edit the value of the input. The difference between disabled and readonly is that read-only controls can still function, whereas disabled controls generally do not function as controls until they are enabled. (From: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)FormControlMixin
labelSrOnlypublicbooleanfalseThe label will only be visible for srceen readers when trueFormControlMixin
_inputIdprotectedstringUnique id that can be used in all light domFormControlMixin
_ariaLabelledNodespublicHTMLElement[][]Contains all elements that should end up in aria-labelledby of `._inputNode`FormControlMixin
_ariaDescribedNodespublicHTMLElement[][]Contains all elements that should end up in aria-describedby of `._inputNode`FormControlMixin
_isRepropagationEndpointpublicbooleanfalseBy default, a field with _repropagationRole 'choice-group' will act as an 'endpoint'. This means it will be considered as an individual field: for a select, individual options will not be part of the formPath. They will. Similarly, components that (a11y wise) need to be fieldsets, but 'interaction wise' (from Application Developer perspective) need to be more like fields (think of an amount-input with a currency select box next to it), can set this to true to hide private internals in the formPath.FormControlMixin
_requestedToBeDisabledprotectedbooleanfalseDisabledMixin

Methods

NamePrivacyDescriptionParametersReturnInherited From
_completeRegistrationprotectedResolves the registrationComplete promise. Subclassers can delay if neededFormRegistrarMixin
addFormElementpublicchild: FormControl, indexToInsertAt: numberFormRegistrarMixin
clearpublicChoiceGroupMixin
_triggerInitialModelValueChangedEventprotectedFormControlMixin
_getFromAllFormElementsFilterprotectedA filter function which will exclude a form field when returning false By default, exclude form fields which are disabled The type is be passed as well for more fine grained control, e.g. distinguish the filter when fetching modelValue versus serializedValueel: FormControl, type: stringbooleanFormGroupMixin
_getFromAllFormElementsprotectedImplicit :(property: string, filterFn: (el: FormControl, property?: string) => boolean{[name:string]: any}FormGroupMixin
_throwWhenInvalidChildModelValueprotectedchild: FormControlChoiceGroupMixin
_isEmptyprotectedUsed for Required validation and computation of interaction statesmodelValue: anybooleanFormControlMixin
_checkSingleChoiceElementsprotectedev: CustomEvent & {target:FormControl}ChoiceGroupMixin
_getCheckedElementsprotectedChoiceGroupMixin
_setCheckedElementsprotectedvalue: string | any[], check: FunctionChoiceGroupMixin
_onBeforeRepropagateChildrenValuesprotectedHook for Subclassers to add logic before repropagationev: CustomEventFormControlMixin
_repropagationConditionprotectedBased on provided target, this condition determines whether received model-value-changed event should be repropagatedtarget: FormControlHost & ChoiceInputHostFormControlMixin
isRegisteredFormElementpublicel: ElementWithParentFormGroupFormRegistrarMixin
removeFormElementpublicchild: FormControlHostFormRegistrarMixin
_onRequestToAddFormElementprotectedHook for Subclassers to perform logic before an element is addedev: CustomEventFormRegistrarMixin
_onRequestToChangeFormElementNameprotectedev: CustomEventFormRegistrarMixin
_onRequestToRemoveFormElementprotectedev: CustomEventFormRegistrarMixin
updateSyncpublicname: string, oldValue: ?ValidateMixin
validatepublicTriggered by: - modelValue change - change in the 'validators' array - change in the config of an individual Validator Three situations are handled: - a1) the FormControl is empty: further execution is halted. When the Required Validator (being mutually exclusive to the other Validators) is applied, it will end up in the validation result (as the only Validator, since further execution was halted). - a2) there are synchronous Validators: this is the most common flow. When modelValue hasn't changed since last async results were generated, 'sync results' are merged with the 'async results'. - a3) there are asynchronous Validators: for instance when server side evaluation is needed. Executions are scheduled and awaited and the 'async results' are merged with the 'sync results'. - b) there are MetaValidators. After steps a1, a2, or a3 are finished, the holistic MetaValidators (evaluating the total result of the 'regular' (a1, a2 and a3) validators) will be run... Situations a2 and a3 are not mutually exclusive and can be triggered within one `validate()` call. Situation b will occur after every call.{ clearCurrentResult = false }, opts: { clearCurrentResult?: boolean }ValidateMixin
__executeValidatorsprotectedValidateMixin
_onValidatorUpdatedprotectede: Event|CustomEventValidateMixin
_updateFeedbackComponentprotectedResponsible for retrieving messages from Validators and (delegation of) rendering them. For `._feedbackNode` (extension of LionValidationFeedback): - retrieve messages from highest prio Validators - provide the result to custom feedback node and let the custom node decide on their renderings In both cases: - we compute the 'show' flag (like 'hasErrorVisible') for all types - we set the customValidity message of the highest prio Validator - we set aria-invalid="true" in case hasErrorVisible is trueValidateMixin
_showFeedbackConditionForprotectedDefault feedbackCondition condition, used by Subclassers, that will be used when `feedbackCondition()` is not overridden by Application Developer. Show the validity feedback when returning true, don't show when falsetype: string, meta: objectValidateMixin
feedbackConditionpublicAllows the Application Developer to specify when a feedback message should be showntype: string, meta: object, currentCondition: ((type: string, meta: object) => boolean)booleanValidateMixin
_hasFeedbackVisibleForprotectedUsed to translate `.hasFeedbackFor` and `.shouldShowFeedbackFor` to `.showsFeedbackFor`type: stringValidateMixin
_updateShouldShowFeedbackForprotectedValidateMixin
_prioritizeAndFilterFeedbackprotectedOrders all active validators in this.__validationResult. Can also filter out occurrences (based on interaction states){ validationResult }, opts: { validationResult: Validator[] }Validator[]ValidateMixin
initInteractionStatepublicEvaluations performed on connectedCallback. This method is public, so it can be called at a later moment (when we need to wait for registering children for instance) as well. Since this method will be called twice in last mentioned scenario, it must stay idempotent.InteractionStateMixin
_iStateOnLeaveprotectedSets touched value to true and reevaluates prefilled state. When false, on next interaction, user will start with a clean state.InteractionStateMixin
_iStateOnValueChangeprotectedSets dirty value and validates when already touched or invalidInteractionStateMixin
resetInteractionStatepublicResets touched and dirty, and recomputes prefilledFormGroupMixin
_onTouchedChangedprotectedDispatches event on touched state changeInteractionStateMixin
_onDirtyChangedprotectedDispatches event on touched state changeInteractionStateMixin
__initInteractionStatesprotectedFormGroupMixin
__setupOutsideClickHandlingprotectedFormGroupMixin
_checkForOutsideClickprotectedevent: EventFormGroupMixin
__requestChildrenToBeDisabledprotectedFormGroupMixin
__retractRequestChildrenToBeDisabledprotectedFormGroupMixin
_inputGroupTemplateprotectedTemplateResultFormControlMixin
submitGrouppublicHandles interaction state 'submitted'. This allows children to enable visibility of validation feedbackFormGroupMixin
resetGrouppublicResets to initial/prefilled values and interaction states of all FormControls in group,FormGroupMixin
clearGrouppublicClears all values and resets all interaction states of all FormControls in group,FormGroupMixin
_setValueForAllFormElementsprotectedSets the same value for requested property in all formElementsproperty: string | number, value: anyFormGroupMixin
_setValueMapForAllFormElementsprotectedAllows to set formElements values via a keyed object structureproperty: string, values: { [x: string]: any; }FormGroupMixin
_anyFormElementHasprotectedReturns true when one of the formElements has requestedproperty: stringFormGroupMixin
_anyFormElementHasFeedbackForprotectedstate: stringFormGroupMixin
_everyFormElementHasprotectedReturns true when all of the formElements have requested propertyproperty: stringFormGroupMixin
__onChildValidatePerformedprotectedGets triggered by event 'validate-performed' which enabled us to handle 2 different situations - react on modelValue change, which says something about the validity as a whole (at least two checkboxes for instance) and nothing about the children's values - children validity states have changed, so fieldset needs to update itself based on thatev: EventFormGroupMixin
_syncFocusedprotectedFormGroupMixin
_onFocusOutprotectedev: EventFormGroupMixin
_syncDirtyprotectedFormGroupMixin
__storeAllDescriptionElementsInParentChainprotectedTraverses the _parentFormGroup tree, and gathers all aria description elements (feedback) that should be provided to children. In the example below, when the input for 'street' has focus, a screenreader user would hear the #group-error. In case one of the inputs was in error state as well, the SR user would first hear the local error, followed by #group-errorFormGroupMixin
__linkParentMessagesprotectedchild: FormControlFormGroupMixin
__unlinkParentMessagesprotectedchild: FormControlFormGroupMixin
_enhanceLightDomClassesprotectedFormControlMixin
_enhanceLightDomA11yprotectedFormControlMixin
_enhanceLightDomA11yForAdditionalSlotsprotectedEnhances additional slots(prefix, suffix, before, after) defined by developer. When boolean attribute data-label or data-description is found, the slot element will be connected to the input via aria-labelledby or aria-describedbyadditionalSlots: string[]FormControlMixin
__reflectAriaAttrprotectedWill handle help text, validation feedback and character counter, prefix/suffix/before/after (if they contain data-description flag attr). Also, contents of id references that will be put in the <lion-field>._ariaDescribedby property from an external context, will be read by a screen reader.attrName: string, nodes: Element[], reorder: boolean|undefinedFormControlMixin
_groupOneTemplateprotectedTemplateResultFormControlMixin
_groupTwoTemplateprotectedTemplateResultFormControlMixin
_labelTemplateprotectedTemplateResultFormControlMixin
_helpTextTemplateprotectedTemplateResultFormControlMixin
_inputGroupBeforeTemplateprotectedTemplateResultFormControlMixin
_inputGroupPrefixTemplateprotectedTemplateResult | nothingFormControlMixin
_inputGroupInputTemplateprotectedTemplateResultFormControlMixin
_inputGroupSuffixTemplateprotectedTemplateResult | nothingFormControlMixin
_inputGroupAfterTemplateprotectedTemplateResultFormControlMixin
_feedbackTemplateprotectedTemplateResultFormControlMixin
_getAriaDescriptionElementsprotectedThis function exposes descripion elements that a FormGroup should expose to its children. See FormGroupMixin.__getAllDescriptionElementsInParentChain()Array.<HTMLElement>FormControlMixin
addToAriaLabelledBypublicAllows to add extra element references to aria-labelledby attribute.element: HTMLElement, { idPrefix = '', reorder = true }, customConfig: {idPrefix?:string; reorder?: boolean}FormControlMixin
removeFromAriaLabelledBypublicAllows to remove element references from aria-labelledby attribute.element: HTMLElementFormControlMixin
addToAriaDescribedBypublicAllows to add element references to aria-describedby attribute.element: HTMLElement, { idPrefix = '', reorder = true }, customConfig: {idPrefix?:string; reorder?: boolean}FormControlMixin
removeFromAriaDescribedBypublicAllows to remove element references from aria-describedby attribute.element: HTMLElementFormControlMixin
__getDirectSlotChildprotectedslotName: stringHTMLElement | undefinedFormControlMixin
_dispatchInitialModelValueChangedEventprotectedFormControlMixin
__repropagateChildrenValuesprotectedev: CustomEventFormControlMixin
_onLabelClickprotectedFormControlMixin
makeRequestToBeDisabledpublicDisabledMixin
retractRequestToBeDisabledpublicDisabledMixin

Events

NameTypeDescriptionInherited From
showsFeedbackForChangedEventValidateMixin
EventValidateMixin
shouldShowFeedbackForChangedEventValidateMixin
validate-performedEventprivate event that should be listened to by LionFieldSetValidateMixin
touched-changedEventInteractionStateMixin
dirty-changedEventInteractionStateMixin
form-element-name-changedCustomEventFormControlMixin
model-value-changedCustomEventFormControlMixin

Attributes

NameFieldInherited From
multiple-choicemultipleChoiceChoiceGroupMixin
_isFormOrFieldset_isFormOrFieldsetFormRegistrarMixin
shows-feedback-forshowsFeedbackForValidateMixin
is-pendingisPendingValidateMixin
touchedtouchedFormGroupMixin
dirtydirtyFormGroupMixin
filledfilledInteractionStateMixin
submittedsubmittedFormGroupMixin
focusedfocusedFormGroupMixin
prefilledprefilledFormGroupMixin
readonlyreadOnlyFormControlMixin
labellabelFormControlMixin
label-sr-onlylabelSrOnlyFormControlMixin
help-texthelpTextFormControlMixin
disableddisabledDisabledMixin

class: LionCheckboxIndeterminate, lion-checkbox-indeterminate

Fields

NamePrivacyTypeDefaultDescriptionInherited From
_checkboxGroupNodeprotected
_subCheckboxesprotected
indeterminatepublicbooleanfalseIndeterminate state of the checkbox
_indeterminateSubStatesprotectedboolean[][]
mixedStatepublicbooleanfalse
choiceValuepublicstring|anyThe value that will be registered to the modelValue of the parent ChoiceGroup. Recommended to be a stringChoiceInputMixin
modelValuepublic{value:string|any,checked:boolean}{ value: '', checked: false }Whereas 'normal' `.modelValue`s usually store a complex/typed version of a view value, choice inputs have a slightly different approach. In order to remain their Single Source of Truth characteristic, choice inputs store both the value and 'checkedness', in the format { value: 'x', checked: true } Different from the platform, this also allows to serialize the 'non checkedness', allowing to restore form state easily and inform the server about unchecked options.FormControlMixin
disabledpublicbooleanfalseBoolean indicating whether or not this element is disabled.DisabledMixin
checkedpublicbooleanChoiceInputMixin
valuepublicThe view value. Will be delegated to `._inputNode.value`FormatMixin
formatOnprotectedstring'change'Event that will trigger formatting (more precise, visual update of the view, so the user sees the formatted value) Default: 'change'FormatMixin
formatOptionspublic({})Configuration object that will be available inside the formatter functionFormatMixin
formattedValuepublicstring|undefinedundefinedThe view value is the result of the formatter function (when available). The result will be stored in the native _inputNode (usually an input[type=text]). Examples: - For a date input, this would be '20/01/1999' (dependent on locale). - For a number input, this could be '1,234.56' (a String representation of modelValue 1234.56)FormatMixin
serializedValuepublicstring|undefinedundefinedThe serialized version of the model value. This value exists for maximal compatibility with the platform API. The serialized value can be an interface in context where data binding is not supported and a serialized string needs to be set. Examples: - For a date input, this would be the iso format of a date, e.g. '1999-01-20'. - For a number input this would be the String representation of a float ('1234.56' instead of 1234.56) When no parser is available, the value is usually the same as the formattedValue (being _inputNode.value)FormatMixin
_isPastingprotectedbooleanfalseWhether the user is pasting content. Allows Subclassers to do this in their subclass:FormatMixin
_isHandlingUserInputprotectedbooleanfalseFlag that will be set when user interaction takes place (for instance after an 'input' event). Will be added as meta info to the `model-value-changed` event. Depending on whether a user is interacting, formatting logic will be handled differently.FormatMixin
_inputNodeprotectedHTMLInputElement | HTMLTextAreaElementThe interactive (form) element. Can be a native element like input/textarea/select or an element with tabindex > -1FormControlMixin
selectionStartpublicnumberNativeTextFieldMixin
selectionEndpublicnumberNativeTextFieldMixin
_focusableNodeprotectedHTMLElementThe focusable element: could be an input, textarea, select, button or any other element with tabindex > -1LionField
autocompletepublicstring | undefinedundefinedDelegates this property to input/textarea/select.NativeTextFieldMixin
focusedpublicbooleanfalseWhether the focusable element within (`._focusableNode`) is focused. Reflects to attribute '[focused]' as a styling hookFocusMixin
focusedVisiblepublicbooleanfalseWhether the focusable element within (`._focusableNode`) matches ':focus-visible' Reflects to attribute '[focused-visible]' as a styling hook See: https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visibleFocusMixin
autofocuspublicbooleanfalseFocusMixin
labelpublicstring''The label text for the input node. When no value is defined, textContent of [slot=label] will be usedFormControlMixin
helpTextpublicstring''The helpt text for the input node. When no value is defined, textContent of [slot=help-text] will be usedFormControlMixin
fieldNamepublicstringWill be used in validation messages to refer to the current fieldFormControlMixin
_labelNodeprotectedElement where label will be rendered toFormControlMixin
_helpTextNodeprotectedElement where help text will be rendered toFormControlMixin
_feedbackNodeprotectedElement where validation feedback will be rendered toFormControlMixin
readOnlypublicbooleanfalseA Boolean attribute which, if present, indicates that the user should not be able to edit the value of the input. The difference between disabled and readonly is that read-only controls can still function, whereas disabled controls generally do not function as controls until they are enabled. (From: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)FormControlMixin
labelSrOnlypublicbooleanfalseThe label will only be visible for srceen readers when trueFormControlMixin
_inputIdprotectedstringUnique id that can be used in all light domFormControlMixin
_ariaLabelledNodespublicHTMLElement[][]Contains all elements that should end up in aria-labelledby of `._inputNode`FormControlMixin
_ariaDescribedNodespublicHTMLElement[][]Contains all elements that should end up in aria-describedby of `._inputNode`FormControlMixin
_repropagationRolepublic'child'|'choice-group'|'fieldset''child'Based on the role, details of handling model-value-changed repropagation differ.FormControlMixin
_isRepropagationEndpointpublicbooleanfalseBy default, a field with _repropagationRole 'choice-group' will act as an 'endpoint'. This means it will be considered as an individual field: for a select, individual options will not be part of the formPath. They will. Similarly, components that (a11y wise) need to be fieldsets, but 'interaction wise' (from Application Developer perspective) need to be more like fields (think of an amount-input with a currency select box next to it), can set this to true to hide private internals in the formPath.FormControlMixin
typepublicstring'text'LionInput
placeholderpublicstring''LionInput
namepublicstring''The name the element will be registered with to the .formElements collection of the parent. Also, it serves as the key of key/value pairs in modelValue/serializedValue objectsFormRegisteringMixin
_parentFormGroupprotectedFormRegistrarHost | undefinedundefinedThe registrar this FormControl registers to, Usually a descendant of FormGroup or ChoiceGroupFormRegisteringMixin
allowCrossRootRegistrationpublicbooleanfalseTo encourage accessibility best practices, `form-element-register` events do not pierce through shadow roots. This forces the developer to create form groups and fieldsets that automatically allow the creation of accessible relationships in the same dom tree. Use this option if you know what you're doing. It will then be possible to nest FormControls inside shadow dom. See https://lion-web.netlify.app/fundamentals/rationales/accessibility/#shadow-roots-and-accessibilityFormRegisteringMixin
_requestedToBeDisabledprotectedbooleanfalseDisabledMixin
_feedbackConditionMetaprotectedAllows Subclassers to add meta info for feedbackConditionLionField
touchedpublicbooleanfalseTrue when user has focused and left(blurred) the field.InteractionStateMixin
dirtypublicbooleanfalseTrue when user has changed the value of the field.InteractionStateMixin
prefilledpublicbooleanfalseTrue when user has left non-empty field or input is prefilled. The name must be seen from the point of view of the input field: once the user enters the input field, the value is non-empty.InteractionStateMixin
filledpublicbooleanfalseTrue when the modelValue is non-empty (see _isEmpty in FormControlMixin)InteractionStateMixin
_leaveEventprotectedstring'blur'The event that triggers the touched stateInteractionStateMixin
_valueChangedEventprotectedstring'model-value-changed'The event that triggers the dirty stateInteractionStateMixin
submittedpublicInteractionStateMixin
operationModepublicOperationModeTypes of input interaction of the FormControl (for instance 'enter'|'select'|'upload')ValidateMixin
_allValidatorsprotectedValidator[]Combination of validators provided by Application Developer and the default validatorsValidateMixin
hasFeedbackForpublicValidationType[][]As soon as validation happens (after modelValue/validators/validator param change), this array is updated with the active ValidationTypes ('error'|'warning'|'success'|'info' etc.). Notice the difference with `.showsFeedbackFor`, which filters `.hasFeedbackFor` based on `.feedbackCondition()`. For styling purposes, will be reflected to [has-feedback-for="error warning"]. This can be useful for subtle visual feedback on keyup, like a red/green border around an input.ValidateMixin
showsFeedbackForpublicValidationType[][]Based on outcome of feedbackCondition, this array decides what ValidationTypes should be shown in validationFeedback, based on meta data like interaction states. For styling purposes, it reflects it `[shows-feedback-for="error warning"]`ValidateMixin
validationStatespublicValidationStates{}The outcome of a validation 'round'. Keyed by ValidationType and Validator nameValidateMixin
isPendingpublicbooleanfalseFlag indicating whether async validation is pending. Creates attribute [is-pending] as a styling hookValidateMixin
validatorspublicValidator[][]Used by Application Developers to add Validators to a FormControl.ValidateMixin
defaultValidatorspublicValidator[][]Used by Subclassers to add default Validators to a particular FormControl. A date input for instance, always needs the isDate validator.ValidateMixin
_visibleMessagesAmountprotectednumber1The amount of feedback messages that will visible in LionValidationFeedbackValidateMixin

Methods

NamePrivacyDescriptionParametersReturnInherited From
_storeIndeterminateStateprotected
_setOldStateprotected
_setOwnCheckedStateprotected
_setBasedOnMixedStateprotected
_afterTemplateprotectedChoiceInputMixin
_onRequestToAddFormElementprotectedev: Event
_onRequestToRemoveFormElementprotectedev: Event
_choiceGraphicTemplateprotectedChoiceInputMixin
_preventDuplicateLabelClickprotectedThe native platform fires an event for both the click on the label, and also the redispatched click on the native input element. This results in two click events arriving at the host, but we only want one. This method prevents the duplicate click and ensures the correct isTrusted event with the correct event.target arrives at the host.ev: EventChoiceInputMixin
_toggleCheckedprotectedev: EventChoiceInputMixin
_syncNameToParentFormGroupprotectedOverride this in case of extending ChoiceInputMixin and requiring to sync differently with parent form group name Right now it checks tag name match where the parent form group tagname should include the child field tagname ('checkbox' is included in 'checkbox-group')ChoiceInputMixin
_proxyInputEventprotectedThis can be called whenever the view value should be updated. Dependent on component type ("input" for <input> or "change" for <select>(mainly for IE)) a different event should be used as source for the "user-input-changed" event (which can be seen as an abstraction layer on top of other events (input, change, whatever))FormatMixin
_onModelValueChangedprotectedResponds to modelValue changes in the synchronous cycle (most subclassers should listen to the asynchronous cycle ('modelValue' in the .updated lifecycle)){ modelValue }, old: { modelValue:unknown }, newV: { modelValue:unknown }FormatMixin
parserpublicConverts viewValue to modelValue For instance, a localized date to a Date Objectv: string, opts: FormatOptions*FormatMixin
formatterpublicConverts modelValue to formattedValue (formattedValue will be synced with `._inputNode.value`) For instance, a Date object to a localized date.modelValue: ChoiceInputModelValuestringFormatMixin
clearpublicClears modelValue. Interaction states are not cleared (use resetInteractionState for this)LionField
_isEmptyprotectedUsed for required validator.modelValue: anybooleanFormControlMixin
_syncValueUpwardsprotectedSynchronization from `._inputNode.value` to `LionField` (flow [2]) Downwards syncing should only happen for `LionField`.value changes from 'above'. This triggers _onModelValueChanged and connects user input to the parsing/formatting/serializing loop.FormatMixin
preprocessorpublicPreprocessors could be considered 'live formatters'. Their result is shown to the user on keyup instead of after blurring the field. The biggest difference between preprocessors and formatters is their moment of execution: preprocessors are run before modelValue is computed (and work based on view value), whereas formatters are run after the parser (and are based on modelValue) Automatically formats code while typing. It depends on a preprocessro that smartly updates the viewValue and caret position for best UX.v: string, opts: FormatOptions & { prevViewValue: string; currentCaretIndex: number }{ viewValue:string; caretIndex:number; }|string|undefinedFormatMixin
serializerpublicConverts `.modelValue` to `.serializedValue` For instance, a Date object to an iso formatted date stringv: ?stringFormatMixin
deserializerpublicConverts `.serializedValue` to `.modelValue` For instance, an iso formatted date string to a Date objectv: ??FormatMixin
_calculateValuesprotectedResponsible for storing all representations(modelValue, serializedValue, formattedValue and value) of the input value. Prevents infinite loops, so all value observers can be treated like they will only be called once, without indirectly calling other observers. (in fact, some are called twice, but the __preventRecursiveTrigger lock prevents the second call from having effect).{ source }, config: {source:'model'|'serialized'|'formatted'|null}FormatMixin
_dispatchModelValueChangedEventprotectedThis is wrapped in a distinct method, so that parents can control when the changed event is fired. For objects, a deep comparison might be needed.args: { modelValue: unknown; }[]FormatMixin
_reflectBackFormattedValueToUserprotectedSynchronization from `LionField.value` to `._inputNode.value` - flow [1] will always be reflected back - flow [2] will not be reflected back when this flow was triggered via `@user-input-changed` (this will happen later, when `formatOn` condition is met)FormatMixin
_reflectBackOnprotectedEvery time .formattedValue is attempted to sync to the view value (on change/blur and on modelValue change), this condition is checked. When enhancing it, it's recommended to call via `return this._myExtraCondition && super._reflectBackOn()`booleanFormatMixin
_onUserInputChangedprotectedFormatMixin
__onCompositionEventprotected{ type }, event: EventFormatMixin
_setValueAndPreserveCaretprotectedRestores the cursor to its original position after updating the value.newValue: stringNativeTextFieldMixin
focuspublicCalls `focus()` on focusable element withinFocusMixin
blurpublicCalls `blur()` on focusable element withinFocusMixin
_triggerInitialModelValueChangedEventprotectedFormControlMixin
_enhanceLightDomClassesprotectedFormControlMixin
_enhanceLightDomA11yprotectedFormControlMixin
_enhanceLightDomA11yForAdditionalSlotsprotectedEnhances additional slots(prefix, suffix, before, after) defined by developer. When boolean attribute data-label or data-description is found, the slot element will be connected to the input via aria-labelledby or aria-describedbyadditionalSlots: string[]FormControlMixin
__reflectAriaAttrprotectedWill handle help text, validation feedback and character counter, prefix/suffix/before/after (if they contain data-description flag attr). Also, contents of id references that will be put in the <lion-field>._ariaDescribedby property from an external context, will be read by a screen reader.attrName: string, nodes: Element[], reorder: boolean|undefinedFormControlMixin
_groupOneTemplateprotectedTemplateResultFormControlMixin
_groupTwoTemplateprotectedTemplateResultFormControlMixin
_labelTemplateprotectedTemplateResultFormControlMixin
_helpTextTemplateprotectedTemplateResultFormControlMixin
_inputGroupTemplateprotectedTemplateResultFormControlMixin
_inputGroupBeforeTemplateprotectedTemplateResultFormControlMixin
_inputGroupPrefixTemplateprotectedTemplateResult | nothingFormControlMixin
_inputGroupInputTemplateprotectedTemplateResultFormControlMixin
_inputGroupSuffixTemplateprotectedTemplateResult | nothingFormControlMixin
_inputGroupAfterTemplateprotectedTemplateResultFormControlMixin
_feedbackTemplateprotectedTemplateResultFormControlMixin
_getAriaDescriptionElementsprotectedThis function exposes descripion elements that a FormGroup should expose to its children. See FormGroupMixin.__getAllDescriptionElementsInParentChain()Array.<HTMLElement>FormControlMixin
addToAriaLabelledBypublicAllows to add extra element references to aria-labelledby attribute.element: HTMLElement, { idPrefix = '', reorder = true }, customConfig: {idPrefix?:string; reorder?: boolean}FormControlMixin
removeFromAriaLabelledBypublicAllows to remove element references from aria-labelledby attribute.element: HTMLElementFormControlMixin
addToAriaDescribedBypublicAllows to add element references to aria-describedby attribute.element: HTMLElement, { idPrefix = '', reorder = true }, customConfig: {idPrefix?:string; reorder?: boolean}FormControlMixin
removeFromAriaDescribedBypublicAllows to remove element references from aria-describedby attribute.element: HTMLElementFormControlMixin
__getDirectSlotChildprotectedslotName: stringHTMLElement | undefinedFormControlMixin
_dispatchInitialModelValueChangedEventprotectedFormControlMixin
_onBeforeRepropagateChildrenValuesprotectedHook for Subclassers to add logic before repropagationev: CustomEventFormControlMixin
__repropagateChildrenValuesprotectedev: CustomEventFormControlMixin
_repropagationConditionprotectedBased on provided target, this condition determines whether received model-value-changed event should be repropagatedtarget: FormControlHostFormControlMixin
_onLabelClickprotectedFormControlMixin
makeRequestToBeDisabledpublicDisabledMixin
retractRequestToBeDisabledpublicDisabledMixin
initInteractionStatepublicEvaluations performed on connectedCallback. This method is public, so it can be called at a later moment (when we need to wait for registering children for instance) as well. Since this method will be called twice in last mentioned scenario, it must stay idempotent.InteractionStateMixin
_iStateOnLeaveprotectedSets touched value to true and reevaluates prefilled state. When false, on next interaction, user will start with a clean state.InteractionStateMixin
_iStateOnValueChangeprotectedSets dirty value and validates when already touched or invalidInteractionStateMixin
resetInteractionStatepublicResets touched and dirty, and recomputes prefilledLionField
_onTouchedChangedprotectedDispatches event on touched state changeInteractionStateMixin
_onDirtyChangedprotectedDispatches event on touched state changeInteractionStateMixin
_showFeedbackConditionForprotectedDefault feedbackCondition condition, used by Subclassers, that will be used when `feedbackCondition()` is not overridden by Application Developer. Show the validity feedback when returning true, don't show when falsetype: string, meta: InteractionStatesValidateMixin
validatepublicTriggered by: - modelValue change - change in the 'validators' array - change in the config of an individual Validator Three situations are handled: - a1) the FormControl is empty: further execution is halted. When the Required Validator (being mutually exclusive to the other Validators) is applied, it will end up in the validation result (as the only Validator, since further execution was halted). - a2) there are synchronous Validators: this is the most common flow. When modelValue hasn't changed since last async results were generated, 'sync results' are merged with the 'async results'. - a3) there are asynchronous Validators: for instance when server side evaluation is needed. Executions are scheduled and awaited and the 'async results' are merged with the 'sync results'. - b) there are MetaValidators. After steps a1, a2, or a3 are finished, the holistic MetaValidators (evaluating the total result of the 'regular' (a1, a2 and a3) validators) will be run... Situations a2 and a3 are not mutually exclusive and can be triggered within one `validate()` call. Situation b will occur after every call.{ clearCurrentResult = false }, opts: { clearCurrentResult?: boolean }ValidateMixin
__executeValidatorsprotectedValidateMixin
_onValidatorUpdatedprotectede: Event|CustomEventValidateMixin
_updateFeedbackComponentprotectedResponsible for retrieving messages from Validators and (delegation of) rendering them. For `._feedbackNode` (extension of LionValidationFeedback): - retrieve messages from highest prio Validators - provide the result to custom feedback node and let the custom node decide on their renderings In both cases: - we compute the 'show' flag (like 'hasErrorVisible') for all types - we set the customValidity message of the highest prio Validator - we set aria-invalid="true" in case hasErrorVisible is trueValidateMixin
feedbackConditionpublicAllows the Application Developer to specify when a feedback message should be showntype: string, meta: object, currentCondition: ((type: string, meta: object) => boolean)booleanValidateMixin
_hasFeedbackVisibleForprotectedUsed to translate `.hasFeedbackFor` and `.shouldShowFeedbackFor` to `.showsFeedbackFor`type: stringValidateMixin
_updateShouldShowFeedbackForprotectedValidateMixin
_prioritizeAndFilterFeedbackprotectedOrders all active validators in this.__validationResult. Can also filter out occurrences (based on interaction states){ validationResult }, opts: { validationResult: Validator[] }Validator[]ValidateMixin
resetpublicResets modelValue to initial value. Interaction states are clearedLionField
_onChangeprotectedDispatches custom bubble eventev: Event=LionField

Events

NameTypeDescriptionInherited From
model-value-changedCustomEventFormControlMixin
user-input-changedEventLionField
focusEventFocusMixin
blurEventFocusMixin
focusinEventFocusMixin
focusoutEventFocusMixin
form-element-name-changedCustomEventFormControlMixin
form-element-registerCustomEventFormRegisteringMixin
touched-changedEventInteractionStateMixin
dirty-changedEventInteractionStateMixin
showsFeedbackForChangedEventValidateMixin
EventValidateMixin
shouldShowFeedbackForChangedEventValidateMixin
validate-performedEventprivate event that should be listened to by LionFieldSetValidateMixin

Attributes

NameFieldInherited From
indeterminateindeterminate
mixed-statemixedState
checkedcheckedChoiceInputMixin
disableddisabledDisabledMixin
modelValuemodelValueChoiceInputMixin
choiceValuechoiceValueChoiceInputMixin
autocompleteautocompleteNativeTextFieldMixin
focusedfocusedFocusMixin
focused-visiblefocusedVisibleFocusMixin
autofocusautofocusFocusMixin
readonlyreadOnlyFormControlMixin
labellabelFormControlMixin
label-sr-onlylabelSrOnlyFormControlMixin
help-texthelpTextFormControlMixin
typetypeLionInput
placeholderplaceholderLionInput
namenameFormRegisteringMixin
allow-cross-root-registrationallowCrossRootRegistrationFormRegisteringMixin
touchedtouchedInteractionStateMixin
dirtydirtyInteractionStateMixin
filledfilledInteractionStateMixin
shows-feedback-forshowsFeedbackForValidateMixin
is-pendingisPendingValidateMixin