2 lines
42 KiB
JavaScript
2 lines
42 KiB
JavaScript
import t from"is-url";import e from"nanoid/non-secure";import o from"is-plain-object";var n={text:{classification:"text",component:"FormulateInputText"},email:{classification:"text",component:"FormulateInputText"},number:{classification:"text",component:"FormulateInputText"},color:{classification:"text",component:"FormulateInputText"},date:{classification:"text",component:"FormulateInputText"},hidden:{classification:"text",component:"FormulateInputText"},month:{classification:"text",component:"FormulateInputText"},password:{classification:"text",component:"FormulateInputText"},search:{classification:"text",component:"FormulateInputText"},tel:{classification:"text",component:"FormulateInputText"},time:{classification:"text",component:"FormulateInputText"},url:{classification:"text",component:"FormulateInputText"},week:{classification:"text",component:"FormulateInputText"},"datetime-local":{classification:"text",component:"FormulateInputText"},range:{classification:"slider",component:"FormulateInputSlider"},textarea:{classification:"textarea",component:"FormulateInputTextArea"},checkbox:{classification:"box",component:"FormulateInputBox"},radio:{classification:"box",component:"FormulateInputBox"},submit:{classification:"button",component:"FormulateInputButton"},button:{classification:"button",component:"FormulateInputButton"},select:{classification:"select",component:"FormulateInputSelect"},file:{classification:"file",component:"FormulateInputFile"},image:{classification:"file",component:"FormulateInputFile"}},i={aac:"audio/aac",abw:"application/x-abiword",arc:"application/x-freearc",avi:"video/x-msvideo",azw:"application/vnd.amazon.ebook",bin:"application/octet-stream",bmp:"image/bmp",bz:"application/x-bzip",bz2:"application/x-bzip2",csh:"application/x-csh",css:"text/css",csv:"text/csv",doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",eot:"application/vnd.ms-fontobject",epub:"application/epub+zip",gz:"application/gzip",gif:"image/gif",htm:"text/html",html:"text/html",ico:"image/vnd.microsoft.icon",ics:"text/calendar",jar:"application/java-archive",jpg:"image/jpeg",jpeg:"image/jpeg",js:"text/javascript",json:"application/json",jsonld:"application/ld+json",midi:"audio/x-midi",mid:"audio/midi",mjs:"text/javascript",mp3:"audio/mpeg",mpeg:"video/mpeg",mpkg:"application/vnd.apple.installer+xml",odp:"application/vnd.oasis.opendocument.presentation",ods:"application/vnd.oasis.opendocument.spreadsheet",odt:"application/vnd.oasis.opendocument.text",oga:"audio/ogg",ogv:"video/ogg",ogx:"application/ogg",opus:"audio/opus",otf:"font/otf",png:"image/png",pdf:"application/pdf",php:"application/php",ppt:"application/vnd.ms-powerpoint",pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",rar:"application/vnd.rar",rtf:"application/rtf",sh:"application/x-sh",svg:"image/svg+xml",swf:"application/x-shockwave-flash",tar:"application/x-tar",tif:"image/tiff",tiff:"image/tiff",ts:"video/mp2t",ttf:"font/ttf",txt:"text/plain",vsd:"application/vnd.visio",wav:"audio/wav",weba:"audio/webm",webm:"video/webm",webp:"image/webp",woff:"font/woff",woff2:"font/woff2",xhtml:"application/xhtml+xml",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",xml:"text/xml",xul:"application/vnd.mozilla.xul+xml",zip:"application/zip","7z":"application/x-7z-compressed"},r=function(t,e,o){this.input=t,this.fileList=t.files,this.files=[],this.options=o,this.results=!1,this.context=e,Array.isArray(this.fileList)?this.rehydrateFileList(this.fileList):this.addFileList(this.fileList)};function a(t,e){var o={};for(var n in t)o[n]=e(n,t[n]);return o}function s(t,e){if(t===e)return!0;if(!t||!e)return!1;var o=Object.keys(t),n=Object.keys(e),i=o.length;if(n.length!==i)return!1;for(var r=0;r<i;r++){var a=o[r];if(t[a]!==e[a])return!1}return!0}function l(t){return t?"string"==typeof t?[t]:Array.isArray(t)?t:"object"==typeof t?Object.values(t):[]:[]}function u(t){return"string"==typeof t?t[0].toUpperCase()+t.substr(1):t}function c(t,e){return"string"==typeof t?c(t.split("|"),e):Array.isArray(t)?t.map((function(t){return function(t,e){if("function"==typeof t)return[t,[]];if(Array.isArray(t)&&t.length){if("string"==typeof(t=t.map((function(t){return t})))[0]&&e.hasOwnProperty(t[0]))return[e[t.shift()],t];if("function"==typeof t[0])return[t.shift(),t]}if("string"==typeof t){var o=t.split(":"),n=o.shift();if(e.hasOwnProperty(n))return[e[n],o.length?o.join(":").split(","):[]];throw new Error("Unknown validation rule "+t)}return!1}(t,e)})).filter((function(t){return!!t})):[]}function p(t){switch(typeof t){case"symbol":case"number":case"string":case"boolean":case"undefined":return!0;default:return null===t}}r.prototype.rehydrateFileList=function(t){var e=this,o=t.reduce((function(t,o){var n=o[e.options?e.options.fileUrlKey:"url"],r=!(!n||-1===n.lastIndexOf("."))&&n.substr(n.lastIndexOf(".")+1),a=i[r]||!1;return t.push(Object.assign({},o,n?{name:n.substr(n.lastIndexOf("/")+1||0),type:o.type?o.type:a,previewData:n}:{})),t}),[]);this.results=t,this.addFileList(o)},r.prototype.addFileList=function(t){for(var o=this,n=function(n){var i=t[n],r=e();o.files.push({progress:!1,error:!1,complete:!1,justFinished:!1,name:i.name||"file-upload",file:i,uuid:r,path:!1,removeFile:function(){this.removeFile(r)}.bind(o),previewData:i.previewData||!1})},i=0;i<t.length;i++)n(i)},r.prototype.hasUploader=function(){return!!this.context.uploader},r.prototype.uploaderIsAxios=function(){return!(!this.hasUploader||"function"!=typeof this.context.uploader.request||"function"!=typeof this.context.uploader.get||"function"!=typeof this.context.uploader.delete||"function"!=typeof this.context.uploader.post)},r.prototype.getUploader=function(){for(var t,e=[],o=arguments.length;o--;)e[o]=arguments[o];if(this.uploaderIsAxios()){var n=new FormData;if(n.append(this.context.name||"file",e[0]),!1===this.context.uploadUrl)throw new Error("No uploadURL specified: https://vueformulate.com/guide/inputs/file/#props");return this.context.uploader.post(this.context.uploadUrl,n,{headers:{"Content-Type":"multipart/form-data"},onUploadProgress:function(t){e[1](Math.round(100*t.loaded/t.total))}}).then((function(t){return t.data})).catch((function(t){return e[2](t)}))}return(t=this.context).uploader.apply(t,e)},r.prototype.upload=function(){var t=this;return this.results?Promise.resolve(this.results):new Promise((function(e,o){if(!t.hasUploader)return o(new Error("No uploader has been defined"));Promise.all(t.files.map((function(e){return e.path?Promise.resolve(e.path):t.getUploader(e.file,(function(o){e.progress=o,o>=100&&(e.complete||(e.justFinished=!0,setTimeout((function(){e.justFinished=!1}),t.options.uploadJustCompleteDuration)),e.complete=!0)}),(function(t){e.progress=0,e.error=t,e.complete=!0}),t.options)}))).then((function(o){t.results=o,e(o)})).catch((function(t){throw new Error(t)}))}))},r.prototype.removeFile=function(t){if(this.files=this.files.filter((function(e){return e.uuid!==t})),this.context.performValidation(),window&&this.fileList instanceof FileList){var e=new DataTransfer;this.files.map((function(t){return e.items.add(t.file)})),this.fileList=e.files,this.input.files=this.fileList}},r.prototype.loadPreviews=function(){this.files.map((function(t){if(!t.previewData&&window&&window.FileReader&&/^image\//.test(t.file.type)){var e=new FileReader;e.onload=function(e){return Object.assign(t,{previewData:e.target.result})},e.readAsDataURL(t.file)}}))},r.prototype.getFileList=function(){return this.fileList},r.prototype.getFiles=function(){return this.files},r.prototype.toString=function(){var t=this.files.length?this.files.length+" files":"empty";return this.results?JSON.stringify(this.results,null," "):"FileUpload("+t+")"};var d={accepted:function(t){var e=t.value;return Promise.resolve(["yes","on","1",1,!0,"true"].includes(e))},after:function(t,e){var o=t.value;void 0===e&&(e=!1);var n=Date.parse(e||new Date),i=Date.parse(o);return Promise.resolve(!isNaN(i)&&i>n)},alpha:function(t,e){var o=t.value;void 0===e&&(e="default");var n={default:/^[a-zA-ZÀ-ÖØ-öø-ÿ]+$/,latin:/^[a-zA-Z]+$/},i=n.hasOwnProperty(e)?e:"default";return Promise.resolve(n[i].test(o))},alphanumeric:function(t,e){var o=t.value;void 0===e&&(e="default");var n={default:/^[a-zA-Z0-9À-ÖØ-öø-ÿ]+$/,latin:/^[a-zA-Z0-9]+$/},i=n.hasOwnProperty(e)?e:"default";return Promise.resolve(n[i].test(o))},before:function(t,e){var o=t.value;void 0===e&&(e=!1);var n=Date.parse(e||new Date),i=Date.parse(o);return Promise.resolve(!isNaN(i)&&i<n)},between:function(t,e,o){var n=t.value;return void 0===e&&(e=0),void 0===o&&(o=10),Promise.resolve(null!==e&&null!==o&&!isNaN(e)&&!isNaN(o)&&(e=Number(e),o=Number(o),isNaN(n)?"string"==typeof n&&n.length>e&&n.length<o:(n=Number(n))>e&&n<o))},confirm:function(t,e){var o,n,i=t.value,r=t.getFormValues,a=t.name;return Promise.resolve((o=r(),(n=e)||(n=/_confirm$/.test(a)?a.substr(0,a.length-8):a+"_confirm"),o[n]===i))},date:function(t,e){var o=t.value;return void 0===e&&(e=!1),Promise.resolve(e&&"string"==typeof e?function(t){var e="^"+t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"$",o={MM:"(0[1-9]|1[012])",M:"([1-9]|1[012])",DD:"([012][1-9]|3[01])",D:"([012]?[1-9]|3[01])",YYYY:"\\d{4}",YY:"\\d{2}"};return new RegExp(Object.keys(o).reduce((function(t,e){return t.replace(e,o[e])}),e))}(e).test(o):!isNaN(Date.parse(o)))},email:function(t){var e=t.value;return Promise.resolve(/^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i.test(e))},in:function(t){for(var e=t.value,o=[],n=arguments.length-1;n-- >0;)o[n]=arguments[n+1];return Promise.resolve(void 0!==o.find((function(t){return"object"==typeof t?s(t,e):t===e})))},matches:function(t){for(var e=t.value,o=[],n=arguments.length-1;n-- >0;)o[n]=arguments[n+1];return Promise.resolve(!!o.find((function(t){return t instanceof RegExp?t.test(e):t===e})))},max:function(t,e,o){var n=t.value;return void 0===e&&(e=10),Promise.resolve(Array.isArray(n)?(e=isNaN(e)?e:Number(e),n.length<=e):!isNaN(n)&&"length"!==o||"value"===o?(n=isNaN(n)?n:Number(n))<=e:("string"==typeof n||"length"===o)&&(n=isNaN(n)?n:n.toString()).length<=e)},mime:function(t){for(var e=t.value,o=[],n=arguments.length-1;n-- >0;)o[n]=arguments[n+1];return Promise.resolve(function(){if(e instanceof r)for(var t=e.getFiles(),n=0;n<t.length;n++){var i=t[n].file;if(!o.includes(i.type))return!1}return!0}())},min:function(t,e,o){var n=t.value;return void 0===e&&(e=1),Promise.resolve(Array.isArray(n)?(e=isNaN(e)?e:Number(e),n.length>=e):!isNaN(n)&&"length"!==o||"value"===o?(n=isNaN(n)?n:Number(n))>=e:("string"==typeof n||"length"===o)&&(n=isNaN(n)?n:n.toString()).length>=e)},not:function(t){for(var e=t.value,o=[],n=arguments.length-1;n-- >0;)o[n]=arguments[n+1];return Promise.resolve(void 0===o.find((function(t){return"object"==typeof t?s(t,e):t===e})))},number:function(t){var e=t.value;return Promise.resolve(!isNaN(e))},required:function(t,e){var o=t.value;return void 0===e&&(e=!0),Promise.resolve(!(e&&!["no","false"].includes(e))||(Array.isArray(o)?!!o.length:o instanceof r?o.getFiles().length>0:"string"==typeof o?!!o:"object"!=typeof o||!!o&&!!Object.keys(o).length))},url:function(e){var o=e.value;return Promise.resolve(t(o))}},m={accepted:function(t){return"Please accept the "+t.name+"."},after:function(t){var e=t.name,o=t.args;return Array.isArray(o)&&o.length?u(e)+" must be after "+o[0]+".":u(e)+" must be a later date."},alpha:function(t){return u(t.name)+" can only contain alphabetical characters."},alphanumeric:function(t){return u(t.name)+" can only contain letters and numbers."},before:function(t){var e=t.name,o=t.args;return Array.isArray(o)&&o.length?u(e)+" must be before "+o[0]+".":u(e)+" must be an earlier date."},between:function(t){var e=t.name,o=t.value,n=t.args;return isNaN(o)?u(e)+" must be between "+n[0]+" and "+n[1]+" characters long.":u(e)+" must be between "+n[0]+" and "+n[1]+"."},confirm:function(t){var e=t.name;t.args;return u(e)+" does not match."},date:function(t){var e=t.name,o=t.args;return Array.isArray(o)&&o.length?u(e)+" is not a valid, please use the format "+o[0]:u(e)+" is not a valid date."},default:function(t){t.name;return"This field isn’t valid."},email:function(t){t.name;var e=t.value;return e?"“"+e+"” is not a valid email address.":"Please enter a valid email address."},in:function(t){var e=t.name,o=t.value;return"string"==typeof o&&o?"“"+u(o)+"” is not an allowed "+e+".":"This is not an allowed "+e+"."},matches:function(t){return u(t.name)+" is not an allowed value."},max:function(t){var e=t.name,o=t.value,n=t.args;if(Array.isArray(o))return"You may only select "+n[0]+" "+e+".";var i=!(!Array.isArray(n)||!n[1])&&n[1];return!isNaN(o)&&"length"!==i||"value"===i?u(e)+" must be less than or equal to "+n[0]+".":u(e)+" must be less than or equal to "+n[0]+" characters long."},mime:function(t){var e=t.name,o=t.args;return u(e)+" must be of the the type: "+(o[0]||"No file formats allowed.")},min:function(t){var e=t.name,o=t.value,n=t.args;if(Array.isArray(o))return"You must select at least "+n[0]+" "+e+".";var i=!(!Array.isArray(n)||!n[1])&&n[1];return!isNaN(o)&&"length"!==i||"value"===i?u(e)+" must be more than "+n[0]+".":u(e)+" must be more than "+n[0]+" characters long."},not:function(t){var e=t.name;return"“"+t.value+"” is not an allowed "+e+"."},number:function(t){return u(t.name)+" must be a number."},required:function(t){return u(t.name)+" is required."},url:function(t){t.name;return"Please include a valid url."}};function f(t,e,o,n){return new Promise((function(o,i){var r=(n.fauxUploaderDuration||2e3)*(.5+Math.random()),a=performance.now(),s=function(){return setTimeout((function(){var n=performance.now()-a,i=Math.min(100,Math.round(n/r*100));if(e(i),i>=100)return o({url:"http://via.placeholder.com/350x150.png",name:t.name});s()}),20)};s()}))}var h={context:function(){return y.call(this,Object.assign({},{type:this.type,value:this.value,name:this.nameOrFallback,classification:this.classification,component:this.component,id:this.id||this.defaultId,hasLabel:this.label&&"button"!==this.classification,label:this.label,labelPosition:this.logicalLabelPosition,attributes:this.elementAttributes,performValidation:this.performValidation.bind(this),blurHandler:x.bind(this),imageBehavior:this.imageBehavior,uploadUrl:this.mergedUploadUrl,uploader:this.uploader||this.$formulate.getUploader(),uploadBehavior:this.uploadBehavior,preventWindowDrops:this.preventWindowDrops,hasValidationErrors:this.hasValidationErrors},this.typeContext))},nameOrFallback:function(){if(!0===this.name&&"button"!==this.classification)return this.type+"_"+this.elementAttributes.id;if(!1===this.name||"button"===this.classification&&!0===this.name)return!1;return this.name},typeContext:function(){var t=this;switch(this.classification){case"select":return{options:v.call(this,this.options),optionGroups:!!this.optionGroups&&a(this.optionGroups,(function(e,o){return v.call(t,o)})),placeholder:this.$attrs.placeholder||!1};case"slider":return{showValue:!!this.showValue};default:return this.options?{options:v.call(this,this.options)}:{}}},elementAttributes:function(){var t=Object.assign({},this.localAttributes);this.id?t.id=this.id:t.id=this.defaultId;return t},logicalLabelPosition:function(){if(this.labelPosition)return this.labelPosition;switch(this.classification){case"box":return"after";default:return"before"}},isVmodeled:function(){return!!(this.$options.propsData.hasOwnProperty("formulateValue")&&this._events&&Array.isArray(this._events.input)&&this._events.input.length)},mergedErrors:function(){return l(this.errors).concat(l(this.error)).concat(l(this.validationErrors)).reduce((function(t,e){return t.includes(e)?t:t.concat(e)}),[])},hasErrors:function(){return!!this.mergedErrors.length},showFieldErrors:function(){if(this.showErrors||this.formShouldShowErrors)return!0;return this.behavioralErrorVisibility},mergedValidationName:function(){if(this.validationName)return this.validationName;if("string"==typeof this.name)return this.name;if(this.label)return this.label;return this.type},mergedUploadUrl:function(){return this.uploadUrl||this.$formulate.getUploadUrl()}};function v(t){if(!Array.isArray(t)&&t&&"object"==typeof t){var o=[];for(var n in t)o.push({value:n,label:t[n],id:this.elementAttributes.id+"_"+n});return o}return Array.isArray(t)&&!t.length?[{value:this.value,label:this.label||this.name,id:this.context.id||e(9)}]:t}function x(){"blur"===this.errorBehavior&&(this.behavioralErrorVisibility=!0)}function y(t){return Object.defineProperty(t,"model",{get:g.bind(this),set:b.bind(this)})}function g(){var t=this.isVmodeled?"formulateValue":"internalModelProxy";return"checkbox"===this.type&&!Array.isArray(this[t])&&this.options?[]:this[t]?this[t]:""}function b(t){s(t,this.internalModelProxy)||(this.internalModelProxy=t),this.$emit("input",t),this.context.name&&"function"==typeof this.formulateFormSetter&&this.formulateFormSetter(this.context.name,t)}function w(t,e,o,n,i,r,a,s,l,u){"boolean"!=typeof a&&(l=s,s=a,a=!1);var c,p="function"==typeof o?o.options:o;if(t&&t.render&&(p.render=t.render,p.staticRenderFns=t.staticRenderFns,p._compiled=!0,i&&(p.functional=!0)),n&&(p._scopeId=n),r?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,l(t)),t&&t._registeredComponents&&t._registeredComponents.add(r)},p._ssrRegister=c):e&&(c=a?function(t){e.call(this,u(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,s(t))}),c)if(p.functional){var d=p.render;p.render=function(t,e){return c.call(e),d(t,e)}}else{var m=p.beforeCreate;p.beforeCreate=m?[].concat(m,c):[c]}return o}var F={name:"FormulateInput",inheritAttrs:!1,inject:{formulateFormSetter:{default:void 0},formulateFormRegister:{default:void 0},getFormValues:{default:function(){return function(){return{}}}}},model:{prop:"formulateValue",event:"input"},props:{type:{type:String,default:"text"},name:{type:[String,Boolean],default:!0},formulateValue:{default:""},value:{default:!1},options:{type:[Object,Array,Boolean],default:!1},optionGroups:{type:[Object,Boolean],default:!1},id:{type:[String,Boolean,Number],default:!1},label:{type:[String,Boolean],default:!1},labelPosition:{type:[String,Boolean],default:!1},help:{type:[String,Boolean],default:!1},debug:{type:Boolean,default:!1},errors:{type:[String,Array,Boolean],default:!1},validation:{type:[String,Boolean,Array],default:!1},validationName:{type:[String,Boolean],default:!1},error:{type:[String,Boolean],default:!1},errorBehavior:{type:String,default:"blur",validator:function(t){return["blur","live"].includes(t)}},showErrors:{type:Boolean,default:!1},imageBehavior:{type:String,default:"preview"},uploadUrl:{type:[String,Boolean],default:!1},uploader:{type:[Function,Object,Boolean],default:!1},uploadBehavior:{type:String,default:"live"},preventWindowDrops:{type:Boolean,default:!0},showValue:{type:[String,Boolean],default:!1},validationMessages:{type:Object,default:function(){return{}}},validationRules:{type:Object,default:function(){return{}}},checked:{type:[String,Boolean],default:!1}},data:function(){return{defaultId:e(9),localAttributes:{},internalModelProxy:this.getInitialValue(),behavioralErrorVisibility:"live"===this.errorBehavior,formShouldShowErrors:!1,validationErrors:[],pendingValidation:Promise.resolve()}},computed:Object.assign({},h,{classification:function(){var t=this.$formulate.classify(this.type);return"box"===t&&this.options?"group":t},component:function(){return"group"===this.classification?"FormulateInputGroup":this.$formulate.component(this.type)}}),watch:{$attrs:{handler:function(t){this.updateLocalAttributes(t)},deep:!0},internalModelProxy:function(t,e){this.performValidation(),this.isVmodeled||s(t,e)||(this.context.model=t)},formulateValue:function(t,e){this.isVmodeled&&!s(t,e)&&(this.context.model=t)}},created:function(){this.applyInitialValue(),this.formulateFormRegister&&"function"==typeof this.formulateFormRegister&&this.formulateFormRegister(this.nameOrFallback,this),this.updateLocalAttributes(this.$attrs),this.performValidation()},methods:{getInitialValue:function(){var t=this.$formulate.classify(this.type);return"box"===(t="box"===t&&this.options?"group":t)&&this.checked?this.value||!0:Object.prototype.hasOwnProperty.call(this.$options.propsData,"value")&&"box"!==t?this.value:Object.prototype.hasOwnProperty.call(this.$options.propsData,"formulateValue")?this.formulateValue:""},applyInitialValue:function(){!s(this.context.model,this.internalModelProxy)&&Object.prototype.hasOwnProperty(this.$options.propsData,"options")&&"box"===this.classification&&(this.context.model=this.internalModelProxy)},updateLocalAttributes:function(t){s(t,this.localAttributes)||(this.localAttributes=t)},performValidation:function(){var t=this,e=c(this.validation,this.$formulate.rules(this.validationRules));return this.pendingValidation=Promise.all(e.map((function(e){var o=e[0],n=e[1],i=o.apply(void 0,[{value:t.context.model,getFormValues:t.getFormValues.bind(t),name:t.context.name}].concat(n));return(i=i instanceof Promise?i:Promise.resolve(i)).then((function(e){return!e&&t.getValidationMessage(o,n)}))}))).then((function(t){return t.filter((function(t){return t}))})).then((function(e){t.validationErrors=e})),this.pendingValidation},getValidationMessage:function(t,e){return this.getValidationFunction(t)({args:e,name:this.mergedValidationName,value:this.context.model,vm:this,formValues:this.getFormValues()})},getValidationFunction:function(t){var e=this,o="_"===t.name.substr(0,1)?t.name.substr(1):t.name;if(this.validationMessages&&"object"==typeof this.validationMessages&&void 0!==this.validationMessages[o])switch(typeof this.validationMessages[o]){case"function":return this.validationMessages[o];case"string":return function(){return e.validationMessages[o]}}return function(o){return e.$formulate.validationMessage(t.name,o)}},hasValidationErrors:function(){var t=this;return new Promise((function(e){t.$nextTick((function(){t.pendingValidation.then((function(){return e(!!t.validationErrors.length)}))}))}))}}},_=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",{staticClass:"formulate-input",attrs:{"data-classification":t.classification,"data-has-errors":t.hasErrors,"data-is-showing-errors":t.hasErrors&&t.showFieldErrors,"data-type":t.type}},[o("div",{staticClass:"formulate-input-wrapper"},[t.context.hasLabel&&"before"===t.context.labelPosition?t._t("label",[o("label",{staticClass:"formulate-input-label formulate-input-label--before",attrs:{for:t.context.attributes.id},domProps:{textContent:t._s(t.context.label)}})],null,t.context):t._e(),t._v(" "),t._t("element",[o(t.context.component,{tag:"component",attrs:{context:t.context}},[t._t("default",null,null,t.context)],2)],null,t.context),t._v(" "),t.context.hasLabel&&"after"===t.context.labelPosition?t._t("label",[o("label",{staticClass:"formulate-input-label formulate-input-label--after",attrs:{for:t.context.attributes.id},domProps:{textContent:t._s(t.context.label)}})],null,t.context.label):t._e()],2),t._v(" "),t.help?o("div",{staticClass:"formulate-input-help",domProps:{textContent:t._s(t.help)}}):t._e(),t._v(" "),t.showFieldErrors?o("FormulateInputErrors",{attrs:{errors:t.mergedErrors}}):t._e()],1)};_._withStripped=!0;var P=w({render:_,staticRenderFns:[]},void 0,F,void 0,!1,void 0,!1,void 0,void 0,void 0),V=function(t){this.form=t};V.prototype.hasValidationErrors=function(){return this.form.hasValidationErrors()},V.prototype.values=function(){var t=this;return new Promise((function(e,o){var n=[],i=function t(e){var o={};for(var n in e)e[n]instanceof r||p(e[n])?o[n]=e[n]:o[n]=t(e[n]);return o}(t.form.internalFormModelProxy),a=function(e){"object"==typeof t.form.internalFormModelProxy[e]&&t.form.internalFormModelProxy[e]instanceof r&&n.push(t.form.internalFormModelProxy[e].upload().then((function(t){var o;return Object.assign(i,((o={})[e]=t,o))})))};for(var s in i)a(s);Promise.all(n).then((function(){return e(i)})).catch((function(t){return o(t)}))}))};var A={provide:function(){return{formulateFormSetter:this.setFieldValue,formulateFormRegister:this.register,getFormValues:this.getFormValues}},name:"FormulateForm",model:{prop:"formulateValue",event:"input"},props:{name:{type:[String,Boolean],default:!1},formulateValue:{type:Object,default:function(){return{}}},values:{type:[Object,Boolean],default:!1}},data:function(){return{registry:{},internalFormModelProxy:{},formShouldShowErrors:!1}},computed:{hasInitialValue:function(){return this.formulateValue&&"object"==typeof this.formulateValue||this.values&&"object"==typeof this.values},isVmodeled:function(){return!!(this.$options.propsData.hasOwnProperty("formulateValue")&&this._events&&Array.isArray(this._events.input)&&this._events.input.length)},initialValues:function(){return Object.prototype.hasOwnProperty.call(this.$options.propsData,"formulateValue")&&"object"==typeof this.formulateValue?Object.assign({},this.formulateValue):Object.prototype.hasOwnProperty.call(this.$options.propsData,"values")&&"object"==typeof this.values?Object.assign({},this.values):{}}},watch:{formulateValue:{handler:function(t,e){if(this.isVmodeled&&t&&"object"==typeof t)for(var o in t)!this.registry.hasOwnProperty(o)||s(t[o],this.internalFormModelProxy[o])||s(t[o],this.registry[o].internalModelProxy[o])||(this.setFieldValue(o,t[o]),this.registry[o].context.model=t[o])},deep:!0}},created:function(){this.applyInitialValues()},methods:{applyInitialValues:function(){this.hasInitialValue&&(this.internalFormModelProxy=this.initialValues)},setFieldValue:function(t,e){var o;Object.assign(this.internalFormModelProxy,((o={})[t]=e,o)),this.$emit("input",Object.assign({},this.internalFormModelProxy))},getUniqueRegistryName:function(t,e){return void 0===e&&(e=0),Object.prototype.hasOwnProperty.call(this.registry,t+(e||""))?this.getUniqueRegistryName(t,e+1):t+(e||"")},register:function(t,e){if(Object.prototype.hasOwnProperty.call(this.registry,t))return!1;this.registry[t]=e;var o=Object.prototype.hasOwnProperty.call(e.$options.propsData,"formulateValue"),n=Object.prototype.hasOwnProperty.call(e.$options.propsData,"value");!o&&this.hasInitialValue&&this.initialValues[t]?e.context.model=this.initialValues[t]:!o&&!n||s(e.internalModelProxy,this.initialValues[t])||this.setFieldValue(t,e.internalModelProxy)},formSubmitted:function(){var t=this;this.showErrors();var e=new V(this);return this.$emit("submit-raw",e),e.hasValidationErrors().then((function(t){return t?void 0:e.values()})).then((function(e){if(void 0!==e)return t.$emit("submit",e),e}))},showErrors:function(){for(var t in this.registry)this.registry[t].formShouldShowErrors=!0},getFormValues:function(){return this.internalFormModelProxy},hasValidationErrors:function(){var t=[];for(var e in this.registry)"function"==typeof this.registry[e].hasValidationErrors&&t.push(this.registry[e].hasValidationErrors());return Promise.all(t).then((function(t){return!!t.find((function(t){return t}))}))}}},O=function(){var t=this,e=t.$createElement;return(t._self._c||e)("form",{on:{submit:function(e){return e.preventDefault(),t.formSubmitted(e)}}},[t._t("default")],2)};O._withStripped=!0;var j=w({render:O,staticRenderFns:[]},void 0,A,void 0,!1,void 0,!1,void 0,void 0,void 0),$={props:{errors:{type:[Boolean,Array],required:!0}}},N=function(){var t=this,e=t.$createElement,o=t._self._c||e;return t.errors.length?o("ul",{staticClass:"formulate-input-errors"},t._l(t.errors,(function(e){return o("li",{key:e,staticClass:"formulate-input-error",domProps:{innerHTML:t._s(e)}})})),0):t._e()};N._withStripped=!0;var I=w({render:N,staticRenderFns:[]},void 0,$,void 0,!1,void 0,!1,void 0,void 0,void 0);function E(t,e){var o={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&-1===e.indexOf(n)&&(o[n]=t[n]);return o}var S={name:"FormulateInputGroup",props:{context:{type:Object,required:!0}},computed:{options:function(){return this.context.options||[]},subComponent:function(){return"FormulateInput"},optionsWithContext:function(){var t=this,e=this.context,o=(e.options,e.labelPosition,e.attributes),n=(o.id,E(o,["id"])),i=(e.classification,e.blurHandler,e.performValidation,e.hasValidationErrors,e.component,e.hasLabel,E(e,["options","labelPosition","attributes","classification","blurHandler","performValidation","hasValidationErrors","component","hasLabel"]));return this.options.map((function(e){return t.groupItemContext(i,e,n)}))}},methods:{groupItemContext:function(t,e,o){return Object.assign({},t,e,o,{})}}},C=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",{staticClass:"formulate-input-group"},t._l(t.optionsWithContext,(function(e){return o(t.subComponent,t._b({key:e.id,tag:"component",staticClass:"formulate-input-group-item",model:{value:t.context.model,callback:function(e){t.$set(t.context,"model",e)},expression:"context.model"}},"component",e,!1))})),1)};C._withStripped=!0;var D=w({render:C,staticRenderFns:[]},void 0,S,void 0,!1,void 0,!1,void 0,void 0,void 0),U={props:{context:{type:Object,required:!0}},computed:{type:function(){return this.context.type},id:function(){return this.context.id},attributes:function(){return this.context.attributes||{}},hasValue:function(){return!!this.context.model}}},k={name:"FormulateInputBox",mixins:[U]},B=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",{class:"formulate-input-element formulate-input-element--"+t.context.type,attrs:{"data-type":t.context.type}},["checkbox"===t.type?o("input",t._b({directives:[{name:"model",rawName:"v-model",value:t.context.model,expression:"context.model"}],attrs:{type:"checkbox"},domProps:{value:t.context.value,checked:Array.isArray(t.context.model)?t._i(t.context.model,t.context.value)>-1:t.context.model},on:{blur:t.context.blurHandler,change:function(e){var o=t.context.model,n=e.target,i=!!n.checked;if(Array.isArray(o)){var r=t.context.value,a=t._i(o,r);n.checked?a<0&&t.$set(t.context,"model",o.concat([r])):a>-1&&t.$set(t.context,"model",o.slice(0,a).concat(o.slice(a+1)))}else t.$set(t.context,"model",i)}}},"input",t.attributes,!1)):"radio"===t.type?o("input",t._b({directives:[{name:"model",rawName:"v-model",value:t.context.model,expression:"context.model"}],attrs:{type:"radio"},domProps:{value:t.context.value,checked:t._q(t.context.model,t.context.value)},on:{blur:t.context.blurHandler,change:function(e){return t.$set(t.context,"model",t.context.value)}}},"input",t.attributes,!1)):o("input",t._b({directives:[{name:"model",rawName:"v-model",value:t.context.model,expression:"context.model"}],attrs:{type:t.type},domProps:{value:t.context.value,value:t.context.model},on:{blur:t.context.blurHandler,input:function(e){e.target.composing||t.$set(t.context,"model",e.target.value)}}},"input",t.attributes,!1)),t._v(" "),o("label",{staticClass:"formulate-input-element-decorator",attrs:{for:t.id}})])};B._withStripped=!0;var M=w({render:B,staticRenderFns:[]},void 0,k,void 0,!1,void 0,!1,void 0,void 0,void 0),L={name:"FormulateInputText",mixins:[U]},T=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",{class:"formulate-input-element formulate-input-element--"+t.context.type,attrs:{"data-type":t.context.type}},["checkbox"===t.type?o("input",t._b({directives:[{name:"model",rawName:"v-model",value:t.context.model,expression:"context.model"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(t.context.model)?t._i(t.context.model,null)>-1:t.context.model},on:{blur:t.context.blurHandler,change:function(e){var o=t.context.model,n=e.target,i=!!n.checked;if(Array.isArray(o)){var r=t._i(o,null);n.checked?r<0&&t.$set(t.context,"model",o.concat([null])):r>-1&&t.$set(t.context,"model",o.slice(0,r).concat(o.slice(r+1)))}else t.$set(t.context,"model",i)}}},"input",t.attributes,!1)):"radio"===t.type?o("input",t._b({directives:[{name:"model",rawName:"v-model",value:t.context.model,expression:"context.model"}],attrs:{type:"radio"},domProps:{checked:t._q(t.context.model,null)},on:{blur:t.context.blurHandler,change:function(e){return t.$set(t.context,"model",null)}}},"input",t.attributes,!1)):o("input",t._b({directives:[{name:"model",rawName:"v-model",value:t.context.model,expression:"context.model"}],attrs:{type:t.type},domProps:{value:t.context.model},on:{blur:t.context.blurHandler,input:function(e){e.target.composing||t.$set(t.context,"model",e.target.value)}}},"input",t.attributes,!1))])};T._withStripped=!0;var R=w({render:T,staticRenderFns:[]},void 0,L,void 0,!1,void 0,!1,void 0,void 0,void 0),z={name:"FormulateFiles",props:{files:{type:r,required:!0},imagePreview:{type:Boolean,default:!1}},computed:{fileUploads:function(){return this.files.files||[]}},watch:{files:function(){this.imagePreview&&this.files.loadPreviews()}},mounted:function(){this.imagePreview&&this.files.loadPreviews()}},H=function(){var t=this,e=t.$createElement,o=t._self._c||e;return t.fileUploads.length?o("ul",{staticClass:"formulate-files"},t._l(t.fileUploads,(function(e){return o("li",{key:e.uuid,attrs:{"data-has-error":!!e.error,"data-has-preview":t.imagePreview&&e.previewData}},[o("div",{staticClass:"formulate-file"},[t.imagePreview&&e.previewData?o("div",{staticClass:"formulate-file-image-preview"},[o("img",{attrs:{src:e.previewData}})]):t._e(),t._v(" "),o("div",{staticClass:"formualte-file-name",domProps:{textContent:t._s(e.name)}}),t._v(" "),!1!==e.progress?o("div",{staticClass:"formulate-file-progress",attrs:{"data-just-finished":e.justFinished,"data-is-finished":!e.justFinished&&e.complete}},[o("div",{staticClass:"formulate-file-progress-inner",style:{width:e.progress+"%"}})]):t._e(),t._v(" "),e.complete&&!e.justFinished||!1===e.progress?o("div",{staticClass:"formulate-file-remove",on:{click:e.removeFile}}):t._e()]),t._v(" "),e.error?o("div",{staticClass:"formulate-file-upload-error",domProps:{textContent:t._s(e.error)}}):t._e()])})),0):t._e()};H._withStripped=!0;var q={name:"FormulateInputFile",components:{FormulateFiles:w({render:H,staticRenderFns:[]},void 0,z,void 0,!1,void 0,!1,void 0,void 0,void 0)},mixins:[U],data:function(){return{isOver:!1}},computed:{hasFiles:function(){return!!(this.context.model instanceof r&&this.context.model.files.length)}},created:function(){Array.isArray(this.context.model)&&"string"==typeof this.context.model[0][this.$formulate.getFileUrlKey()]&&(this.context.model=this.$formulate.createUpload({files:this.context.model},this.context))},mounted:function(){window&&this.context.preventWindowDrops&&(window.addEventListener("dragover",this.preventDefault),window.addEventListener("drop",this.preventDefault))},destroyed:function(){window&&this.context.preventWindowDrops&&(window.removeEventListener("dragover",this.preventDefault),window.removeEventListener("drop",this.preventDefault))},methods:{preventDefault:function(t){"INPUT"!==t.target.tagName&&"file"!==t.target.getAttribute("type")&&(t=t||event).preventDefault()},handleFile:function(){var t=this;this.isOver=!1;var e=this.$refs.file;e.files.length&&(this.context.model=this.$formulate.createUpload(e,this.context),this.$nextTick((function(){return t.attemptImmediateUpload()})))},attemptImmediateUpload:function(){var t=this;"live"===this.context.uploadBehavior&&this.context.model instanceof r&&this.context.hasValidationErrors().then((function(e){e||t.context.model.upload()}))},handleDragOver:function(t){t.preventDefault(),this.isOver=!0},handleDragLeave:function(t){t.preventDefault(),this.isOver=!1}}},G=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",{class:"formulate-input-element formulate-input-element--"+t.context.type,attrs:{"data-type":t.context.type,"data-has-files":t.hasFiles}},[o("div",{staticClass:"formulate-input-upload-area",attrs:{"data-has-files":t.hasFiles}},[o("input",t._b({ref:"file",attrs:{"data-is-drag-hover":t.isOver,type:"file"},on:{blur:t.context.blurHandler,change:t.handleFile,dragover:t.handleDragOver,dragleave:t.handleDragLeave}},"input",t.attributes,!1)),t._v(" "),o("div",{directives:[{name:"show",rawName:"v-show",value:!t.hasFiles,expression:"!hasFiles"}],staticClass:"formulate-input-upload-area-mask"}),t._v(" "),t.hasFiles?o("FormulateFiles",{attrs:{files:t.context.model,"image-preview":"image"===t.context.type&&"preview"===t.context.imageBehavior}}):t._e()],1)])};G._withStripped=!0;var Y=w({render:G,staticRenderFns:[]},void 0,q,void 0,!1,void 0,!1,void 0,void 0,void 0),W={name:"FormulateInputButton",mixins:[U]},K=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",{class:"formulate-input-element formulate-input-element--"+t.context.type,attrs:{"data-type":t.context.type}},[o("button",t._b({attrs:{type:t.type}},"button",t.attributes,!1),[t._t("default",[o("span",{class:"formulate-input-element--"+t.context.type+"--label",domProps:{textContent:t._s(t.context.value||t.context.label||t.context.name||"Submit")}})])],2)])};K._withStripped=!0;var Z=w({render:K,staticRenderFns:[]},void 0,W,void 0,!1,void 0,!1,void 0,void 0,void 0),J={name:"FormulateInputSelect",mixins:[U],computed:{options:function(){return this.context.options||{}},optionGroups:function(){return this.context.optionGroups||!1},placeholderSelected:function(){return!(this.hasValue||!this.context.attributes||!this.context.attributes.placeholder)}}},X=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",{class:"formulate-input-element formulate-input-element--"+t.context.type,attrs:{"data-type":t.context.type}},[o("select",t._b({directives:[{name:"model",rawName:"v-model",value:t.context.model,expression:"context.model"}],attrs:{"data-placeholder-selected":t.placeholderSelected},on:{blur:t.context.blurHandler,change:function(e){var o=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.context,"model",e.target.multiple?o:o[0])}}},"select",t.attributes,!1),[t.context.placeholder?o("option",{attrs:{value:"",disabled:""},domProps:{selected:!t.hasValue}},[t._v("\n "+t._s(t.context.placeholder)+"\n ")]):t._e(),t._v(" "),t.optionGroups?t._l(t.optionGroups,(function(e,n){return o("optgroup",{key:n,attrs:{label:n}},t._l(e,(function(e){return o("option",t._b({key:e.id,domProps:{value:e.value,textContent:t._s(e.label)}},"option",e.attributes||{},!1))})),0)})):t._l(t.options,(function(e){return o("option",t._b({key:e.id,domProps:{value:e.value,textContent:t._s(e.label)}},"option",e.attributes||{},!1))}))],2)])};X._withStripped=!0;var Q=w({render:X,staticRenderFns:[]},void 0,J,void 0,!1,void 0,!1,void 0,void 0,void 0),tt={name:"FormulateInputSlider",mixins:[U]},et=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",{class:"formulate-input-element formulate-input-element--"+t.context.type,attrs:{"data-type":t.context.type}},["checkbox"===t.type?o("input",t._b({directives:[{name:"model",rawName:"v-model",value:t.context.model,expression:"context.model"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(t.context.model)?t._i(t.context.model,null)>-1:t.context.model},on:{blur:t.context.blurHandler,change:function(e){var o=t.context.model,n=e.target,i=!!n.checked;if(Array.isArray(o)){var r=t._i(o,null);n.checked?r<0&&t.$set(t.context,"model",o.concat([null])):r>-1&&t.$set(t.context,"model",o.slice(0,r).concat(o.slice(r+1)))}else t.$set(t.context,"model",i)}}},"input",t.attributes,!1)):"radio"===t.type?o("input",t._b({directives:[{name:"model",rawName:"v-model",value:t.context.model,expression:"context.model"}],attrs:{type:"radio"},domProps:{checked:t._q(t.context.model,null)},on:{blur:t.context.blurHandler,change:function(e){return t.$set(t.context,"model",null)}}},"input",t.attributes,!1)):o("input",t._b({directives:[{name:"model",rawName:"v-model",value:t.context.model,expression:"context.model"}],attrs:{type:t.type},domProps:{value:t.context.model},on:{blur:t.context.blurHandler,input:function(e){e.target.composing||t.$set(t.context,"model",e.target.value)}}},"input",t.attributes,!1)),t._v(" "),t.context.showValue?o("div",{staticClass:"formulate-input-element-range-value",domProps:{textContent:t._s(t.context.model)}}):t._e()])};et._withStripped=!0;var ot=w({render:et,staticRenderFns:[]},void 0,tt,void 0,!1,void 0,!1,void 0,void 0,void 0),nt={name:"FormulateInputTextArea",mixins:[U]},it=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",{staticClass:"formulate-input-element formulate-input-element--textarea",attrs:{"data-type":"textarea"}},[o("textarea",t._b({directives:[{name:"model",rawName:"v-model",value:t.context.model,expression:"context.model"}],domProps:{value:t.context.model},on:{blur:t.context.blurHandler,input:function(e){e.target.composing||t.$set(t.context,"model",e.target.value)}}},"textarea",t.attributes,!1))])};it._withStripped=!0;var rt=w({render:it,staticRenderFns:[]},void 0,nt,void 0,!1,void 0,!1,void 0,void 0,void 0),at=function(){this.options={},this.defaults={components:{FormulateForm:j,FormulateInput:P,FormulateInputErrors:I,FormulateInputBox:M,FormulateInputText:R,FormulateInputFile:Y,FormulateInputGroup:D,FormulateInputButton:Z,FormulateInputSelect:Q,FormulateInputSlider:ot,FormulateInputTextArea:rt},library:n,rules:d,locale:"en",uploader:f,uploadUrl:!1,fileUrlKey:"url",uploadJustCompleteDuration:1e3,plugins:[],locales:{en:m}}};at.prototype.install=function(t,e){var o=this;for(var n in t.prototype.$formulate=this,this.options=this.merge(this.defaults,e||{}),Array.isArray(this.options.plugins)&&this.options.plugins.length&&this.options.plugins.forEach((function(t){return"function"==typeof t?t(o):null})),this.options.components)t.component(n,this.options.components[n])},at.prototype.extend=function(t){if("object"==typeof t)return this.options=this.merge(this.options,t),this;throw new Error("VueFormulate extend() should be passed an object (was "+typeof t+")")},at.prototype.merge=function(t,e,n){void 0===n&&(n=!0);var i={};for(var r in t)e.hasOwnProperty(r)?o(e[r])&&o(t[r])?i[r]=this.merge(t[r],e[r],n):n&&Array.isArray(t[r])&&Array.isArray(e[r])?i[r]=t[r].concat(e[r]):i[r]=e[r]:i[r]=t[r];for(var a in e)i.hasOwnProperty(a)||(i[a]=e[a]);return i},at.prototype.classify=function(t){return this.options.library.hasOwnProperty(t)?this.options.library[t].classification:"unknown"},at.prototype.component=function(t){return!!this.options.library.hasOwnProperty(t)&&this.options.library[t].component},at.prototype.rules=function(t){return void 0===t&&(t={}),Object.assign({},this.options.rules,t)},at.prototype.validationMessage=function(t,e){var o=this.options.locales[this.options.locale];return o.hasOwnProperty(t)?o[t](e):"_"===t[0]&&o.hasOwnProperty(t.substr(1))?o[t.substr(1)](e):o.hasOwnProperty("default")?o.default(e):"This field does not have a valid value"},at.prototype.getUploader=function(){return this.options.uploader||!1},at.prototype.getUploadUrl=function(){return this.options.uploadUrl||!1},at.prototype.getFileUrlKey=function(){return this.options.fileUrlKey||"url"},at.prototype.createUpload=function(t,e){return new r(t,e,this.options)};var st=new at;export default st;
|