@mobx-sentinel/react
Version:
A TypeScript library for non-intrusive model enhancement in MobX applications. Provides model change detection, validation, and form integration capabilities while maintaining the purity of domain models.
2 lines • 5.82 kB
JavaScript
"use strict";var y=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var R=(t,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of C(e))!v.call(t,n)&&n!==i&&y(t,n,{get:()=>e[n],enumerable:!(o=x(e,n))||o.enumerable});return t};var T=t=>R(y({},"__esModule",{value:!0}),t),r=(t,e,i,o)=>{for(var n=o>1?void 0:o?x(e,i):e,B=t.length-1,A;B>=0;B--)(A=t[B])&&(n=(o?A(e,i,n):A(n))||n);return o&&n&&y(e,i,n),n};var k={};module.exports=T(k);var m=require("@mobx-sentinel/form");var u=require("mobx");var s=class{constructor(e,i){this.field=e;this.config=i;(0,u.makeObservable)(this)}get checked(){return this.config.getter()}onChange=e=>{this.config.setter(e.currentTarget.checked),this.field.markAsChanged(),this.config.onChange?.(e)};onFocus=e=>{this.field.markAsTouched(),this.config.onFocus?.(e)};get errorMessages(){return this.field.isErrorReported&&Array.from(this.field.errors).join(", ")||null}get props(){return{type:"checkbox",id:this.config.id??this.field.id,checked:this.checked,onChange:this.onChange,onFocus:this.onFocus,"aria-invalid":this.field.isErrorReported,"aria-errormessage":this.errorMessages??void 0}}};r([u.computed],s.prototype,"checked",1),r([u.action],s.prototype,"onChange",2),r([u.computed],s.prototype,"errorMessages",1);var a=require("mobx");var d=class{constructor(e,i){this.field=e;this.config=i;(0,a.makeObservable)(this)}get value(){return this.config.getter()??""}get type(){if(this.config.type)return this.config.type;switch(this.config.valueAs){case"number":return"number";case"date":return"date";default:return"text"}}onChange=e=>{switch(this.config.valueAs){case"number":{let i=e.currentTarget.valueAsNumber;this.config.setter(isNaN(i)?null:i);break}case"date":this.config.setter(e.currentTarget.valueAsDate);break;default:this.config.setter(e.currentTarget.value);break}this.field.markAsChanged("intermediate"),this.config.onChange?.(e)};onBlur=e=>{this.field.finalizeChangeIfNeeded(),this.config.onBlur?.(e)};onFocus=e=>{this.field.markAsTouched(),this.config.onFocus?.(e)};get errorMessages(){return this.field.isErrorReported&&Array.from(this.field.errors).join(", ")||null}get props(){return{type:this.type,value:this.value,id:this.config.id??this.field.id,onChange:this.onChange,onFocus:this.onFocus,onBlur:this.onBlur,"aria-invalid":this.field.isErrorReported,"aria-errormessage":this.errorMessages??void 0}}};r([a.computed],d.prototype,"value",1),r([a.action],d.prototype,"onChange",2),r([a.computed],d.prototype,"errorMessages",1);var c=require("mobx");var l=class{constructor(e,i){this.field=e;this.config=i;(0,c.makeObservable)(this)}get value(){return this.config.getter()??""}onChange=e=>{e.currentTarget.checked&&(this.config.setter(e.currentTarget.value),this.field.markAsChanged(),this.config.onChange?.(e))};onFocus=e=>{this.field.markAsTouched(),this.config.onFocus?.(e)};get errorMessages(){return this.field.isErrorReported&&Array.from(this.field.errors).join(", ")||null}props=(e,i)=>({type:"radio",id:i?.id===!0?this.field.id:i?.id?i?.id:void 0,value:e??"",name:i?.name??this.field.id,checked:this.value===e,onChange:this.onChange,onFocus:this.onFocus,"aria-invalid":this.field.isErrorReported,"aria-errormessage":this.errorMessages??void 0})};r([c.computed],l.prototype,"value",1),r([c.action],l.prototype,"onChange",2),r([c.computed],l.prototype,"errorMessages",1);var p=require("mobx");var g=class{constructor(e,i){this.field=e;this.config=i;(0,p.makeObservable)(this)}get value(){return this.config.getter()??""}onChange=e=>{this.config.multiple?this.config.setter(Array.from(e.currentTarget.selectedOptions,i=>i.value)):this.config.setter(e.currentTarget.value),this.field.markAsChanged(),this.config.onChange?.(e)};onFocus=e=>{this.field.markAsTouched(),this.config.onFocus?.(e)};get errorMessages(){return this.field.isErrorReported&&Array.from(this.field.errors).join(", ")||null}get props(){return{id:this.config.id??this.field.id,multiple:this.config.multiple,value:this.value,onChange:this.onChange,onFocus:this.onFocus,"aria-invalid":this.field.isErrorReported,"aria-errormessage":this.errorMessages??void 0}}};r([p.computed],g.prototype,"value",1),r([p.action],g.prototype,"onChange",2),r([p.computed],g.prototype,"errorMessages",1);var b=require("mobx");var h=class{constructor(e,i){this.form=e;this.config=i;(0,b.makeObservable)(this)}get busy(){return this.form.isSubmitting||this.form.isValidating}onClick=e=>{this.form.submit().catch(i=>{}),this.config.onClick?.(e)};onMouseOver=e=>{this.form.reportError(),this.config.onMouseOver?.(e)};get props(){return{onClick:this.onClick,onMouseOver:this.onMouseOver,disabled:!this.form.canSubmit,"aria-busy":this.busy,"aria-invalid":!this.form.isValid}}};r([b.computed],h.prototype,"busy",1);var F=require("mobx");var f=class{constructor(e,i){this.fields=e;this.config=i;(0,F.makeObservable)(this)}get firstFieldId(){return this.fields.at(0)?.id}get firstErrorMessage(){for(let e of this.fields)if(e.isErrorReported)for(let i of e.errors)return i;return null}get props(){return{htmlFor:this.config.htmlFor??this.firstFieldId,"aria-invalid":!!this.firstErrorMessage,"aria-errormessage":this.firstErrorMessage??void 0}}};r([F.computed],f.prototype,"firstFieldId",1),r([F.computed],f.prototype,"firstErrorMessage",1);m.Form.prototype.bindInput=function(t,e){return this.bind(t,d,{...e,cacheKey:`${e.valueAs}:${e.cacheKey}`})};m.Form.prototype.bindSelectBox=function(t,e){return this.bind(t,g,e)};m.Form.prototype.bindCheckBox=function(t,e){return this.bind(t,s,e)};m.Form.prototype.bindRadioButton=function(t,e){return this.bind(t,l,e)};m.Form.prototype.bindSubmitButton=function(t){return this.bind(h,t??{})};m.Form.prototype.bindLabel=function(t,e){return this.bind(t,f,e??{})};
//# sourceMappingURL=extension.js.map