UNPKG

2.2 kBJavaScriptView Raw
1/*!
2 * vue-css-modules v1.2.0
3 * (c) 2018-present fjc0k <fjc0kb@gmail.com> (https://github.com/fjc0k)
4 * Released under the MIT License.
5 */
6!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.VueCSSModules=e()}(this,function(){"use strict";var t=Object.create(null);var e=Object.create(null),n=function(n){if(e[n])return e[n];var i,r,s,a;if(function(t,e,n){void 0===n&&(n=0);for(var i=n,r=t.length;i<r;i++)if(t[i]===e)return!0;return!1}(n,"=",1)){var l=n.split("=");i=l[0],r=l[1]}else{var o=n[0];"$"===o?(r=n.substr(1),s=!0):"@"===o?a=i=n.substr(1):":"===o?r=function(e){if(t[e])return t[e];for(var n="",i=!1,r=0,s=e.length;r<s;r++){var a=e[r];"-"===a?i=!0:(n+=n&&i?a.toUpperCase():a,i=!1)}return t[e]=n,n}(i=n.substr(1)):i=n}return e[n]={className:i,binding:r,bindingValue:s,role:a},e[n]},i="styleName";function r(t){var e=[].slice.call(arguments,1);if("function"==typeof t)return r.bind(t,{functional:!0,createElement:t,styles:e[0],context:e[1]});var s=t.functional,a=void 0!==s&&s,l=t.createElement,o=t.context,c=void 0===o?{}:o,u=t.styles,f=void 0===u?c.$style||{}:u;(function(t){return"string"==typeof t})(f)&&(f=(a?(c.injections||{})[f]:c[f])||{}),a&&(c=c.props||{});var d=e[1];if(function(t){return null!==t&&"object"==typeof t}(d)){d.staticClass||(d.staticClass=""),d.attrs||(d.attrs={});var v=d[i]||d.attrs[i]||"";if(v.length){var h=Array.isArray(v)?v:[v];for(var m in h){var p=h[m];if(p&&"string"==typeof p){var g=p.split(/\s+/g);for(var y in g){var b=g[y],E=n(b),C=E.className,x=E.binding,$=E.bindingValue,j=E.role;$&&(C=c[x],x=void 0),x&&!c[x]||!f[C]||(d.staticClass+=" "+f[C],d.staticClass=d.staticClass.trim()),j&&(d.attrs["data-component-"+j]="")}}}}delete d[i],delete d.attrs[i]}return l.apply(null,e)}var s=function(t){return{beforeCreate:function(){this.original$createElement=this.original$createElement||this.$createElement,this.original_c=this.original_c||this._c,this.$createElement=r.bind(this,{createElement:this.original$createElement,context:this,styles:t}),this._c=r.bind(this,{createElement:this.original_c,context:this,styles:t})}}};return s.install=function(t){t.mixin(s())},s});