UNPKG

vue-mfk

Version:

A Vue.js Plugin for MFK input.

6 lines 9.14 kB
/*! * vue-mfk-vuetify v0.2.0 * (c) 2018 Valerij Petrulevich * Released under the MIT License. */ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("_"),require("Vuetify")):"function"==typeof define&&define.amd?define(["_","Vuetify"],t):"object"==typeof exports?exports.VueMfkVuetify=t(require("_"),require("Vuetify")):e.VueMfkVuetify=t(e._,e.Vuetify)}(this,function(e,t){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=8)}([function(e,t,n){"use strict";function i(e,t){var n=new XMLHttpRequest;n.onreadystatechange=function(){4==n.readyState&&200==n.status?t(n.responseText):4==n.readyState&&t("0\nUnable to reach MFK validation service")},n.open("GET",e,!0),n.send(null)}function r(e){var t=(e||"").split("-");if(t.length>a.length)return Promise.reject("MFK has too many parts.");for(var n=0;n<a.length;n++)if((t[n]||"").length!=a[n].length)return Promise.reject(a[n].name+" must be "+a[n].length+" digits long.");var r=e.replace(/-/g,""),o="https://apps.its.uiowa.edu/mfk/api-singleDesc.jsp?mfk=10%20%20%20"+r;return new Promise(function(e,t){i(o,function(n){var i=n.split(/\n/);1==i[0]?e():t(i[1])})})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var a=[{name:"Fund",length:3},{name:"Org",length:2},{name:"Dept",length:4},{name:"SubDept",length:5},{name:"Grant/Prg",length:8},{name:"IAcct",length:4},{name:"OAcct",length:3},{name:"DAcct",length:5},{name:"Fn",length:2},{name:"Cctr",length:4}]},function(e,t){e.exports=function(e,t,n,i,r){var a,o=e=e||{},s=typeof e.default;"object"!==s&&"function"!==s||(a=e,o=e.default);var u="function"==typeof o?o.options:o;t&&(u.render=t.render,u.staticRenderFns=t.staticRenderFns),i&&(u._scopeId=i);var f;if(r?(f=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(r)},u._ssrRegister=f):n&&(f=n),f){var l=u.functional,d=l?u.render:u.beforeCreate;l?u.render=function(e,t){return f.call(t),d(e,t)}:u.beforeCreate=d?[].concat(d,f):[f]}return{esModule:a,exports:o,options:u}}},function(t,n){t.exports=e},function(e,t,n){function i(e){n(10)}var r=n(1)(n(6),n(12),i,"data-v-24dbf928",null);e.exports=r.exports},function(e,t,n){function i(e){n(9)}var r=n(1)(n(7),n(11),i,"data-v-21e42b2a",null);e.exports=r.exports},function(e,n){e.exports=t},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(e){return e&&e.__esModule?e:{default:e}}(i);t.default={props:{value:{type:String,required:!0},favorites:{type:Array,required:!0},disabled:{type:Boolean,default:!1}},computed:{optionsForFavoriteMfks:function(){return this.favorites.length>0?r.default.sortBy(this.favorites,[function(e){return e.alias.toLowerCase()}]):[{header:"You have no favorite MFKs"}]},selectedFavoriteMfk:{get:function(){var e=this;return r.default.find(this.favorites,function(t){return t.mfk===e.value})}},isFavoriteMfk:function(){return this.selectedFavoriteMfk},buttonTitle:function(){return this.isFavoriteMfk?"Remove MFK from Favorites":"Add MFK to Favorites"}},methods:{onChange:function(e){e.mfk&&this.$emit("input",e.mfk)},toggleFavoriteMfk:function(){this.isFavoriteMfk?this.removeMfkFromFavorites():this.addMfkToFavorites()},addMfkToFavorites:function(){var e=prompt("Please specify alias name for new favorite MFK.");e&&this.$emit("add",{mfk:this.value,alias:e})},removeMfkFromFavorites:function(){confirm("Remove favorite MFK '"+this.selectedFavoriteMfk.alias+"' ?")&&this.$emit("remove",this.selectedFavoriteMfk)}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),a=i(r),o=n(2),s=i(o);t.default={props:{value:String,validate:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},disabledFields:{type:Array,default:function(){return[]}},errorMessage:{type:String,default:null}},data:function(){return{mfkError:"",mfkDefinition:[{index:0,name:"Fund",maxLength:3,minWidth:36,value:""},{index:1,name:"Org",maxLength:2,minWidth:26,value:""},{index:2,name:"Dept",maxLength:4,minWidth:42,value:""},{index:3,name:"SubDept",maxLength:5,minWidth:54,value:""},{index:4,name:"Grant/Prg",maxLength:8,minWidth:78,value:""},{index:5,name:"IAcct",maxLength:4,minWidth:42,value:""},{index:6,name:"OAcct",maxLength:3,minWidth:38,value:""},{index:7,name:"DAcct",maxLength:5,minWidth:50,value:""},{index:8,name:"Fn",maxLength:2,minWidth:26,value:""},{index:9,name:"Cctr",maxLength:4,minWidth:38,value:""}]}},computed:{anyErrors:function(){return!!this.errorToDisplay},mfkString:function(){return this.mfkElements.map(function(e){return e.value}).join("-")},errorToDisplay:function(){return null!=this.errorMessage?this.errorMessage:this.mfkError},mfkElements:function(){var e=this,t=(this.value||"").split("-");return this.mfkDefinition.forEach(function(n){n.value=t[n.index]||"",n.disabled=e.disabled||e.disabledFields.includes(n.index)}),this.mfkDefinition},validateMfk:function(){return s.default.debounce(function(){var e=this;(0,a.default)(this.mfkString).then(function(){return e.mfkError=null}).catch(function(t){return e.mfkError=t}).finally(function(){return e.$emit("update:errorMessage",e.mfkError)})},1e3)}},methods:{onInput:function(){this.emitEvent()},emitEvent:function(){this.$emit("input",this.mfkString)},goToNextInput:function(e,t){["Tab","Shift","ArrowLeft","ArrowRight"].includes(t.key)||e.value.length==e.maxLength&&this.FocusOnNextField(e.index)},FocusOnNextField:function(e){var t="mfk_field_"+(e+1);t in this.$refs&&(this.$refs[t][0].disabled?this.FocusOnNextField(e+1):this.$refs[t][0].focus())},fillWithZeros:function(e,t){"Tab"==t.key&&0==t.shiftKey&&e.value.length!=e.maxLength&&(e.value=void 0===e.value?"":e.value.padEnd(e.maxLength,"0"),this.emitEvent())},pasteMfk:function(e,t){if(0==e.index){var n=t.clipboardData.getData("text/plain"),i=this.parseMfk(n);this.mfkDefinition.forEach(function(e){e.disabled||(e.value=i[e.index]||e.value)}),t.preventDefault(),this.emitEvent()}},parseMfk:function(e){var t=e.replace(/-/g,""),n=0,i=[];return this.mfkDefinition.forEach(function(e){i.push(t.substring(n,n+e.maxLength)),n+=e.maxLength}),i}},watch:{value:function(e,t){this.validate&&this.validateMfk()}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e,t){e.use(o.default),e.component("mfk-input",u.default),e.component("mfk-favorite",l.default)}Object.defineProperty(t,"__esModule",{value:!0}),t.version=t.ValidateMfk=t.MfkFavotire=t.MfkInput=void 0;var a=n(5),o=i(a),s=n(4),u=i(s),f=n(3),l=i(f),d=n(0),c=i(d);"undefined"!=typeof window&&window.Vue&&window.Vue.use(r),t.default=r;t.MfkInput=u.default,t.MfkFavotire=l.default,t.ValidateMfk=c.default,t.version="__VERSION__"},function(e,t){},function(e,t){},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("v-flex",{staticClass:"mfk-input-wrapper",attrs:{"d-inline-flex":""}},e._l(e.mfkElements,function(t,i){return n("v-text-field",{key:t.index,ref:"mfk_field_"+t.index,refInFor:!0,class:["mfk-input",i==e.mfkElements.length-1?"mfk-input-last":""],style:{minWidth:t.minWidth+"px",width:t.minWidth+"px"},attrs:{name:t.name,label:t.name,maxlength:t.maxLength,placeholder:"0".repeat(t.maxLength),mask:"#".repeat(t.maxLength),error:e.anyErrors,"error-messages":0==t.index&&e.anyErrors?[e.errorToDisplay]:[],disabled:t.disabled},on:{input:e.onInput,keyup:function(n){e.goToNextInput(t,n)},paste:function(n){e.pasteMfk(t,n)}},nativeOn:{keydown:function(n){e.fillWithZeros(t,n)}},model:{value:t.value,callback:function(n){e.$set(t,"value",n)},expression:"el.value"}})}))},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("v-flex",{staticClass:"favorite-mfk-wrapper",attrs:{"d-inline-flex":""}},[n("v-btn",{staticClass:"favorite-mfk-btn",attrs:{flat:"",icon:"",small:"",top:"",depressed:"",color:"indigo",title:e.buttonTitle,disabled:e.disabled},on:{click:e.toggleFavoriteMfk}},[n("v-icon",[e._v(e._s(e.isFavoriteMfk?"star":"star_border"))])],1),e._v(" "),n("v-select",{ref:"favoriteMfkSelector",staticClass:"favoriteMfks",attrs:{items:e.optionsForFavoriteMfks,value:e.selectedFavoriteMfk,label:"Favorite MFKs",placeholder:"Select",dense:"",disabled:e.disabled},on:{change:e.onChange},scopedSlots:e._u([{key:"selection",fn:function(t){return[e._v("\n "+e._s(t.item.alias)+"\n ")]}},{key:"item",fn:function(t){return[e._v("\n "+e._s(t.item.alias)+" \n ")]}}])})],1)},staticRenderFns:[]}}])});