@merkur/plugin-component
Version:
Merkur component plugin.
2 lines (1 loc) • 7.09 kB
JavaScript
function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},n(t)}!function(n,t){if("function"==typeof define&&define.amd)define("@merkur/plugin-component",["exports","@merkur/core"],t);else if("undefined"!=typeof exports)t(exports,require("@merkur/core"));else{var e={exports:{}};t(e.exports,n.Merkur.Core),n.Merkur=n.Merkur||{},n.Merkur.Plugin=n.Merkur.Plugin||{},n.Merkur.Plugin.Component=e.exports}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,(function(t,e){Object.defineProperty(t,"__esModule",{value:!0}),t.componentPlugin=function(){return{setup:function(n,t){return y((function*(){var o=t.info,u=t.bootstrap,a=t.load,f=t.mount,l=t.unmount,p=t.update,m=s(t,r),v={info:o,bootstrap:u,load:a,mount:f,unmount:l,update:p};return n.$in.component={lifeCycle:v,isMounted:!1,isHydrated:!1,suspendedTasks:[],resolvedViews:new Map},(0,e.assignMissingKeys)(n,{info:function(n){var t=arguments;return y((function*(){for(var e=n.name,r=n.version,o=n.props,u=n.state,i=n.assets,a=n.containerSelector,f=t.length,l=new Array(f>1?f-1:0),s=1;s<f;s++)l[s-1]=t[s];return c({name:e,version:r,props:o,state:u,assets:i,containerSelector:a},(yield d(n,"info",l))||{})}))()},mount:function(n){var t=arguments;return y((function*(){for(var e=t.length,r=new Array(e>1?e-1:0),o=1;o<e;o++)r[o-1]=t[o];yield n.bootstrap.apply(n,r),yield n.load.apply(n,r);var u=yield d(n,"mount",r);n.$in.component.isMounted=!0;var a,f=function(n,t){var e="undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(!e){if(Array.isArray(n)||(e=i(n))||t&&n&&"number"==typeof n.length){e&&(n=e);var r=0,o=function(){};return{s:o,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(n){throw n},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,a=!0,f=!1;return{s:function(){e=e.call(n)},n:function(){var n=e.next();return a=n.done,n},e:function(n){f=!0,u=n},f:function(){try{a||null==e.return||e.return()}finally{if(f)throw u}}}}(n.$in.component.suspendedTasks);try{for(f.s();!(a=f.n()).done;){var c=a.value;yield c()}}catch(n){f.e(n)}finally{f.f()}return u}))()},unmount:function(n){var t=arguments;return y((function*(){n.$in.component.isMounted=!1,n.$in.component.isHydrated=!1;for(var e=t.length,r=new Array(e>1?e-1:0),o=1;o<e;o++)r[o-1]=t[o];return d(n,"unmount",r)}))()},bootstrap:function(n){var t=arguments;return y((function*(){for(var e=t.length,r=new Array(e>1?e-1:0),o=1;o<e;o++)r[o-1]=t[o];return d(n,"bootstrap",r)}))()},load:function(n){var t=arguments;return y((function*(){var e=n.$in,r=n.state;if(!1===e.component.isMounted&&!1===e.component.isHydrated&&r&&0!==Object.keys(r).length)e.component.isHydrated=!0;else{for(var o=t.length,u=new Array(o>1?o-1:0),i=1;i<o;i++)u[i-1]=t[i];n.state=yield d(n,"load",u)}}))()},update:function(n){var t=arguments;return y((function*(){for(var e=t.length,r=new Array(e>1?e-1:0),o=1;o<e;o++)r[o-1]=t[o];if(n.$in.component.isMounted)return d(n,"update",r);n.$in.component.suspendedTasks.push((function(){return n.update.apply(n,r)}))}))()},setState:function(n,t){return y((function*(){return n.state=c(c({},n.state),"function"==typeof t?t(n.state):t),n.update()}))()},setProps:function(n,t){return y((function*(){if(n.$in.component.isMounted)return n.props=c(c({},n.props),"function"==typeof t?t(n.props):t),yield n.load(),n.update();n.$in.component.suspendedTasks.push((function(){return n.setProps(t)}))}))()}},m),n=(0,e.setDefaultValueForUndefined)(n,["props","state"]),n=(0,e.setDefaultValueForUndefined)(n,["assets"],[]),n=(0,e.setDefaultValueForUndefined)(n,["containerSelector"],null)}))()},create:function(n){return n}}},t.createSlotFactory=function(n){return function(){var t=y((function*(t){return n(t)}));return function(n){return t.apply(this,arguments)}}()},t.createViewFactory=function(n){return function(){var t=y((function*(t){var e=yield n(t),r=e.slotFactories,u=s(e,o);if(!r)return c({},u);var i=(yield Promise.all(r.map((function(n){return n(t)})))).reduce((function(n,t){return n[t.name]=t,n}),{});return c(c({},u),{},{slot:i})}));return function(n){return t.apply(this,arguments)}}()};var r=["info","bootstrap","load","mount","unmount","update"],o=["slotFactories"];function u(n){return function(n){if(Array.isArray(n))return a(n)}(n)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(n)||i(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(n,t){if(n){if("string"==typeof n)return a(n,t);var e={}.toString.call(n).slice(8,-1);return"Object"===e&&n.constructor&&(e=n.constructor.name),"Map"===e||"Set"===e?Array.from(n):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?a(n,t):void 0}}function a(n,t){(null==t||t>n.length)&&(t=n.length);for(var e=0,r=Array(t);e<t;e++)r[e]=n[e];return r}function f(n,t){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),e.push.apply(e,r)}return e}function c(n){for(var t=1;t<arguments.length;t++){var e=null!=arguments[t]?arguments[t]:{};t%2?f(Object(e),!0).forEach((function(t){l(n,t,e[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):f(Object(e)).forEach((function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))}))}return n}function l(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=n(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var o=r.call(t,e||"default");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==n(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function s(n,t){if(null==n)return{};var e,r,o=function(n,t){if(null==n)return{};var e={};for(var r in n)if({}.hasOwnProperty.call(n,r)){if(-1!==t.indexOf(r))continue;e[r]=n[r]}return e}(n,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(n);for(r=0;r<u.length;r++)e=u[r],-1===t.indexOf(e)&&{}.propertyIsEnumerable.call(n,e)&&(o[e]=n[e])}return o}function p(n,t,e,r,o,u,i){try{var a=n[u](i),f=a.value}catch(n){return void e(n)}a.done?t(f):Promise.resolve(f).then(r,o)}function y(n){return function(){var t=this,e=arguments;return new Promise((function(r,o){var u=n.apply(t,e);function i(n){p(u,r,o,i,a,"next",n)}function a(n){p(u,r,o,i,a,"throw",n)}i(void 0)}))}}function d(n,t,e){return m.apply(this,arguments)}function m(){return(m=y((function*(n,t,e){var r=n.$in.component.lifeCycle;if("function"==typeof r[t])return r[t].apply(r,[n].concat(u(e)))}))).apply(this,arguments)}}));