UNPKG

vue-mfk

Version:

A Vue.js Plugin for MFK input.

6 lines 14.5 kB
/*! * vue-mfk v0.2.1 * (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.VueMfk=t(require("_"),require("Vuetify")):e.VueMfk=t(e._,e.Vuetify)}(this,function(e,t){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},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=7)}([function(e,t,n){"use strict";function r(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 i(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 i=e.replace(/-/g,""),o="https://apps.its.uiowa.edu/mfk/api-singleDesc.jsp?mfk=10%20%20%20"+i;return new Promise(function(e,t){r(o,function(n){var r=n.split(/\n/);1==r[0]?e():t(r[1])})})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;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,r,i){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),r&&(u._scopeId=r);var f;if(i?(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(i)},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 r(e){n(8)}var i=n(1)(n(6),n(11),r,"data-v-21e42b2a",null);e.exports=i.exports},function(e,n){e.exports=t},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2),i=function(e){return e&&e.__esModule?e:{default:e}}(r);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?i.default.sortBy(this.favorites,[function(e){return e.alias.toLowerCase()}]):[{header:"You have no favorite MFKs"}]},selectedFavoriteMfk:{get:function(){var e=this;return i.default.find(this.favorites,function(t){return t.mfk===e.value})||this.value}},isFavoriteMfk:function(){return this.selectedFavoriteMfk&&this.selectedFavoriteMfk.mfk||!1},buttonTitle:function(){return this.isFavoriteMfk?"Remove MFK from Favorites":"Add MFK to Favorites"}},methods:{onChange:function(e){e.mfk&&this.$emit("favorite-mfk-selected",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("favorite-mfk-added",{mfk:this.value,alias:e})},removeMfkFromFavorites:function(){confirm("Remove favorite MFK '"+this.selectedFavoriteMfk.alias+"' ?")&&this.$emit("favorite-mfk-removed",this.selectedFavoriteMfk)}}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(0),a=r(i),o=n(10),s=r(o),u=n(2),f=r(u),l=n(13),d=["Tab","Shift","ArrowLeft","ArrowRight","Control","Alt","Backspace","Delete"];t.default={directives:{themask:l.mask},components:{"mfk-favorite":s.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},favorites:{type:Array,required:!1}},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 f.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)})},1300)}},methods:{onInput:function(){this.emitValueChanged()},emitValueChanged:function(){this.$emit("input",this.mfkString)},goToNextInput:function(e,t){d.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())},onKeyDown:function(e,t){if("Tab"==t.key&&0==t.shiftKey)return void this.fillWithZeros(e)},fillWithZeros:function(e){e.value=void 0===e.value?"":e.value.padEnd(e.maxLength,"0"),this.emitValueChanged()},pasteMfk:function(e,t){var n=t.clipboardData.getData("text/plain");if(0==e.index){t.preventDefault();var r=this.parseMfkParts(n);this.applyInternalInput(r)}},parseMfkParts:function(e){var t=e.replace(/\D/g,""),n=0,r=[];return this.mfkDefinition.forEach(function(e){r.push(t.substring(n,n+e.maxLength)),n+=e.maxLength}),r},applyInternalInput:function(e){this.mfkDefinition.forEach(function(t){t.disabled||(t.value=e[t.index])}),this.emitValueChanged()},favoriteMfkSelected:function(e){var t=e.split("-");this.applyInternalInput(t)},favoriteMfkAdded:function(e){this.$emit("favorite-mfk-added",e)},favoriteMfkRemoved:function(e){this.$emit("favorite-mfk-removed",e)}},watch:{value:function(e,t){this.validate&&this.validateMfk()}}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){e.use(o.default),e.component("mfk-input",u.default)}Object.defineProperty(t,"__esModule",{value:!0}),t.version=t.ValidateMfk=t.MfkInput=void 0;var a=n(4),o=r(a),s=n(3),u=r(s),f=n(0),l=r(f);"undefined"!=typeof window&&window.Vue&&window.Vue.use(i),t.default=i;t.MfkInput=u.default,t.ValidateMfk=l.default,t.version="__VERSION__"},function(e,t){},function(e,t){},function(e,t,n){function r(e){n(9)}var i=n(1)(n(5),n(12),r,"data-v-24dbf928",null);e.exports=i.exports},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"mfk-wrapper"},[e.favorites?n("mfk-favorite",{attrs:{value:e.value,favorites:e.favorites,disabled:e.disabled},on:{"favorite-mfk-selected":e.favoriteMfkSelected,"favorite-mfk-added":e.favoriteMfkAdded,"favorite-mfk-removed":e.favoriteMfkRemoved}}):e._e(),e._v(" "),n("div",{staticClass:"mfk-input-wrapper"},e._l(e.mfkElements,function(t,r){return n("v-text-field",{directives:[{name:"themask",rawName:"v-themask",value:"#".repeat(t.maxLength),expression:"'#'.repeat(el.maxLength)"}],key:t.index,ref:"mfk_field_"+t.index,refInFor:!0,class:["mfk-input",r==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),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.onKeyDown(t,n)}},model:{value:t.value,callback:function(n){e.$set(t,"value",n)},expression:"el.value"}})}))],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"favorite-mfk-wrapper"},[n("v-btn",{attrs:{flat:"",icon:"",small:"",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("div",{staticClass:"select-wrapper",staticStyle:{display:"inline-flex",width:"140px"}},[n("v-select",{ref:"favoriteMfkSelector",staticClass:"favoriteMfks",attrs:{items:e.optionsForFavoriteMfks,dense:"",label:"Favorite MFKs",placeholder:"Select",value:e.selectedFavoriteMfk,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)],1)},staticRenderFns:[]}},function(e,t,n){!function(t,n){e.exports=n()}(0,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},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=10)}([function(e,t){e.exports={"#":{pattern:/\d/},X:{pattern:/[0-9a-zA-Z]/},S:{pattern:/[a-zA-Z]/},A:{pattern:/[a-zA-Z]/,transform:function(e){return e.toLocaleUpperCase()}},a:{pattern:/[a-zA-Z]/,transform:function(e){return e.toLocaleLowerCase()}},"!":{escape:!0}}},function(e,t,n){"use strict";function r(e){var t=document.createEvent("Event");return t.initEvent(e,!0,!0),t}var i=n(2),a=n(0),o=n.n(a);t.a=function(e,t){var a=t.value;if((Array.isArray(a)||"string"==typeof a)&&(a={mask:a,tokens:o.a}),"INPUT"!==e.tagName.toLocaleUpperCase()){var s=e.getElementsByTagName("input");if(1!==s.length)throw new Error("v-mask directive requires 1 input, found "+s.length);e=s[0]}e.oninput=function(t){if(t.isTrusted){var o=e.selectionEnd,s=e.value[o-1];for(e.value=n.i(i.a)(e.value,a.mask,!0,a.tokens);o<e.value.length&&e.value.charAt(o-1)!==s;)o++;e===document.activeElement&&(e.setSelectionRange(o,o),setTimeout(function(){e.setSelectionRange(o,o)},0)),e.dispatchEvent(r("input"))}};var u=n.i(i.a)(e.value,a.mask,!0,a.tokens);u!==e.value&&(e.value=u,e.dispatchEvent(r("input")))}},function(e,t,n){"use strict";var r=n(6),i=n(5);t.a=function(e,t){var a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=arguments[3];return Array.isArray(t)?n.i(i.a)(r.a,t,o)(e,t,a,o):n.i(r.a)(e,t,a,o)}},function(e,t,n){"use strict";function r(e){e.component(u.a.name,u.a),e.directive("mask",o.a)}Object.defineProperty(t,"__esModule",{value:!0});var i=n(0),a=n.n(i),o=n(1),s=n(7),u=n.n(s);n.d(t,"TheMask",function(){return u.a}),n.d(t,"mask",function(){return o.a}),n.d(t,"tokens",function(){return a.a}),n.d(t,"version",function(){return f});var f="0.11.1";t.default=r,"undefined"!=typeof window&&window.Vue&&window.Vue.use(r)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),i=n(0),a=n.n(i),o=n(2);t.default={name:"TheMask",props:{value:[String,Number],mask:{type:[String,Array],required:!0},masked:{type:Boolean,default:!1},tokens:{type:Object,default:function(){return a.a}}},directives:{mask:r.a},data:function(){return{lastValue:null,display:this.value}},watch:{value:function(e){e!==this.lastValue&&(this.display=e)},masked:function(){this.refresh(this.display)}},computed:{config:function(){return{mask:this.mask,tokens:this.tokens,masked:this.masked}}},methods:{onInput:function(e){e.isTrusted||this.refresh(e.target.value)},refresh:function(e){this.display=e;var e=n.i(o.a)(e,this.mask,this.masked,this.tokens);e!==this.lastValue&&(this.lastValue=e,this.$emit("input",e))}}}},function(e,t,n){"use strict";function r(e,t,n){return t=t.sort(function(e,t){return e.length-t.length}),function(r,i){for(var a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=0;o<t.length;){var s=t[o];o++;var u=t[o];if(!(u&&e(r,u,!0,n).length>s.length))return e(r,s,a,n)}return""}}t.a=r},function(e,t,n){"use strict";function r(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=arguments[3];e=e||"",t=t||"";for(var i=0,a=0,o="";i<t.length&&a<e.length;){var s=t[i],u=r[s],f=e[a];u&&!u.escape?(u.pattern.test(f)&&(o+=u.transform?u.transform(f):f,i++),a++):(u&&u.escape&&(i++,s=t[i]),n&&(o+=s),f===s&&a++,i++)}for(var l="";i<t.length&&n;){var s=t[i];if(r[s]){l="";break}l+=s,i++}return o+l}t.a=r},function(e,t,n){var r=n(8)(n(4),n(9),null,null);e.exports=r.exports},function(e,t){e.exports=function(e,t,n,r){var i,a=e=e||{},o=typeof e.default;"object"!==o&&"function"!==o||(i=e,a=e.default);var s="function"==typeof a?a.options:a;if(t&&(s.render=t.render,s.staticRenderFns=t.staticRenderFns),n&&(s._scopeId=n),r){var u=s.computed||(s.computed={});Object.keys(r).forEach(function(e){var t=r[e];u[e]=function(){return t}})}return{esModule:i,exports:a,options:s}}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("input",{directives:[{name:"mask",rawName:"v-mask",value:e.config,expression:"config"}],attrs:{type:"text"},domProps:{value:e.display},on:{input:e.onInput}})},staticRenderFns:[]}},function(e,t,n){e.exports=n(3)}])})}])});