vue-proxi
Version:
Tiny proxy component for Vue.js
2 lines (1 loc) • 1.4 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var r=require("vue"),t=Object.prototype.hasOwnProperty,e=function(r,e){return t.call(r,e)},n=/-(\w)/g,i={functional:!0,props:{proxiKey:{type:[Symbol,String],required:!0}},render:function(t,n){var i=n.props.proxiKey;if(i){var o=n.data;!function(t,n,i){if(t._provided){var o=t._provided,u=t.$parent&&t.$parent._provided;o===u&&(t._provided=Object.create(u))}else t._provided={};var s=t._provided[n];if(s)for(var c in i)e(i,c)&&r.set(s,c,i[c]);else t._provided[n]=r.observable(i)}(n.parent,i,{data:o})}return n.slots().default}},o="_proxi_",u=Object.freeze({}),s={class:void 0,listeners:u,attrs:u,props:u};exports.ProxiInject=function(r){var t,i=void 0===r?{}:r,u=i.from,c=i.props,a=void 0===c?[]:c;return{inject:(t={},t[o]={from:u,default:void 0},t),created:function(){var r=(this[o]||{}).data;if(r)for(var t in r.on)e(r.on,t)&&this.$on(t,r.on[t])},computed:a.reduce((function(r,t){return r[t]=function(){return this.$$.props[t]},r}),{$$:function(){var r=(this[o]||{}).data,t=Object.create(s);return r?Object.assign(t,{class:r.staticClass||r.class?[r.staticClass,r.class]:void 0,listeners:r.on},function(r,t){var i={};for(var o in t)if(e(t,o)){var u=o.replace(n,(function(r,t){return t?t.toUpperCase():""})),s=t[o];r.includes(u)&&(i[u]=s,delete t[o])}return{attrs:t,props:i}}(a,Object.assign({},r.attrs))):t}})}},exports.default=i;