@merkur/integration-react 0.27.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.cjs +9 -9
- package/lib/index.es5.js +1 -1
- package/lib/index.es9.cjs +9 -9
- package/lib/index.js +9 -9
- package/package.json +9 -9
package/lib/index.cjs
CHANGED
|
@@ -76,15 +76,15 @@ function WidgetWrapper({
|
|
|
76
76
|
children
|
|
77
77
|
}) {
|
|
78
78
|
const selector = selectorToAttribute(containerSelector);
|
|
79
|
-
return html ? /*#__PURE__*/React__default[
|
|
79
|
+
return html ? /*#__PURE__*/React__default["default"].createElement("div", _extends({}, selector, {
|
|
80
80
|
dangerouslySetInnerHTML: {
|
|
81
81
|
__html: html
|
|
82
82
|
}
|
|
83
|
-
})) : /*#__PURE__*/React__default[
|
|
83
|
+
})) : /*#__PURE__*/React__default["default"].createElement("div", selector, children);
|
|
84
84
|
}
|
|
85
|
-
var WidgetWrapper$1 = /*#__PURE__*/React__default[
|
|
85
|
+
var WidgetWrapper$1 = /*#__PURE__*/React__default["default"].memo(WidgetWrapper);
|
|
86
86
|
|
|
87
|
-
class AbstractMerkurWidget extends React__default[
|
|
87
|
+
class AbstractMerkurWidget extends React__default["default"].Component {
|
|
88
88
|
/**
|
|
89
89
|
* Checks if widget has changed, e.g has different name or version.
|
|
90
90
|
*
|
|
@@ -152,7 +152,7 @@ class AbstractMerkurWidget extends React__default['default'].Component {
|
|
|
152
152
|
return children({
|
|
153
153
|
error: encounteredError
|
|
154
154
|
});
|
|
155
|
-
} else if ( /*#__PURE__*/React__default[
|
|
155
|
+
} else if ( /*#__PURE__*/React__default["default"].isValidElement(children)) {
|
|
156
156
|
return children;
|
|
157
157
|
}
|
|
158
158
|
|
|
@@ -455,7 +455,7 @@ class MerkurWidget extends AbstractMerkurWidget {
|
|
|
455
455
|
|
|
456
456
|
const html = this._getWidgetHTML();
|
|
457
457
|
|
|
458
|
-
return /*#__PURE__*/React__default[
|
|
458
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, (!this._isClient() || this._isSSRHydrate()) && this._renderStyleAssets(), /*#__PURE__*/React__default["default"].createElement(WidgetWrapper$1, {
|
|
459
459
|
containerSelector: widgetProperties.containerSelector,
|
|
460
460
|
html: html
|
|
461
461
|
}));
|
|
@@ -476,14 +476,14 @@ class MerkurWidget extends AbstractMerkurWidget {
|
|
|
476
476
|
return assets.filter(asset => ['stylesheet', 'inlineStyle'].includes(asset.type) && asset.source).map((asset, key) => {
|
|
477
477
|
switch (asset.type) {
|
|
478
478
|
case 'stylesheet':
|
|
479
|
-
return /*#__PURE__*/React__default[
|
|
479
|
+
return /*#__PURE__*/React__default["default"].createElement("link", {
|
|
480
480
|
rel: "stylesheet",
|
|
481
481
|
href: asset.source,
|
|
482
482
|
key: key
|
|
483
483
|
});
|
|
484
484
|
|
|
485
485
|
case 'inlineStyle':
|
|
486
|
-
return /*#__PURE__*/React__default[
|
|
486
|
+
return /*#__PURE__*/React__default["default"].createElement("style", {
|
|
487
487
|
key: key,
|
|
488
488
|
dangerouslySetInnerHTML: {
|
|
489
489
|
__html: asset.source
|
|
@@ -696,7 +696,7 @@ class MerkurSlot extends AbstractMerkurWidget {
|
|
|
696
696
|
|
|
697
697
|
const isInitialSPARender = this._isClient() && !this._isSSRHydrate();
|
|
698
698
|
const html = isInitialSPARender ? '' : this._getWidgetHTML();
|
|
699
|
-
return /*#__PURE__*/React__default[
|
|
699
|
+
return /*#__PURE__*/React__default["default"].createElement(WidgetWrapper$1, {
|
|
700
700
|
containerSelector: this.slot.containerSelector,
|
|
701
701
|
html: html
|
|
702
702
|
}, isInitialSPARender && this._renderFallback());
|
package/lib/index.es5.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function e(e,t,r,i,o,n,s){try{var u=e[n](s),a=u.value}catch(e){return void r(e)}u.done?t(a):Promise.resolve(a).then(i,o)}function t(e,r,i){return t="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var i=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=d(e)););return e}(e,t);if(i){var o=Object.getOwnPropertyDescriptor(i,t);return o.get?o.get.call(r):o.value}},t(e,r,i||e)}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function o(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),e}function n(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}function s(e,t){return s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},s(e,t)}function u(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,i=d(e);if(t){var o=d(this).constructor;r=Reflect.construct(i,arguments,o)}else r=i.apply(this,arguments);return a(this,r)}}function a(e,t){if(t&&("object"===p(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return l(e)}function l(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function d(e){return d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},d(e)}function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}require("regenerator-runtime/runtime.js"),require("core-js/modules/es.object.define-property.js"),require("core-js/modules/es.object.assign.js"),require("core-js/modules/es.object.freeze.js"),require("core-js/modules/es.array.last-index-of.js"),require("core-js/modules/es.function.name.js"),require("core-js/modules/es.function.bind.js"),require("core-js/modules/es.object.keys.js"),require("core-js/modules/es.array.is-array.js"),require("core-js/modules/es.array.map.js"),require("core-js/modules/es.array.filter.js"),require("core-js/modules/es.array.includes.js"),require("core-js/modules/es.array.iterator.js"),require("core-js/modules/es.object.to-string.js"),require("core-js/modules/es.promise.js"),require("core-js/modules/es.string.iterator.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/modules/es.symbol.js"),require("core-js/modules/es.symbol.description.js"),require("core-js/modules/es.symbol.iterator.js"),require("core-js/modules/es.object.set-prototype-of.js"),require("core-js/modules/es.object.get-prototype-of.js"),require("core-js/modules/es.reflect.construct.js"),require("core-js/modules/es.object.create.js"),require("core-js/modules/es.reflect.get.js"),require("core-js/modules/es.object.get-own-property-descriptor.js"),Object.defineProperty(exports,"__esModule",{value:!0});var h=require("react"),f=require("@merkur/core"),g=require("@merkur/integration");function v(e){return e&&"object"===p(e)&&"default"in e?e:{default:e}}var m=v(h);function y(){return y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},y.apply(this,arguments)}var w=Object.freeze({"#":"id",".":"className"});function _(e){var t=e.html,r=e.containerSelector,i=e.children,o=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if("string"!=typeof e||0===e.length)return{};var t=-1;for(var r in w){var i=e.lastIndexOf(r);t<i&&(t=i)}var o=e[t],n=e.substr(t+1);return c({},w[o],n)}(r);return t?m.default.createElement("div",y({},o,{dangerouslySetInnerHTML:{__html:t}})):m.default.createElement("div",o,i)}var j=m.default.memo(_),P=function(e){n(i,m["default"].Component);var t=u(i);function i(e){var o;return r(this,i),(o=t.call(this,e))._isMounted=!1,o._html=null,o}return o(i,[{key:"html",get:function(){throw new Error("The html getter is abstract and must be overridden")}},{key:"container",get:function(){throw new Error("The container getter is abstract and must be overridden")}},{key:"componentDidMount",value:function(){this._isMounted=!0}},{key:"_renderFallback",value:function(){var e=this.props.children,t=(this.state||{}).encounteredError;return"function"==typeof e?e({error:void 0===t?null:t}):m.default.isValidElement(e)?e:null}},{key:"_clearCachedHtml",value:function(){this._html=null}},{key:"_isClient",value:function(){return"undefined"!=typeof window&&"undefined"!=typeof document}},{key:"_getWidgetHTML",value:function(){return null!==this._html||(this._html=this.html||this._getSSRHTML()),this._html}},{key:"_getSSRHTML",value:function(){var e,t,r;return!this._isMounted&&this._isClient()&&(null===(e=this.container)||void 0===e||null===(t=e.children)||void 0===t||null===(r=t[0])||void 0===r?void 0:r.outerHTML)||""}},{key:"_isSSRHydrate",value:function(){return this._getSSRHTML().length>0}}],[{key:"hasWidgetChanged",value:function(e,t){return!(!(e&&e.name&&e.version&&t&&t.name&&t.version)||e.version===t.version&&e.name===t.name)}},{key:"validateProperties",value:function(e){return!!(e&&e.name&&e.version)}}]),i}(),b=function(i){n(p,P);var s,a,c=u(p);function p(e){var t;return r(this,p),(t=c.call(this,e))._widget=null,t._handleClientError=t._handleError.bind(l(t)),t.state={encounteredError:!1,assetsLoaded:!1,cachedWidgetMeta:null},t}return o(p,[{key:"html",get:function(){var e;return(null===(e=this.props.widgetProperties)||void 0===e?void 0:e.html)||null}},{key:"container",get:function(){var e,t;return this._isClient()&&(null===(e=document)||void 0===e?void 0:e.querySelector(null===(t=this.props.widgetProperties)||void 0===t?void 0:t.containerSelector))||null}},{key:"shouldComponentUpdate",value:function(e,t){if(this.state.assetsLoaded!==t.assetsLoaded||this.state.encounteredError!==t.encounteredError||!P.validateProperties(this.props.widgetProperties)||P.hasWidgetChanged(this.props.widgetProperties,e.widgetProperties))return!0;if(this._widget&&e.widgetProperties&&e.widgetProperties.props){if(Object.keys(e.widgetProperties.props).length!==Object.keys(this.props.widgetProperties.props).length)return this._widget.setProps(e.widgetProperties.props),!1;for(var r in e.widgetProperties.props)if(!this.props.widgetProperties||!this.props.widgetProperties.props||e.widgetProperties.props[r]!==this.props.widgetProperties.props[r])return this._widget.setProps(e.widgetProperties.props),!1}if(this._widget&&e.widgetProperties&&e.widgetProperties.state){if(Object.keys(e.widgetProperties.state).length!==Object.keys(this.props.widgetProperties.state).length)return this._widget.setState(e.widgetProperties.state),!1;for(var i in e.widgetProperties.state)if(!this.props.widgetProperties||!this.props.widgetProperties.state||e.widgetProperties.state[i]!==this.props.widgetProperties.state[i])return this._widget.setState(e.widgetProperties.state),!1}return!1}},{key:"componentDidMount",value:function(){t(d(p.prototype),"componentDidMount",this).call(this),this._loadWidgetAssets()}},{key:"componentDidUpdate",value:function(e,t){var r=this.props.widgetProperties,i=e.widgetProperties;return this.state.assetsLoaded&&t.assetsLoaded!==this.state.assetsLoaded?this._mountWidget():!P.validateProperties(r)&&P.validateProperties(i)?(this._removeWidget(),void this.setState({encounteredError:!1,assetsLoaded:!1,cachedWidgetMeta:null})):P.validateProperties(r)&&!P.validateProperties(i)?this._loadWidgetAssets():P.hasWidgetChanged(r,i)?(this._removeWidget(),void this._loadWidgetAssets()):void 0}},{key:"componentWillUnmount",value:function(){this._removeWidget()}},{key:"render",value:function(){var e=this.props.widgetProperties,t=this.state,r=t.encounteredError,i=t.assetsLoaded;if(!P.validateProperties(e)||r||this._isClient()&&!this._isSSRHydrate()&&!i)return this._renderFallback();if(!e.containerSelector)throw new Error("The widgetProperties.containerSelector is not defined");var o=this._getWidgetHTML();return m.default.createElement(m.default.Fragment,null,(!this._isClient()||this._isSSRHydrate())&&this._renderStyleAssets(),m.default.createElement(j,{containerSelector:e.containerSelector,html:o}))}},{key:"_renderStyleAssets",value:function(){var e=this.props.widgetProperties;return(Array.isArray(null==e?void 0:e.assets)?e.assets:[]).filter((function(e){return["stylesheet","inlineStyle"].includes(e.type)&&e.source})).map((function(e,t){switch(e.type){case"stylesheet":return m.default.createElement("link",{rel:"stylesheet",href:e.source,key:t});case"inlineStyle":return m.default.createElement("style",{key:t,dangerouslySetInnerHTML:{__html:e.source}})}}))}},{key:"_handleError",value:function(e){"function"==typeof this.props.onError&&this.props.onError(e),this.setState({encounteredError:e})}},{key:"_removeWidget",value:function(){this._widget&&(this.props.onWidgetUnmounting&&this.props.onWidgetUnmounting(this._widget),"function"==typeof this._widget.off&&this._widget.off("@merkur/plugin-error.error",this._handleClientError),this._widget.unmount(),this._widget=null,this._clearCachedHtml())}},{key:"_loadWidgetAssets",value:function(){var e=this,t=this.props.widgetProperties;if(P.validateProperties(t)&&!this._widget)return Promise.all([g.loadStyleAssets(t.assets),g.loadScriptAssets(t.assets)]).then((function(){return new Promise((function(t){e.setState({assetsLoaded:!0},(function(){t()}))}))})).catch((function(t){return e._handleError(t)}))}},{key:"_mountWidget",value:(s=regeneratorRuntime.mark((function e(){var t,r,i,o,n,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.props,r=t.widgetProperties,i=t.onWidgetMounted,o=t.debug,n=void 0!==o&&o,P.validateProperties(r)&&!this._widget){e.next=3;break}return e.abrupt("return");case 3:return e.prev=3,s=f.getMerkur(),e.next=7,s.create(r);case 7:return this._widget=e.sent,e.next=10,this._widget.mount();case 10:"function"==typeof this._widget.on&&this._widget.on("@merkur/plugin-error.error",this._handleClientError),"function"==typeof i&&i(this._widget),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(3),n&&console.warn(e.t0);case 17:case"end":return e.stop()}}),e,this,[[3,14]])})),a=function(){var t=this,r=arguments;return new Promise((function(i,o){var n=s.apply(t,r);function u(t){e(n,i,o,u,a,"next",t)}function a(t){e(n,i,o,u,a,"throw",t)}u(void 0)}))},function(){return a.apply(this,arguments)})}],[{key:"getDerivedStateFromProps",value:function(e,t){if(t&&e&&P.validateProperties(e.widgetProperties)){var r=e.widgetProperties,i=r.version,o=r.name;if(!t.cachedWidgetMeta)return{cachedWidgetMeta:{name:o,version:i}};if(P.hasWidgetChanged(t.cachedWidgetMeta,e.widgetProperties))return{encounteredError:!1,assetsLoaded:!1,cachedWidgetMeta:{name:o,version:i}}}return null}}]),p}(),k=function(e){n(i,P);var t=u(i);function i(){return r(this,i),t.apply(this,arguments)}return o(i,[{key:"slot",get:function(){var e,t,r=this.props,i=r.widgetProperties,o=r.slotName;return null!==(e=null==i||null===(t=i.slot)||void 0===t?void 0:t[o])&&void 0!==e?e:null}},{key:"html",get:function(){var e;return(null===(e=this.slot)||void 0===e?void 0:e.html)||null}},{key:"container",get:function(){var e,t;return this._isClient()&&(null===(e=document)||void 0===e?void 0:e.querySelector(null===(t=this.slot)||void 0===t?void 0:t.containerSelector))||null}},{key:"shouldComponentUpdate",value:function(e){return!(P.validateProperties(this.props.widgetProperties)&&P.validateProperties(e.widgetProperties)&&!P.hasWidgetChanged(this.props.widgetProperties,e.widgetProperties))}},{key:"componentDidUpdate",value:function(e){var t=this.props.widgetProperties,r=e.widgetProperties;P.validateProperties(t)||!P.validateProperties(r)||this._removeSlot()}},{key:"componentWillUnmount",value:function(){this._removeSlot()}},{key:"render",value:function(){var e=this.props.widgetProperties;if(!P.validateProperties(e)||!this.slot)return this._renderFallback();if(!this.slot.containerSelector)throw new Error("The ".concat(this.slot.name,".containerSelector is not defined"));var t=this._isClient()&&!this._isSSRHydrate(),r=t?"":this._getWidgetHTML();return m.default.createElement(j,{containerSelector:this.slot.containerSelector,html:r},t&&this._renderFallback())}},{key:"_removeSlot",value:function(){this._clearCachedHtml()}}]),i}();exports.MerkurSlot=k,exports.MerkurWidget=b;
|
|
1
|
+
"use strict";function e(e,t,r,i,o,n,s){try{var u=e[n](s),a=u.value}catch(e){return void r(e)}u.done?t(a):Promise.resolve(a).then(i,o)}function t(){return t="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,i){var o=r(e,t);if(o){var n=Object.getOwnPropertyDescriptor(o,t);return n.get?n.get.call(arguments.length<3?e:i):n.value}},t.apply(this,arguments)}function r(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=c(e)););return e}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function n(e,t,r){return t&&o(e.prototype,t),r&&o(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&u(e,t)}function u(e,t){return u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},u(e,t)}function a(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,i=c(e);if(t){var o=c(this).constructor;r=Reflect.construct(i,arguments,o)}else r=i.apply(this,arguments);return l(this,r)}}function l(e,t){if(t&&("object"===h(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return d(e)}function d(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function c(e){return c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},c(e)}function p(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function h(e){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}require("regenerator-runtime/runtime.js"),require("core-js/modules/es.object.define-property.js"),require("core-js/modules/es.object.assign.js"),require("core-js/modules/es.object.freeze.js"),require("core-js/modules/es.array.last-index-of.js"),require("core-js/modules/es.function.name.js"),require("core-js/modules/es.function.bind.js"),require("core-js/modules/es.object.keys.js"),require("core-js/modules/es.array.is-array.js"),require("core-js/modules/es.array.map.js"),require("core-js/modules/es.array.filter.js"),require("core-js/modules/es.object.to-string.js"),require("core-js/modules/es.array.includes.js"),require("core-js/modules/es.array.iterator.js"),require("core-js/modules/es.promise.js"),require("core-js/modules/es.string.iterator.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/modules/es.symbol.js"),require("core-js/modules/es.symbol.description.js"),require("core-js/modules/es.symbol.iterator.js"),require("core-js/modules/es.object.set-prototype-of.js"),require("core-js/modules/es.object.get-prototype-of.js"),require("core-js/modules/es.reflect.construct.js"),require("core-js/modules/es.object.create.js"),require("core-js/modules/es.reflect.get.js"),require("core-js/modules/es.object.get-own-property-descriptor.js"),Object.defineProperty(exports,"__esModule",{value:!0});var f=require("react"),g=require("@merkur/core"),v=require("@merkur/integration");function y(e){return e&&"object"===h(e)&&"default"in e?e:{default:e}}var m=y(f);function w(){return w=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},w.apply(this,arguments)}var _=Object.freeze({"#":"id",".":"className"});function j(e){var t=e.html,r=e.containerSelector,i=e.children,o=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if("string"!=typeof e||0===e.length)return{};var t=-1;for(var r in _){var i=e.lastIndexOf(r);t<i&&(t=i)}var o=e[t],n=e.substr(t+1);return p({},_[o],n)}(r);return t?m.default.createElement("div",w({},o,{dangerouslySetInnerHTML:{__html:t}})):m.default.createElement("div",o,i)}var P=m.default.memo(j),b=function(e){s(r,m["default"].Component);var t=a(r);function r(e){var o;return i(this,r),(o=t.call(this,e))._isMounted=!1,o._html=null,o}return n(r,[{key:"html",get:function(){throw new Error("The html getter is abstract and must be overridden")}},{key:"container",get:function(){throw new Error("The container getter is abstract and must be overridden")}},{key:"componentDidMount",value:function(){this._isMounted=!0}},{key:"_renderFallback",value:function(){var e=this.props.children,t=(this.state||{}).encounteredError;return"function"==typeof e?e({error:void 0===t?null:t}):m.default.isValidElement(e)?e:null}},{key:"_clearCachedHtml",value:function(){this._html=null}},{key:"_isClient",value:function(){return"undefined"!=typeof window&&"undefined"!=typeof document}},{key:"_getWidgetHTML",value:function(){return null!==this._html||(this._html=this.html||this._getSSRHTML()),this._html}},{key:"_getSSRHTML",value:function(){var e,t,r;return!this._isMounted&&this._isClient()&&(null===(e=this.container)||void 0===e||null===(t=e.children)||void 0===t||null===(r=t[0])||void 0===r?void 0:r.outerHTML)||""}},{key:"_isSSRHydrate",value:function(){return this._getSSRHTML().length>0}}],[{key:"hasWidgetChanged",value:function(e,t){return!(!(e&&e.name&&e.version&&t&&t.name&&t.version)||e.version===t.version&&e.name===t.name)}},{key:"validateProperties",value:function(e){return!!(e&&e.name&&e.version)}}]),r}(),k=function(r){s(p,b);var o,u,l=a(p);function p(e){var t;return i(this,p),(t=l.call(this,e))._widget=null,t._handleClientError=t._handleError.bind(d(t)),t.state={encounteredError:!1,assetsLoaded:!1,cachedWidgetMeta:null},t}return n(p,[{key:"html",get:function(){var e;return(null===(e=this.props.widgetProperties)||void 0===e?void 0:e.html)||null}},{key:"container",get:function(){var e,t;return this._isClient()&&(null===(e=document)||void 0===e?void 0:e.querySelector(null===(t=this.props.widgetProperties)||void 0===t?void 0:t.containerSelector))||null}},{key:"shouldComponentUpdate",value:function(e,t){if(this.state.assetsLoaded!==t.assetsLoaded||this.state.encounteredError!==t.encounteredError||!b.validateProperties(this.props.widgetProperties)||b.hasWidgetChanged(this.props.widgetProperties,e.widgetProperties))return!0;if(this._widget&&e.widgetProperties&&e.widgetProperties.props){if(Object.keys(e.widgetProperties.props).length!==Object.keys(this.props.widgetProperties.props).length)return this._widget.setProps(e.widgetProperties.props),!1;for(var r in e.widgetProperties.props)if(!this.props.widgetProperties||!this.props.widgetProperties.props||e.widgetProperties.props[r]!==this.props.widgetProperties.props[r])return this._widget.setProps(e.widgetProperties.props),!1}if(this._widget&&e.widgetProperties&&e.widgetProperties.state){if(Object.keys(e.widgetProperties.state).length!==Object.keys(this.props.widgetProperties.state).length)return this._widget.setState(e.widgetProperties.state),!1;for(var i in e.widgetProperties.state)if(!this.props.widgetProperties||!this.props.widgetProperties.state||e.widgetProperties.state[i]!==this.props.widgetProperties.state[i])return this._widget.setState(e.widgetProperties.state),!1}return!1}},{key:"componentDidMount",value:function(){t(c(p.prototype),"componentDidMount",this).call(this),this._loadWidgetAssets()}},{key:"componentDidUpdate",value:function(e,t){var r=this.props.widgetProperties,i=e.widgetProperties;return this.state.assetsLoaded&&t.assetsLoaded!==this.state.assetsLoaded?this._mountWidget():!b.validateProperties(r)&&b.validateProperties(i)?(this._removeWidget(),void this.setState({encounteredError:!1,assetsLoaded:!1,cachedWidgetMeta:null})):b.validateProperties(r)&&!b.validateProperties(i)?this._loadWidgetAssets():b.hasWidgetChanged(r,i)?(this._removeWidget(),void this._loadWidgetAssets()):void 0}},{key:"componentWillUnmount",value:function(){this._removeWidget()}},{key:"render",value:function(){var e=this.props.widgetProperties,t=this.state,r=t.encounteredError,i=t.assetsLoaded;if(!b.validateProperties(e)||r||this._isClient()&&!this._isSSRHydrate()&&!i)return this._renderFallback();if(!e.containerSelector)throw new Error("The widgetProperties.containerSelector is not defined");var o=this._getWidgetHTML();return m.default.createElement(m.default.Fragment,null,(!this._isClient()||this._isSSRHydrate())&&this._renderStyleAssets(),m.default.createElement(P,{containerSelector:e.containerSelector,html:o}))}},{key:"_renderStyleAssets",value:function(){var e=this.props.widgetProperties;return(Array.isArray(null==e?void 0:e.assets)?e.assets:[]).filter((function(e){return["stylesheet","inlineStyle"].includes(e.type)&&e.source})).map((function(e,t){switch(e.type){case"stylesheet":return m.default.createElement("link",{rel:"stylesheet",href:e.source,key:t});case"inlineStyle":return m.default.createElement("style",{key:t,dangerouslySetInnerHTML:{__html:e.source}})}}))}},{key:"_handleError",value:function(e){"function"==typeof this.props.onError&&this.props.onError(e),this.setState({encounteredError:e})}},{key:"_removeWidget",value:function(){this._widget&&(this.props.onWidgetUnmounting&&this.props.onWidgetUnmounting(this._widget),"function"==typeof this._widget.off&&this._widget.off("@merkur/plugin-error.error",this._handleClientError),this._widget.unmount(),this._widget=null,this._clearCachedHtml())}},{key:"_loadWidgetAssets",value:function(){var e=this,t=this.props.widgetProperties;if(b.validateProperties(t)&&!this._widget)return Promise.all([v.loadStyleAssets(t.assets),v.loadScriptAssets(t.assets)]).then((function(){return new Promise((function(t){e.setState({assetsLoaded:!0},(function(){t()}))}))})).catch((function(t){return e._handleError(t)}))}},{key:"_mountWidget",value:(o=regeneratorRuntime.mark((function e(){var t,r,i,o,n,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.props,r=t.widgetProperties,i=t.onWidgetMounted,o=t.debug,n=void 0!==o&&o,b.validateProperties(r)&&!this._widget){e.next=3;break}return e.abrupt("return");case 3:return e.prev=3,s=g.getMerkur(),e.next=7,s.create(r);case 7:return this._widget=e.sent,e.next=10,this._widget.mount();case 10:"function"==typeof this._widget.on&&this._widget.on("@merkur/plugin-error.error",this._handleClientError),"function"==typeof i&&i(this._widget),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(3),n&&console.warn(e.t0);case 17:case"end":return e.stop()}}),e,this,[[3,14]])})),u=function(){var t=this,r=arguments;return new Promise((function(i,n){var s=o.apply(t,r);function u(t){e(s,i,n,u,a,"next",t)}function a(t){e(s,i,n,u,a,"throw",t)}u(void 0)}))},function(){return u.apply(this,arguments)})}],[{key:"getDerivedStateFromProps",value:function(e,t){if(t&&e&&b.validateProperties(e.widgetProperties)){var r=e.widgetProperties,i=r.version,o=r.name;if(!t.cachedWidgetMeta)return{cachedWidgetMeta:{name:o,version:i}};if(b.hasWidgetChanged(t.cachedWidgetMeta,e.widgetProperties))return{encounteredError:!1,assetsLoaded:!1,cachedWidgetMeta:{name:o,version:i}}}return null}}]),p}(),S=function(e){s(r,b);var t=a(r);function r(){return i(this,r),t.apply(this,arguments)}return n(r,[{key:"slot",get:function(){var e,t,r=this.props,i=r.widgetProperties,o=r.slotName;return null!==(e=null==i||null===(t=i.slot)||void 0===t?void 0:t[o])&&void 0!==e?e:null}},{key:"html",get:function(){var e;return(null===(e=this.slot)||void 0===e?void 0:e.html)||null}},{key:"container",get:function(){var e,t;return this._isClient()&&(null===(e=document)||void 0===e?void 0:e.querySelector(null===(t=this.slot)||void 0===t?void 0:t.containerSelector))||null}},{key:"shouldComponentUpdate",value:function(e){return!(b.validateProperties(this.props.widgetProperties)&&b.validateProperties(e.widgetProperties)&&!b.hasWidgetChanged(this.props.widgetProperties,e.widgetProperties))}},{key:"componentDidUpdate",value:function(e){var t=this.props.widgetProperties,r=e.widgetProperties;b.validateProperties(t)||!b.validateProperties(r)||this._removeSlot()}},{key:"componentWillUnmount",value:function(){this._removeSlot()}},{key:"render",value:function(){var e=this.props.widgetProperties;if(!b.validateProperties(e)||!this.slot)return this._renderFallback();if(!this.slot.containerSelector)throw new Error("The ".concat(this.slot.name,".containerSelector is not defined"));var t=this._isClient()&&!this._isSSRHydrate(),r=t?"":this._getWidgetHTML();return m.default.createElement(P,{containerSelector:this.slot.containerSelector,html:r},t&&this._renderFallback())}},{key:"_removeSlot",value:function(){this._clearCachedHtml()}}]),r}();exports.MerkurSlot=S,exports.MerkurWidget=k;
|
package/lib/index.es9.cjs
CHANGED
|
@@ -84,16 +84,16 @@ function WidgetWrapper({
|
|
|
84
84
|
children
|
|
85
85
|
}) {
|
|
86
86
|
const selector = selectorToAttribute(containerSelector);
|
|
87
|
-
return html ? /*#__PURE__*/React__default[
|
|
87
|
+
return html ? /*#__PURE__*/React__default["default"].createElement("div", _extends({}, selector, {
|
|
88
88
|
dangerouslySetInnerHTML: {
|
|
89
89
|
__html: html
|
|
90
90
|
}
|
|
91
|
-
})) : /*#__PURE__*/React__default[
|
|
91
|
+
})) : /*#__PURE__*/React__default["default"].createElement("div", selector, children);
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
var WidgetWrapper$1 = /*#__PURE__*/React__default[
|
|
94
|
+
var WidgetWrapper$1 = /*#__PURE__*/React__default["default"].memo(WidgetWrapper);
|
|
95
95
|
|
|
96
|
-
class AbstractMerkurWidget extends React__default[
|
|
96
|
+
class AbstractMerkurWidget extends React__default["default"].Component {
|
|
97
97
|
/**
|
|
98
98
|
* Checks if widget has changed, e.g has different name or version.
|
|
99
99
|
*
|
|
@@ -161,7 +161,7 @@ class AbstractMerkurWidget extends React__default['default'].Component {
|
|
|
161
161
|
return children({
|
|
162
162
|
error: encounteredError
|
|
163
163
|
});
|
|
164
|
-
} else if ( /*#__PURE__*/React__default[
|
|
164
|
+
} else if ( /*#__PURE__*/React__default["default"].isValidElement(children)) {
|
|
165
165
|
return children;
|
|
166
166
|
}
|
|
167
167
|
|
|
@@ -471,7 +471,7 @@ class MerkurWidget extends AbstractMerkurWidget {
|
|
|
471
471
|
|
|
472
472
|
const html = this._getWidgetHTML();
|
|
473
473
|
|
|
474
|
-
return /*#__PURE__*/React__default[
|
|
474
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, (!this._isClient() || this._isSSRHydrate()) && this._renderStyleAssets(), /*#__PURE__*/React__default["default"].createElement(WidgetWrapper$1, {
|
|
475
475
|
containerSelector: widgetProperties.containerSelector,
|
|
476
476
|
html: html
|
|
477
477
|
}));
|
|
@@ -492,14 +492,14 @@ class MerkurWidget extends AbstractMerkurWidget {
|
|
|
492
492
|
return assets.filter(asset => ['stylesheet', 'inlineStyle'].includes(asset.type) && asset.source).map((asset, key) => {
|
|
493
493
|
switch (asset.type) {
|
|
494
494
|
case 'stylesheet':
|
|
495
|
-
return /*#__PURE__*/React__default[
|
|
495
|
+
return /*#__PURE__*/React__default["default"].createElement("link", {
|
|
496
496
|
rel: "stylesheet",
|
|
497
497
|
href: asset.source,
|
|
498
498
|
key: key
|
|
499
499
|
});
|
|
500
500
|
|
|
501
501
|
case 'inlineStyle':
|
|
502
|
-
return /*#__PURE__*/React__default[
|
|
502
|
+
return /*#__PURE__*/React__default["default"].createElement("style", {
|
|
503
503
|
key: key,
|
|
504
504
|
dangerouslySetInnerHTML: {
|
|
505
505
|
__html: asset.source
|
|
@@ -718,7 +718,7 @@ class MerkurSlot extends AbstractMerkurWidget {
|
|
|
718
718
|
|
|
719
719
|
const isInitialSPARender = this._isClient() && !this._isSSRHydrate();
|
|
720
720
|
const html = isInitialSPARender ? '' : this._getWidgetHTML();
|
|
721
|
-
return /*#__PURE__*/React__default[
|
|
721
|
+
return /*#__PURE__*/React__default["default"].createElement(WidgetWrapper$1, {
|
|
722
722
|
containerSelector: this.slot.containerSelector,
|
|
723
723
|
html: html
|
|
724
724
|
}, isInitialSPARender && this._renderFallback());
|
package/lib/index.js
CHANGED
|
@@ -76,15 +76,15 @@ function WidgetWrapper({
|
|
|
76
76
|
children
|
|
77
77
|
}) {
|
|
78
78
|
const selector = selectorToAttribute(containerSelector);
|
|
79
|
-
return html ? /*#__PURE__*/React__default[
|
|
79
|
+
return html ? /*#__PURE__*/React__default["default"].createElement("div", _extends({}, selector, {
|
|
80
80
|
dangerouslySetInnerHTML: {
|
|
81
81
|
__html: html
|
|
82
82
|
}
|
|
83
|
-
})) : /*#__PURE__*/React__default[
|
|
83
|
+
})) : /*#__PURE__*/React__default["default"].createElement("div", selector, children);
|
|
84
84
|
}
|
|
85
|
-
var WidgetWrapper$1 = /*#__PURE__*/React__default[
|
|
85
|
+
var WidgetWrapper$1 = /*#__PURE__*/React__default["default"].memo(WidgetWrapper);
|
|
86
86
|
|
|
87
|
-
class AbstractMerkurWidget extends React__default[
|
|
87
|
+
class AbstractMerkurWidget extends React__default["default"].Component {
|
|
88
88
|
/**
|
|
89
89
|
* Checks if widget has changed, e.g has different name or version.
|
|
90
90
|
*
|
|
@@ -152,7 +152,7 @@ class AbstractMerkurWidget extends React__default['default'].Component {
|
|
|
152
152
|
return children({
|
|
153
153
|
error: encounteredError
|
|
154
154
|
});
|
|
155
|
-
} else if ( /*#__PURE__*/React__default[
|
|
155
|
+
} else if ( /*#__PURE__*/React__default["default"].isValidElement(children)) {
|
|
156
156
|
return children;
|
|
157
157
|
}
|
|
158
158
|
|
|
@@ -455,7 +455,7 @@ class MerkurWidget extends AbstractMerkurWidget {
|
|
|
455
455
|
|
|
456
456
|
const html = this._getWidgetHTML();
|
|
457
457
|
|
|
458
|
-
return /*#__PURE__*/React__default[
|
|
458
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, (!this._isClient() || this._isSSRHydrate()) && this._renderStyleAssets(), /*#__PURE__*/React__default["default"].createElement(WidgetWrapper$1, {
|
|
459
459
|
containerSelector: widgetProperties.containerSelector,
|
|
460
460
|
html: html
|
|
461
461
|
}));
|
|
@@ -476,14 +476,14 @@ class MerkurWidget extends AbstractMerkurWidget {
|
|
|
476
476
|
return assets.filter(asset => ['stylesheet', 'inlineStyle'].includes(asset.type) && asset.source).map((asset, key) => {
|
|
477
477
|
switch (asset.type) {
|
|
478
478
|
case 'stylesheet':
|
|
479
|
-
return /*#__PURE__*/React__default[
|
|
479
|
+
return /*#__PURE__*/React__default["default"].createElement("link", {
|
|
480
480
|
rel: "stylesheet",
|
|
481
481
|
href: asset.source,
|
|
482
482
|
key: key
|
|
483
483
|
});
|
|
484
484
|
|
|
485
485
|
case 'inlineStyle':
|
|
486
|
-
return /*#__PURE__*/React__default[
|
|
486
|
+
return /*#__PURE__*/React__default["default"].createElement("style", {
|
|
487
487
|
key: key,
|
|
488
488
|
dangerouslySetInnerHTML: {
|
|
489
489
|
__html: asset.source
|
|
@@ -696,7 +696,7 @@ class MerkurSlot extends AbstractMerkurWidget {
|
|
|
696
696
|
|
|
697
697
|
const isInitialSPARender = this._isClient() && !this._isSSRHydrate();
|
|
698
698
|
const html = isInitialSPARender ? '' : this._getWidgetHTML();
|
|
699
|
-
return /*#__PURE__*/React__default[
|
|
699
|
+
return /*#__PURE__*/React__default["default"].createElement(WidgetWrapper$1, {
|
|
700
700
|
containerSelector: this.slot.containerSelector,
|
|
701
701
|
html: html
|
|
702
702
|
}, isInitialSPARender && this._renderFallback());
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@merkur/integration-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0",
|
|
4
4
|
"description": "Merkur module for easy integration with react.",
|
|
5
5
|
"main": "lib/index",
|
|
6
6
|
"module": "lib/index",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"scripts": {
|
|
23
23
|
"preversion": "npm test",
|
|
24
24
|
"test": "../../node_modules/.bin/jest --no-watchman -c ./jest.config.js",
|
|
25
|
-
"test:es:version": "../../node_modules/.bin/es-check es5 ./lib/index.es5.js && ../../node_modules/.bin/es-check
|
|
25
|
+
"test:es:version": "../../node_modules/.bin/es-check es5 ./lib/index.es5.js && ../../node_modules/.bin/es-check es11 ./lib/index.mjs --module && ../../node_modules/.bin/es-check es9 ./lib/index.es9.mjs --module && ../../node_modules/.bin/es-check es9 ./lib/index.es9.cjs --module",
|
|
26
26
|
"build": "node_modules/.bin/rollup -c",
|
|
27
27
|
"prepare": "npm run build"
|
|
28
28
|
},
|
|
@@ -46,16 +46,16 @@
|
|
|
46
46
|
},
|
|
47
47
|
"homepage": "https://merkur.js.org/",
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@babel/preset-react": "^7.
|
|
50
|
-
"@merkur/core": "^0.
|
|
51
|
-
"@merkur/plugin-component": "^0.
|
|
52
|
-
"@merkur/plugin-event-emitter": "^0.
|
|
49
|
+
"@babel/preset-react": "^7.16.7",
|
|
50
|
+
"@merkur/core": "^0.28.0",
|
|
51
|
+
"@merkur/plugin-component": "^0.28.0",
|
|
52
|
+
"@merkur/plugin-event-emitter": "^0.28.0",
|
|
53
53
|
"enzyme": "3.11.0",
|
|
54
54
|
"enzyme-adapter-react-16": "1.15.6",
|
|
55
55
|
"enzyme-to-json": "^3.6.2",
|
|
56
56
|
"react": "16.13.1",
|
|
57
57
|
"react-dom": "16.13.1",
|
|
58
|
-
"rollup": "^2.
|
|
58
|
+
"rollup": "^2.70.2"
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
|
61
61
|
"@merkur/core": "*",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"react-dom": ">=16"
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@merkur/integration": "^0.
|
|
66
|
+
"@merkur/integration": "^0.28.0"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "8760a1cedbbfc37348055418bacbfc69199a3c06"
|
|
69
69
|
}
|