UNPKG

@sandlada/mdc

Version:

@sandlada/mdc is an open source component library that follows the Material Design 3 design specifications.

8 lines 1.71 kB
import{Validator as e}from"./validator.js"; /** * @license * Copyright 2023 Google LLC * SPDX-License-Identifier: Apache-2.0 */ var t=class extends e{computeValidity({state:e,renderedControl:t}){let r=t;n(e)&&!r?(r=this.inputControl||document.createElement(`input`),this.inputControl=r):r||(r=this.textAreaControl||document.createElement(`textarea`),this.textAreaControl=r);let i=n(e)?r:null;if(i&&(i.type=e.type),r.value!==e.value&&(r.value=e.value),r.required=e.required,i){let t=e;t.pattern?i.pattern=t.pattern:i.removeAttribute(`pattern`),t.min?i.min=t.min:i.removeAttribute(`min`),t.max?i.max=t.max:i.removeAttribute(`max`),t.step?i.step=t.step:i.removeAttribute(`step`)}return(e.minLength??-1)>-1?r.setAttribute(`minlength`,String(e.minLength)):r.removeAttribute(`minlength`),(e.maxLength??-1)>-1?r.setAttribute(`maxlength`,String(e.maxLength)):r.removeAttribute(`maxlength`),{validity:r.validity,validationMessage:r.validationMessage}}equals({state:e},{state:t}){let r=e.type===t.type&&e.value===t.value&&e.required===t.required&&e.minLength===t.minLength&&e.maxLength===t.maxLength;return!n(e)||!n(t)?r:r&&e.pattern===t.pattern&&e.min===t.min&&e.max===t.max&&e.step===t.step}copy({state:e}){return{state:n(e)?this.copyInput(e):this.copyTextArea(e),renderedControl:null}}copyInput(e){let{type:t,pattern:n,min:r,max:i,step:a}=e;return{...this.copySharedState(e),type:t,pattern:n,min:r,max:i,step:a}}copyTextArea(e){return{...this.copySharedState(e),type:e.type}}copySharedState({value:e,required:t,minLength:n,maxLength:r}){return{value:e,required:t,minLength:n,maxLength:r}}};function n(e){return e.type!==`textarea`}export{t as TextFieldValidator}; //# sourceMappingURL=text-field-validator.js.map