@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 CHANGED
@@ -76,15 +76,15 @@ function WidgetWrapper({
76
76
  children
77
77
  }) {
78
78
  const selector = selectorToAttribute(containerSelector);
79
- return html ? /*#__PURE__*/React__default['default'].createElement("div", _extends({}, selector, {
79
+ return html ? /*#__PURE__*/React__default["default"].createElement("div", _extends({}, selector, {
80
80
  dangerouslySetInnerHTML: {
81
81
  __html: html
82
82
  }
83
- })) : /*#__PURE__*/React__default['default'].createElement("div", selector, children);
83
+ })) : /*#__PURE__*/React__default["default"].createElement("div", selector, children);
84
84
  }
85
- var WidgetWrapper$1 = /*#__PURE__*/React__default['default'].memo(WidgetWrapper);
85
+ var WidgetWrapper$1 = /*#__PURE__*/React__default["default"].memo(WidgetWrapper);
86
86
 
87
- class AbstractMerkurWidget extends React__default['default'].Component {
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['default'].isValidElement(children)) {
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['default'].createElement(React__default['default'].Fragment, null, (!this._isClient() || this._isSSRHydrate()) && this._renderStyleAssets(), /*#__PURE__*/React__default['default'].createElement(WidgetWrapper$1, {
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['default'].createElement("link", {
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['default'].createElement("style", {
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['default'].createElement(WidgetWrapper$1, {
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['default'].createElement("div", _extends({}, selector, {
87
+ return html ? /*#__PURE__*/React__default["default"].createElement("div", _extends({}, selector, {
88
88
  dangerouslySetInnerHTML: {
89
89
  __html: html
90
90
  }
91
- })) : /*#__PURE__*/React__default['default'].createElement("div", selector, children);
91
+ })) : /*#__PURE__*/React__default["default"].createElement("div", selector, children);
92
92
  }
93
93
 
94
- var WidgetWrapper$1 = /*#__PURE__*/React__default['default'].memo(WidgetWrapper);
94
+ var WidgetWrapper$1 = /*#__PURE__*/React__default["default"].memo(WidgetWrapper);
95
95
 
96
- class AbstractMerkurWidget extends React__default['default'].Component {
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['default'].isValidElement(children)) {
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['default'].createElement(React__default['default'].Fragment, null, (!this._isClient() || this._isSSRHydrate()) && this._renderStyleAssets(), /*#__PURE__*/React__default['default'].createElement(WidgetWrapper$1, {
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['default'].createElement("link", {
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['default'].createElement("style", {
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['default'].createElement(WidgetWrapper$1, {
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['default'].createElement("div", _extends({}, selector, {
79
+ return html ? /*#__PURE__*/React__default["default"].createElement("div", _extends({}, selector, {
80
80
  dangerouslySetInnerHTML: {
81
81
  __html: html
82
82
  }
83
- })) : /*#__PURE__*/React__default['default'].createElement("div", selector, children);
83
+ })) : /*#__PURE__*/React__default["default"].createElement("div", selector, children);
84
84
  }
85
- var WidgetWrapper$1 = /*#__PURE__*/React__default['default'].memo(WidgetWrapper);
85
+ var WidgetWrapper$1 = /*#__PURE__*/React__default["default"].memo(WidgetWrapper);
86
86
 
87
- class AbstractMerkurWidget extends React__default['default'].Component {
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['default'].isValidElement(children)) {
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['default'].createElement(React__default['default'].Fragment, null, (!this._isClient() || this._isSSRHydrate()) && this._renderStyleAssets(), /*#__PURE__*/React__default['default'].createElement(WidgetWrapper$1, {
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['default'].createElement("link", {
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['default'].createElement("style", {
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['default'].createElement(WidgetWrapper$1, {
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.27.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 --module es11 ./lib/index.mjs && ../../node_modules/.bin/es-check --module es9 ./lib/index.es9.mjs && ../../node_modules/.bin/es-check --module es9 ./lib/index.es9.cjs",
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.14.5",
50
- "@merkur/core": "^0.27.0",
51
- "@merkur/plugin-component": "^0.27.0",
52
- "@merkur/plugin-event-emitter": "^0.27.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.56.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.27.0"
66
+ "@merkur/integration": "^0.28.0"
67
67
  },
68
- "gitHead": "355cec8cff98356d1ecda30e54957aef076ba7fb"
68
+ "gitHead": "8760a1cedbbfc37348055418bacbfc69199a3c06"
69
69
  }