/*!
 * KoliBri - The accessible HTML-Standard
 */
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const index=require("./index-daeff106.js"),index$1=require("./index-7215e5f8.js"),i18n=require("./i18n-411431b1.js");require("./index-d6d9ba30.js"),require("./dev.utils-0c521af5.js");const KolForm=class{constructor(e){index.registerInstance(this,e),this.onSubmit=e=>{var t,i;e.preventDefault(),e.stopPropagation(),"function"==typeof(null===(t=this.state._on)||void 0===t?void 0:t.onSubmit)&&(null===(i=this.state._on)||void 0===i||i.onSubmit(e))},this.onReset=e=>{var t,i;e.preventDefault(),e.stopPropagation(),"function"==typeof(null===(t=this.state._on)||void 0===t?void 0:t.onReset)&&(null===(i=this.state._on)||void 0===i||i.onReset(e))},this.handleLinkClick=e=>{var t;const i=null===(t=e.target)||void 0===t?void 0:t.href;if(i){const e=new URL(i),t=document.querySelector(e.hash);t&&"function"==typeof t.focus&&(t.scrollIntoView({behavior:"smooth"}),t.focus())}},this._on=void 0,this._requiredText=!0,this._errorList=void 0,this.state={}}render(){return index.h("form",{method:"post",onSubmit:this.onSubmit,onReset:this.onReset,autoComplete:"off",noValidate:!0},this._errorList&&this._errorList.length>0&&index.h("kol-alert",{_type:"error"},i18n.translate("kol-error-list-message"),index.h("nav",{"aria-label":i18n.translate("kol-error-list")},index.h("ul",null,this._errorList.map(((e,t)=>index.h("li",{key:t},index.h("kol-link",{_href:e.selector,_label:e.message,_on:{onClick:this.handleLinkClick},ref:e=>{0===t&&(this.errorListElement=e)}}))))))),!0===this.state._requiredText?index.h("p",null,index.h("kol-indented-text",null,i18n.translate("kol-form-description"))):"string"==typeof this.state._requiredText&&this.state._requiredText.length>0?index.h("p",null,index.h("kol-indented-text",null,this.state._requiredText)):null,index.h("slot",null))}validateOn(e){"object"==typeof e&&null!==e&&(this.state=Object.assign(Object.assign({},this.state),{_on:e}))}validateRequiredText(e){"boolean"==typeof e?index$1.watchBoolean(this,"_requiredText",e):index$1.watchString(this,"_requiredText",e)}validateErrorList(e){index$1.validateErrorList(this,e)}componentWillLoad(){this.validateOn(this._on),this.validateRequiredText(this._requiredText),this.validateErrorList(this._errorList)}componentDidRender(){var e;this._errorList&&this._errorList.length>0&&(null===(e=this.errorListElement)||void 0===e||e.focus())}static get watchers(){return{_on:["validateOn"],_requiredText:["validateRequiredText"],_errorList:["validateErrorList"]}}};exports.kol_form=KolForm;