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