tutor-calendar.js
5 days ago
tutor-chart-js.js
5 days ago
tutor-coupon-main-content.js
5 days ago
tutor-course-builder-additional.js
5 days ago
tutor-course-builder-basic.js
5 days ago
tutor-course-builder-curriculum.js
5 days ago
tutor-course-builder-icon.js
5 days ago
tutor-dnd-kit.js
5 days ago
tutor-file-uploader.js
5 days ago
tutor-form.js
5 days ago
tutor-react-datepicker.js
5 days ago
tutor-select.js
5 days ago
tutor-time-input.js
5 days ago
tutor-form.js
22 lines
| 1 | (self["webpackChunktutor"]=self["webpackChunktutor"]||[]).push([["353"],{44657:function(e){!function(t,i){true?e.exports=i():0}(this,function(){"use strict";var e=1e3,t=6e4,i=36e5,r="millisecond",a="second",s="minute",n="hour",l="day",u="week",o="month",d="quarter",h="year",f="date",v="Invalid Date",c=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,y={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],i=e%100;return"["+e+(t[(i-20)%10]||t[i]||t[0])+"]"}},p=function(e,t,i){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(i)+e},g={s:p,z:function(e){var t=-e.utcOffset(),i=Math.abs(t),r=Math.floor(i/60),a=i%60;return(t<=0?"+":"-")+p(r,2,"0")+":"+p(a,2,"0")},m:function e(t,i){if(t.date()<i.date())return-e(i,t);var r=12*(i.year()-t.year())+(i.month()-t.month()),a=t.clone().add(r,o),s=i-a<0,n=t.clone().add(r+(s?-1:1),o);return+(-(r+(i-a)/(s?a-n:n-a))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return({M:o,y:h,w:u,d:l,D:f,h:n,m:s,s:a,ms:r,Q:d})[e]||String(e||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},S="en",b={};b[S]=y;var $="$isDayjsObject",F=function(e){return e instanceof V||!(!e||!e[$])},M=function e(t,i,r){var a;if(!t)return S;if("string"==typeof t){var s=t.toLowerCase();b[s]&&(a=s),i&&(b[s]=i,a=s);var n=t.split("-");if(!a&&n.length>1)return e(n[0])}else{var l=t.name;b[l]=t,a=l}return!r&&a&&(S=a),a||!r&&S},_=function(e,t){if(F(e))return e.clone();var i="object"==typeof t?t:{};return i.date=e,i.args=arguments,new V(i)},E=g;E.l=M,E.i=F,E.w=function(e,t){return _(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var V=function(){function y(e){this.$L=M(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[$]=!0}var p=y.prototype;return p.parse=function(e){this.$d=function(e){var t=e.date,i=e.utc;if(null===t)return new Date(NaN);if(E.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(c);if(r){var a=r[2]-1||0,s=(r[7]||"0").substring(0,3);return i?new Date(Date.UTC(r[1],a,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],a,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(t)}(e),this.init()},p.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},p.$utils=function(){return E},p.isValid=function(){return!(this.$d.toString()===v)},p.isSame=function(e,t){var i=_(e);return this.startOf(t)<=i&&i<=this.endOf(t)},p.isAfter=function(e,t){return _(e)<this.startOf(t)},p.isBefore=function(e,t){return this.endOf(t)<_(e)},p.$g=function(e,t,i){return E.u(e)?this[t]:this.set(i,e)},p.unix=function(){return Math.floor(this.valueOf()/1e3)},p.valueOf=function(){return this.$d.getTime()},p.startOf=function(e,t){var i=this,r=!!E.u(t)||t,d=E.p(e),v=function(e,t){var a=E.w(i.$u?Date.UTC(i.$y,t,e):new Date(i.$y,t,e),i);return r?a:a.endOf(l)},c=function(e,t){return E.w(i.toDate()[e].apply(i.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(t)),i)},m=this.$W,y=this.$M,p=this.$D,g="set"+(this.$u?"UTC":"");switch(d){case h:return r?v(1,0):v(31,11);case o:return r?v(1,y):v(0,y+1);case u:var S=this.$locale().weekStart||0,b=(m<S?m+7:m)-S;return v(r?p-b:p+(6-b),y);case l:case f:return c(g+"Hours",0);case n:return c(g+"Minutes",1);case s:return c(g+"Seconds",2);case a:return c(g+"Milliseconds",3);default:return this.clone()}},p.endOf=function(e){return this.startOf(e,!1)},p.$set=function(e,t){var i,u=E.p(e),d="set"+(this.$u?"UTC":""),v=(i={},i[l]=d+"Date",i[f]=d+"Date",i[o]=d+"Month",i[h]=d+"FullYear",i[n]=d+"Hours",i[s]=d+"Minutes",i[a]=d+"Seconds",i[r]=d+"Milliseconds",i)[u],c=u===l?this.$D+(t-this.$W):t;if(u===o||u===h){var m=this.clone().set(f,1);m.$d[v](c),m.init(),this.$d=m.set(f,Math.min(this.$D,m.daysInMonth())).$d}else v&&this.$d[v](c);return this.init(),this},p.set=function(e,t){return this.clone().$set(e,t)},p.get=function(e){return this[E.p(e)]()},p.add=function(r,d){var f,v=this;r=Number(r);var c=E.p(d),m=function(e){var t=_(v);return E.w(t.date(t.date()+Math.round(e*r)),v)};if(c===o)return this.set(o,this.$M+r);if(c===h)return this.set(h,this.$y+r);if(c===l)return m(1);if(c===u)return m(7);var y=(f={},f[s]=t,f[n]=i,f[a]=e,f)[c]||1,p=this.$d.getTime()+r*y;return E.w(p,this)},p.subtract=function(e,t){return this.add(-1*e,t)},p.format=function(e){var t=this,i=this.$locale();if(!this.isValid())return i.invalidDate||v;var r=e||"YYYY-MM-DDTHH:mm:ssZ",a=E.z(this),s=this.$H,n=this.$m,l=this.$M,u=i.weekdays,o=i.months,d=i.meridiem,h=function(e,i,a,s){return e&&(e[i]||e(t,r))||a[i].slice(0,s)},f=function(e){return E.s(s%12||12,e,"0")},c=d||function(e,t,i){var r=e<12?"AM":"PM";return i?r.toLowerCase():r};return r.replace(m,function(e,r){return r||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return E.s(t.$y,4,"0");case"M":return l+1;case"MM":return E.s(l+1,2,"0");case"MMM":return h(i.monthsShort,l,o,3);case"MMMM":return h(o,l);case"D":return t.$D;case"DD":return E.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return h(i.weekdaysMin,t.$W,u,2);case"ddd":return h(i.weekdaysShort,t.$W,u,3);case"dddd":return u[t.$W];case"H":return String(s);case"HH":return E.s(s,2,"0");case"h":return f(1);case"hh":return f(2);case"a":return c(s,n,!0);case"A":return c(s,n,!1);case"m":return String(n);case"mm":return E.s(n,2,"0");case"s":return String(t.$s);case"ss":return E.s(t.$s,2,"0");case"SSS":return E.s(t.$ms,3,"0");case"Z":return a}return null}(e)||a.replace(":","")})},p.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},p.diff=function(r,f,v){var c,m=this,y=E.p(f),p=_(r),g=(p.utcOffset()-this.utcOffset())*t,S=this-p,b=function(){return E.m(m,p)};switch(y){case h:c=b()/12;break;case o:c=b();break;case d:c=b()/3;break;case u:c=(S-g)/6048e5;break;case l:c=(S-g)/864e5;break;case n:c=S/i;break;case s:c=S/t;break;case a:c=S/e;break;default:c=S}return v?c:E.a(c)},p.daysInMonth=function(){return this.endOf(o).$D},p.$locale=function(){return b[this.$L]},p.locale=function(e,t){if(!e)return this.$L;var i=this.clone(),r=M(e,t,!0);return r&&(i.$L=r),i},p.clone=function(){return E.w(this.$d,this)},p.toDate=function(){return new Date(this.valueOf())},p.toJSON=function(){return this.isValid()?this.toISOString():null},p.toISOString=function(){return this.$d.toISOString()},p.toString=function(){return this.$d.toUTCString()},y}(),D=V.prototype;return _.prototype=D,[["$ms",r],["$s",a],["$m",s],["$H",n],["$W",l],["$M",o],["$y",h],["$D",f]].forEach(function(e){D[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),_.extend=function(e,t){return e.$i||(e(t,V,_),e.$i=!0),_},_.locale=M,_.isDayjs=F,_.unix=function(e){return _(1e3*e)},_.en=b[S],_.Ls=b,_.p={},_})},26779:function(e,t,i){"use strict";i.d(t,{formMeta:()=>S});/* import */var r=i(93640);/* import */var a=i(41147);/* import */var s=i(14206);/* import */var n=i(17900);/* import */var l=i(12470);/* import */var u=/*#__PURE__*/i.n(l);/* import */var o=i(44657);/* import */var d=/*#__PURE__*/i.n(o);/* import */var h=i(9210);/* import */var f=i(4041);var v={validateRequired(e,t,i){if(!i)return null;var r=typeof i==="string"?i:(0,l.__)("This field is required","tutor");var a=!t||typeof t==="string"&&t.trim()==="";return a?{type:"required",message:r}:null},validateMinLength(e,t){if(!e)return null;var i=typeof t==="number"?t:t.value;var r=typeof t==="object"?t.message:(0,l.sprintf)((0,l.__)("Minimum length is %s","tutor"),i);return e.length<i?{type:"minLength",message:r}:null},validateMaxLength(e,t){if(!e)return null;var i=typeof t==="number"?t:t.value;var r=typeof t==="object"?t.message:(0,l.sprintf)((0,l.__)("Maximum length is %s","tutor"),i);return e.length>i?{type:"maxLength",message:r}:null},validateMin(e,t){var i=typeof t==="number"?t:t.value;var r=typeof t==="object"?t.message:(0,l.sprintf)((0,l.__)("Minimum value is %s","tutor"),i);return e<i?{type:"min",message:r}:null},validateMax(e,t){var i=typeof t==="number"?t:t.value;var r=typeof t==="object"?t.message:(0,l.sprintf)((0,l.__)("Maximum value is %s","tutor"),i);return e>i?{type:"max",message:r}:null},validatePattern(e,t){var i=t instanceof RegExp?t:t.value;var r=typeof t==="object"&&"message"in t?t.message:(0,l.__)("Invalid format","tutor");return!i.test(e)?{type:"pattern",message:r}:null},isValidTimeValue(e){if(typeof e!=="string"){return false}var t=e.trim();if(!t){return true}// AM/PM marker is required for this rule. |
| 2 | if(!/\b(?:AM|PM)\b/i.test(t)){return false}var i=d()(t,"hh:mm A",true);return i.isValid()},validateValidTime(e,t){if(!t)return null;var i=String(e!==null&&e!==void 0?e:"").trim();if(!i)return null;var r=typeof t==="string"?t:typeof t==="object"&&"message"in t?t.message:(0,l.__)("Invalid time entered!","tutor");return this.isValidTimeValue(e)?null:{type:"validTime",message:r}},validateCustom(e,t){return(0,r._)(function*(){try{var i=yield t(e);if(i===true)return null;var r=typeof i==="string"?i:(0,l.__)("Validation failed","tutor");return{type:"validate",message:r}}catch(e){return{type:"validate",message:(0,l.__)("Validation error","tutor")}}})()}};function c(e,t,i){return(0,r._)(function*(){if(!i)return null;// Required validation |
| 3 | var r=v.validateRequired(e,t,i.required);if(r)return r;var a=String(t||"");var s=typeof t==="number"?t:parseFloat(a);// String length validations |
| 4 | if(i.minLength){var n=v.validateMinLength(a,i.minLength);if(n)return n}if(i.maxLength){var l=v.validateMaxLength(a,i.maxLength);if(l)return l}// Numeric validations |
| 5 | if(i.min&&!isNaN(s)){var u=v.validateMin(s,i.min);if(u)return u}if(i.max&&!isNaN(s)){var o=v.validateMax(s,i.max);if(o)return o}// Pattern validation |
| 6 | if(i.pattern&&a){var d=v.validatePattern(a,i.pattern);if(d)return d}// Time validation |
| 7 | if(i.validTime){var h=v.validateValidTime(t,i.validTime);if(h)return h}// Custom validation |
| 8 | if(i.validate){var f=yield v.validateCustom(t,i.validate);if(f)return f}return null})()}var m={isElementVisible(e){var t=getComputedStyle(e);var i=e.getBoundingClientRect();return t.display!=="none"&&t.visibility!=="hidden"&&parseFloat(t.opacity)>0&&i.width>0&&i.height>0},focusElement(e,t){var{shouldSelect:i=false,shouldScroll:r=true}=t;if(!this.isElementVisible(e))return;e.focus();if(i&&e instanceof HTMLInputElement&&e.select){e.select()}if(r){e.scrollIntoView({behavior:"smooth",block:"center"})}},updateElementValue(e,t){if(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement){e.value=String(t!==null&&t!==void 0?t:"")}},setAriaInvalid(e,t){if(t){e.setAttribute("aria-invalid","true")}else{e.removeAttribute("aria-invalid")}},getFieldElement(e,t){return e.querySelector('[name="'.concat(t,'"]'))}};var y={convertToFormData(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"POST";var i=new FormData;Object.entries(e).forEach(e=>{var[t,r]=e;if(Array.isArray(r)){this.appendArrayToFormData(i,t,r)}else{this.appendValueToFormData(i,t,r)}});i.append("_method",t.toUpperCase());return i},serializeParams(e){return Object.entries(e).reduce((e,t)=>{var[i,r]=t;return(0,s._)((0,a._)({},e),{[i]:this.serializeValue(r)})},{})},appendArrayToFormData(e,t,i){i.forEach((i,r)=>{var a=this.convertToFormDataValue(i);e.append("".concat(t,"[").concat(r,"]"),a)})},appendValueToFormData(e,t,i){var r=this.convertToFormDataValue(i);e.append(t,r)},convertToFormDataValue(e){if(e instanceof File||e instanceof Blob)return e;if(typeof e==="string")return e;if(typeof e==="boolean"||typeof e==="number")return String(e);if(typeof e==="object"&&e!==null)return JSON.stringify(e);return String(e)},serializeValue(e){if(e===null||e===undefined)return"null";if(typeof e==="boolean")return e?"true":"false";return e}};var p={mode:"onBlur",shouldFocusError:true,shouldScrollToError:true};var g=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};var{id:t,defaultValues:i={}}=e,s=(0,n._)(e,["id","defaultValues"]);var l=(0,a._)({},p,s);var u={config:l,formId:t,fields:{},values:(0,a._)({},i),errors:{},touchedFields:{},dirtyFields:{},isValid:true,isSubmitting:false,isValidating:false,isResetting:false,cleanup:undefined,lastIsDirty:false,init(){this.isValid=true;this.isSubmitting=false;this.isValidating=false;this.lastIsDirty=false;if(this.formId){document.dispatchEvent(new CustomEvent(h/* .TUTOR_CUSTOM_EVENTS.FORM_REGISTER */.T.FORM_REGISTER,{detail:{id:this.formId,instance:this}}))}this.setupFormListeners();this.dispatchStateChange();// Initial dispatch |
| 9 | },destroy(){var e,t;(e=(t=this).cleanup)===null||e===void 0?void 0:e.call(t);this.clearAllState()},dispatchStateChange(){if(!this.formId){return}var e=Object.values(this.dirtyFields).some(Boolean);if(e===this.lastIsDirty){return}this.lastIsDirty=e;document.dispatchEvent(new CustomEvent(h/* .TUTOR_CUSTOM_EVENTS.FORM_STATE_CHANGE */.T.FORM_STATE_CHANGE,{detail:{id:this.formId,isDirty:e}}))},register(e,t){var i=this;var r=i.$el;var a;var s=(a=r===null||r===void 0?void 0:r.type)!==null&&a!==void 0?a:"text";var n=s==="checkbox";var l=s==="file";var u=this.fields[e];var o=(u===null||u===void 0?void 0:u.ref)===r;// Treat as checkbox group only when a different checkbox with the same name already exists; avoids upgrading a single checkbox to an array during re-registration (e.g., after DOM reorder). |
| 10 | var d=n&&(u===null||u===void 0?void 0:u.type)==="checkbox"&&!o;var h;if(d){// Ensure array type for checkbox groups and include any existing checked value |
| 11 | var f=this.values[e];var v=Array.isArray(f)?[...f]:[];var c=u===null||u===void 0?void 0:u.ref;var m;var y=(m=c===null||c===void 0?void 0:c.checked)!==null&&m!==void 0?m:typeof(u===null||u===void 0?void 0:u.defaultValue)==="boolean"?u.defaultValue:false;if(y){var p;var g=(p=c===null||c===void 0?void 0:c.value)!==null&&p!==void 0?p:"on";if(!v.includes(g)){v.push(g)}}if(r===null||r===void 0?void 0:r.checked){var S;var b=(S=r.value)!==null&&S!==void 0?S:"on";if(!v.includes(b)){v.push(b)}}h=v}else if(n){var $,F;h=(F=($=this.values[e])!==null&&$!==void 0?$:r===null||r===void 0?void 0:r.checked)!==null&&F!==void 0?F:false}else{var M;h=(M=this.values[e])!==null&&M!==void 0?M:""}this.fields[e]={name:e,rules:t,defaultValue:h,ref:r,type:s,isCheckboxArray:d};// Force upgrade value to array if a collision is detected |
| 12 | if(d&&!Array.isArray(this.values[e])){this.values[e]=h}else{var _,E;var V;(V=(_=this.values)[E=e])!==null&&V!==void 0?V:_[E]=h}var D=d?"$event.target.value":n?"$event.target.checked":"$event.target.value";var A={name:e,"x-ref":e,":aria-invalid":'!!errors["'.concat(e,'"]'),":class":"{\n 'tutor-input-error': errors[\"".concat(e,"\"],\n 'tutor-input-touched': touchedFields[\"").concat(e,"\"],\n 'tutor-input-dirty': dirtyFields[\"").concat(e,'"]\n }')};if(!l){A["x-model"]='values["'.concat(e,'"]');A["@input"]="handleFieldInput('".concat(e,"', ").concat(D,", $event.target)");A["@blur"]="handleFieldBlur('".concat(e,"', ").concat(D,")")}return A},handleCheckboxArrayInput(e,t){var i=this.fields[e];var r=this.values[e];var a=Array.isArray(r)?[...r]:[];// Use the passed element (from $event.target) or try to get from $refs |
| 13 | var s=t||this.$refs[e];if(!s)return;var n=s.value;var l=s.checked;var u;if(l){u=a.includes(n)?a:[...a,n]}else{u=a.filter(e=>e!==n)}var o=Array.isArray(i.defaultValue)?i.defaultValue:[];// Sort to compare content regardless of order |
| 14 | var d=JSON.stringify(u.sort())!==JSON.stringify(o.sort());this.values[e]=u;this.dirtyFields[e]=d;var h=this.config.mode==="onChange"||this.touchedFields[e];if(h){this.validateField(e,u)}else{this.dispatchStateChange()}},handleFieldInput(e,t,i){var r;var a=this.fields[e];if(a===null||a===void 0?void 0:a.isCheckboxArray){this.handleCheckboxArrayInput(e,i);return}// Original logic for non-checkbox-array fields |
| 15 | var s=a===null||a===void 0?void 0:(r=a.rules)===null||r===void 0?void 0:r.numberOnly;var n=typeof s==="object"&&s.allowNegative;var l=typeof s==="object"&&s.whole;var u=s?(0,f/* .parseNumberOnly */.T)(t,n,l):t;var o;// Only mark as dirty if the value is different from the baseline |
| 16 | var d=String(u)!==String((o=a===null||a===void 0?void 0:a.defaultValue)!==null&&o!==void 0?o:"");this.values[e]=u;this.dirtyFields[e]=d;this.updateFieldRef(e);if(s){var h;var v=this;var c=v.$refs;if((h=c[e])===null||h===void 0?void 0:h._x_model){var m;(m=c[e]._x_model)===null||m===void 0?void 0:m.set(u)}}var y=this.config.mode==="onChange";if(y){this.validateField(e,s?u:t)}else{this.dispatchStateChange()}},handleFieldBlur(e,t){this.touchedFields[e]=true;this.updateFieldRef(e);var i=this.config.mode==="onBlur"||this.config.mode==="onChange";if(i){this.validateField(e,t)}else{this.dispatchStateChange()}},watch(e){return e?this.values[e]:(0,a._)({},this.values)},setValue(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var r;var{shouldValidate:a=false,shouldTouch:s=false,shouldDirty:n=true}=i;this.values[e]=t;if(s)this.touchedFields[e]=true;if(n){var l=this.fields[e];// Handle array comparison for checkbox arrays |
| 17 | if(Array.isArray(t)&&Array.isArray(l===null||l===void 0?void 0:l.defaultValue)){this.dirtyFields[e]=JSON.stringify(t.sort())!==JSON.stringify(l.defaultValue.sort())}else{var u;this.dirtyFields[e]=String(t)!==String((u=l===null||l===void 0?void 0:l.defaultValue)!==null&&u!==void 0?u:"")}}var o=(r=this.fields[e])===null||r===void 0?void 0:r.ref;if(o&&this.fields[e].type!=="file"){// For checkbox arrays, we need to update all checkboxes with this name |
| 18 | if(Array.isArray(t)&&o.type==="checkbox"){this.syncCheckboxArray(e,t)}else{m.updateElementValue(o,t)}}if(a){this.validateField(e,t)}else{this.dispatchStateChange()}},getValue(e){return this.values[e]},setFocus(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var i=this.fields[e];var r=i===null||i===void 0?void 0:i.ref;if(r&&m.isElementVisible(r)){m.focusElement(r,{shouldSelect:t.shouldSelect,shouldScroll:this.config.shouldScrollToError})}},trigger(e){return(0,r._)(function*(){this.isValidating=true;try{if(typeof e==="string"){return yield this.validateSingleField(e)}if(Array.isArray(e)){return yield this.validateMultipleFields(e)}return yield this.validateAllFields()}finally{this.isValidating=false;this.dispatchStateChange()}}).call(this)},validateField(e,t){return(0,r._)(function*(){var i=this.fields[e];var r=yield c(e,t,i===null||i===void 0?void 0:i.rules);if(r){this.errors[e]=r}else{delete this.errors[e]}this.updateAriaInvalidState(e);this.updateFormValidState();this.dispatchStateChange();return!r}).call(this)},validateSingleField(e){return(0,r._)(function*(){this.touchedFields[e]=true;var t=this.values[e];return yield this.validateField(e,t)}).call(this)},validateMultipleFields(e){return(0,r._)(function*(){var t=true;for(var i of e){this.touchedFields[i]=true;var r=this.values[i];var a=yield this.validateField(i,r);if(!a)t=false}return t}).call(this)},validateAllFields(){return(0,r._)(function*(){var e=true;for(var t of Object.keys(this.fields)){var i=this.values[t];var r=yield this.validateField(t,i);if(!r)e=false}return e}).call(this)},clearErrors(e){if(typeof e==="string"){this.clearSingleError(e)}else if(Array.isArray(e)){e.forEach(e=>this.clearSingleError(e))}else{Object.keys(this.fields).forEach(e=>this.clearSingleError(e))}this.updateFormValidState();this.dispatchStateChange()},setError(e,t){this.errors[e]=t;this.updateAriaInvalidState(e);this.updateFormValidState();this.dispatchStateChange()},reset(e){this.isResetting=true;if(e){// Update reactive object props instead of replacing it to maintain bindings |
| 19 | Object.keys(this.values).forEach(e=>delete this.values[e]);Object.assign(this.values,e);// Update baseline default values for all fields provided |
| 20 | Object.entries(e).forEach(e=>{var[t,i]=e;if(this.fields[t]){this.fields[t].defaultValue=i}})}else{var t=Object.keys(this.fields).reduce((e,t)=>{e[t]=this.fields[t].defaultValue;return e},{});Object.keys(this.values).forEach(e=>delete this.values[e]);Object.assign(this.values,t)}this.syncDOMWithState();this.errors={};this.touchedFields={};this.dirtyFields={};this.isValid=true;this.isSubmitting=false;this.isValidating=false;this.dispatchStateChange();// Dispatch custom event for components like WPEditor to listen to |
| 21 | if(this.formId){window.dispatchEvent(new CustomEvent(h/* .TUTOR_CUSTOM_EVENTS.FORM_RESET */.T.FORM_RESET,{detail:{formId:this.formId,defaultValues:e||Object.keys(this.fields).reduce((e,t)=>{e[t]=this.fields[t].defaultValue;return e},{})}}))}setTimeout(()=>{this.isResetting=false},0)},handleSubmit(e,t){return i=>(0,r._)(function*(){i.preventDefault();this.isSubmitting=true;try{var r=yield this.validateAllFields();if(r){yield e((0,a._)({},this.values))}else{yield t===null||t===void 0?void 0:t((0,a._)({},this.errors));if(this.config.shouldFocusError){this.focusFirstError()}}}finally{this.isSubmitting=false;this.dispatchStateChange()}}).call(this)},getFormState(){return{values:(0,a._)({},this.values),errors:(0,a._)({},this.errors),touchedFields:(0,a._)({},this.touchedFields),dirtyFields:(0,a._)({},this.dirtyFields),isValid:this.isValid,isDirty:Object.values(this.dirtyFields).some(Boolean),isSubmitting:this.isSubmitting,isValidating:this.isValidating}},isFieldVisible(e){return m.isElementVisible(e)},getFormBindings(){return{novalidate:true}},convertToFormData:y.convertToFormData.bind(y),serializeParams:y.serializeParams.bind(y),setupFormListeners(){var e=this;var t=e.$el;if(!t){this.cleanup=()=>{if(this.formId){document.dispatchEvent(new CustomEvent(h/* .TUTOR_CUSTOM_EVENTS.FORM_UNREGISTER */.T.FORM_UNREGISTER,{detail:{id:this.formId}}))}};return}var i=e=>{e.preventDefault()};t.addEventListener("submit",i);this.cleanup=()=>{t.removeEventListener("submit",i);if(this.formId){document.dispatchEvent(new CustomEvent(h/* .TUTOR_CUSTOM_EVENTS.FORM_UNREGISTER */.T.FORM_UNREGISTER,{detail:{id:this.formId}}))}}},updateFieldRef(e){var t=this;var i=t.$el;if(!i)return;var r=m.getFieldElement(i,e);var a=this.fields[e];if(r&&a){a.ref=r}},clearSingleError(e){delete this.errors[e];this.updateAriaInvalidState(e)},updateAriaInvalidState(e){var t;var i=(t=this.fields[e])===null||t===void 0?void 0:t.ref;if(!i)return;m.setAriaInvalid(i,!!this.errors[e])},updateFormValidState(){this.isValid=Object.keys(this.errors).length===0},focusFirstError(){var e=Object.keys(this.errors)[0];if(e){this.setFocus(e)}},syncDOMWithState(){for(var[e,t]of Object.entries(this.values)){var i;var r=(i=this.fields[e])===null||i===void 0?void 0:i.ref;if(r){// Handle checkbox arrays specially |
| 22 | if(Array.isArray(t)&&r.type==="checkbox"){this.syncCheckboxArray(e,t)}else{m.updateElementValue(r,t)}}}},syncCheckboxArray(e,t){var i=this;var r=i.$el.closest("form")||i.$el.parentElement;var a=r===null||r===void 0?void 0:r.querySelectorAll('input[type="checkbox"][name="'.concat(e,'"]'));if(a){a.forEach(e=>{var i=e;i.checked=t.includes(i.value)})}},clearAllState(){this.fields={};this.values={};this.errors={};this.touchedFields={};this.dirtyFields={}}};return u};var S={name:"form",component:g}}}]); |