@merkur/integration-react 0.31.1 → 0.32.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/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  ![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@merkur/core/latest)
12
12
  [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
13
13
 
14
- The [Merkur](https://merkur.js.org/) is tiny extensible javascript library for front-end microservices(micro frontends). It allows by default server side rendering for loading performance boost. You can connect it with other frameworks or languages because merkur defines easy API. You can use one of six predefined template's library [React](https://reactjs.org/), [Preact](https://preactjs.com/), [hyperHTML](https://viperhtml.js.org/hyper.html), [µhtml](https://github.com/WebReflection/uhtml#readme), [Svelte](https://svelte.dev/) and [vanilla](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) but you can easily extend for others.
14
+ The [Merkur](https://merkur.js.org/) is tiny extensible javascript library for front-end microservices(micro frontends). It allows by default server side rendering for loading performance boost. You can connect it with other frameworks or languages because merkur defines easy API. You can use one of six predefined template's library [Preact](https://preactjs.com/), [µhtml](https://github.com/WebReflection/uhtml#readme), [Svelte](https://svelte.dev/) and [vanilla](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) but you can easily extend for others.
15
15
 
16
16
  ## Features
17
17
  - Flexible templating engine
package/lib/index.cjs CHANGED
@@ -1,30 +1,10 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var React = require('react');
6
4
  var core = require('@merkur/core');
7
5
  var integration = require('@merkur/integration');
8
6
 
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
-
11
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
-
13
- function _extends() {
14
- _extends = Object.assign ? Object.assign.bind() : function (target) {
15
- for (var i = 1; i < arguments.length; i++) {
16
- var source = arguments[i];
17
- for (var key in source) {
18
- if (Object.prototype.hasOwnProperty.call(source, key)) {
19
- target[key] = source[key];
20
- }
21
- }
22
- }
23
- return target;
24
- };
25
- return _extends.apply(this, arguments);
26
- }
27
-
7
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
28
8
  const SelectorIdentifierMap = Object.freeze({
29
9
  '#': 'id',
30
10
  '.': 'className'
@@ -68,15 +48,15 @@ function WidgetWrapper({
68
48
  children
69
49
  }) {
70
50
  const selector = selectorToAttribute(containerSelector);
71
- return html ? /*#__PURE__*/React__default["default"].createElement("div", _extends({}, selector, {
51
+ return html ? /*#__PURE__*/React.createElement("div", _extends({}, selector, {
72
52
  dangerouslySetInnerHTML: {
73
53
  __html: html
74
54
  }
75
- })) : /*#__PURE__*/React__default["default"].createElement("div", selector, children);
55
+ })) : /*#__PURE__*/React.createElement("div", selector, children);
76
56
  }
77
- var WidgetWrapper$1 = /*#__PURE__*/React__default["default"].memo(WidgetWrapper);
57
+ var WidgetWrapper$1 = /*#__PURE__*/React.memo(WidgetWrapper);
78
58
 
79
- class AbstractMerkurWidget extends React__default["default"].Component {
59
+ class AbstractMerkurWidget extends React.Component {
80
60
  /**
81
61
  * Checks if widget has changed, e.g has different name or version.
82
62
  *
@@ -137,7 +117,7 @@ class AbstractMerkurWidget extends React__default["default"].Component {
137
117
  return children({
138
118
  error: encounteredError
139
119
  });
140
- } else if ( /*#__PURE__*/React__default["default"].isValidElement(children)) {
120
+ } else if ( /*#__PURE__*/React.isValidElement(children)) {
141
121
  return children;
142
122
  }
143
123
  return null;
@@ -408,7 +388,7 @@ class MerkurWidget extends AbstractMerkurWidget {
408
388
  throw new Error(`The widgetProperties.containerSelector is not defined`);
409
389
  }
410
390
  const html = this._getWidgetHTML();
411
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, (!this._isClient() || this._isSSRHydrate()) && this._renderStyleAssets(), /*#__PURE__*/React__default["default"].createElement(WidgetWrapper$1, {
391
+ return /*#__PURE__*/React.createElement(React.Fragment, null, (!this._isClient() || this._isSSRHydrate()) && this._renderStyleAssets(), /*#__PURE__*/React.createElement(WidgetWrapper$1, {
412
392
  containerSelector: widgetProperties.containerSelector,
413
393
  html: html
414
394
  }));
@@ -428,13 +408,13 @@ class MerkurWidget extends AbstractMerkurWidget {
428
408
  return assets.filter(asset => ['stylesheet', 'inlineStyle'].includes(asset.type) && asset.source).map((asset, key) => {
429
409
  switch (asset.type) {
430
410
  case 'stylesheet':
431
- return /*#__PURE__*/React__default["default"].createElement("link", {
411
+ return /*#__PURE__*/React.createElement("link", {
432
412
  rel: "stylesheet",
433
413
  href: asset.source,
434
414
  key: key
435
415
  });
436
416
  case 'inlineStyle':
437
- return /*#__PURE__*/React__default["default"].createElement("style", {
417
+ return /*#__PURE__*/React.createElement("style", {
438
418
  key: key,
439
419
  dangerouslySetInnerHTML: {
440
420
  __html: asset.source
@@ -619,7 +599,7 @@ class MerkurSlot extends AbstractMerkurWidget {
619
599
  */
620
600
  const isInitialSPARender = this._isClient() && !this._isSSRHydrate();
621
601
  const html = isInitialSPARender ? '' : this._getWidgetHTML();
622
- return /*#__PURE__*/React__default["default"].createElement(WidgetWrapper$1, {
602
+ return /*#__PURE__*/React.createElement(WidgetWrapper$1, {
623
603
  containerSelector: this.slot.containerSelector,
624
604
  html: html
625
605
  }, isInitialSPARender && this._renderFallback());
package/lib/index.es9.cjs CHANGED
@@ -1,17 +1,8 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- });
6
3
  var React = require('react');
7
4
  var core = require('@merkur/core');
8
5
  var integration = require('@merkur/integration');
9
- function _interopDefaultLegacy(e) {
10
- return e && typeof e === 'object' && 'default' in e ? e : {
11
- 'default': e
12
- };
13
- }
14
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
6
  function _extends() {
16
7
  _extends = Object.assign ? Object.assign.bind() : function (target) {
17
8
  for (var i = 1; i < arguments.length; i++) {
@@ -69,14 +60,14 @@ function WidgetWrapper({
69
60
  children
70
61
  }) {
71
62
  const selector = selectorToAttribute(containerSelector);
72
- return html ? /*#__PURE__*/React__default["default"].createElement("div", _extends({}, selector, {
63
+ return html ? /*#__PURE__*/React.createElement("div", _extends({}, selector, {
73
64
  dangerouslySetInnerHTML: {
74
65
  __html: html
75
66
  }
76
- })) : /*#__PURE__*/React__default["default"].createElement("div", selector, children);
67
+ })) : /*#__PURE__*/React.createElement("div", selector, children);
77
68
  }
78
- var WidgetWrapper$1 = /*#__PURE__*/React__default["default"].memo(WidgetWrapper);
79
- class AbstractMerkurWidget extends React__default["default"].Component {
69
+ var WidgetWrapper$1 = /*#__PURE__*/React.memo(WidgetWrapper);
70
+ class AbstractMerkurWidget extends React.Component {
80
71
  /**
81
72
  * Checks if widget has changed, e.g has different name or version.
82
73
  *
@@ -137,7 +128,7 @@ class AbstractMerkurWidget extends React__default["default"].Component {
137
128
  return children({
138
129
  error: encounteredError
139
130
  });
140
- } else if ( /*#__PURE__*/React__default["default"].isValidElement(children)) {
131
+ } else if ( /*#__PURE__*/React.isValidElement(children)) {
141
132
  return children;
142
133
  }
143
134
  return null;
@@ -411,7 +402,7 @@ class MerkurWidget extends AbstractMerkurWidget {
411
402
  throw new Error(`The widgetProperties.containerSelector is not defined`);
412
403
  }
413
404
  const html = this._getWidgetHTML();
414
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, (!this._isClient() || this._isSSRHydrate()) && this._renderStyleAssets(), /*#__PURE__*/React__default["default"].createElement(WidgetWrapper$1, {
405
+ return /*#__PURE__*/React.createElement(React.Fragment, null, (!this._isClient() || this._isSSRHydrate()) && this._renderStyleAssets(), /*#__PURE__*/React.createElement(WidgetWrapper$1, {
415
406
  containerSelector: widgetProperties.containerSelector,
416
407
  html: html
417
408
  }));
@@ -431,13 +422,13 @@ class MerkurWidget extends AbstractMerkurWidget {
431
422
  return assets.filter(asset => ['stylesheet', 'inlineStyle'].includes(asset.type) && asset.source).map((asset, key) => {
432
423
  switch (asset.type) {
433
424
  case 'stylesheet':
434
- return /*#__PURE__*/React__default["default"].createElement("link", {
425
+ return /*#__PURE__*/React.createElement("link", {
435
426
  rel: "stylesheet",
436
427
  href: asset.source,
437
428
  key: key
438
429
  });
439
430
  case 'inlineStyle':
440
- return /*#__PURE__*/React__default["default"].createElement("style", {
431
+ return /*#__PURE__*/React.createElement("style", {
441
432
  key: key,
442
433
  dangerouslySetInnerHTML: {
443
434
  __html: asset.source
@@ -624,7 +615,7 @@ class MerkurSlot extends AbstractMerkurWidget {
624
615
  */
625
616
  const isInitialSPARender = this._isClient() && !this._isSSRHydrate();
626
617
  const html = isInitialSPARender ? '' : this._getWidgetHTML();
627
- return /*#__PURE__*/React__default["default"].createElement(WidgetWrapper$1, {
618
+ return /*#__PURE__*/React.createElement(WidgetWrapper$1, {
628
619
  containerSelector: this.slot.containerSelector,
629
620
  html: html
630
621
  }, isInitialSPARender && this._renderFallback());
package/lib/index.js CHANGED
@@ -1,30 +1,10 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var React = require('react');
6
4
  var core = require('@merkur/core');
7
5
  var integration = require('@merkur/integration');
8
6
 
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
-
11
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
-
13
- function _extends() {
14
- _extends = Object.assign ? Object.assign.bind() : function (target) {
15
- for (var i = 1; i < arguments.length; i++) {
16
- var source = arguments[i];
17
- for (var key in source) {
18
- if (Object.prototype.hasOwnProperty.call(source, key)) {
19
- target[key] = source[key];
20
- }
21
- }
22
- }
23
- return target;
24
- };
25
- return _extends.apply(this, arguments);
26
- }
27
-
7
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
28
8
  const SelectorIdentifierMap = Object.freeze({
29
9
  '#': 'id',
30
10
  '.': 'className'
@@ -68,15 +48,15 @@ function WidgetWrapper({
68
48
  children
69
49
  }) {
70
50
  const selector = selectorToAttribute(containerSelector);
71
- return html ? /*#__PURE__*/React__default["default"].createElement("div", _extends({}, selector, {
51
+ return html ? /*#__PURE__*/React.createElement("div", _extends({}, selector, {
72
52
  dangerouslySetInnerHTML: {
73
53
  __html: html
74
54
  }
75
- })) : /*#__PURE__*/React__default["default"].createElement("div", selector, children);
55
+ })) : /*#__PURE__*/React.createElement("div", selector, children);
76
56
  }
77
- var WidgetWrapper$1 = /*#__PURE__*/React__default["default"].memo(WidgetWrapper);
57
+ var WidgetWrapper$1 = /*#__PURE__*/React.memo(WidgetWrapper);
78
58
 
79
- class AbstractMerkurWidget extends React__default["default"].Component {
59
+ class AbstractMerkurWidget extends React.Component {
80
60
  /**
81
61
  * Checks if widget has changed, e.g has different name or version.
82
62
  *
@@ -137,7 +117,7 @@ class AbstractMerkurWidget extends React__default["default"].Component {
137
117
  return children({
138
118
  error: encounteredError
139
119
  });
140
- } else if ( /*#__PURE__*/React__default["default"].isValidElement(children)) {
120
+ } else if ( /*#__PURE__*/React.isValidElement(children)) {
141
121
  return children;
142
122
  }
143
123
  return null;
@@ -408,7 +388,7 @@ class MerkurWidget extends AbstractMerkurWidget {
408
388
  throw new Error(`The widgetProperties.containerSelector is not defined`);
409
389
  }
410
390
  const html = this._getWidgetHTML();
411
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, (!this._isClient() || this._isSSRHydrate()) && this._renderStyleAssets(), /*#__PURE__*/React__default["default"].createElement(WidgetWrapper$1, {
391
+ return /*#__PURE__*/React.createElement(React.Fragment, null, (!this._isClient() || this._isSSRHydrate()) && this._renderStyleAssets(), /*#__PURE__*/React.createElement(WidgetWrapper$1, {
412
392
  containerSelector: widgetProperties.containerSelector,
413
393
  html: html
414
394
  }));
@@ -428,13 +408,13 @@ class MerkurWidget extends AbstractMerkurWidget {
428
408
  return assets.filter(asset => ['stylesheet', 'inlineStyle'].includes(asset.type) && asset.source).map((asset, key) => {
429
409
  switch (asset.type) {
430
410
  case 'stylesheet':
431
- return /*#__PURE__*/React__default["default"].createElement("link", {
411
+ return /*#__PURE__*/React.createElement("link", {
432
412
  rel: "stylesheet",
433
413
  href: asset.source,
434
414
  key: key
435
415
  });
436
416
  case 'inlineStyle':
437
- return /*#__PURE__*/React__default["default"].createElement("style", {
417
+ return /*#__PURE__*/React.createElement("style", {
438
418
  key: key,
439
419
  dangerouslySetInnerHTML: {
440
420
  __html: asset.source
@@ -619,7 +599,7 @@ class MerkurSlot extends AbstractMerkurWidget {
619
599
  */
620
600
  const isInitialSPARender = this._isClient() && !this._isSSRHydrate();
621
601
  const html = isInitialSPARender ? '' : this._getWidgetHTML();
622
- return /*#__PURE__*/React__default["default"].createElement(WidgetWrapper$1, {
602
+ return /*#__PURE__*/React.createElement(WidgetWrapper$1, {
623
603
  containerSelector: this.slot.containerSelector,
624
604
  html: html
625
605
  }, isInitialSPARender && this._renderFallback());
package/lib/index.mjs CHANGED
@@ -2,21 +2,7 @@ import React from 'react';
2
2
  import { getMerkur } from '@merkur/core';
3
3
  import { loadStyleAssets, loadScriptAssets } from '@merkur/integration';
4
4
 
5
- function _extends() {
6
- _extends = Object.assign ? Object.assign.bind() : function (target) {
7
- for (var i = 1; i < arguments.length; i++) {
8
- var source = arguments[i];
9
- for (var key in source) {
10
- if (Object.prototype.hasOwnProperty.call(source, key)) {
11
- target[key] = source[key];
12
- }
13
- }
14
- }
15
- return target;
16
- };
17
- return _extends.apply(this, arguments);
18
- }
19
-
5
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
20
6
  const SelectorIdentifierMap = Object.freeze({
21
7
  '#': 'id',
22
8
  '.': 'className'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@merkur/integration-react",
3
- "version": "0.31.1",
3
+ "version": "0.32.0",
4
4
  "description": "Merkur module for easy integration with react.",
5
5
  "main": "lib/index",
6
6
  "module": "lib/index",
@@ -14,16 +14,16 @@
14
14
  "./lib/index.es9.cjs": "./lib/index.es9.cjs"
15
15
  },
16
16
  "browser": {
17
- "./lib/index.js": "./lib/index.es5.js",
18
- "./lib/index.cjs": "./lib/index.es5.js",
17
+ "./lib/index.js": "./lib/index.js",
18
+ "./lib/index.cjs": "./lib/index.cjs",
19
19
  "./lib/index.mjs": "./lib/index.mjs",
20
20
  "./lib/index.es9.mjs": "./lib/index.es9.mjs"
21
21
  },
22
22
  "scripts": {
23
23
  "preversion": "npm test",
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 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
- "build": "node_modules/.bin/rollup -c",
24
+ "test": "jest --no-watchman -c ./jest.config.js",
25
+ "test:es:version": "es-check es11 ./lib/index.mjs --module && es-check es9 ./lib/index.es9.mjs --module && es-check es9 ./lib/index.es9.cjs --module",
26
+ "build": "rollup -c rollup.config.mjs",
27
27
  "prepare": "npm run build"
28
28
  },
29
29
  "repository": {
@@ -46,16 +46,17 @@
46
46
  },
47
47
  "homepage": "https://merkur.js.org/",
48
48
  "devDependencies": {
49
- "@babel/preset-react": "^7.16.7",
50
- "@merkur/core": "^0.31.0",
51
- "@merkur/plugin-component": "^0.31.0",
52
- "@merkur/plugin-event-emitter": "^0.31.0",
49
+ "@babel/preset-react": "^7.18.6",
50
+ "@merkur/core": "^0.32.0",
51
+ "@merkur/plugin-component": "^0.32.0",
52
+ "@merkur/plugin-event-emitter": "^0.32.0",
53
+ "@rollup/plugin-commonjs": "^25.0.0",
54
+ "@rollup/plugin-replace": "^5.0.2",
53
55
  "enzyme": "3.11.0",
54
- "enzyme-adapter-react-16": "1.15.6",
56
+ "enzyme-adapter-react-16": "1.15.7",
55
57
  "enzyme-to-json": "^3.6.2",
56
58
  "react": "16.13.1",
57
- "react-dom": "16.13.1",
58
- "rollup": "^2.70.2"
59
+ "react-dom": "16.13.1"
59
60
  },
60
61
  "peerDependencies": {
61
62
  "@merkur/core": "*",
@@ -63,7 +64,7 @@
63
64
  "react-dom": ">=16"
64
65
  },
65
66
  "dependencies": {
66
- "@merkur/integration": "^0.31.1"
67
+ "@merkur/integration": "^0.32.0"
67
68
  },
68
- "gitHead": "c9b40c3a9444dc89baa7c1f5b33ccc8afa7d6155"
69
+ "gitHead": "c45ffe12725e3c4afcf7f13869a25a96f6807055"
69
70
  }
@@ -0,0 +1,37 @@
1
+ import {
2
+ createRollupESConfig,
3
+ createRollupES9Config,
4
+ } from '../../createRollupConfig.mjs';
5
+ import resolve from '@rollup/plugin-node-resolve';
6
+ import babel from '@rollup/plugin-babel';
7
+ import replace from '@rollup/plugin-replace';
8
+ import commonjs from '@rollup/plugin-commonjs';
9
+
10
+ let esConfig = createRollupESConfig();
11
+ let es9Config = createRollupES9Config();
12
+
13
+ let extendedPlugins = [
14
+ commonjs({
15
+ include: /node_modules/,
16
+ requireReturnsDefault: 'auto', // <---- this solves default issue
17
+ }),
18
+ replace({
19
+ preventAssignment: false,
20
+ values: {
21
+ 'process.env.NODE_ENV': JSON.stringify('production'),
22
+ },
23
+ }),
24
+ resolve({
25
+ extensions: ['.mjs', '.js', '.jsx', '.json'],
26
+ }),
27
+ babel({
28
+ configFile: false,
29
+ babelHelpers: 'inline',
30
+ presets: ['@babel/preset-react'],
31
+ }),
32
+ ];
33
+
34
+ esConfig.plugins.push(...extendedPlugins);
35
+ es9Config.plugins.push(...extendedPlugins);
36
+
37
+ export default [esConfig, es9Config];
package/lib/index.es5.js DELETED
@@ -1 +0,0 @@
1
- "use strict";function e(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */e=function(){return t};var t={},r=Object.prototype,o=r.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},s=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function l(e,t,r,o){var i=t&&t.prototype instanceof f?t:f,s=Object.create(i.prototype),a=new L(o||[]);return n(s,"_invoke",{value:P(e,r,a)}),s}function d(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=l;var h={};function f(){}function v(){}function y(){}var g={};c(g,s,(function(){return this}));var m=Object.getPrototypeOf,w=m&&m(m(O([])));w&&w!==r&&o.call(w,s)&&(g=w);var j=y.prototype=f.prototype=Object.create(g);function b(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function _(e,t){function r(n,i,s,a){var u=d(e[n],e,i);if("throw"!==u.type){var c=u.arg,l=c.value;return l&&"object"==p(l)&&o.call(l,"__await")?t.resolve(l.__await).then((function(e){r("next",e,s,a)}),(function(e){r("throw",e,s,a)})):t.resolve(l).then((function(e){c.value=e,s(c)}),(function(e){return r("throw",e,s,a)}))}a(u.arg)}var i;n(this,"_invoke",{value:function(e,o){function n(){return new t((function(t,n){r(e,o,t,n)}))}return i=i?i.then(n,n):n()}})}function P(e,t,r){var o="suspendedStart";return function(n,i){if("executing"===o)throw new Error("Generator is already running");if("completed"===o){if("throw"===n)throw i;return x()}for(r.method=n,r.arg=i;;){var s=r.delegate;if(s){var a=k(s,r);if(a){if(a===h)continue;return a}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===o)throw o="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o="executing";var u=d(e,t,r);if("normal"===u.type){if(o=r.done?"completed":"suspendedYield",u.arg===h)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(o="completed",r.method="throw",r.arg=u.arg)}}}function k(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,k(e,t),"throw"===t.method))return h;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var o=d(r,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,h;var n=o.arg;return n?n.done?(t[e.resultName]=n.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):n:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[s];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,n=function t(){for(;++r<e.length;)if(o.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return n.next=n}}return{next:x}}function x(){return{value:void 0,done:!0}}return v.prototype=y,n(j,"constructor",{value:y,configurable:!0}),n(y,"constructor",{value:v,configurable:!0}),v.displayName=c(y,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===v||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,c(e,u,"GeneratorFunction")),e.prototype=Object.create(j),e},t.awrap=function(e){return{__await:e}},b(_.prototype),c(_.prototype,a,(function(){return this})),t.AsyncIterator=_,t.async=function(e,r,o,n,i){void 0===i&&(i=Promise);var s=new _(l(e,r,o,n),i);return t.isGeneratorFunction(r)?s:s.next().then((function(e){return e.done?e.value:s.next()}))},b(j),c(j,u,"Generator"),c(j,s,(function(){return this})),c(j,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var o in t)r.push(o);return r.reverse(),function e(){for(;r.length;){var o=r.pop();if(o in t)return e.value=o,e.done=!1,e}return e.done=!0,e}},t.values=O,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&o.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(r,o){return s.type="throw",s.arg=e,t.next=r,o&&(t.method="next",t.arg=void 0),!!o}for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n],s=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var a=o.call(i,"catchLoc"),u=o.call(i,"finallyLoc");if(a&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(a){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var i=n;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var s=i?i.completion:{};return s.type=e,s.arg=t,i?(this.method="next",this.next=i.finallyLoc,h):this.complete(s)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),E(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var o=r.completion;if("throw"===o.type){var n=o.arg;E(r)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:O(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},t}function t(e,t,r,o,n,i,s){try{var a=e[i](s),u=a.value}catch(e){return void r(e)}a.done?t(u):Promise.resolve(u).then(o,n)}function r(){return r="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=o(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(arguments.length<3?e:r):i.value}},r.apply(this,arguments)}function o(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=h(e)););return e}function n(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 o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function s(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function a(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?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},u(e,t)}function c(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,o=h(e);if(t){var n=h(this).constructor;r=Reflect.construct(o,arguments,n)}else r=o.apply(this,arguments);return l(this,r)}}function l(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 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 h(e){return h=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},h(e)}function f(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("core-js/modules/es.object.define-property.js"),require("core-js/modules/es.object.assign.js"),require("core-js/modules/es.function.bind.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.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"),require("core-js/modules/es.symbol.async-iterator.js"),require("core-js/modules/es.symbol.to-string-tag.js"),require("core-js/modules/es.json.to-string-tag.js"),require("core-js/modules/es.math.to-string-tag.js"),require("core-js/modules/es.array.for-each.js"),require("core-js/modules/web.dom-collections.for-each.js"),require("core-js/modules/es.array.reverse.js"),require("core-js/modules/es.array.slice.js"),Object.defineProperty(exports,"__esModule",{value:!0});var v=require("react"),y=require("@merkur/core"),g=require("@merkur/integration");function m(e){return e&&"object"===p(e)&&"default"in e?e:{default:e}}var w=m(v);function j(){return j=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},j.apply(this,arguments)}var b=Object.freeze({"#":"id",".":"className"});function _(e){var t=e.html,r=e.containerSelector,o=e.children,n=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 b){var o=e.lastIndexOf(r);t<o&&(t=o)}var n=e[t],i=e.substr(t+1);return f({},b[n],i)}(r);return t?w.default.createElement("div",j({},n,{dangerouslySetInnerHTML:{__html:t}})):w.default.createElement("div",n,o)}var P=w.default.memo(_),k=function(e){a(r,w["default"].Component);var t=c(r);function r(e){var o;return n(this,r),(o=t.call(this,e))._isMounted=!1,o._html=null,o}return s(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}):w.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}(),S=function(o){a(f,k);var i,u,l=c(f);function f(e){var t;return n(this,f),(t=l.call(this,e))._widget=null,t._handleClientError=t._handleError.bind(d(t)),t.state={encounteredError:!1,assetsLoaded:!1,cachedWidgetMeta:null},t}return s(f,[{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||!k.validateProperties(this.props.widgetProperties)||k.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 o in e.widgetProperties.state)if(!this.props.widgetProperties||!this.props.widgetProperties.state||e.widgetProperties.state[o]!==this.props.widgetProperties.state[o])return this._widget.setState(e.widgetProperties.state),!1}return!1}},{key:"componentDidMount",value:function(){r(h(f.prototype),"componentDidMount",this).call(this),this._loadWidgetAssets()}},{key:"componentDidUpdate",value:function(e,t){var r=this.props.widgetProperties,o=e.widgetProperties;return this.state.assetsLoaded&&t.assetsLoaded!==this.state.assetsLoaded?this._mountWidget():!k.validateProperties(r)&&k.validateProperties(o)?(this._removeWidget(),void this.setState({encounteredError:!1,assetsLoaded:!1,cachedWidgetMeta:null})):k.validateProperties(r)&&!k.validateProperties(o)?this._loadWidgetAssets():k.hasWidgetChanged(r,o)?(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,o=t.assetsLoaded;if(!k.validateProperties(e)||r||this._isClient()&&!this._isSSRHydrate()&&!o)return this._renderFallback();if(!e.containerSelector)throw new Error("The widgetProperties.containerSelector is not defined");var n=this._getWidgetHTML();return w.default.createElement(w.default.Fragment,null,(!this._isClient()||this._isSSRHydrate())&&this._renderStyleAssets(),w.default.createElement(P,{containerSelector:e.containerSelector,html:n}))}},{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 w.default.createElement("link",{rel:"stylesheet",href:e.source,key:t});case"inlineStyle":return w.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(k.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:(i=e().mark((function t(){var r,o,n,i,s,a;return e().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.props,o=r.widgetProperties,n=r.onWidgetMounted,i=r.debug,s=void 0!==i&&i,k.validateProperties(o)&&!this._widget){e.next=3;break}return e.abrupt("return");case 3:return e.prev=3,a=y.getMerkur(),e.next=7,a.create(o);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 n&&n(this._widget),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(3),s&&console.warn(e.t0);case 17:case"end":return e.stop()}}),t,this,[[3,14]])})),u=function(){var e=this,r=arguments;return new Promise((function(o,n){var s=i.apply(e,r);function a(e){t(s,o,n,a,u,"next",e)}function u(e){t(s,o,n,a,u,"throw",e)}a(void 0)}))},function(){return u.apply(this,arguments)})}],[{key:"getDerivedStateFromProps",value:function(e,t){if(t&&e&&k.validateProperties(e.widgetProperties)){var r=e.widgetProperties,o=r.version,n=r.name;if(!t.cachedWidgetMeta)return{cachedWidgetMeta:{name:n,version:o}};if(k.hasWidgetChanged(t.cachedWidgetMeta,e.widgetProperties))return{encounteredError:!1,assetsLoaded:!1,cachedWidgetMeta:{name:n,version:o}}}return null}}]),f}(),E=function(e){a(r,k);var t=c(r);function r(){return n(this,r),t.apply(this,arguments)}return s(r,[{key:"slot",get:function(){var e,t,r=this.props,o=r.widgetProperties,n=r.slotName;return null!==(e=null==o||null===(t=o.slot)||void 0===t?void 0:t[n])&&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!(k.validateProperties(this.props.widgetProperties)&&k.validateProperties(e.widgetProperties)&&!k.hasWidgetChanged(this.props.widgetProperties,e.widgetProperties))}},{key:"componentDidUpdate",value:function(e){var t=this.props.widgetProperties,r=e.widgetProperties;k.validateProperties(t)||!k.validateProperties(r)||this._removeSlot()}},{key:"componentWillUnmount",value:function(){this._removeSlot()}},{key:"render",value:function(){var e=this.props.widgetProperties;if(!k.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 w.default.createElement(P,{containerSelector:this.slot.containerSelector,html:r},t&&this._renderFallback())}},{key:"_removeSlot",value:function(){this._clearCachedHtml()}}]),r}();exports.MerkurSlot=E,exports.MerkurWidget=S;