diff --git a/.percy.old.yml b/.percy.old.yml new file mode 100644 index 000000000..5499b41f2 --- /dev/null +++ b/.percy.old.yml @@ -0,0 +1,3 @@ +version: 1 +snapshot: + widths: [1280] \ No newline at end of file diff --git a/.percy.yml b/.percy.yml index 5499b41f2..f56df3d5e 100644 --- a/.percy.yml +++ b/.percy.yml @@ -1,3 +1,6 @@ -version: 1 +version: 2 snapshot: - widths: [1280] \ No newline at end of file + widths: + - 1280 +discovery: + disable-cache: true diff --git a/cypress/integration/other/interaction.spec.js b/cypress/integration/other/interaction.spec.js index 88a9d633b..6a873107d 100644 --- a/cypress/integration/other/interaction.spec.js +++ b/cypress/integration/other/interaction.spec.js @@ -178,7 +178,8 @@ describe('Interaction', () => { .find('g#flowchart-Function-2') .click(); - cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow'); + cy.get('.created-by-click').should('not.exist'); + // cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow'); }); it('should handle a click on a node with a bound function where the node starts with a number', () => { const url = 'http://localhost:9000/click_security_strict.html'; @@ -188,7 +189,8 @@ describe('Interaction', () => { .find('g[id="flowchart-1Function-6"]') .click(); - cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow'); + // cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow'); + cy.get('.created-by-click').should('not.exist'); }); it('should handle a click on a node with a bound url', () => { const url = 'http://localhost:9000/click_security_strict.html'; @@ -247,7 +249,8 @@ describe('Interaction', () => { .find('rect#cl2') .click({ force: true }); - cy.get('.created-by-gant-click').should('not.have.text', 'Clicked By Gant cl2'); + // cy.get('.created-by-gant-click').should('not.have.text', 'Clicked By Gant cl2'); + cy.get('.created-by-gant-click').should('not.exist') }); it('should handle a click on a task with a bound function', () => { const url = 'http://localhost:9000/click_security_strict.html'; @@ -257,7 +260,8 @@ describe('Interaction', () => { .find('text#cl2-text') .click({ force: true }); - cy.get('.created-by-gant-click').should('not.have.text', 'Clicked By Gant cl2'); + // cy.get('.created-by-gant-click').should('not.have.text', 'Clicked By Gant cl2'); + cy.get('.created-by-gant-click').should('not.exist') }); }); @@ -270,7 +274,8 @@ describe('Interaction', () => { .find('g#flowchart-Function-2') .click(); - cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow'); + // cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow'); + cy.get('.created-by-click').should('not.exist'); }); it('should handle a click on a node with a bound function where the node starts with a number', () => { const url = 'http://localhost:9000/click_security_other.html'; @@ -280,7 +285,8 @@ describe('Interaction', () => { .find('g[id="flowchart-1Function-6"]') .click(); - cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow'); + cy.get('.created-by-click').should('not.exist'); + cy.get('.created-by-click').should('not.exist'); }); it('should handle a click on a node with a bound url', () => { const url = 'http://localhost:9000/click_security_other.html'; @@ -303,7 +309,7 @@ describe('Interaction', () => { .find('rect#cl2') .click({ force: true }); - cy.get('.created-by-gant-click').should('not.have.text', 'Clicked By Gant cl2'); + cy.get('.created-by-gant-click').should('not.exist'); }); it('should handle a click on a task with a bound function', () => { const url = 'http://localhost:9000/click_security_other.html'; @@ -313,7 +319,7 @@ describe('Interaction', () => { .find('text#cl2-text') .click({ force: true }); - cy.get('.created-by-gant-click').should('not.have.text', 'Clicked By Gant cl2'); + cy.get('.created-by-gant-click').should('not.exist'); }); }); }); diff --git a/cypress/integration/other/webpackUsage.spec.js b/cypress/integration/other/webpackUsage.spec.js index 90f1a1b8a..b5c485672 100644 --- a/cypress/integration/other/webpackUsage.spec.js +++ b/cypress/integration/other/webpackUsage.spec.js @@ -16,6 +16,6 @@ describe('Sequencediagram', () => { .find('svg') .should('have.length', 1); - cy.get('.label > g > foreignobject > div').should('not.contain.text', ''); + cy.get('g.label > foreignobject > div').should('not.contain.text', ''); }); }); diff --git a/cypress/platform/knsv.html b/cypress/platform/knsv.html index 40c26c569..cb2be346c 100644 --- a/cypress/platform/knsv.html +++ b/cypress/platform/knsv.html @@ -66,12 +66,9 @@ stateDiagram-v2
-stateDiagram-v2 -state CompositeState { -state AnotherCompositeState1234567890 { -YourState -} -} +flowchart TD +A("") +B(Bold text!)
stateDiagram-v2 @@ -81,7 +78,7 @@ YourState } }
-
+
stateDiagram-v2 [*] --> Active @@ -125,7 +122,7 @@ YourState rankSpacing: 50, defaultRenderer: 'dagre-wrapper', }, - + logLevel:0, fontSize: 18, curve: 'cardinal', securityLevel: 'loose', diff --git a/cypress/plugins/index.js b/cypress/plugins/index.js index c70f67f74..41cce2f71 100644 --- a/cypress/plugins/index.js +++ b/cypress/plugins/index.js @@ -16,10 +16,8 @@ // // `config` is the resolved Cypress config // } -let percyHealthCheck = require("@percy/cypress/task"); module.exports = (on, config) => { // `on` is used to hook into various events Cypress emits // `config` is the resolved Cypress config - on("task", percyHealthCheck); }; \ No newline at end of file diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a node with a bound function (failed).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a node with a bound function (failed).png new file mode 100644 index 000000000..957ec89ad Binary files /dev/null and b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a node with a bound function (failed).png differ diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a node with a bound function where the node starts with a number (failed).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a node with a bound function where the node starts with a number (failed).png new file mode 100644 index 000000000..48b4c6847 Binary files /dev/null and b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a node with a bound function where the node starts with a number (failed).png differ diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a task with a bound function (failed) (1).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a task with a bound function (failed) (1).png new file mode 100644 index 000000000..c3d480c22 Binary files /dev/null and b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a task with a bound function (failed) (1).png differ diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a task with a bound function (failed).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a task with a bound function (failed).png new file mode 100644 index 000000000..377b324e6 Binary files /dev/null and b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a task with a bound function (failed).png differ diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a node with a bound function where the node starts with a number (failed).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a node with a bound function where the node starts with a number (failed).png new file mode 100644 index 000000000..a4d447ba4 Binary files /dev/null and b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a node with a bound function where the node starts with a number (failed).png differ diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a node without a bound function (failed).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a node without a bound function (failed).png new file mode 100644 index 000000000..ba6295fff Binary files /dev/null and b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a node without a bound function (failed).png differ diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a task with a bound function (failed) (1).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a task with a bound function (failed) (1).png new file mode 100644 index 000000000..438daca60 Binary files /dev/null and b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a task with a bound function (failed) (1).png differ diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a task with a bound function (failed).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a task with a bound function (failed).png new file mode 100644 index 000000000..e4bb4ab4c Binary files /dev/null and b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a task with a bound function (failed).png differ diff --git a/cypress/screenshots/other/webpackUsage.spec.js/Sequencediagram -- should handle html escapings properly (failed).png b/cypress/screenshots/other/webpackUsage.spec.js/Sequencediagram -- should handle html escapings properly (failed).png new file mode 100644 index 000000000..ab89ebb17 Binary files /dev/null and b/cypress/screenshots/other/webpackUsage.spec.js/Sequencediagram -- should handle html escapings properly (failed).png differ diff --git a/cypress/screenshots/rendering/classDiagram.spec.js/Class diagram -- 17 should render a class diagram when useMaxWidth is true (default) (failed).png b/cypress/screenshots/rendering/classDiagram.spec.js/Class diagram -- 17 should render a class diagram when useMaxWidth is true (default) (failed).png index 13ad6d805..fa92a0856 100644 Binary files a/cypress/screenshots/rendering/classDiagram.spec.js/Class diagram -- 17 should render a class diagram when useMaxWidth is true (default) (failed).png and b/cypress/screenshots/rendering/classDiagram.spec.js/Class diagram -- 17 should render a class diagram when useMaxWidth is true (default) (failed).png differ diff --git a/cypress/screenshots/rendering/classDiagram.spec.js/Class diagram -- 18 should render a class diagram when useMaxWidth is false (failed).png b/cypress/screenshots/rendering/classDiagram.spec.js/Class diagram -- 18 should render a class diagram when useMaxWidth is false (failed).png index 01f1687bc..cabb87f37 100644 Binary files a/cypress/screenshots/rendering/classDiagram.spec.js/Class diagram -- 18 should render a class diagram when useMaxWidth is false (failed).png and b/cypress/screenshots/rendering/classDiagram.spec.js/Class diagram -- 18 should render a class diagram when useMaxWidth is false (failed).png differ diff --git a/cypress/screenshots/rendering/sequencediagram.spec.js/Sequence diagram -- svg size -- should render a sequence diagram when useMaxWidth is false (failed).png b/cypress/screenshots/rendering/sequencediagram.spec.js/Sequence diagram -- svg size -- should render a sequence diagram when useMaxWidth is false (failed).png new file mode 100644 index 000000000..e1b151c2a Binary files /dev/null and b/cypress/screenshots/rendering/sequencediagram.spec.js/Sequence diagram -- svg size -- should render a sequence diagram when useMaxWidth is false (failed).png differ diff --git a/cypress/screenshots/rendering/sequencediagram.spec.js/Sequence diagram -- svg size -- should render a sequence diagram when useMaxWidth is true (default) (failed).png b/cypress/screenshots/rendering/sequencediagram.spec.js/Sequence diagram -- svg size -- should render a sequence diagram when useMaxWidth is true (default) (failed).png new file mode 100644 index 000000000..8746e5d59 Binary files /dev/null and b/cypress/screenshots/rendering/sequencediagram.spec.js/Sequence diagram -- svg size -- should render a sequence diagram when useMaxWidth is true (default) (failed).png differ diff --git a/cypress/screenshots/rendering/stateDiagram-v2.spec.js/State diagram -- v2 should render a state diagram when useMaxWidth is false (failed).png b/cypress/screenshots/rendering/stateDiagram-v2.spec.js/State diagram -- v2 should render a state diagram when useMaxWidth is false (failed).png new file mode 100644 index 000000000..3b3bb09a6 Binary files /dev/null and b/cypress/screenshots/rendering/stateDiagram-v2.spec.js/State diagram -- v2 should render a state diagram when useMaxWidth is false (failed).png differ diff --git a/cypress/screenshots/rendering/stateDiagram-v2.spec.js/State diagram -- v2 should render a state diagram when useMaxWidth is true (default) (failed).png b/cypress/screenshots/rendering/stateDiagram-v2.spec.js/State diagram -- v2 should render a state diagram when useMaxWidth is true (default) (failed).png new file mode 100644 index 000000000..4751deb60 Binary files /dev/null and b/cypress/screenshots/rendering/stateDiagram-v2.spec.js/State diagram -- v2 should render a state diagram when useMaxWidth is true (default) (failed).png differ diff --git a/cypress/support/index.js b/cypress/support/index.js index d68db96df..e41a741fd 100644 --- a/cypress/support/index.js +++ b/cypress/support/index.js @@ -14,7 +14,8 @@ // *********************************************************** // Import commands.js using ES2015 syntax: -import './commands' +import './commands'; +import '@percy/cypress'; // Alternatively you can use CommonJS syntax: // require('./commands') diff --git a/dist/mermaid.core.js b/dist/mermaid.core.js index 9e796c7f1..65c795f33 100644 --- a/dist/mermaid.core.js +++ b/dist/mermaid.core.js @@ -656,7 +656,7 @@ module.exports = function(module) { /*! exports provided: name, version, description, main, keywords, scripts, repository, author, license, standard, dependencies, devDependencies, files, yarn-upgrade-all, sideEffects, husky, default */ /***/ (function(module) { -module.exports = JSON.parse("{\"name\":\"mermaid\",\"version\":\"8.11.0\",\"description\":\"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.\",\"main\":\"dist/mermaid.core.js\",\"keywords\":[\"diagram\",\"markdown\",\"flowchart\",\"sequence diagram\",\"gantt\",\"class diagram\",\"git graph\"],\"scripts\":{\"build:development\":\"webpack --progress --colors\",\"build:production\":\"yarn build:development -p --config webpack.config.prod.babel.js\",\"build\":\"yarn build:development && yarn build:production\",\"postbuild\":\"documentation build src/mermaidAPI.js src/config.js src/defaultConfig.js --shallow -f md --markdown-toc false > docs/Setup.md\",\"build:watch\":\"yarn build --watch\",\"minify\":\"minify ./dist/mermaid.js > ./dist/mermaid.min.js\",\"release\":\"yarn build\",\"lint\":\"eslint src\",\"e2e:depr\":\"yarn lint && jest e2e --config e2e/jest.config.js\",\"cypress\":\"percy exec -- cypress run\",\"e2e\":\"start-server-and-test dev http://localhost:9000/ cypress\",\"e2e-upd\":\"yarn lint && jest e2e -u --config e2e/jest.config.js\",\"dev\":\"webpack-dev-server --config webpack.config.e2e.js\",\"test\":\"yarn lint && jest src/.*\",\"test:watch\":\"jest --watch src\",\"prepublishOnly\":\"yarn build && yarn test\",\"prepare\":\"yarn build\"},\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/knsv/mermaid\"},\"author\":\"Knut Sveidqvist\",\"license\":\"MIT\",\"standard\":{\"ignore\":[\"**/parser/*.js\",\"dist/**/*.js\",\"cypress/**/*.js\"],\"globals\":[\"page\"]},\"dependencies\":{\"@braintree/sanitize-url\":\"^3.1.0\",\"d3\":\"^5.7.0\",\"dagre\":\"^0.8.4\",\"dagre-d3\":\"^0.6.4\",\"entity-decode\":\"^2.0.2\",\"graphlib\":\"^2.1.7\",\"khroma\":\"^1.1.0\",\"moment-mini\":\"^2.22.1\",\"stylis\":\"^3.5.2\"},\"devDependencies\":{\"@babel/core\":\"^7.2.2\",\"@babel/preset-env\":\"^7.8.4\",\"@babel/register\":\"^7.0.0\",\"@percy/cypress\":\"*\",\"babel-core\":\"7.0.0-bridge.0\",\"babel-eslint\":\"^10.1.0\",\"babel-jest\":\"^24.9.0\",\"babel-loader\":\"^8.0.4\",\"coveralls\":\"^3.0.2\",\"css-loader\":\"^2.0.1\",\"css-to-string-loader\":\"^0.1.3\",\"cypress\":\"4.0.1\",\"documentation\":\"^12.0.1\",\"eslint\":\"^6.3.0\",\"eslint-config-prettier\":\"^6.3.0\",\"eslint-plugin-prettier\":\"^3.1.0\",\"husky\":\"^1.2.1\",\"identity-obj-proxy\":\"^3.0.0\",\"jest\":\"^24.9.0\",\"jison\":\"^0.4.18\",\"minify\":\"^4.1.1\",\"moment\":\"^2.23.0\",\"node-sass\":\"^5.0.0\",\"prettier\":\"^1.18.2\",\"puppeteer\":\"^1.17.0\",\"sass-loader\":\"^7.1.0\",\"start-server-and-test\":\"^1.10.6\",\"terser-webpack-plugin\":\"^2.2.2\",\"webpack\":\"^4.41.2\",\"webpack-bundle-analyzer\":\"^3.7.0\",\"webpack-cli\":\"^3.1.2\",\"webpack-dev-server\":\"^3.4.1\",\"webpack-node-externals\":\"^1.7.2\",\"yarn-upgrade-all\":\"^0.5.0\"},\"files\":[\"dist\"],\"yarn-upgrade-all\":{\"ignore\":[\"babel-core\"]},\"sideEffects\":[\"**/*.css\",\"**/*.scss\"],\"husky\":{\"hooks\":{\"pre-push\":\"yarn test\"}}}"); +module.exports = JSON.parse("{\"name\":\"mermaid\",\"version\":\"8.11.0\",\"description\":\"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.\",\"main\":\"dist/mermaid.core.js\",\"keywords\":[\"diagram\",\"markdown\",\"flowchart\",\"sequence diagram\",\"gantt\",\"class diagram\",\"git graph\"],\"scripts\":{\"build:development\":\"webpack --progress --colors\",\"build:production\":\"yarn build:development -p --config webpack.config.prod.babel.js\",\"build\":\"yarn build:development && yarn build:production\",\"postbuild\":\"documentation build src/mermaidAPI.js src/config.js src/defaultConfig.js --shallow -f md --markdown-toc false > docs/Setup.md\",\"build:watch\":\"yarn build --watch\",\"minify\":\"minify ./dist/mermaid.js > ./dist/mermaid.min.js\",\"release\":\"yarn build\",\"lint\":\"eslint src\",\"e2e:depr\":\"yarn lint && jest e2e --config e2e/jest.config.js\",\"cypress\":\"percy exec -- cypress run\",\"e2e\":\"start-server-and-test dev http://localhost:9000/ cypress\",\"e2e-upd\":\"yarn lint && jest e2e -u --config e2e/jest.config.js\",\"dev\":\"webpack-dev-server --config webpack.config.e2e.js\",\"test\":\"yarn lint && jest src/.*\",\"test:watch\":\"jest --watch src\",\"prepublishOnly\":\"yarn build && yarn test\",\"prepare\":\"yarn build\"},\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/knsv/mermaid\"},\"author\":\"Knut Sveidqvist\",\"license\":\"MIT\",\"standard\":{\"ignore\":[\"**/parser/*.js\",\"dist/**/*.js\",\"cypress/**/*.js\"],\"globals\":[\"page\"]},\"dependencies\":{\"@braintree/sanitize-url\":\"^3.1.0\",\"@percy/migrate\":\"^0.10.0\",\"d3\":\"^5.7.0\",\"dagre\":\"^0.8.4\",\"dagre-d3\":\"^0.6.4\",\"graphlib\":\"^2.1.7\",\"khroma\":\"^1.1.0\",\"moment-mini\":\"^2.22.1\",\"stylis\":\"^3.5.2\"},\"devDependencies\":{\"@babel/core\":\"^7.2.2\",\"@babel/preset-env\":\"^7.8.4\",\"@babel/register\":\"^7.0.0\",\"@percy/cli\":\"^1.0.0-beta.58\",\"@percy/cypress\":\"^3.1.0\",\"babel-core\":\"7.0.0-bridge.0\",\"babel-eslint\":\"^10.1.0\",\"babel-jest\":\"^24.9.0\",\"babel-loader\":\"^8.0.4\",\"coveralls\":\"^3.0.2\",\"css-loader\":\"^2.0.1\",\"css-to-string-loader\":\"^0.1.3\",\"cypress\":\"7.6.0\",\"documentation\":\"^12.0.1\",\"dompurify\":\"2.3.0\",\"eslint\":\"^6.3.0\",\"eslint-config-prettier\":\"^6.3.0\",\"eslint-plugin-prettier\":\"^3.1.0\",\"husky\":\"^1.2.1\",\"identity-obj-proxy\":\"^3.0.0\",\"jest\":\"^24.9.0\",\"jison\":\"^0.4.18\",\"js-base64\":\"3.6.1\",\"minify\":\"^4.1.1\",\"moment\":\"^2.23.0\",\"prettier\":\"^1.18.2\",\"start-server-and-test\":\"^1.10.6\",\"terser-webpack-plugin\":\"^2.2.2\",\"webpack\":\"^4.41.2\",\"webpack-bundle-analyzer\":\"^3.7.0\",\"webpack-cli\":\"^3.1.2\",\"webpack-dev-server\":\"^3.4.1\",\"webpack-node-externals\":\"^1.7.2\",\"yarn-upgrade-all\":\"^0.5.0\"},\"files\":[\"dist\"],\"yarn-upgrade-all\":{\"ignore\":[\"babel-core\"]},\"sideEffects\":[\"**/*.css\",\"**/*.scss\"],\"husky\":{\"hooks\":{\"pre-push\":\"yarn test\"}}}"); /***/ }), @@ -5025,13 +5025,17 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js"); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js"); /* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js"); -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } + +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } @@ -7277,6 +7281,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasBreaks", function() { return hasBreaks; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "splitBreaks", function() { return splitBreaks; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "evaluate", function() { return evaluate; }); +/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dompurify */ "dompurify"); +/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(dompurify__WEBPACK_IMPORTED_MODULE_0__); + var getRows = function getRows(s) { if (!s) return 1; var str = breakToPlaceholder(s); @@ -7311,28 +7318,8 @@ var removeScript = function removeScript(txt) { rs = rs.replace(/