diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index e5723616..f9a40a29 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -3,19 +3,18 @@ on: [pull_request] jobs: test: runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Setup Node - uses: actions/setup-node@v2 - with: - node-version: '16' - - - name: Re-install Node Modules - run: npm ci + strategy: + matrix: + node-version: [20.x] - - name: Run Test - run: npm test + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: "npm" + - run: npm ci + - run: npm test \ No newline at end of file diff --git a/.gitignore b/.gitignore index e5e10d1e..9dca1299 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,6 @@ cypress/videos # Editor directories and files .vscode/* !vscode/launch.json -!.vscode/extensions.json \ No newline at end of file +!.vscode/extensions.json + +stats.json \ No newline at end of file diff --git a/cypress/fixtures/messages/downloadableImage.json b/cypress/fixtures/messages/downloadableImage.json index 39f83e08..719461ea 100644 --- a/cypress/fixtures/messages/downloadableImage.json +++ b/cypress/fixtures/messages/downloadableImage.json @@ -1,37 +1,37 @@ { - "text": null, - "data": { - "_cognigy": { - "_default": { - "_image": { - "type": "image", - "imageUrl": "https://placekitten.com/300/300", - "buttons": [ - { - "type": "web_url", - "title": "Download", - "url": "https://placekitten.com/300/300" - } - ] - } - }, - "_webchat": { - "message": { - "attachment": { - "type": "image", - "payload": { - "url": "https://placekitten.com/300/300", - "buttons": [ - { - "type": "web_url", - "title": "Download", - "url": "https://placekitten.com/300/300" - } - ] - } - } - } - } - } - } + "text": null, + "data": { + "_cognigy": { + "_default": { + "_image": { + "type": "image", + "imageUrl": "https://placewaifu.com/image/300/300", + "buttons": [ + { + "type": "web_url", + "title": "Download", + "url": "https://placewaifu.com/image/300/300" + } + ] + } + }, + "_webchat": { + "message": { + "attachment": { + "type": "image", + "payload": { + "url": "https://placewaifu.com/image/300/300", + "buttons": [ + { + "type": "web_url", + "title": "Download", + "url": "https://placewaifu.com/image/300/300" + } + ] + } + } + } + } + } + } } diff --git a/cypress/fixtures/messages/gallery.json b/cypress/fixtures/messages/gallery.json index ae68a9cc..57333206 100644 --- a/cypress/fixtures/messages/gallery.json +++ b/cypress/fixtures/messages/gallery.json @@ -9,7 +9,7 @@ { "title": "foobar004g1", "subtitle": "", - "imageUrl": "https://placekitten.com/300/300", + "imageUrl": "https://placewaifu.com/image/300/300", "buttons": [ { "id": 0.9601740794827666, @@ -23,7 +23,7 @@ { "title": "foobar004g2", "subtitle": "foobar004g2sub1\nfoobar004g2sub2", - "imageUrl": "https://placekitten.com/300/300", + "imageUrl": "https://placewaifu.com/image/300/300", "buttons": [], "id": 0.9969017542005371 }, @@ -47,7 +47,7 @@ { "title": "foobar004g1", "subtitle": "", - "image_url": "https://placekitten.com/300/300", + "image_url": "https://placewaifu.com/image/300/300", "buttons": [ { "type": "postback", @@ -74,7 +74,7 @@ { "title": "foobar004g2", "subtitle": "foobar004g2sub1\nfoobar004g2sub2", - "image_url": "https://placekitten.com/300/300", + "image_url": "https://placewaifu.com/image/300/300", "buttons": [] }, { diff --git a/cypress/fixtures/messages/list.json b/cypress/fixtures/messages/list.json index e521dbbd..197055a6 100644 --- a/cypress/fixtures/messages/list.json +++ b/cypress/fixtures/messages/list.json @@ -12,7 +12,7 @@ { "title": "foobar009l1", "subtitle": "foobar009ls1", - "image_url": "https://placekitten.com/300/300", + "image_url": "https://placewaifu.com/image/300/300", "buttons": [ { "payload": "foobar009l1b1", diff --git a/cypress/integration/message-renderer/adaptiveCard.spec.ts b/cypress/integration/message-renderer/adaptiveCard.spec.ts index c10a2584..3e4b658d 100644 --- a/cypress/integration/message-renderer/adaptiveCard.spec.ts +++ b/cypress/integration/message-renderer/adaptiveCard.spec.ts @@ -1,4 +1,4 @@ -describe('Adaptive Cards in Message renderer', () => { +xdescribe('Adaptive Cards in Message renderer', () => { before(() => { cy.visitMessageRenderer(); }); diff --git a/cypress/integration/message-renderer/availability.spec.ts b/cypress/integration/message-renderer/availability.spec.ts index 97c0df3e..8fb97911 100644 --- a/cypress/integration/message-renderer/availability.spec.ts +++ b/cypress/integration/message-renderer/availability.spec.ts @@ -1,4 +1,4 @@ -describe("Generic Message Renderer", () => { +xdescribe("Generic Message Renderer", () => { beforeEach(() => { cy.visitMessageRenderer(); }); diff --git a/cypress/integration/message-renderer/isMessageSupported.spec.ts b/cypress/integration/message-renderer/isMessageSupported.spec.ts index 87b8c59e..38191928 100644 --- a/cypress/integration/message-renderer/isMessageSupported.spec.ts +++ b/cypress/integration/message-renderer/isMessageSupported.spec.ts @@ -11,7 +11,7 @@ const supportedMessageFixtures = [ "video", ]; -describe("isMessageSupported", () => { +xdescribe("isMessageSupported", () => { for (const message of supportedMessageFixtures) { it(`returns true for a "${message}" message`, () => { cy.visitMessageRenderer(); diff --git a/cypress/integration/message-renderer/sourceDirectionMapping.spec.ts b/cypress/integration/message-renderer/sourceDirectionMapping.spec.ts index 193b8007..f3964576 100644 --- a/cypress/integration/message-renderer/sourceDirectionMapping.spec.ts +++ b/cypress/integration/message-renderer/sourceDirectionMapping.spec.ts @@ -1,4 +1,5 @@ -describe('Source Direction Mapping', () => { +// TODO move it to s separate from outdated message-render as it is still a valid test case +xdescribe('Source Direction Mapping', () => { beforeEach(() => { cy.visitMessageRenderer(); }); diff --git a/cypress/integration/priorities.spec.ts b/cypress/integration/priorities.spec.ts index 9e0b8397..7f8022c5 100644 --- a/cypress/integration/priorities.spec.ts +++ b/cypress/integration/priorities.spec.ts @@ -22,7 +22,12 @@ const renderMessageWithParams = (params: IGenerateTestCaseParams) => { const getDummyMessage = (text: string) => ({ message: { text, - quick_replies: [] + quick_replies: [ { + "id": 0.44535334241574, + "contentType": "postback", + "payload": "foobar003pb01", + "title": "foobar003qr01" + },] } }); @@ -110,7 +115,8 @@ const generateTestCase = (params: IGenerateTestCaseParams) => { }); } -describe("Channel Rendering Priorities", { +// TODO Enable back when bug fixed #AI:65271 +xdescribe("Channel Rendering Priorities", { defaultCommandTimeout: 500 }, () => { beforeEach(() => { diff --git a/cypress/integration/regressions/19420-null-buttons.spec.ts b/cypress/integration/regressions/19420-null-buttons.spec.ts index f18197b3..3dec6164 100644 --- a/cypress/integration/regressions/19420-null-buttons.spec.ts +++ b/cypress/integration/regressions/19420-null-buttons.spec.ts @@ -33,7 +33,7 @@ describe('Message Templates with null Buttons', () => { cy.contains('foobar005').should('be.visible'); }); - it('renders text+quick replies with null quick replies', () => { + it.skip('renders text+quick replies with null quick replies', () => { cy.fixture('messages/quick-replies-with-null-quick-replies.json') .then(({ text, data, source }) => { cy.receiveMessage(text, data, source); diff --git a/cypress/integration/regressions/21904-malformed-default-replies.spec.ts b/cypress/integration/regressions/21904-malformed-default-replies.spec.ts index 84ba94ce..ccd207b4 100644 --- a/cypress/integration/regressions/21904-malformed-default-replies.spec.ts +++ b/cypress/integration/regressions/21904-malformed-default-replies.spec.ts @@ -1,5 +1,5 @@ describe("Malformed Default Reply Messages", () => { - it("Does not crash when rendering a malformed default reply message with webchat tab content", () => { + it.skip("Does not crash when rendering a malformed default reply message with webchat tab content", () => { cy.visitWebchat(); cy.initMockWebchat(); cy.openWebchat(); diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts index 93aec0de..381a9800 100644 --- a/cypress/support/commands.ts +++ b/cypress/support/commands.ts @@ -83,7 +83,7 @@ Cypress.Commands.add('openWebchat', () => { }); Cypress.Commands.add('startConversation', () => { - return cy.contains("Start conversation").click(); + return cy.contains("Start conversation", { timeout: 5000 }).click(); }); Cypress.Commands.add('submitPrivacyScreen', () => { diff --git a/docs/custom-avatars.md b/docs/custom-avatars.md index f17c1bd3..825e408d 100644 --- a/docs/custom-avatars.md +++ b/docs/custom-avatars.md @@ -1,38 +1,43 @@ # Custom Avatars + During the conversation, you can swap the image URLs used for `Bot` and `Agent` avatars by sending certain message content: Set a bot avatar override + ```json { - "_webchat": { - "botAvatarOverrideUrl": "https://placekitten.com/200/200" - } + "_webchat": { + "botAvatarOverrideUrl": "https://placewaifu.com/image/200/200" + } } ``` Reset the bot avatar + ```json { - "_webchat": { - "botAvatarOverrideUrl": "" - } + "_webchat": { + "botAvatarOverrideUrl": "" + } } ``` Set an agent avatar override + ```json { - "_webchat": { - "agentAvatarOverrideUrl": "https://placekitten.com/200/200" - } + "_webchat": { + "agentAvatarOverrideUrl": "https://placewaifu.com/image/200/200" + } } ``` Reset the agent avatar + ```json { - "_webchat": { - "agentAvatarOverrideUrl": "" - } + "_webchat": { + "agentAvatarOverrideUrl": "" + } } ``` diff --git a/package-lock.json b/package-lock.json index 57c3cfa9..133261e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,49 +14,34 @@ "@cognigy/socket-client": "5.0.0-beta.10", "@emotion/cache": "^10.0.29", "@emotion/react": "^11.7.1", + "@emotion/serialize": "1.1.3", "@emotion/styled": "^11.6.0", "@reduxjs/toolkit": "^2.2.3", "@types/react-transition-group": "4.4.10", - "adaptivecards": "^2.10.0", "axios": "1.6.4", "classnames": "2.3.2", "cypress-real-events": "^1.7.0", "dompurify": "^2.0.7", - "flatpickr": "4.6.3", - "immutable": "^4.0.0-rc.12", "license-checker": "25.0.1", "lodash": "^4.17.21", - "memoize-one": "^6.0.0", "moment": "^2.29.4", - "path-parse": "^1.0.7", "react": "^17.0.2", - "react-animate-height": "^2.0.23", "react-dom": "^17.0.2", "react-hot-toast": "^2.4.1", - "react-player": "^2.9.0", "react-redux": "7.2.8", "react-responsive": "9.0.2", - "react-responsive-carousel": "^3.2.22", "react-textarea-autosize": "8.5.3", "react-transition-group": "4.4.5", "redux": "^4.0.4", - "remarkable": "^2.0.1", - "styled-jss": "^2.2.3", "stylis-rtl": "^1.0.1", "tinycolor2": "1.6.0", - "uifx": "^2.0.7" + "uifx": "^2.0.7", + "uuid": "9.0.1" }, "devDependencies": { "@babel/cli": "^7.16.7", "@babel/core": "^7.16.7", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-object-assign": "^7.16.7", - "@babel/plugin-transform-runtime": "^7.16.7", - "@babel/preset-env": "^7.16.7", "@babel/preset-react": "^7.16.7", "@babel/preset-typescript": "^7.16.7", "@babel/runtime": "^7.16.7", @@ -72,7 +57,6 @@ "@typescript-eslint/eslint-plugin": "^5.10.0", "@typescript-eslint/parser": "^5.10.0", "babel-loader": "^8.2.3", - "babel-polyfill": "^6.26.0", "compression-webpack-plugin": "^9.2.0", "css-loader": "^6.5.1", "cypress": "^9.4.1", @@ -84,20 +68,16 @@ "idempotent-babel-polyfill": "^7.4.4", "npm-run-all": "^4.1.5", "prettier": "^2.5.1", - "react-svg-loader": "^3.0.3", "redux-devtools-extension": "^2.13.8", "style-loader": "^3.3.1", - "svg-inline-loader": "^0.8.2", "svg-react-loader": "^0.4.6", "terser-webpack-plugin": "^5.3.0", - "ts-loader": "^9.2.6", "typesafe-actions": "^3.0.0", "typescript": "^3.7.2", "url-loader": "^4.1.1", - "url-polyfill": "^1.1.12", - "webpack": "^5.65.0", - "webpack-cli": "^4.9.1", - "webpack-dev-server": "^4.7.2", + "webpack": "^5.90.3", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "5.0.4", "whatwg-fetch": "^3.6.2", "zlib": "^1.0.5" }, @@ -115,25 +95,25 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/cli": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.23.4.tgz", - "integrity": "sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.24.1.tgz", + "integrity": "sha512-HbmrtxyFUr34LwAlV9jS+sSIjUp4FpdtIMGwgufY3AsxrIfsh/HxlMTywsONAZsU0RMYbZtbZFpUCrSGs7o0EA==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", + "@jridgewell/trace-mapping": "^0.3.25", "commander": "^4.0.1", "convert-source-map": "^2.0.0", "fs-readdir-recursive": "^1.1.0", @@ -157,42 +137,42 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", + "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.5.tgz", - "integrity": "sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz", + "integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.5", - "@babel/helper-compilation-targets": "^7.22.15", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.1", + "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.5", - "@babel/parser": "^7.23.5", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.5", - "@babel/types": "^7.23.5", + "@babel/helpers": "^7.24.1", + "@babel/parser": "^7.24.1", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -208,14 +188,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", - "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz", + "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==", "dev": true, "dependencies": { - "@babel/types": "^7.23.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -234,27 +214,15 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -263,9 +231,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz", - "integrity": "sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.1.tgz", + "integrity": "sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", @@ -273,7 +241,7 @@ "@babel/helper-function-name": "^7.23.0", "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-replace-supers": "^7.24.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "semver": "^6.3.1" @@ -285,39 +253,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", @@ -365,11 +300,11 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -407,39 +342,22 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { @@ -486,9 +404,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", "engines": { "node": ">=6.9.0" } @@ -510,51 +428,38 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helpers": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz", - "integrity": "sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz", + "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.5", - "@babel/types": "^7.23.5" + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", - "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", + "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -563,63 +468,25 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", - "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -628,15 +495,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -645,18 +510,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", + "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-simple-access": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -665,29 +527,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.1.tgz", + "integrity": "sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.24.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, "engines": { "node": ">=6.9.0" }, @@ -695,37 +542,17 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" }, "engines": { "node": ">=6.9.0" @@ -734,37 +561,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/plugin-transform-react-jsx": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -773,13 +576,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.1.tgz", + "integrity": "sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -788,37 +592,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.1.tgz", + "integrity": "sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-typescript": "^7.24.1" }, "engines": { "node": ">=6.9.0" @@ -827,1166 +610,35 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", - "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", - "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", - "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", - "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-assign": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.23.3.tgz", - "integrity": "sha512-TPJ6O7gVC2rlQH2hvQGRH273G1xdoloCj9Pc07Q7JbIZYDi+Sv5gaE2fu+r5E7qK4zyt6vj0FbZaZTRU5C3OMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", - "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", - "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/types": "^7.23.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", - "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", - "dev": true, - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz", - "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.4.tgz", - "integrity": "sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.5.tgz", - "integrity": "sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.23.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/polyfill": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.4.4.tgz", - "integrity": "sha512-WlthFLfhQQhh+A2Gn5NSFl0Huxz36x86Jn+E9OW7ibK8edKPq+KLy4apM1yDpQ8kJOVi1OVjpP4vSDLdrI04dg==", - "deprecated": "🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.", + "node_modules/@babel/polyfill": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.4.4.tgz", + "integrity": "sha512-WlthFLfhQQhh+A2Gn5NSFl0Huxz36x86Jn+E9OW7ibK8edKPq+KLy4apM1yDpQ8kJOVi1OVjpP4vSDLdrI04dg==", + "deprecated": "🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.", "dev": true, "dependencies": { "core-js": "^2.6.5", - "regenerator-runtime": "^0.13.2" - } - }, - "node_modules/@babel/polyfill/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "node_modules/@babel/preset-env": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.5.tgz", - "integrity": "sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.4", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.4", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.5", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.4", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.4", - "@babel/plugin-transform-for-of": "^7.23.3", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.4", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.3", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", - "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.23.4", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.4", - "@babel/plugin-transform-optional-chaining": "^7.23.4", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.4", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + "regenerator-runtime": "^0.13.2" } }, + "node_modules/@babel/polyfill/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, "node_modules/@babel/preset-react": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz", - "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.1.tgz", + "integrity": "sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-react-display-name": "^7.23.3", - "@babel/plugin-transform-react-jsx": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-transform-react-display-name": "^7.24.1", + "@babel/plugin-transform-react-jsx": "^7.23.4", "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.23.3" + "@babel/plugin-transform-react-pure-annotations": "^7.24.1" }, "engines": { "node": ">=6.9.0" @@ -1996,16 +648,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", - "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz", + "integrity": "sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-typescript": "^7.23.3" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-syntax-jsx": "^7.24.1", + "@babel/plugin-transform-modules-commonjs": "^7.24.1", + "@babel/plugin-transform-typescript": "^7.24.1" }, "engines": { "node": ">=6.9.0" @@ -2014,16 +666,10 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, "node_modules/@babel/runtime": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz", - "integrity": "sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", + "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -2032,34 +678,34 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", - "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.5", + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.5", - "@babel/types": "^7.23.5", - "debug": "^4.1.0", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -2067,9 +713,9 @@ } }, "node_modules/@babel/types": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", - "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -2202,11 +848,6 @@ "react-dom": "^17.x || 18.x" } }, - "node_modules/@cognigy/chat-components/node_modules/adaptivecards": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/adaptivecards/-/adaptivecards-2.11.1.tgz", - "integrity": "sha512-dyF23HK+lRMEreexJgHz4y9U5B0ZuGk66N8nhwXRnICyYjq8hE4A6n8rLoV/CNY2QAZ0iRjOIR2J8U7M1CKl8Q==" - }, "node_modules/@cognigy/chat-components/node_modules/dompurify": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.0.tgz", @@ -2381,9 +1022,9 @@ "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" }, "node_modules/@emotion/is-prop-valid": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", - "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", "dependencies": { "@emotion/memoize": "^0.8.1" } @@ -2394,14 +1035,14 @@ "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" }, "node_modules/@emotion/react": { - "version": "11.11.1", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", - "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", + "version": "11.11.4", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", + "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.11.0", "@emotion/cache": "^11.11.0", - "@emotion/serialize": "^1.1.2", + "@emotion/serialize": "^1.1.3", "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", "@emotion/utils": "^1.2.1", "@emotion/weak-memoize": "^0.3.1", @@ -2449,9 +1090,9 @@ "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" }, "node_modules/@emotion/serialize": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", - "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz", + "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==", "dependencies": { "@emotion/hash": "^0.9.1", "@emotion/memoize": "^0.8.1", @@ -2573,9 +1214,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2600,9 +1241,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", - "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2614,13 +1255,13 @@ "integrity": "sha512-dr9BuLeFLz270lUAzuqBrWtW2w8ZVfrkDG2rv+0hHPt2EWJ/2CmXyNiVrwbXBiNwRMHyfvJp9KtsoxlEzvxhIQ==" }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -2641,51 +1282,147 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { @@ -2695,9 +1432,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -2847,9 +1584,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.44.8", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.8.tgz", - "integrity": "sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw==", + "version": "8.56.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.6.tgz", + "integrity": "sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==", "dev": true, "dependencies": { "@types/estree": "*", @@ -2885,9 +1622,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.41", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", - "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "version": "4.17.43", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", + "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", "dev": true, "dependencies": { "@types/node": "*", @@ -2937,9 +1674,9 @@ "dev": true }, "node_modules/@types/lodash": { - "version": "4.14.202", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", - "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==", + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz", + "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==", "dev": true }, "node_modules/@types/mime": { @@ -2960,9 +1697,9 @@ "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" }, "node_modules/@types/node-forge": { - "version": "1.3.10", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.10.tgz", - "integrity": "sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==", + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", "dev": true, "dependencies": { "@types/node": "*" @@ -2974,20 +1711,14 @@ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "node_modules/@types/prop-types": { - "version": "15.7.11", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" - }, - "node_modules/@types/q": { - "version": "1.5.8", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", - "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==", - "dev": true + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" }, "node_modules/@types/qs": { - "version": "6.9.10", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", - "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", + "version": "6.9.14", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", + "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==", "dev": true }, "node_modules/@types/range-parser": { @@ -2997,12 +1728,12 @@ "dev": true }, "node_modules/@types/react": { - "version": "16.14.52", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.52.tgz", - "integrity": "sha512-4+ZN73hgRW3Gang3QMqWjrqPPkf+lWZYiyG4uXtUbpd+7eiBDw6Gemila6rXDd8DorADupTiIERL6Mb5BQTF2w==", + "version": "16.14.60", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.60.tgz", + "integrity": "sha512-wIFmnczGsTcgwCBeIYOuy2mdXEiKZ5znU/jNOnMZPQyCcIxauMGWlX0TNG4lZ7NxRKj7YUIZRneJQSSdB2jKgg==", "dependencies": { "@types/prop-types": "*", - "@types/scheduler": "*", + "@types/scheduler": "^0.16", "csstype": "^3.0.2" } }, @@ -3041,9 +1772,9 @@ "dev": true }, "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", "dev": true }, "node_modules/@types/scheduler": { @@ -3052,9 +1783,9 @@ "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" }, "node_modules/@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, "node_modules/@types/send": { @@ -3236,9 +1967,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3380,9 +2111,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3439,9 +2170,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3483,9 +2214,9 @@ "dev": true }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", "dev": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", @@ -3505,9 +2236,9 @@ "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { @@ -3528,15 +2259,15 @@ "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@webassemblyjs/wasm-gen": "1.12.1" } }, "node_modules/@webassemblyjs/ieee754": { @@ -3564,28 +2295,28 @@ "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", "@webassemblyjs/leb128": "1.11.6", @@ -3593,24 +2324,24 @@ } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-api-error": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", @@ -3619,44 +2350,52 @@ } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" } }, "node_modules/@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", "dev": true, + "engines": { + "node": ">=14.15.0" + }, "peerDependencies": { - "webpack": "4.x.x || 5.x.x", - "webpack-cli": "4.x.x" + "webpack": "5.x.x", + "webpack-cli": "5.x.x" } }, "node_modules/@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", "dev": true, - "dependencies": { - "envinfo": "^7.7.3" + "engines": { + "node": ">=14.15.0" }, "peerDependencies": { - "webpack-cli": "4.x.x" + "webpack": "5.x.x", + "webpack-cli": "5.x.x" } }, "node_modules/@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", "dev": true, + "engines": { + "node": ">=14.15.0" + }, "peerDependencies": { - "webpack-cli": "4.x.x" + "webpack": "5.x.x", + "webpack-cli": "5.x.x" }, "peerDependenciesMeta": { "webpack-dev-server": { @@ -3695,9 +2434,9 @@ } }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -3725,12 +2464,9 @@ } }, "node_modules/adaptivecards": { - "version": "2.11.3", - "resolved": "https://registry.npmjs.org/adaptivecards/-/adaptivecards-2.11.3.tgz", - "integrity": "sha512-pfqGVU9B33vqVWDhvqGuoinEPwKe7xNPzljaQ0qHMwVCMv2OqweQ2pBH5htfzE/XNYPViq+4rNvqIDubDmuZoQ==", - "peerDependencies": { - "swiper": "^8.2.6" - } + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/adaptivecards/-/adaptivecards-2.11.1.tgz", + "integrity": "sha512-dyF23HK+lRMEreexJgHz4y9U5B0ZuGk66N8nhwXRnICyYjq8hE4A6n8rLoV/CNY2QAZ0iRjOIR2J8U7M1CKl8Q==" }, "node_modules/aggregate-error": { "version": "3.1.0", @@ -3900,13 +2636,16 @@ "dev": true }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3921,21 +2660,22 @@ } }, "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { @@ -3954,6 +2694,26 @@ "node": ">=8" } }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flat": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", @@ -3990,50 +2750,44 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.reduce": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", - "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==", + "node_modules/array.prototype.toreversed": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "es-shim-unscopables": "^1.0.0" } }, "node_modules/array.prototype.tosorted": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", - "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", + "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.1.0", + "es-shim-unscopables": "^1.0.2" } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -4077,15 +2831,6 @@ "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" }, - "node_modules/asynciterator.prototype": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", - "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -4120,10 +2865,13 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -4154,11 +2902,6 @@ "proxy-from-env": "^1.1.0" } }, - "node_modules/axios/node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, "node_modules/babel-loader": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", @@ -4207,90 +2950,6 @@ "npm": ">=6" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-react-svg": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/babel-plugin-react-svg/-/babel-plugin-react-svg-3.0.3.tgz", - "integrity": "sha512-Pst1RWjUIiV0Ykv1ODSeceCBsFOP2Y4dusjq7/XkjuzJdvS9CjpkPMUIoO4MLlvp5PiLCeMlsOC7faEUA0gm3Q==", - "dev": true, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "node_modules/babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - } - }, - "node_modules/babel-polyfill/node_modules/regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==", - "dev": true - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "dev": true, - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-runtime/node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -4348,12 +3007,15 @@ } }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/blob-util": { @@ -4367,13 +3029,13 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -4381,7 +3043,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.1", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -4430,23 +3092,15 @@ } }, "node_modules/bonjour-service": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", - "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", "dev": true, "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" } }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -4468,15 +3122,10 @@ "node": ">=8" } }, - "node_modules/brcast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/brcast/-/brcast-3.0.2.tgz", - "integrity": "sha512-f5XwwFCCuvgqP2nMH/hJ74FqnGmb4X3D+NC//HphxJzzhsZvSZa+Hk/syB7j3ZHpPDLMoYU8oBgviRWfNvEfKA==" - }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -4493,8 +3142,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -4542,6 +3191,21 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -4560,13 +3224,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4581,9 +3250,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001566", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz", - "integrity": "sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==", + "version": "1.0.30001600", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", + "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", "dev": true, "funding": [ { @@ -4641,16 +3310,10 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -4663,6 +3326,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -4715,9 +3381,9 @@ } }, "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.4.tgz", + "integrity": "sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==", "dependencies": { "string-width": "^4.2.0" }, @@ -4763,20 +3429,6 @@ "node": ">=6" } }, - "node_modules/coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dev": true, - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, "node_modules/color": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", @@ -5034,9 +3686,9 @@ "dev": true }, "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true, "engines": { "node": ">= 0.6" @@ -5056,19 +3708,6 @@ "dev": true, "hasInstallScript": true }, - "node_modules/core-js-compat": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.34.0.tgz", - "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", - "dev": true, - "dependencies": { - "browserslist": "^4.22.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -5124,19 +3763,19 @@ } }, "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.10.0.tgz", + "integrity": "sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==", "dev": true, "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.21", + "postcss": "^8.4.33", "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.4", + "postcss-modules-scope": "^3.1.1", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" + "semver": "^7.5.4" }, "engines": { "node": ">= 12.13.0" @@ -5146,7 +3785,16 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/css-loader/node_modules/lru-cache": { @@ -5162,9 +3810,9 @@ } }, "node_modules/css-loader/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5187,66 +3835,6 @@ "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz", "integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==" }, - "node_modules/css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "dev": true - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-vendor": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", - "integrity": "sha512-Vx/Vl3zsHj32Z+WTNzGjd2iSbSIJTYHMmyGUT2nzCjj0Xk4qLfwpQ8nF6TQ5oo3Cf0s/An3DTc7LclH1BkAXbQ==", - "dependencies": { - "is-in-browser": "^1.0.2" - } - }, - "node_modules/css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, "node_modules/css/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -5276,50 +3864,10 @@ "node": ">=6.0.0" } }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "node_modules/csso/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/cypress": { "version": "9.7.0", @@ -5378,9 +3926,9 @@ } }, "node_modules/cypress-real-events": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/cypress-real-events/-/cypress-real-events-1.11.0.tgz", - "integrity": "sha512-4LXVRsyq+xBh5TmlEyO1ojtBXtN7xw720Pwb9rEE9rkJuXmeH3VyoR1GGayMGr+Itqf11eEjfDewtDmcx6PWPQ==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/cypress-real-events/-/cypress-real-events-1.12.0.tgz", + "integrity": "sha512-oiy+4kGKkzc2PT36k3GGQqkGxNiVypheWjMtfyi89iIk6bYmTzeqxapaLHS3pnhZOX1IEbTDUVxh8T4Nhs1tyQ==", "peerDependencies": { "cypress": "^4.x || ^5.x || ^6.x || ^7.x || ^8.x || ^9.x || ^10.x || ^11.x || ^12.x || ^13.x" } @@ -5474,10 +4022,15 @@ "node": ">=10" } }, + "node_modules/cypress/node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==" + }, "node_modules/cypress/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5518,6 +4071,57 @@ "node": ">=0.10" } }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/dayjs": { "version": "1.11.10", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", @@ -5563,15 +4167,6 @@ "integrity": "sha512-rUCt39nKM7s6qUyYgp/reJmtXjgkOS/JbLO24DioMZaBNkD3b7C7cD3zJjSyjclEElNTpetAIRD6fMIbBIbX1Q==", "dev": true }, - "node_modules/deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -5586,6 +4181,34 @@ "node": ">=0.10.0" } }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", @@ -5643,25 +4266,31 @@ } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/define-properties": { @@ -5746,12 +4375,6 @@ "node": ">=8" } }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", - "dev": true - }, "node_modules/dns-packet": { "version": "5.6.1", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", @@ -5785,57 +4408,16 @@ "csstype": "^3.0.2" } }, - "node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/dom7": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/dom7/-/dom7-4.0.6.tgz", - "integrity": "sha512-emjdpPLhpNubapLFdjNL9tP06Sr+GZkrIHEXLWvOGsytACUrkbeIdjO5g77m00BrHTznnlcNqgmn7pCN192TBA==", - "peer": true, - "dependencies": { - "ssr-window": "^4.0.0" - } - }, - "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, "node_modules/dompurify": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.7.tgz", - "integrity": "sha512-kxxKlPEDa6Nc5WJi+qRgPbOAbgTpSULL+vI3NUXsZMlkJxTqYI9wg5ZTay2sFrdZRWHPWNi+EdAhcJf81WtoMQ==" + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.9.tgz", + "integrity": "sha512-iHtnxYMotKgOTvxIqq677JsKHvCOkAFqj9x8Mek2zdeHW1XjuFKwjpmZeMaXQRQ8AbJZDbcRz/+r1QhwvFtmQg==" }, - "node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true }, "node_modules/ecc-jsbn": { "version": "0.1.2", @@ -5853,9 +4435,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.605", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.605.tgz", - "integrity": "sha512-V52j+P5z6cdRqTjPR/bYNxx7ETCHIkm5VIGuyCy3CMrfSnbEpIlLnk5oHmZo7gYvDfh2TfHeanB6rawyQ23ktg==", + "version": "1.4.717", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.717.tgz", + "integrity": "sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==", "dev": true }, "node_modules/emoji-regex": { @@ -5908,17 +4490,17 @@ } }, "node_modules/engine.io-parser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", - "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", + "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", "engines": { "node": ">=10.0.0" } }, "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", + "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -5940,19 +4522,10 @@ "node": ">=8.6" } }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", + "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -5970,50 +4543,57 @@ } }, "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", + "version": "1.23.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.2.tgz", + "integrity": "sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.5", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -6022,12 +4602,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, "node_modules/es-check": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/es-check/-/es-check-6.2.1.tgz", @@ -6045,43 +4619,77 @@ "node": ">= 4" } }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-iterator-helpers": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", - "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz", + "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==", "dev": true, "dependencies": { - "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.1", - "es-set-tostringtag": "^2.0.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.2.1", + "es-abstract": "^1.23.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", + "internal-slot": "^1.0.7", "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.0.1" + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", + "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==", + "dev": true + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "dev": true - }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -6120,9 +4728,9 @@ "dev": true }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -6146,16 +4754,16 @@ } }, "node_modules/eslint": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", - "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.55.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -6201,27 +4809,29 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "version": "7.34.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", + "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", "dev": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", + "array-includes": "^3.1.7", + "array.prototype.findlast": "^1.2.4", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.3", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", + "es-iterator-helpers": "^1.0.17", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7", + "object.hasown": "^1.1.3", + "object.values": "^1.1.7", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", + "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" + "string.prototype.matchall": "^4.0.10" }, "engines": { "node": ">=4" @@ -6371,9 +4981,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -6435,19 +5045,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/esquery": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", @@ -6553,17 +5150,17 @@ } }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -6594,12 +5191,6 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -6732,9 +5323,9 @@ } }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -6922,14 +5513,14 @@ } }, "node_modules/flatpickr": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.3.tgz", - "integrity": "sha512-007VucCkqNOMMb9ggRLNuJowwaJcyOh4sKAFcdGfahfGc7JQbf94zSzjdBq/wVyHWUEs5o3+idhFZ0wbZMRmVQ==" + "version": "4.6.13", + "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.13.tgz", + "integrity": "sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw==" }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "node_modules/fn.name": { @@ -6966,6 +5557,34 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -7019,12 +5638,6 @@ "node": ">=10" } }, - "node_modules/fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", - "dev": true - }, "node_modules/fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", @@ -7095,15 +5708,19 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7123,13 +5740,14 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -7259,9 +5877,9 @@ } }, "node_modules/goober": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.13.tgz", - "integrity": "sha512-jFj3BQeleOoy7t93E9rZ2de+ScC4lQICLwiAQmKMg9F6roKGaLSHoCDYKkWlSafg138jejvq/mTdvmnwDQgqoQ==", + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.14.tgz", + "integrity": "sha512-4UpC0NdGyAFqLNPnhCT2iHpza2q+RAY3GV85a/mRPdzyPQMsj0KmMMuetdIkzWRbJ+Hgau1EZztq8ImmiMGhsg==", "peerDependencies": { "csstype": "^3.0.10" } @@ -7312,20 +5930,20 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -7345,12 +5963,12 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -7360,9 +5978,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { "function-bind": "^1.1.2" }, @@ -7441,9 +6059,9 @@ } }, "node_modules/html-entities": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", - "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", "dev": true, "funding": [ { @@ -7631,9 +6249,9 @@ ] }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" @@ -7909,12 +6527,12 @@ "dev": true }, "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2", + "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" }, @@ -7923,12 +6541,12 @@ } }, "node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/ipaddr.js": { @@ -7941,14 +6559,16 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8048,6 +6668,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -8064,15 +6699,15 @@ } }, "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "dev": true, "bin": { "is-docker": "cli.js" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8107,11 +6742,6 @@ "node": ">=8" } }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", @@ -8139,10 +6769,23 @@ "node": ">=0.10.0" } }, - "node_modules/is-in-browser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", - "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==" + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/is-installed-globally": { "version": "0.4.0", @@ -8160,18 +6803,21 @@ } }, "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "engines": { "node": ">= 0.4" @@ -8180,6 +6826,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-network-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", + "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -8204,17 +6862,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-observable": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz", - "integrity": "sha512-4JymFIKLU+QyN0J+Q1YMWGXGF/FbL/RPkr5R9UlTdvWmSYRQPeoub00WZ4EiWOEVxWz/djoPxNFF+iuBSJzYCw==", - "dependencies": { - "symbol-observable": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -8239,6 +6886,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, "dependencies": { "isobject": "^3.0.1" }, @@ -8246,11 +6894,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-react-prop": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-react-prop/-/is-react-prop-1.0.0.tgz", - "integrity": "sha512-QjbJ1lMHlZ3MgcZ1bH8dQ0JFX1Qrp9k8WfNLf0/mMflq3qtjkR+liHh/r6LQPEBt5OwVnnVQfQX0REdaQ+8Tgw==" - }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -8268,21 +6911,27 @@ } }, "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8330,12 +6979,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -8361,10 +7010,13 @@ } }, "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8382,28 +7034,34 @@ } }, "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", "dev": true, "dependencies": { - "is-docker": "^2.0.0" + "is-inside-container": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/isarray": { @@ -8421,6 +7079,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -8443,6 +7102,24 @@ "set-function-name": "^2.0.1" } }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -8577,167 +7254,27 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsonify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/jsprim": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", - "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "node_modules/jss": { - "version": "9.8.7", - "resolved": "https://registry.npmjs.org/jss/-/jss-9.8.7.tgz", - "integrity": "sha512-awj3XRZYxbrmmrx9LUSj5pXSUfm12m8xzi/VKeqI1ZwWBtQ0kVPTs3vYs32t4rFw83CgFDukA8wKzOE9sMQnoQ==", - "hasInstallScript": true, - "dependencies": { - "is-in-browser": "^1.1.3", - "symbol-observable": "^1.1.0", - "warning": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jss-camel-case": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jss-camel-case/-/jss-camel-case-6.1.0.tgz", - "integrity": "sha512-HPF2Q7wmNW1t79mCqSeU2vdd/vFFGpkazwvfHMOhPlMgXrJDzdj9viA2SaHk9ZbD5pfL63a8ylp4++irYbbzMQ==", - "dependencies": { - "hyphenate-style-name": "^1.0.2" - }, - "peerDependencies": { - "jss": "^9.7.0" - } - }, - "node_modules/jss-compose": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/jss-compose/-/jss-compose-5.0.0.tgz", - "integrity": "sha512-YofRYuiA0+VbeOw0VjgkyO380sA4+TWDrW52nSluD9n+1FWOlDzNbgpZ/Sb3Y46+DcAbOS21W5jo6SAqUEiuwA==", - "dependencies": { - "warning": "^3.0.0" - }, - "peerDependencies": { - "jss": "^9.0.0" - } - }, - "node_modules/jss-default-unit": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/jss-default-unit/-/jss-default-unit-8.0.2.tgz", - "integrity": "sha512-WxNHrF/18CdoAGw2H0FqOEvJdREXVXLazn7PQYU7V6/BWkCV0GkmWsppNiExdw8dP4TU1ma1dT9zBNJ95feLmg==", - "peerDependencies": { - "jss": "^9.4.0" - } - }, - "node_modules/jss-expand": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/jss-expand/-/jss-expand-5.3.0.tgz", - "integrity": "sha512-NiM4TbDVE0ykXSAw6dfFmB1LIqXP/jdd0ZMnlvlGgEMkMt+weJIl8Ynq1DsuBY9WwkNyzWktdqcEW2VN0RAtQg==", - "peerDependencies": { - "jss": "^9.4.0" - } - }, - "node_modules/jss-extend": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jss-extend/-/jss-extend-6.2.0.tgz", - "integrity": "sha512-YszrmcB6o9HOsKPszK7NeDBNNjVyiW864jfoiHoMlgMIg2qlxKw70axZHqgczXHDcoyi/0/ikP1XaHDPRvYtEA==", - "dependencies": { - "warning": "^3.0.0" - }, - "peerDependencies": { - "jss": "^9.7.0" - } - }, - "node_modules/jss-global": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jss-global/-/jss-global-3.0.0.tgz", - "integrity": "sha512-wxYn7vL+TImyQYGAfdplg7yaxnPQ9RaXY/cIA8hawaVnmmWxDHzBK32u1y+RAvWboa3lW83ya3nVZ/C+jyjZ5Q==", - "peerDependencies": { - "jss": "^9.0.0" - } - }, - "node_modules/jss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jss-nested/-/jss-nested-6.0.1.tgz", - "integrity": "sha512-rn964TralHOZxoyEgeq3hXY8hyuCElnvQoVrQwKHVmu55VRDd6IqExAx9be5HgK0yN/+hQdgAXQl/GUrBbbSTA==", - "dependencies": { - "warning": "^3.0.0" - }, - "peerDependencies": { - "jss": "^9.0.0" - } - }, - "node_modules/jss-preset-default": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/jss-preset-default/-/jss-preset-default-4.5.0.tgz", - "integrity": "sha512-qZbpRVtHT7hBPpZEBPFfafZKWmq3tA/An5RNqywDsZQGrlinIF/mGD9lmj6jGqu8GrED2SMHZ3pPKLmjCZoiaQ==", - "dependencies": { - "jss-camel-case": "^6.1.0", - "jss-compose": "^5.0.0", - "jss-default-unit": "^8.0.2", - "jss-expand": "^5.3.0", - "jss-extend": "^6.2.0", - "jss-global": "^3.0.0", - "jss-nested": "^6.0.1", - "jss-props-sort": "^6.0.0", - "jss-template": "^1.0.1", - "jss-vendor-prefixer": "^7.0.0" - }, - "peerDependencies": { - "jss": "^9.7.0" - } - }, - "node_modules/jss-props-sort": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/jss-props-sort/-/jss-props-sort-6.0.0.tgz", - "integrity": "sha512-E89UDcrphmI0LzmvYk25Hp4aE5ZBsXqMWlkFXS0EtPkunJkRr+WXdCNYbXbksIPnKlBenGB9OxzQY+mVc70S+g==", - "peerDependencies": { - "jss": "^9.0.0" - } - }, - "node_modules/jss-template": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/jss-template/-/jss-template-1.0.1.tgz", - "integrity": "sha512-m5BqEWha17fmIVXm1z8xbJhY6GFJxNB9H68GVnCWPyGYfxiAgY9WTQyvDAVj+pYRgrXSOfN5V1T4+SzN1sJTeg==", - "dependencies": { - "warning": "^3.0.0" - }, - "peerDependencies": { - "jss": "^9.0.0" - } - }, - "node_modules/jss-vendor-prefixer": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/jss-vendor-prefixer/-/jss-vendor-prefixer-7.0.0.tgz", - "integrity": "sha512-Agd+FKmvsI0HLcYXkvy8GYOw3AAASBUpsmIRvVQheps+JWaN892uFOInTr0DRydwaD91vSSUCU4NssschvF7MA==", - "dependencies": { - "css-vendor": "^0.3.8" - }, - "peerDependencies": { - "jss": "^9.0.0" + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jss/node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "engines": { - "node": ">=0.10.0" + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" } }, "node_modules/jsx-ast-utils": { @@ -9008,24 +7545,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -9264,12 +7783,6 @@ "css-mediaquery": "^0.1.2" } }, - "node_modules/mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "dev": true - }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -9280,21 +7793,25 @@ } }, "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.8.0.tgz", + "integrity": "sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==", "dev": true, "dependencies": { - "fs-monkey": "^1.0.4" + "tslib": "^2.0.0" }, "engines": { "node": ">= 4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" } }, "node_modules/memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" }, "node_modules/memorystream": { "version": "0.3.1", @@ -9411,6 +7928,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -9668,15 +8194,6 @@ "node": ">=8" } }, - "node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "dependencies": { - "boolbase": "~1.0.0" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -9721,28 +8238,29 @@ } }, "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -9751,47 +8269,32 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz", - "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==", + "node_modules/object.hasown": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", + "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", "dev": true, "dependencies": { - "array.prototype.reduce": "^1.0.6", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "safe-array-concat": "^1.0.0" + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.hasown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", - "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -9859,17 +8362,18 @@ } }, "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", "dev": true, "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9976,16 +8480,20 @@ } }, "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.0.tgz", + "integrity": "sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==", "dev": true, "dependencies": { - "@types/retry": "0.12.0", + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", "retry": "^0.13.1" }, "engines": { - "node": ">=8" + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-try": { @@ -10064,6 +8572,31 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -10091,8 +8624,7 @@ "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -10222,10 +8754,19 @@ "ms": "^2.1.1" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "dev": true, "funding": [ { @@ -10244,7 +8785,7 @@ "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -10263,9 +8804,9 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", - "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", + "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", "dev": true, "dependencies": { "icss-utils": "^5.0.0", @@ -10280,9 +8821,9 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", + "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.4" @@ -10310,9 +8851,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -10402,9 +8943,9 @@ } }, "node_modules/proxy-from-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, "node_modules/psl": { "version": "1.9.0", @@ -10428,16 +8969,6 @@ "node": ">=6" } }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, "node_modules/qs": { "version": "6.10.4", "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", @@ -10502,9 +9033,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "dependencies": { "bytes": "3.1.2", @@ -10537,22 +9068,6 @@ "node": ">=0.10.0" } }, - "node_modules/react-animate-height": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/react-animate-height/-/react-animate-height-2.1.2.tgz", - "integrity": "sha512-A9jfz/4CTdsIsE7WCQtO9UkOpMBcBRh8LxyHl2eoZz1ki02jpyUL5xt58gabd0CyeLQ8fRyQ+s2lyV2Ufu8Owg==", - "dependencies": { - "classnames": "^2.2.5", - "prop-types": "^15.6.1" - }, - "engines": { - "node": ">= 6.0.0" - }, - "peerDependencies": { - "react": ">=15.6.2", - "react-dom": ">=15.6.2" - } - }, "node_modules/react-dom": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", @@ -10566,17 +9081,6 @@ "react": "17.0.2" } }, - "node_modules/react-easy-swipe": { - "version": "0.0.21", - "resolved": "https://registry.npmjs.org/react-easy-swipe/-/react-easy-swipe-0.0.21.tgz", - "integrity": "sha512-OeR2jAxdoqUMHIn/nS9fgreI5hSpgGoL5ezdal4+oO7YSSgJR8ga+PkYGJrSrJ9MKlPcQjMQXnketrD7WNmNsg==", - "dependencies": { - "prop-types": "^15.5.8" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/react-fast-compare": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", @@ -10629,11 +9133,6 @@ "react": ">=16.6.0" } }, - "node_modules/react-player/node_modules/memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" - }, "node_modules/react-redux": { "version": "7.2.8", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.8.tgz", @@ -10680,73 +9179,6 @@ "react": ">=16.8.0" } }, - "node_modules/react-responsive-carousel": { - "version": "3.2.23", - "resolved": "https://registry.npmjs.org/react-responsive-carousel/-/react-responsive-carousel-3.2.23.tgz", - "integrity": "sha512-pqJLsBaKHWJhw/ItODgbVoziR2z4lpcJg+YwmRlSk4rKH32VE633mAtZZ9kDXjy4wFO+pgUZmDKPsPe1fPmHCg==", - "dependencies": { - "classnames": "^2.2.5", - "prop-types": "^15.5.8", - "react-easy-swipe": "^0.0.21" - } - }, - "node_modules/react-svg-core": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/react-svg-core/-/react-svg-core-3.0.3.tgz", - "integrity": "sha512-Ws3eM3xCAwcaYeqm4Ajcz3zxBYNI6BeTWWhFR0cpOT+pWuVtozgHYK9xUM0S/ilapZgYMQDe49XgOxpvooFq4w==", - "dev": true, - "dependencies": { - "@babel/core": "^7.4.5", - "@babel/plugin-syntax-jsx": "^7.2.0", - "@babel/preset-react": "^7.0.0", - "babel-plugin-react-svg": "^3.0.3", - "lodash.clonedeep": "^4.5.0", - "lodash.isplainobject": "^4.0.6", - "svgo": "^1.2.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/react-svg-loader": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/react-svg-loader/-/react-svg-loader-3.0.3.tgz", - "integrity": "sha512-V1KnIUtvWVvc4xCig34n+f+/74ylMMugB2FbuAF/yq+QRi+WLi2hUYp9Ze3VylhA1D7ZgRygBh3Ojj8S3TPhJA==", - "dev": true, - "dependencies": { - "loader-utils": "^1.2.3", - "react-svg-core": "^3.0.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/react-svg-loader/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/react-svg-loader/node_modules/loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/react-textarea-autosize": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz", @@ -10887,15 +9319,15 @@ } }, "node_modules/rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, "dependencies": { - "resolve": "^1.9.0" + "resolve": "^1.20.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/redux": { @@ -10917,15 +9349,16 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", - "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", "which-builtin-type": "^1.1.3" }, @@ -10936,47 +9369,21 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -10985,44 +9392,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, "node_modules/remarkable": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-2.0.1.tgz", @@ -11166,14 +9535,15 @@ } }, "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==" }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -11184,6 +9554,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -11231,13 +9613,13 @@ } }, "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -11268,15 +9650,18 @@ ] }, "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11296,9 +9681,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", "dev": true }, "node_modules/scheduler": { @@ -11408,9 +9793,9 @@ "dev": true }, "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "dependencies": { "randombytes": "^2.1.0" @@ -11510,28 +9895,31 @@ } }, "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -11589,13 +9977,17 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11606,12 +9998,6 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, - "node_modules/simple-html-tokenizer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/simple-html-tokenizer/-/simple-html-tokenizer-0.1.1.tgz", - "integrity": "sha512-Mc/gH3RvlKvB/gkp9XwgDKEWrSYyefIJPGG8Jk1suZms/rISdUuVEMx5O1WBnTWaScvxXDvGJrZQWblUmQHjkQ==", - "dev": true - }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -11742,9 +10128,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -11810,9 +10196,9 @@ } }, "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", @@ -11824,9 +10210,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==" + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==" }, "node_modules/spdx-ranges": { "version": "2.1.1", @@ -11902,19 +10288,6 @@ "node": ">=0.10.0" } }, - "node_modules/ssr-window": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-4.0.2.tgz", - "integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ==", - "peer": true - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "dev": true - }, "node_modules/stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -11955,35 +10328,57 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.matchall": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", - "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "regexp.prototype.flags": "^1.5.0", - "set-function-name": "^2.0.0", - "side-channel": "^1.0.4" + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.padend": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz", - "integrity": "sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -11993,14 +10388,15 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -12010,28 +10406,31 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12048,6 +10447,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -12078,9 +10490,9 @@ } }, "node_modules/style-loader": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", - "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", "dev": true, "engines": { "node": ">= 12.13.0" @@ -12093,22 +10505,6 @@ "webpack": "^5.0.0" } }, - "node_modules/styled-jss": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/styled-jss/-/styled-jss-2.2.3.tgz", - "integrity": "sha512-1O+Ocl4H6th/7/c01o8K6A42pPfzf9T0GtdJiQGiBJ2rB/blO5oIwVctSY+SqJOAiMUsN7eI82d8+aJxARjN5g==", - "dependencies": { - "deep-extend": "^0.5.0", - "is-observable": "^0.2.0", - "is-react-prop": "^1.0.0", - "jss": "^9.8.0", - "jss-preset-default": "^4.3.0", - "theming": "^1.3.0" - }, - "peerDependencies": { - "react": ">=14" - } - }, "node_modules/stylis": { "version": "3.5.4", "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", @@ -12148,43 +10544,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/svg-inline-loader": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/svg-inline-loader/-/svg-inline-loader-0.8.2.tgz", - "integrity": "sha512-kbrcEh5n5JkypaSC152eGfGcnT4lkR0eSfvefaUJkLqgGjRQJyKDvvEE/CCv5aTSdfXuc+N98w16iAojhShI3g==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "object-assign": "^4.0.1", - "simple-html-tokenizer": "^0.1.1" - } - }, - "node_modules/svg-inline-loader/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/svg-inline-loader/node_modules/loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/svg-react-loader": { "version": "0.4.6", "resolved": "https://registry.npmjs.org/svg-react-loader/-/svg-react-loader-0.4.6.tgz", @@ -12240,60 +10599,10 @@ "node": ">=4.0.0" } }, - "node_modules/svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/svgo/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/svgo/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/swiper": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/swiper/-/swiper-8.4.7.tgz", - "integrity": "sha512-VwO/KU3i9IV2Sf+W2NqyzwWob4yX9Qdedq6vBtS0rFqJ6Fa5iLUJwxQkuD4I38w0WDJwmFl8ojkdcRFPHWD+2g==", + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.0.7.tgz", + "integrity": "sha512-cDfglW1B6uSmB6eB6pNmzDTNLmZtu5bWWa1vak0RU7fOI9qHjMzl7gVBvYSl34b0RU2N11HxxETJqQ5LeqI1cA==", "funding": [ { "type": "patreon", @@ -12304,24 +10613,10 @@ "url": "http://opencollective.com/swiper" } ], - "hasInstallScript": true, - "peer": true, - "dependencies": { - "dom7": "^4.0.4", - "ssr-window": "^4.0.2" - }, "engines": { "node": ">= 4.7.0" } }, - "node_modules/symbol-observable": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", - "integrity": "sha512-6WFhZ1sqIAG3g55T6RJcOYldJmFrdsnM7adeuFUp1aJwo9EWwMFC0zYHNGGyDvJU/aqPzkQyIsMdNek1u9oRzQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/table": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", @@ -12460,9 +10755,9 @@ } }, "node_modules/terser": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.25.0.tgz", - "integrity": "sha512-we0I9SIsfvNUMP77zC9HG+MylwYYsGFSBG8qm+13oud2Yh+O104y614FRbyjpxys16jZwot72Fpi827YvGzuqg==", + "version": "5.29.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.2.tgz", + "integrity": "sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -12478,16 +10773,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", + "@jridgewell/trace-mapping": "^0.3.20", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" + "terser": "^5.26.0" }, "engines": { "node": ">= 10.13.0" @@ -12547,20 +10842,6 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/theming": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/theming/-/theming-1.3.0.tgz", - "integrity": "sha512-ya5Ef7XDGbTPBv5ENTwrwkPUexrlPeiAg/EI9kdlUAZhNlRbCdhMKRgjNX1IcmsmiPcqDQZE6BpSaH+cr31FKw==", - "dependencies": { - "brcast": "^3.0.1", - "is-function": "^1.0.1", - "is-plain-object": "^2.0.1", - "prop-types": "^15.5.8" - }, - "peerDependencies": { - "react": ">=0.15" - } - }, "node_modules/throttleit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", @@ -12586,14 +10867,11 @@ "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" }, "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dependencies": { - "rimraf": "^3.0.0" - }, + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "engines": { - "node": ">=8.17.0" + "node": ">=14.14" } }, "node_modules/to-fast-properties": { @@ -12602,206 +10880,74 @@ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "engines": { "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==", - "dev": true - }, - "node_modules/treeify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", - "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/triple-beam": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", - "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", - "dev": true, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/ts-loader": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", - "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4", - "source-map": "^0.7.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "typescript": "*", - "webpack": "^5.0.0" - } - }, - "node_modules/ts-loader/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ts-loader/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ts-loader/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "is-number": "^7.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=8.0" } }, - "node_modules/ts-loader/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/ts-loader/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.6" } }, - "node_modules/ts-loader/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dependencies": { - "yallist": "^4.0.0" + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/ts-loader/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "engines": { - "node": ">=10" + "node": ">= 4.0.0" } }, - "node_modules/ts-loader/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, + "node_modules/traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==", + "dev": true + }, + "node_modules/treeify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", + "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", "engines": { - "node": ">= 8" + "node": ">=0.6" } }, - "node_modules/ts-loader/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 14.0.0" } }, - "node_modules/ts-loader/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", @@ -12881,29 +11027,30 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -12913,16 +11060,17 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -12932,14 +11080,20 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12987,46 +11141,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/union": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", @@ -13056,12 +11170,6 @@ "node": ">= 0.8" } }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", - "dev": true - }, "node_modules/untildify": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", @@ -13185,23 +11293,17 @@ "requires-port": "^1.0.0" } }, - "node_modules/url-polyfill": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/url-polyfill/-/url-polyfill-1.1.12.tgz", - "integrity": "sha512-mYFmBHCapZjtcNHW0MDq9967t+z4Dmg5CJ0KqysK3+ZbyoNOWQHksGCTWwDhxGXllkWlOc10Xfko6v4a3ucM6A==", - "dev": true - }, "node_modules/url/node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" }, "node_modules/url/node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz", + "integrity": "sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -13258,21 +11360,6 @@ "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", "integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==" }, - "node_modules/util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -13325,18 +11412,10 @@ "extsprintf": "^1.2.0" } }, - "node_modules/warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha512-jMBt6pUrKn5I+OGgtQ4YZLdhIeJmObddh6CsibPxyQ5yPZm1XExSyzC1LCNX7BzhxWgiHmizBWJTHJIjMjTQYQ==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -13356,34 +11435,34 @@ } }, "node_modules/webpack": { - "version": "5.89.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", - "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "version": "5.91.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", + "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", + "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.16.0", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { @@ -13403,44 +11482,42 @@ } }, "node_modules/webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", "colorette": "^2.0.14", - "commander": "^7.0.0", + "commander": "^10.0.1", "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", "webpack-merge": "^5.7.3" }, "bin": { "webpack-cli": "bin/cli.js" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.15.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "4.x.x || 5.x.x" + "webpack": "5.x.x" }, "peerDependenciesMeta": { "@webpack-cli/generators": { "optional": true }, - "@webpack-cli/migrate": { - "optional": true - }, "webpack-bundle-analyzer": { "optional": true }, @@ -13450,35 +11527,41 @@ } }, "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, "engines": { - "node": ">= 10" + "node": ">=14" } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.1.1.tgz", + "integrity": "sha512-NmRVq4AvRQs66dFWyDR4GsFDJggtSi2Yn38MXLk0nffgF9n/AIP4TFBg2TQKYaRAN4sHuKOTiz9BnNCENDLEVA==", "dev": true, "dependencies": { "colorette": "^2.0.10", - "memfs": "^3.4.3", + "memfs": "^4.6.0", "mime-types": "^2.1.31", + "on-finished": "^2.4.1", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } } }, "node_modules/webpack-dev-middleware/node_modules/ajv": { @@ -13535,54 +11618,54 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", - "dev": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz", + "integrity": "sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", "default-gateway": "^6.0.3", "express": "^4.17.3", "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", + "html-entities": "^2.4.0", "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "rimraf": "^5.0.5", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" + "webpack-dev-middleware": "^7.1.0", + "ws": "^8.16.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" + "webpack": "^5.0.0" }, "peerDependenciesMeta": { "webpack": { @@ -13621,12 +11704,76 @@ "ajv": "^8.8.2" } }, + "node_modules/webpack-dev-server/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, + "node_modules/webpack-dev-server/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", + "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", + "dev": true, + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/webpack-dev-server/node_modules/schema-utils": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", @@ -13647,9 +11794,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", "dev": true, "engines": { "node": ">=10.0.0" @@ -13732,9 +11879,9 @@ } }, "node_modules/whatwg-fetch": { - "version": "3.6.19", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz", - "integrity": "sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==", + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", "dev": true }, "node_modules/whatwg-streams": { @@ -13810,31 +11957,34 @@ } }, "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -13850,9 +12000,9 @@ "dev": true }, "node_modules/winston": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.11.0.tgz", - "integrity": "sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==", + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.13.0.tgz", + "integrity": "sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ==", "dev": true, "dependencies": { "@colors/colors": "^1.6.0", @@ -13865,16 +12015,16 @@ "safe-stable-stringify": "^2.3.1", "stack-trace": "0.0.x", "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" + "winston-transport": "^4.7.0" }, "engines": { "node": ">= 12.0.0" } }, "node_modules/winston-transport": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.6.0.tgz", - "integrity": "sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz", + "integrity": "sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==", "dev": true, "dependencies": { "logform": "^2.3.2", @@ -13907,6 +12057,57 @@ "node": ">=8" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", diff --git a/package.json b/package.json index 8145e578..39820cc4 100644 --- a/package.json +++ b/package.json @@ -9,38 +9,25 @@ "license": "SEE LICENSE IN LICENSE", "main": "lib/webchat/index.js", "scripts": { - "build": "npm run bundle", - "bundle": "npm run webchat && npm run webchat-legacy && npm run date-picker && npm run date-picker-legacy && npm run rating && npm run rating-legacy && npm run speech-input && npm run speech-input-legacy && npm run speech-output && npm run speech-output-legacy && npm run messenger && npm run messenger-legacy && npm run message-renderer && npm run adaptivecards && npm run adaptivecards-legacy && npm run attachments && npm run attachments-legacy && npm run full-screen-notification && npm run full-screen-notification-legacy", + "build": "npm run webchat && npm run rating && npm run speech-input && npm run speech-output && npm run full-screen-notification", "update-license": "node update-license.js", "dev": "webpack-dev-server --config webpack.dev.js --host 0.0.0.0", - "message-renderer": "webpack --config webpack.message-renderer.production.js", - "adaptivecards-legacy": "webpack --config webpack.production-plugin.adaptivecards.legacy.js", - "adaptivecards": "webpack --config webpack.production-plugin.adaptivecards.js", - "date-picker-legacy": "webpack --config webpack.production-plugin.date-picker.legacy.js", - "date-picker": "webpack --config webpack.production-plugin.date-picker.js", - "full-screen-notification-legacy": "webpack --config webpack.production-plugin.full-screen-notification.legacy.js", "full-screen-notification": "webpack --config webpack.production-plugin.full-screen-notification.js", - "messenger": "webpack --config webpack.production-plugin.messenger.js", - "messenger-legacy": "webpack --config webpack.production-plugin.messenger.legacy.js", - "rating-legacy": "webpack --config webpack.production-plugin.rating.legacy.js", "rating": "webpack --config webpack.production-plugin.rating.js", - "speech-input-legacy": "webpack --config webpack.production-plugin.speech-input.legacy.js", "speech-input": "webpack --config webpack.production-plugin.speech-input.js", - "speech-output-legacy": "webpack --config webpack.production-plugin.speech-output.legacy.js", "speech-output": "webpack --config webpack.production-plugin.speech-output.js", - "webchat-legacy": "webpack --config webpack.production.legacy.js", "webchat": "webpack --config webpack.production.js", - "attachments-legacy": "webpack --config webpack.production-plugin.attachments.legacy.js", - "attachments": "webpack --config webpack.production-plugin.attachments.js", "cypress:open": "cypress open", "cypress:serve": "http-server -a localhost -p 8787 dist/", "cypress:run": "cypress run", "test:cypress": "run-p -r cypress:serve cypress:run", "test": "npm run test:cypress", - "pretest": "npm run bundle", + "pretest": "npm run build", "prettier:check": "prettier --check --config .prettierrc.json src/", "tsc:check": "tsc --noEmit", - "lint": "eslint src/" + "lint": "eslint src/", + "deps:check": "npx -y depcheck", + "deps:analyze": "npx -y webpack-bundle-analyzer stats.json dist" }, "dependencies": { "@braintree/sanitize-url": "^6.0.0", @@ -48,49 +35,34 @@ "@cognigy/socket-client": "5.0.0-beta.10", "@emotion/cache": "^10.0.29", "@emotion/react": "^11.7.1", + "@emotion/serialize": "1.1.3", "@emotion/styled": "^11.6.0", "@reduxjs/toolkit": "^2.2.3", "@types/react-transition-group": "4.4.10", - "adaptivecards": "^2.10.0", "axios": "1.6.4", "classnames": "2.3.2", "cypress-real-events": "^1.7.0", "dompurify": "^2.0.7", - "flatpickr": "4.6.3", - "immutable": "^4.0.0-rc.12", "license-checker": "25.0.1", "lodash": "^4.17.21", - "memoize-one": "^6.0.0", "moment": "^2.29.4", - "path-parse": "^1.0.7", "react": "^17.0.2", - "react-animate-height": "^2.0.23", "react-dom": "^17.0.2", "react-hot-toast": "^2.4.1", - "react-player": "^2.9.0", "react-redux": "7.2.8", "react-responsive": "9.0.2", - "react-responsive-carousel": "^3.2.22", "react-textarea-autosize": "8.5.3", "react-transition-group": "4.4.5", "redux": "^4.0.4", - "remarkable": "^2.0.1", - "styled-jss": "^2.2.3", "stylis-rtl": "^1.0.1", "tinycolor2": "1.6.0", - "uifx": "^2.0.7" + "uifx": "^2.0.7", + "uuid": "9.0.1" }, "devDependencies": { "@babel/cli": "^7.16.7", "@babel/core": "^7.16.7", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-object-assign": "^7.16.7", - "@babel/plugin-transform-runtime": "^7.16.7", - "@babel/preset-env": "^7.16.7", "@babel/preset-react": "^7.16.7", "@babel/preset-typescript": "^7.16.7", "@babel/runtime": "^7.16.7", @@ -106,7 +78,6 @@ "@typescript-eslint/eslint-plugin": "^5.10.0", "@typescript-eslint/parser": "^5.10.0", "babel-loader": "^8.2.3", - "babel-polyfill": "^6.26.0", "compression-webpack-plugin": "^9.2.0", "css-loader": "^6.5.1", "cypress": "^9.4.1", @@ -118,20 +89,16 @@ "idempotent-babel-polyfill": "^7.4.4", "npm-run-all": "^4.1.5", "prettier": "^2.5.1", - "react-svg-loader": "^3.0.3", "redux-devtools-extension": "^2.13.8", "style-loader": "^3.3.1", - "svg-inline-loader": "^0.8.2", "svg-react-loader": "^0.4.6", "terser-webpack-plugin": "^5.3.0", - "ts-loader": "^9.2.6", "typesafe-actions": "^3.0.0", "typescript": "^3.7.2", "url-loader": "^4.1.1", - "url-polyfill": "^1.1.12", - "webpack": "^5.65.0", - "webpack-cli": "^4.9.1", - "webpack-dev-server": "^4.7.2", + "webpack": "^5.90.3", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "5.0.4", "whatwg-fetch": "^3.6.2", "zlib": "^1.0.5" }, diff --git a/src/message-renderer/MessageRenderer.tsx b/src/message-renderer/MessageRenderer.tsx deleted file mode 100644 index 255a2b29..00000000 --- a/src/message-renderer/MessageRenderer.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import React from "react"; -import { ThemeProvider } from "@emotion/react"; -import { FC, useMemo, useCallback } from "react"; -import { IMessage } from "../common/interfaces/message"; -import { IWebchatConfig } from "../common/interfaces/webchat-config"; -import { - getRegisteredMessagePlugins, - prepareMessagePlugins, -} from "../plugins/helper"; -import regularMessagePlugin from "../webchat-ui/components/plugins/message/regular"; -import MessagePluginRenderer from "../webchat-ui/components/plugins/MessagePluginRenderer"; -import styled from '@emotion/styled'; -import { createWebchatTheme } from "../webchat-ui/style"; -import { getMessageRendererConfig } from "./getMessageRendererConfig"; -import { getMessageRendererPlugins } from "./getMessageRendererPlugins"; - -interface IMessageRendererProps { - message: IMessage; - config?: IWebchatConfig; -} - -const MessageRenderer: FC = (props) => { - const { message, config } = props; - - const actualConfig = useMemo(() => getMessageRendererConfig(config), [config]); - - const onEmitAnalytics = useCallback(console.log.bind(console), []); - const onSendMessage = useCallback( - (message) => console.log("sending message", message), - [] - ); - - const plugins = useMemo(() => getMessageRendererPlugins(), []); - - const theme = useMemo(() => createWebchatTheme({ - primaryColor: actualConfig.settings.colors.primaryColor - }), [actualConfig.settings.colors.primaryColor]); - - return ( - -
- -
-
- ); -}; - -export default MessageRenderer; diff --git a/src/message-renderer/embed.ts b/src/message-renderer/embed.ts deleted file mode 100644 index f2dc4761..00000000 --- a/src/message-renderer/embed.ts +++ /dev/null @@ -1,12 +0,0 @@ -import React from "react"; -import { MessageRenderer } from "."; -import "../plugins/messenger"; -import "../plugins/adaptivecards"; -import "../plugins/attachments"; -// @ts-ignore -window.MessageRenderer = MessageRenderer; - -// @ts-ignore -window.__COGNIGY_WEBCHAT = { - React, -}; diff --git a/src/message-renderer/getMessageRendererConfig.ts b/src/message-renderer/getMessageRendererConfig.ts deleted file mode 100644 index 6a4e6ca4..00000000 --- a/src/message-renderer/getMessageRendererConfig.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { IWebchatConfig } from "../common/interfaces/webchat-config"; -import { getInitialState } from "../webchat/store/config/config-reducer"; - -/** - * returns a full webchat config based on a partial webchat config - * passed as options that's used for the message renderer - * - * @param options - * @returns - */ -export const getMessageRendererConfig = (options?: IWebchatConfig): IWebchatConfig => { - const defaultConfig = getInitialState(); - - return { - ...defaultConfig, - ...options, - settings: { - ...defaultConfig.settings, - ...options?.settings, - }, - }; -}; diff --git a/src/message-renderer/getMessageRendererPlugins.ts b/src/message-renderer/getMessageRendererPlugins.ts deleted file mode 100644 index f0de8ff3..00000000 --- a/src/message-renderer/getMessageRendererPlugins.ts +++ /dev/null @@ -1,13 +0,0 @@ -import React from "react"; -import { getRegisteredMessagePlugins, prepareMessagePlugins } from "../plugins/helper"; -import regularMessagePlugin from "../webchat-ui/components/plugins/message/regular"; -import styled from '@emotion/styled'; - -/** - * returns a list of ready-to-use message plugins for the message renderer - */ -export const getMessageRendererPlugins = () => - prepareMessagePlugins([...getRegisteredMessagePlugins(), regularMessagePlugin], { - React, - styled, - }); diff --git a/src/message-renderer/index.ts b/src/message-renderer/index.ts deleted file mode 100644 index 70732af4..00000000 --- a/src/message-renderer/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./message-renderer"; diff --git a/src/message-renderer/message-renderer.tsx b/src/message-renderer/message-renderer.tsx deleted file mode 100644 index 11cf17a1..00000000 --- a/src/message-renderer/message-renderer.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import * as React from "react"; -import * as ReactDOM from "react-dom"; -import { IMessage } from "../common/interfaces/message"; -import { IWebchatConfig } from "../common/interfaces/webchat-config"; -import MessageRendererComponent from "./MessageRenderer"; -import { getMessageRendererConfig } from "./getMessageRendererConfig"; -import { getMessageRendererPlugins } from "./getMessageRendererPlugins"; -import { getPluginsForMessage } from "../plugins/helper"; - -export class MessageRenderer { - static renderMessage(message: IMessage, target: HTMLElement, config?: IWebchatConfig) { - ReactDOM.render(, target); - } - static getPluginsForMessage(message: IMessage, config?: IWebchatConfig) { - const fullConfig = getMessageRendererConfig(config); - const plugins = getMessageRendererPlugins(); - const matcher = getPluginsForMessage(plugins, fullConfig); - const matchedPlugins = matcher(message); - - return matchedPlugins; - } - static isMessageSupported(message: IMessage, config?: IWebchatConfig) { - return MessageRenderer.getPluginsForMessage(message, config).length > 0; - } -} diff --git a/src/plugins/adaptivecards/components/Adaptivecard.tsx b/src/plugins/adaptivecards/components/Adaptivecard.tsx deleted file mode 100644 index db53dc72..00000000 --- a/src/plugins/adaptivecards/components/Adaptivecard.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import React, { memo, useCallback} from 'react'; - -import { FC, useEffect, useRef } from "react"; -import { Action, AdaptiveCard as MSAdaptiveCard, HostConfig } from 'adaptivecards'; -import { Remarkable } from 'remarkable'; -import { sanitizeHTML } from '../../../webchat/helper/sanitize'; - -interface IAdaptiveCardProps { - hostConfig?: Partial; - onExecuteAction?: (actionJson: any) => void; - setCardOffsetTop?: (offsetTop: number) => void; - payload?: boolean; -} - -// it's designed to be used as a signleton instance, following their documentation -const md = new Remarkable(); - -/** - * Manually add Support for rending Markdown, as described here: - * https://www.npmjs.com/package/adaptivecards#user-content-option-2-any-other-3rd-party-library - * - * We went for "remarkable" over the suggested "markdown-it", because - * - it has a smaller footprint - * - it supports all standard features - * - we already do have our own "sanitizing" approach which we can reuse here - */ -MSAdaptiveCard.onProcessMarkdown = (text, result) => { - const html = md.render(text); - const saneHtml = sanitizeHTML(html); - - result.outputHtml = saneHtml; - result.didProcess = true; -} - -/** - * Inspired by Microsoft's (not publically released) adaptivecards-react package - * https://github.com/microsoft/AdaptiveCards/blob/5b66a52e0e0cee5074a42dcbe688d608e0327ae4/source/nodejs/adaptivecards-react/src/adaptive-card.tsx - */ -const AdaptiveCard: FC = (props) => { - const { payload, hostConfig, onExecuteAction, setCardOffsetTop } = props; - - const targetRef = useRef(null); - const cardRef = useRef( - new MSAdaptiveCard() - ); - const executeAction = useCallback( - (a: Action) => { - onExecuteAction?.(a); - }, - [onExecuteAction] - ); - - useEffect(() => { - cardRef.current.onExecuteAction = executeAction; - }, [executeAction]); - - useEffect(() => { - cardRef.current.hostConfig = new HostConfig(hostConfig); - }, [hostConfig]); - - useEffect(() => { - if (!targetRef.current) { - return; - } - const card = cardRef.current; - - try { - card.parse(payload); - const result = card.render() as HTMLElement; - targetRef.current.innerHTML = ''; - targetRef.current.appendChild(result); - setCardOffsetTop && setCardOffsetTop(targetRef.current.offsetTop); - } catch (cardRenderError) { - console.error('Unable to render Card', cardRenderError); - } - }, [hostConfig, payload]); - - return ( -
- ); -} - -export default memo(AdaptiveCard); \ No newline at end of file diff --git a/src/plugins/adaptivecards/index.tsx b/src/plugins/adaptivecards/index.tsx deleted file mode 100644 index 58c18fdf..00000000 --- a/src/plugins/adaptivecards/index.tsx +++ /dev/null @@ -1,108 +0,0 @@ -import React, { useCallback, useEffect, useMemo } from 'react'; -import AdaptiveCard from './components/Adaptivecard' -import { registerMessagePlugin } from '../helper'; -import { IMessage } from "../../common/interfaces/message"; -import { IWebchatConfig } from "../../common/interfaces/webchat-config"; -import { updateAdaptiveCardCSSCheaply } from './styles'; - - -const isAdaptiveCard = (message: IMessage, config: IWebchatConfig) => { - - // configurations that should use adaptive cards plugin - const _webchat = message.data?._cognigy?._webchat?.adaptiveCard; - const _defaultPreview = message.data?._cognigy?._defaultPreview?.adaptiveCard; - const _plugin = message.data?._plugin?.type === "adaptivecards"; - const defaultPreviewEnabled = config.settings.widgetSettings.enableDefaultPreview; - - if (message.data?._cognigy?._defaultPreview?.message && defaultPreviewEnabled){ - return false; - } - - if (_defaultPreview && defaultPreviewEnabled || - _webchat && _defaultPreview && !defaultPreviewEnabled || - _webchat || - _plugin){ - return true; - } - - return false; -} - -const AdaptiveCards = (props) => { - - const { theme, onSendMessage, message, config, setCardOffsetTop } = props; - - const getCardPayload = (message: IMessage) => { - - const _webchat = message.data?._cognigy?._webchat?.adaptiveCard; - const _defaultPreview = message.data?._cognigy?._defaultPreview?.adaptiveCard; - const _plugin = message.data?._plugin?.payload; - const defaultPreviewEnabled = (config as IWebchatConfig).settings.widgetSettings.enableDefaultPreview; - - if (_webchat && _defaultPreview && !defaultPreviewEnabled){ - return _webchat - } - if (_defaultPreview && defaultPreviewEnabled){ - return _defaultPreview - } - return _plugin || _webchat - } - - - useEffect(() => { - updateAdaptiveCardCSSCheaply(theme); - }, []); - - const cardPayload = getCardPayload(message); - - const onExecuteAction = useCallback((action) => { - switch (action._propertyBag?.type) { - case "Action.Submit": { - onSendMessage("", { - adaptivecards: action._processedData, - request: { value: action._processedData } - }); - - return; - } - - case "Action.OpenUrl": { - const url = action._propertyBag?.url; - window.open(url, "_blank"); - - return; - } - } - }, [onSendMessage]); - - const card = useMemo(() => { - const hostConfig = { - "fontFamily": theme.fontFamily - } - - return ( - - ); - }, [cardPayload]); - - return ( -
- {card} -
- ) -} - -const adaptivecardsPlugin = { - match: isAdaptiveCard, - component: AdaptiveCards, - options: { - fullwidth: true - } -} - -registerMessagePlugin(adaptivecardsPlugin); diff --git a/src/plugins/adaptivecards/styles.ts b/src/plugins/adaptivecards/styles.ts deleted file mode 100644 index 367979d3..00000000 --- a/src/plugins/adaptivecards/styles.ts +++ /dev/null @@ -1,66 +0,0 @@ -import memoize from 'memoize-one'; - -// create a container element for adaptive card styles -const styleEl = document.createElement('style'); -styleEl.type = 'text/css'; -styleEl.id = 'accss'; - -// add container element to the body -const head = document.head || document.getElementsByTagName('head')[0]; -head.appendChild(styleEl); - - -// calculate css based on a theme -export const getAdaptiveCardCSS = theme => ` -.ac-pushbutton, -.ac-pushbutton.subdued { - background-color: transparent; - border: 1px solid ${theme.primaryColor}; - color: ${theme.primaryColor}; - - cursor: pointer; - height: 40px; - - padding: ${theme.unitSize}px ${theme.unitSize * 2}px; - border-radius: ${theme.unitSize * 2}px; -} - -.ac-pushbutton.style-default.expandable.expanded { - background: ${theme.primaryGradient}; - color: ${theme.primaryContrastColor}; - border: 1px solid ${theme.primaryColor}; - - cursor: pointer; - height: 40px; - - padding: ${theme.unitSize}px ${theme.unitSize * 2}px; - border-radius: ${theme.unitSize * 2}px; -} - -/*.ac-input { - border: 1px solid ${theme.primaryColor}; - height: 40; - padding: ${theme.unitSize}px ${theme.unitSize * 2}px; -}*/ - -.adaptivecard-wrapper { - width: 100%; - padding-left: ${theme.unitSize * 2}px; - padding-right: ${theme.unitSize * 2}px; - box-sizing: border-box; -} - -.adaptivecard-wrapper > * { - background-color: white; - border-radius: ${theme.unitSize}px; - box-shadow: ${theme.shadow}; -} -`; - -// updates the container style element with styles form the render function -const updateAdaptiveCardCSS = theme => { - styleEl.innerHTML = getAdaptiveCardCSS(theme); -} - -// updates only if necessary -export const updateAdaptiveCardCSSCheaply = memoize(updateAdaptiveCardCSS); \ No newline at end of file diff --git a/src/plugins/attachments/AttachmentsMessage.tsx b/src/plugins/attachments/AttachmentsMessage.tsx deleted file mode 100644 index e67825fc..00000000 --- a/src/plugins/attachments/AttachmentsMessage.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import { sanitizeUrl } from '@braintree/sanitize-url'; -import React, { memo } from 'react'; -import { IUploadFileMetaData } from '../../common/interfaces/file-upload'; -import { MessageComponentProps } from '../../common/interfaces/message-plugin'; -import styled from '@emotion/styled'; -import { getMessengerListTemplate } from '../messenger/MessengerPreview/components/MessengerListTemplate/MessengerListTemplate'; -import { IFBMURLButton } from '../messenger/MessengerPreview/interfaces/Button.interface'; -import { IFBMListTemplateElement, IFBMListTemplatePayload } from '../messenger/MessengerPreview/interfaces/ListTemplatePayload.interface'; - -const MessengerListTemplate = getMessengerListTemplate({ React, styled }); -const AttachmentsMessage = (props: MessageComponentProps) => { - const { message, config, color, onEmitAnalytics } = props - const attachments = message.data.attachments as IUploadFileMetaData[]; - - const payloadElements: IFBMListTemplateElement[] = []; - - if (message.text) { - payloadElements.push({ - title: message.text, - subtitle: "", - image_url: "", - buttons: [] - }) - } - - attachments.map(item => { - const isImage = item?.url && item?.mimeType?.startsWith("image/"); - - payloadElements.push({ - title: "", - subtitle: item?.fileName || "", - image_url: isImage ? item?.url : "", - buttons: [{ - type: "web_url", - url: item?.url, - title: "Open", - target: "_blank", - }] - }) - }) - - const payload: IFBMListTemplatePayload = { - template_type: "list", - buttons: [], - top_element_style: "compact", - elements: payloadElements, - } - - const onAction = (e, action) => { - onEmitAnalytics('action', action); - if (action.type === 'web_url' && action.url) { - const url = (() => { - const { url: buttonUrl } = action as IFBMURLButton; - if (config.settings.layout.disableUrlButtonSanitization) - return buttonUrl; - - return sanitizeUrl(buttonUrl) - })(); - - // prevent no-ops from sending you to a blank page - if (url === 'about:blank') - return; - - const target = (action as IFBMURLButton).target === "_self" ? "_self" : "_blank"; - - window.open(url, target); - } - }; - - return ( - - ); -}; - -export default memo(AttachmentsMessage); \ No newline at end of file diff --git a/src/plugins/attachments/index.ts b/src/plugins/attachments/index.ts deleted file mode 100644 index 7555fc52..00000000 --- a/src/plugins/attachments/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { MessagePlugin } from "../../common/interfaces/message-plugin"; -import { registerMessagePlugin } from "../helper"; -import AttachmentsMessage from "./AttachmentsMessage"; - -const AttachmentsMessagePlugin: MessagePlugin = { - match: (message) => message.data?.attachments?.length > 0, - component: AttachmentsMessage, -}; - -registerMessagePlugin(AttachmentsMessagePlugin); - -export default AttachmentsMessagePlugin; \ No newline at end of file diff --git a/src/plugins/date-picker/components/flatpicker-plugins/confirmDate/confirmDate.css b/src/plugins/date-picker/components/flatpicker-plugins/confirmDate/confirmDate.css deleted file mode 100644 index 9508ea94..00000000 --- a/src/plugins/date-picker/components/flatpicker-plugins/confirmDate/confirmDate.css +++ /dev/null @@ -1,24 +0,0 @@ -.flatpickr-confirm { - height: 40px; - max-height: 0px; - visibility: hidden; - display: flex; - justify-content: center; - align-items: center; - cursor: pointer; - background: rgba(0,0,0,0.06) -} - -.flatpickr-confirm svg path { - fill: inherit; -} - -.flatpickr-confirm.darkTheme { - color: white; - fill: white; -} - -.flatpickr-confirm.visible { - max-height: 40px; - visibility: visible -} diff --git a/src/plugins/date-picker/components/flatpicker-plugins/confirmDate/confirmDate.ts b/src/plugins/date-picker/components/flatpicker-plugins/confirmDate/confirmDate.ts deleted file mode 100644 index bf686ae6..00000000 --- a/src/plugins/date-picker/components/flatpicker-plugins/confirmDate/confirmDate.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Instance } from "../types/instance"; -import { Plugin } from "../types/options"; - -export interface Config { - confirmIcon?: string; - confirmText?: string; - showAlways?: boolean; - theme?: string; -} - -const defaultConfig: Config = { - confirmIcon: - " ", - confirmText: "Choose date", - showAlways: false, - theme: "light", -}; - -function confirmDatePlugin(pluginConfig: Config): Plugin { - const config = { ...defaultConfig, ...pluginConfig }; - let confirmContainer: HTMLDivElement; - - return function(fp: Instance) { - if (fp.config.noCalendar || fp.isMobile) return {}; - return { - onKeyDown(_: Date[], __: string, ___: Instance, e: KeyboardEvent) { - if (fp.config.enableTime && e.key === "Tab" && e.target === fp.amPM) { - e.preventDefault(); - confirmContainer.focus(); - } else if (e.key === "Enter" && e.target === confirmContainer) - fp.close(); - }, - - onReady() { - confirmContainer = fp._createElement( - "div", - `flatpickr-confirm ${config.showAlways ? "visible" : ""} ${ - config.theme - }Theme`, - config.confirmText - ); - - confirmContainer.tabIndex = -1; - confirmContainer.innerHTML += config.confirmIcon; - - confirmContainer.addEventListener("click", fp.close); - fp.calendarContainer.appendChild(confirmContainer); - }, - ...(!config.showAlways - ? { - onChange: function(_: Date[], dateStr: string) { - const showCondition = - fp.config.enableTime || fp.config.mode === "multiple"; - if (dateStr && !fp.config.inline && showCondition) - return confirmContainer.classList.add("visible"); - confirmContainer.classList.remove("visible"); - }, - } - : {}), - }; - }; -} -export default confirmDatePlugin; diff --git a/src/plugins/date-picker/components/flatpicker-plugins/types/globals.ts b/src/plugins/date-picker/components/flatpicker-plugins/types/globals.ts deleted file mode 100644 index 4ad2cbfa..00000000 --- a/src/plugins/date-picker/components/flatpicker-plugins/types/globals.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Options } from "./options"; -import { Instance, FlatpickrFn } from "./instance"; - -declare global { - interface HTMLElement { - flatpickr: (config?: Options) => Instance; - _flatpickr?: Instance; - } - - interface NodeList { - flatpickr: (config?: Options) => Instance | Instance[]; - } - - interface HTMLCollection { - flatpickr: (config?: Options) => Instance | Instance[]; - } - - interface Window { - flatpickr: FlatpickrFn; - } - - interface Date { - fp_incr: (n: number) => Date; - } -} diff --git a/src/plugins/date-picker/components/flatpicker-plugins/types/instance.ts b/src/plugins/date-picker/components/flatpicker-plugins/types/instance.ts deleted file mode 100644 index 66ad04ae..00000000 --- a/src/plugins/date-picker/components/flatpicker-plugins/types/instance.ts +++ /dev/null @@ -1,166 +0,0 @@ -import { DateOption, Options, ParsedOptions } from "./options"; -import { Locale, CustomLocale, key as LocaleKey } from "./locale"; - -// import { RevFormat, Formats, TokenRegex } from "../utils/formatting"; - -export interface Elements { - element: HTMLElement; - input: HTMLInputElement; - altInput?: HTMLInputElement; - _input: HTMLInputElement; - mobileInput?: HTMLInputElement; - mobileFormatStr?: string; - - selectedDateElem?: DayElement; - todayDateElem?: DayElement; - - _positionElement: HTMLElement; - weekdayContainer: HTMLDivElement; - calendarContainer: HTMLDivElement; - innerContainer?: HTMLDivElement; - rContainer?: HTMLDivElement; - daysContainer?: HTMLDivElement; - days: HTMLDivElement; - - weekWrapper?: HTMLDivElement; - weekNumbers?: HTMLDivElement; - - // month nav - monthNav: HTMLDivElement; - - yearElements: HTMLInputElement[]; - monthElements: HTMLSpanElement[]; - - // month nav getters - currentYearElement: HTMLInputElement; - currentMonthElement: HTMLSpanElement; - - // month nav arrows - _hidePrevMonthArrow: boolean; - _hideNextMonthArrow: boolean; - prevMonthNav: HTMLElement; - nextMonthNav: HTMLElement; - - timeContainer?: HTMLDivElement; - hourElement?: HTMLInputElement; - minuteElement?: HTMLInputElement; - secondElement?: HTMLInputElement; - amPM?: HTMLSpanElement; - - pluginElements: Array; -} - -export interface Formatting { - revFormat: any; - formats: any; - tokenRegex: any; -} - -export type Instance = Elements & - Formatting & { - // Dates - minRangeDate?: Date; - maxRangeDate?: Date; - now: Date; - latestSelectedDateObj?: Date; - _selectedDateObj?: Date; - selectedDates: Date[]; - _initialDate: Date; - - // State - config: ParsedOptions; - l10n: Locale; - - currentYear: number; - currentMonth: number; - - isOpen: boolean; - isMobile: boolean; - - minDateHasTime: boolean; - maxDateHasTime: boolean; - - showTimeInput: boolean; - _showTimeInput: boolean; - - // Methods - changeMonth: ( - value: number, - is_offset?: boolean, - from_keyboard?: boolean - ) => void; - changeYear: (year: number) => void; - clear: (emitChangeEvent?: boolean, toInitial?: boolean) => void; - close: () => void; - destroy: () => void; - isEnabled: (date: DateOption, timeless?: boolean) => boolean; - jumpToDate: (date?: DateOption) => void; - open: (e?: FocusEvent | MouseEvent, positionElement?: HTMLElement) => void; - redraw: () => void; - set: ( - option: keyof Options | { [k in keyof Options]?: Options[k] }, - value?: any - ) => void; - setDate: ( - date: DateOption | DateOption[], - triggerChange?: boolean, - format?: string - ) => void; - toggle: () => void; - - pad: (num: string | number) => string; - parseDate: ( - date: Date | string | number, - givenFormat?: string, - timeless?: boolean - ) => Date | undefined; - formatDate: (dateObj: Date, frmt: string) => string; - - // Internals - - _handlers: { - event: string; - element: Element; - handler: (e?: Event) => void; - options?: { capture?: boolean }; - }[]; - - _bind: ( - element: E | E[], - event: string | string[], - handler: (e?: any) => void - ) => void; - _createElement: ( - tag: keyof HTMLElementTagNameMap, - className: string, - content?: string - ) => E; - _setHoursFromDate: (date: Date) => void; - _debouncedChange: () => void; - __hideNextMonthArrow: boolean; - __hidePrevMonthArrow: boolean; - _positionCalendar: (customPositionElement?: HTMLElement) => void; - - utils: { - getDaysInMonth: (month?: number, year?: number) => number; - }; - }; - -export interface FlatpickrFn { - (selector: Node, config?: Options): Instance; - (selector: ArrayLike, config?: Options): Instance[]; - (selector: string, config?: Options): Instance | Instance[]; - defaultConfig: ParsedOptions; - l10ns: { [k in LocaleKey]?: CustomLocale } & { default: Locale }; - localize: (l10n: CustomLocale) => void; - setDefaults: (config: Options) => void; - parseDate: ( - date: DateOption, - format?: string, - timeless?: boolean - ) => Date | undefined; - formatDate: (date: Date, format: string) => string; - compareDates: (date1: Date, date2: Date, timeless?: boolean) => number; -} - -export type DayElement = HTMLSpanElement & { dateObj: Date; $i: number }; diff --git a/src/plugins/date-picker/components/flatpicker-plugins/types/locale.ts b/src/plugins/date-picker/components/flatpicker-plugins/types/locale.ts deleted file mode 100644 index 65220df7..00000000 --- a/src/plugins/date-picker/components/flatpicker-plugins/types/locale.ts +++ /dev/null @@ -1,163 +0,0 @@ -export type Locale = { - weekdays: { - shorthand: [string, string, string, string, string, string, string]; - longhand: [string, string, string, string, string, string, string]; - }; - months: { - shorthand: [ - string, - string, - string, - string, - string, - string, - string, - string, - string, - string, - string, - string - ]; - longhand: [ - string, - string, - string, - string, - string, - string, - string, - string, - string, - string, - string, - string - ]; - }; - daysInMonth: [ - number, - number, - number, - number, - number, - number, - number, - number, - number, - number, - number, - number - ]; - firstDayOfWeek: number; - ordinal: (nth: number) => string; - rangeSeparator: string; - weekAbbreviation: string; - scrollTitle: string; - toggleTitle: string; - amPM: [string, string]; - yearAriaLabel: string; -}; - -export type CustomLocale = { - ordinal?: Locale["ordinal"]; - daysInMonth?: Locale["daysInMonth"]; - firstDayOfWeek?: Locale["firstDayOfWeek"]; - rangeSeparator?: Locale["rangeSeparator"]; - weekAbbreviation?: Locale["weekAbbreviation"]; - toggleTitle?: Locale["toggleTitle"]; - scrollTitle?: Locale["scrollTitle"]; - yearAriaLabel?: string; - amPM?: Locale["amPM"]; - weekdays: { - shorthand: [string, string, string, string, string, string, string]; - longhand: [string, string, string, string, string, string, string]; - }; - months: { - shorthand: [ - string, - string, - string, - string, - string, - string, - string, - string, - string, - string, - string, - string - ]; - longhand: [ - string, - string, - string, - string, - string, - string, - string, - string, - string, - string, - string, - string - ]; - }; -}; - -export type key = - | "ar" - | "at" - | "az" - | "be" - | "bg" - | "bn" - | "cat" - | "cs" - | "cy" - | "da" - | "de" - | "default" - | "en" - | "eo" - | "es" - | "et" - | "fa" - | "fi" - | "fo" - | "fr" - | "gr" - | "he" - | "hi" - | "hr" - | "hu" - | "id" - | "is" - | "it" - | "ja" - | "ko" - | "km" - | "kz" - | "lt" - | "lv" - | "mk" - | "mn" - | "ms" - | "my" - | "nl" - | "no" - | "pa" - | "pl" - | "pt" - | "ro" - | "ru" - | "si" - | "sk" - | "sl" - | "sq" - | "sr" - | "sv" - | "th" - | "tr" - | "uk" - | "vn" - | "zh" - | "zh_tw"; diff --git a/src/plugins/date-picker/components/flatpicker-plugins/types/options.ts b/src/plugins/date-picker/components/flatpicker-plugins/types/options.ts deleted file mode 100644 index e1d25741..00000000 --- a/src/plugins/date-picker/components/flatpicker-plugins/types/options.ts +++ /dev/null @@ -1,396 +0,0 @@ -import { Instance } from "./instance"; -import { CustomLocale, key as LocaleKey, Locale } from "./locale"; - -export type DateOption = Date | string | number; -export type DateRangeLimit = { from: D; to: D }; -export type DateLimit = - | D - | DateRangeLimit - | ((date: Date) => boolean); - -export type Hook = ( - dates: Date[], - currentDateString: string, - self: Instance, - data?: any -) => void; - -export type HookKey = - | "onChange" - | "onClose" - | "onDayCreate" - | "onDestroy" - | "onKeyDown" - | "onMonthChange" - | "onOpen" - | "onParseConfig" - | "onReady" - | "onValueUpdate" - | "onYearChange" - | "onPreCalendarPosition"; - -export const HOOKS: HookKey[] = [ - "onChange", - "onClose", - "onDayCreate", - "onDestroy", - "onKeyDown", - "onMonthChange", - "onOpen", - "onParseConfig", - "onReady", - "onValueUpdate", - "onYearChange", - "onPreCalendarPosition", -]; - -export type Plugin = (fp: Instance & E) => Options; - -export interface BaseOptions { - /* - Allows the user to enter a date directly input the input field. By default, direct entry is disabled. - */ - allowInput: boolean; - - /* Exactly the same as date format, but for the altInput field */ - altFormat: string; - - /* Show the user a readable date (as per altFormat), but return something totally different to the server.*/ - altInput: boolean; - - /* This class will be added to the input element created by the altInput option. Note that altInput already inherits classes from the original input. */ - altInputClass: string; - - /* Whether to enable animations, such as month transitions */ - animate: boolean; - - /* Instead of body, appends the calendar to the specified node instead. */ - appendTo: HTMLElement; - - /* Defines how the date will be formatted in the aria-label for calendar days, using the same tokens as dateFormat. If you change this, you should choose a value that will make sense if a screen reader reads it out loud. */ - /* Defaults to "F j, Y" */ - ariaDateFormat: string; - - /* - Whether clicking on the input should open the picker. - Set it to false if you only want to open the calendar programmatically - */ - clickOpens: boolean; - - /* Whether calendar should close after date selection */ - closeOnSelect: boolean; - - /* - If "mode" is "multiple", this string will be used to join - selected dates together for the date input value. - */ - conjunction: string; - - /* - A string of characters which are used to define how the date will be displayed in the input box. - See https://chmln.github.io/flatpickr/formatting - */ - dateFormat: string; - - /* The initial selected date(s). */ - defaultDate: DateOption | DateOption[]; - - /* Initial value of the hour element, when no date is selected */ - defaultHour: number; - - /* Initial value of the minute element, when no date is selected */ - defaultMinute: number; - - /* Initial value of the seconds element, when no date is selected */ - defaultSeconds: number; - - /* - Disables certain dates, preventing them from being selected. - See https://chmln.github.io/flatpickr/examples/#disabling-specific-dates */ - disable: DateLimit[]; - - /* Set this to true to always use the non-native picker on mobile devices. -By default, Flatpickr utilizes native datetime widgets unless certain options (e.g. disable) are used. */ - disableMobile: boolean; - - /* Disables all dates except these specified. See https://chmln.github.io/flatpickr/examples/#disabling-all-dates-except-select-few */ - enable: DateLimit[]; - - /* Enables seconds selection in the time picker. - */ - enableSeconds: boolean; - - /* Enables the time picker */ - enableTime: boolean; - - errorHandler: (e: Error) => void; - - /* Allows using a custom date formatting function instead of the built-in. Generally unnecessary. */ - formatDate: (date: Date, format: string, locale: Locale) => string; - - /* If "weekNumbers" are enabled, this is the function that outputs the week number for a given dates, optionally along with other text */ - getWeek: (date: Date) => string | number; - - /* Adjusts the step for the hour input (incl. scrolling) */ - hourIncrement: number; - - /* By default, clicking anywhere outside of calendar/input will close the calendar. - Clicking on elements specified in this option will not close the calendar */ - ignoredFocusElements: HTMLElement[]; - - /* Displays the calendar inline */ - inline: boolean; - - /* The locale, either as a string (e.g. "ru", "en") or as an object. - See https://chmln.github.io/flatpickr/localization/ */ - locale: LocaleKey | CustomLocale; - - /* The maximum date that a user can pick to (inclusive). */ - maxDate: DateOption; - - /* The maximum time that a user can pick to (inclusive). */ - maxTime: DateOption; - - /* The minimum date that a user can start picking from (inclusive). */ - minDate: DateOption; - - /* The minimum time that a user can start picking from (inclusive). */ - minTime: DateOption; - - /* Adjusts the step for the minute input (incl. scrolling) - Defaults to 5 */ - minuteIncrement: number; - - /* Date selection mode, defaults to "single" */ - mode: "single" | "multiple" | "range" | "time"; - - /* HTML for the right arrow icon, used to switch months. */ - nextArrow: string; - - /* Hides the day selection in calendar. -Use it along with "enableTime" to create a time picker. */ - noCalendar: boolean; - - now?: DateOption; - - /* Fires when the selected dates have changed - when a date is picked or cleared, by user or programmatically */ - onChange: Hook | Hook[]; - - /* Fires when the calendar is closed */ - onClose: Hook | Hook[]; - - /* Fires for every day cell in the calendar, where the fourth argument is the html element of the cell. See https://chmln.github.io/flatpickr/events/#ondaycreate*/ - onDayCreate: Hook | Hook[]; - - /* Fires before the calendar instance is destroyed */ - onDestroy: Hook | Hook[]; - - /* Fires when valid keyboard input for calendar is detected */ - onKeyDown: Hook | Hook[]; - - /* Fires after the month has changed */ - onMonthChange: Hook | Hook[]; - - /* Fires after the calendar is opened */ - onOpen: Hook | Hook[]; - - /* Fires after the configuration for the calendar is parsed */ - onParseConfig: Hook | Hook[]; - - /* Fires once the calendar instance is ready */ - onReady: Hook | Hook[]; - - /* Like onChange, but fires immediately after any date changes */ - onValueUpdate: Hook | Hook[]; - - /* Fires after the year has changed */ - onYearChange: Hook | Hook[]; - - onPreCalendarPosition: Hook | Hook[]; - - /* A custom datestring parser */ - parseDate: (date: string, format: string) => Date; - - /* Plugins. See https://chmln.github.io/flatpickr/plugins/ */ - plugins: Plugin[]; - - /* How the calendar should be positioned with regards to the input. Defaults to "auto" */ - position: "auto" | "above" | "below"; - - /* - The element off of which the calendar will be positioned. - Defaults to the date input - */ - positionElement: Element; - - /* HTML for the left arrow icon, used to switch months. */ - prevArrow: string; - - /* Whether to display the current month name in shorthand mode, e.g. "Sep" instead "September" */ - shorthandCurrentMonth: boolean; - - /* Creates a wrapper to position the calendar. Use this if the input is inside a scrollable element */ - static: boolean; - - showMonths?: number; - - /* Displays time picker in 24 hour mode without AM/PM selection when enabled.*/ - time_24hr: boolean; - - /* Display week numbers left of the calendar. */ - weekNumbers: boolean; - - /* See https://chmln.github.io/flatpickr/examples/#flatpickr-external-elements */ - wrap: boolean; -} - -export type Options = Partial; - -export interface ParsedOptions { - _disable: DateLimit[]; - _enable: DateLimit[]; - _maxDate?: Date; - _maxTime?: Date; - _minDate?: Date; - _minTime?: Date; - allowInput: boolean; - altFormat: string; - altInput: boolean; - altInputClass: string; - animate: boolean; - appendTo?: HTMLElement; - ariaDateFormat: string; - clickOpens: boolean; - closeOnSelect: boolean; - conjunction: string; - dateFormat: string; - defaultDate?: Date | Date[]; - defaultHour: number; - defaultMinute: number; - defaultSeconds: number; - disable: DateLimit[]; - disableMobile: boolean; - enable: DateLimit[]; - enableSeconds: boolean; - enableTime: boolean; - errorHandler: (err: Error) => void; - formatDate?: Options["formatDate"]; - getWeek: (date: Date) => string | number; - hourIncrement: number; - ignoredFocusElements: HTMLElement[]; - inline: boolean; - locale: LocaleKey | CustomLocale; - maxDate?: Date; - maxTime?: Date; - minDate?: Date; - minTime?: Date; - minuteIncrement: number; - mode: BaseOptions["mode"]; - nextArrow: string; - noCalendar: boolean; - now: Date; - onChange: Hook[]; - onClose: Hook[]; - onDayCreate: Hook[]; - onDestroy: Hook[]; - onKeyDown: Hook[]; - onMonthChange: Hook[]; - onOpen: Hook[]; - onParseConfig: Hook[]; - onReady: Hook[]; - onValueUpdate: Hook[]; - onYearChange: Hook[]; - onPreCalendarPosition: Hook[]; - parseDate?: BaseOptions["parseDate"]; - plugins: Plugin[]; - position: BaseOptions["position"]; - positionElement?: HTMLElement; - prevArrow: string; - shorthandCurrentMonth: boolean; - showMonths: number; - static: boolean; - time_24hr: boolean; - weekNumbers: boolean; - wrap: boolean; -} - -export const defaults: ParsedOptions = { - _disable: [], - _enable: [], - allowInput: false, - altFormat: "F j, Y", - altInput: false, - altInputClass: "form-control input", - animate: - typeof window === "object" && - window.navigator.userAgent.indexOf("MSIE") === -1, - ariaDateFormat: "F j, Y", - clickOpens: true, - closeOnSelect: true, - conjunction: ", ", - dateFormat: "Y-m-d", - defaultHour: 12, - defaultMinute: 0, - defaultSeconds: 0, - disable: [], - disableMobile: false, - enable: [], - enableSeconds: false, - enableTime: false, - errorHandler: (err: Error) => - typeof console !== "undefined" && console.warn(err), - getWeek: (givenDate: Date) => { - const date = new Date(givenDate.getTime()); - date.setHours(0, 0, 0, 0); - - // Thursday in current week decides the year. - date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7)); - - // January 4 is always in week 1. - var week1 = new Date(date.getFullYear(), 0, 4); - - // Adjust to Thursday in week 1 and count number of weeks from date to week1. - return ( - 1 + - Math.round( - ((date.getTime() - week1.getTime()) / 86400000 - - 3 + - ((week1.getDay() + 6) % 7)) / - 7 - ) - ); - }, - hourIncrement: 1, - ignoredFocusElements: [], - inline: false, - locale: "default", - minuteIncrement: 5, - mode: "single", - nextArrow: - "", - noCalendar: false, - now: new Date(), - onChange: [], - onClose: [], - onDayCreate: [], - onDestroy: [], - onKeyDown: [], - onMonthChange: [], - onOpen: [], - onParseConfig: [], - onReady: [], - onValueUpdate: [], - onYearChange: [], - onPreCalendarPosition: [], - plugins: [], - position: "auto", - positionElement: undefined, - prevArrow: - "", - shorthandCurrentMonth: false, - showMonths: 1, - static: false, - time_24hr: false, - weekNumbers: false, - wrap: false, -}; diff --git a/src/plugins/date-picker/components/react-flatpickr/Readme.md b/src/plugins/date-picker/components/react-flatpickr/Readme.md deleted file mode 100644 index 7b5e6b43..00000000 --- a/src/plugins/date-picker/components/react-flatpickr/Readme.md +++ /dev/null @@ -1,60 +0,0 @@ - -[![NPM version][npm-img]][npm-url] -[![License][license-img]][license-url] -[![Dependency status][david-img]][david-url] - -# react-flatpickr - -[Flatpickr](https://github.com/chmln/flatpickr) for React. - -## Usage - -```jsx -import 'flatpickr/dist/themes/material_green.css' - -import Flatpickr from 'react-flatpickr' -import { Component } from 'react' - -class App extends Component { - constructor() { - super(); - - this.state = { - date: new Date() - }; - } - - render() { - const { date } = this.state; - return ( - { this.setState({date}) }} /> - ) - } -} -``` -* `flatpickr options`: you can pass all `flatpickr parameters` to `props.options` -* All flatpickr [hooks][hooks] can be passed as a react prop, or to `props.options` - -```jsx - -``` - -### Themes -Please import themes directly from the `flatpickr` dependency. In most cases, you should just be able to `import 'flatpickr/dist/themes/theme.css'`, but in some cases npm or yarn may install `flatpickr` in `node_modules/react-flatpickr/node_modules/flatpickr`. If that happens, removing your `node_modules` dir and reinstalling should put flatpickr in the root `node_modules` dir, or you can import from `react-flatpickr/node_modules/flatpickr` manually. - -## License -MIT - -[npm-img]: https://img.shields.io/npm/v/react-flatpickr.svg?style=flat-square -[npm-url]: https://npmjs.org/package/react-flatpickr -[travis-img]: https://img.shields.io/travis/coderhaoxin/react-flatpickr.svg?style=flat-square -[travis-url]: https://travis-ci.org/coderhaoxin/react-flatpickr -[codecov-img]: https://img.shields.io/codecov/c/github/coderhaoxin/react-flatpickr.svg?style=flat-square -[codecov-url]: https://codecov.io/github/coderhaoxin/react-flatpickr?branch=master -[license-img]: https://img.shields.io/badge/license-MIT-green.svg?style=flat-square -[license-url]: http://opensource.org/licenses/MIT -[david-img]: https://img.shields.io/david/coderhaoxin/react-flatpickr.svg?style=flat-square -[david-url]: https://david-dm.org/coderhaoxin/react-flatpickr -[hooks]: https://chmln.github.io/flatpickr/events/#hooks diff --git a/src/plugins/date-picker/components/react-flatpickr/build/index.js b/src/plugins/date-picker/components/react-flatpickr/build/index.js deleted file mode 100644 index b3c6bdbe..00000000 --- a/src/plugins/date-picker/components/react-flatpickr/build/index.js +++ /dev/null @@ -1,168 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || 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; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _react = require('react'); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = require('prop-types'); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _flatpickr = require('flatpickr'); - -var _flatpickr2 = _interopRequireDefault(_flatpickr); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var hooks = ['onChange', 'onOpen', 'onClose', 'onMonthChange', 'onYearChange', 'onReady', 'onValueUpdate', 'onDayCreate']; -var hookPropType = _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.arrayOf(_propTypes2.default.func)]); - -var DateTimePicker = function (_Component) { - _inherits(DateTimePicker, _Component); - - function DateTimePicker() { - _classCallCheck(this, DateTimePicker); - - return _possibleConstructorReturn(this, (DateTimePicker.__proto__ || Object.getPrototypeOf(DateTimePicker)).apply(this, arguments)); - } - - _createClass(DateTimePicker, [{ - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(props) { - var _this2 = this; - - var options = props.options; - - var prevOptions = this.props.options; - - // Add prop hooks to options - hooks.forEach(function (hook) { - if (props.hasOwnProperty(hook)) { - options[hook] = props[hook]; - } - // Add prev ones too so we can compare against them later - if (_this2.props.hasOwnProperty(hook)) { - prevOptions[hook] = _this2.props[hook]; - } - }); - - var optionsKeys = Object.getOwnPropertyNames(options); - - for (var index = optionsKeys.length - 1; index >= 0; index--) { - var key = optionsKeys[index]; - var value = options[key]; - - if (value !== prevOptions[key]) { - // Hook handlers must be set as an array - if (hooks.indexOf(key) !== -1 && !Array.isArray(value)) { - value = [value]; - } - - this.flatpickr.set(key, value); - } - } - - if (props.hasOwnProperty('value') && props.value !== this.props.value) { - this.flatpickr.setDate(props.value, false); - } - } - }, { - key: 'componentDidMount', - value: function componentDidMount() { - var _this3 = this; - - var options = _extends({ - onClose: function onClose() { - _this3.node.blur && _this3.node.blur(); - } - }, this.props.options); - - // Add prop hooks to options - hooks.forEach(function (hook) { - if (_this3.props[hook]) { - options[hook] = _this3.props[hook]; - } - }); - - this.flatpickr = new _flatpickr2.default(this.node, options); - - if (this.props.hasOwnProperty('value')) { - this.flatpickr.setDate(this.props.value, false); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.flatpickr.destroy(); - } - }, { - key: 'render', - value: function render() { - var _this4 = this; - - // eslint-disable-next-line no-unused-vars - var _props = this.props, - options = _props.options, - defaultValue = _props.defaultValue, - value = _props.value, - children = _props.children, - props = _objectWithoutProperties(_props, ['options', 'defaultValue', 'value', 'children']); - - // Don't pass hooks to dom node - - - hooks.forEach(function (hook) { - delete props[hook]; - }); - - return options.wrap ? _react2.default.createElement( - 'div', - _extends({}, props, { ref: function ref(node) { - _this4.node = node; - } }), - children - ) : _react2.default.createElement('input', _extends({}, props, { defaultValue: defaultValue, - ref: function ref(node) { - _this4.node = node; - } })); - } - }]); - - return DateTimePicker; -}(_react.Component); - -DateTimePicker.propTypes = { - defaultValue: _propTypes2.default.string, - options: _propTypes2.default.object, - onChange: hookPropType, - onOpen: hookPropType, - onClose: hookPropType, - onMonthChange: hookPropType, - onYearChange: hookPropType, - onReady: hookPropType, - onValueUpdate: hookPropType, - onDayCreate: hookPropType, - value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array, _propTypes2.default.object, _propTypes2.default.number]), - children: _propTypes2.default.node, - className: _propTypes2.default.string -}; -DateTimePicker.defaultProps = { - options: {} -}; -exports.default = DateTimePicker; \ No newline at end of file diff --git a/src/plugins/date-picker/components/react-flatpickr/lib/index.js b/src/plugins/date-picker/components/react-flatpickr/lib/index.js deleted file mode 100644 index ebec978f..00000000 --- a/src/plugins/date-picker/components/react-flatpickr/lib/index.js +++ /dev/null @@ -1,131 +0,0 @@ - -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import Flatpickr from 'flatpickr' - -const hooks = [ - 'onChange', - 'onOpen', - 'onClose', - 'onMonthChange', - 'onYearChange', - 'onReady', - 'onValueUpdate', - 'onDayCreate' -] -const hookPropType = PropTypes.oneOfType([ - PropTypes.func, - PropTypes.arrayOf(PropTypes.func) -]) - -class DateTimePicker extends Component { - static propTypes = { - defaultValue: PropTypes.string, - options: PropTypes.object, - onChange: hookPropType, - onOpen: hookPropType, - onClose: hookPropType, - onMonthChange: hookPropType, - onYearChange: hookPropType, - onReady: hookPropType, - onValueUpdate: hookPropType, - onDayCreate: hookPropType, - value: PropTypes.oneOfType([ - PropTypes.string, - PropTypes.array, - PropTypes.object, - PropTypes.number - ]), - children: PropTypes.node, - className: PropTypes.string - } - - static defaultProps = { - options: {} - } - - componentWillReceiveProps(props) { - const { options } = props - const prevOptions = this.props.options - - // Add prop hooks to options - hooks.forEach(hook => { - if (props.hasOwnProperty(hook)) { - options[hook] = props[hook] - } - // Add prev ones too so we can compare against them later - if (this.props.hasOwnProperty(hook)) { - prevOptions[hook] = this.props[hook] - } - }) - - const optionsKeys = Object.getOwnPropertyNames(options) - - for (let index = optionsKeys.length - 1; index >= 0; index--) { - const key = optionsKeys[index] - let value = options[key] - - if (value !== prevOptions[key]) { - // Hook handlers must be set as an array - if (hooks.indexOf(key) !== -1 && !Array.isArray(value)) { - value = [value] - } - - this.flatpickr.set(key, value) - } - } - - if (props.hasOwnProperty('value') && props.value !== this.props.value) { - this.flatpickr.setDate(props.value, false) - } - } - - componentDidMount() { - const options = { - onClose: () => { - this.node.blur && this.node.blur() - }, - ...this.props.options - } - - // Add prop hooks to options - hooks.forEach(hook => { - if (this.props[hook]) { - options[hook] = this.props[hook] - } - }) - - this.flatpickr = new Flatpickr(this.node, options) - - if (this.props.hasOwnProperty('value')) { - this.flatpickr.setDate(this.props.value, false) - } - } - - componentWillUnmount() { - this.flatpickr.destroy() - } - - render() { - // eslint-disable-next-line no-unused-vars - const { options, defaultValue, value, children, ...props } = this.props - - // Don't pass hooks to dom node - hooks.forEach(hook => { - delete props[hook] - }) - - return options.wrap - ? ( -
{ this.node = node }}> - { children } -
- ) - : ( - { this.node = node }} /> - ) - } -} - -export default DateTimePicker diff --git a/src/plugins/date-picker/components/react-flatpickr/package.json b/src/plugins/date-picker/components/react-flatpickr/package.json deleted file mode 100644 index 335239cf..00000000 --- a/src/plugins/date-picker/components/react-flatpickr/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "react-flatpickr", - "version": "3.7.1", - "description": "flatpickr for React", - "main": "build/index.js", - "scripts": { - "example": "npm run build && webpack --config example/webpack.js", - "dev": "echo 'Please open the example directory to view the example' && webpack-dev-server --config example/webpack.js", - "lint": "eslint lib && eslint example", - "build": "babel lib --out-dir build", - "prepublishOnly": "npm run build", - "test": "echo todo" - }, - "repository": "coderhaoxin/react-flatpickr", - "keywords": [ - "flatpickr", - "react" - ], - "files": [ - "build/", - "lib/" - ], - "author": "haoxin", - "license": "MIT", - "dependencies": { - "flatpickr": "^4.3.2", - "prop-types": "^15.5.10" - }, - "devDependencies": { - "babel-cli": "^6.22.2", - "babel-core": "^6.22.1", - "babel-eslint": "^8.0.1", - "babel-loader": "^7.1.2", - "babel-preset-es2015": "^6.22.0", - "babel-preset-react": "^6.22.0", - "babel-preset-stage-0": "^6.22.0", - "css-loader": "^0.28.7", - "eslint": "^4.8.0", - "eslint-config-ok": "github:haoxins/eslint-config", - "react": "^16.0.0", - "react-dom": "^16.0.0", - "style-loader": "^0.19.0", - "webpack": "^3.6.0", - "webpack-dev-server": "^2.8.2" - } -} diff --git a/src/plugins/date-picker/exampleData.json b/src/plugins/date-picker/exampleData.json deleted file mode 100644 index 94b02933..00000000 --- a/src/plugins/date-picker/exampleData.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "_plugin": { - "type": "date-picker", - "data": { - "event": "Fighting against Gondor", - "locale": "de", - "enableTime": true, - "mode": "range", - "disable": [ - { - "from": "2019-03-05", - "to": "2019-03-06" - } - ], - "minDate": "today", - "maxDate": "2019-03-20" - } - } -} diff --git a/src/plugins/date-picker/flatpickr.css b/src/plugins/date-picker/flatpickr.css deleted file mode 100644 index 793a9238..00000000 --- a/src/plugins/date-picker/flatpickr.css +++ /dev/null @@ -1,788 +0,0 @@ - [data-cognigy-webchat-root] .flatpickr-calendar { - /* opacity: 0; - display: none; - text-align: center; - visibility: hidden; - padding: 0; - -webkit-animation: none; - animation: none; - direction: ltr; - font-size: 20px; - line-height: 24px; - border-radius: 5px; - position: absolute; */ - /* width: 307.875px; */ - /* -ms-touch-action: manipulation; - touch-action: manipulation; */ - /* position: absolute; - display: block; - pointer-events: none; - content: ''; - height: 0; - width: 0; - left: 22px; */ - } - - [data-cognigy-webchat-root] .flatpickr-calendar.open, [data-cognigy-webchat-root] .flatpickr-calendar.inline { - opacity: 1; - /* max-height: 640px; */ - visibility: visible; - } - - [data-cognigy-webchat-root] .flatpickr-calendar.open { - display: inline-block; - z-index: 99999; - } - - /* .flatpickr-calendar.animate.open { - -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1); - animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1); - } */ - - [data-cognigy-webchat-root] .flatpickr-calendar.inline { - display: block; - position: relative; - padding: 8px 16px; - } - - [data-cognigy-webchat-root] .flatpickr-calendar.static { - position: absolute; - top: calc(100% + 2px); - } - - [data-cognigy-webchat-root] .flatpickr-calendar.static.open { - z-index: 999; - display: block; - } - - [data-cognigy-webchat-root] .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) { - -webkit-box-shadow: none !important; - box-shadow: none !important; - } - - [data-cognigy-webchat-root] .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) { - -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; - box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; - } - - [data-cognigy-webchat-root] .flatpickr-calendar .hasWeeks .dayContainer, [data-cognigy-webchat-root] .flatpickr-calendar .hasTime .dayContainer { - border-bottom: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } - - [data-cognigy-webchat-root] .flatpickr-calendar .hasWeeks .dayContainer { - border-left: 0; - } - - [data-cognigy-webchat-root] .flatpickr-calendar.showTimeInput.hasTime .flatpickr-time { - height: 40px; - border-top: 1px solid #e6e6e6; - } - - [data-cognigy-webchat-root] .flatpickr-calendar.noCalendar.hasTime .flatpickr-time { - height: auto; - } - - /* .flatpickr-calendar:before, -[data-cognigy-webchat-root] .flatpickr-calendar:after { - position: absolute; - display: block; - pointer-events: none; - border: solid transparent; - content: ''; - height: 0; - width: 0; - left: 22px; - } */ - - [data-cognigy-webchat-root] .flatpickr-calendar.rightMost:before, [data-cognigy-webchat-root] .flatpickr-calendar.rightMost:after { - left: auto; - right: 22px; - } - - [data-cognigy-webchat-root] .flatpickr-calendar:before { - border-width: 5px; - margin: 0 -5px; - } - - [data-cognigy-webchat-root] .flatpickr-calendar:after { - border-width: 4px; - margin: 0 -4px; - } - - [data-cognigy-webchat-root] .flatpickr-calendar.arrowTop:before, [data-cognigy-webchat-root] .flatpickr-calendar.arrowTop:after { - bottom: 100%; - } - - [data-cognigy-webchat-root] .flatpickr-calendar.arrowTop:before { - border-bottom-color: #e6e6e6; - } - - [data-cognigy-webchat-root] .flatpickr-calendar.arrowTop:after { - border-bottom-color: #fff; - } - - [data-cognigy-webchat-root] .flatpickr-calendar.arrowBottom:before, [data-cognigy-webchat-root] .flatpickr-calendar.arrowBottom:after { - top: 100%; - } - - [data-cognigy-webchat-root] .flatpickr-calendar.arrowBottom:before { - border-top-color: #e6e6e6; - } - - [data-cognigy-webchat-root] .flatpickr-calendar.arrowBottom:after { - border-top-color: #fff; - } - - [data-cognigy-webchat-root] .flatpickr-calendar:focus { - outline: 0; - box-shadow: inset 0px 0px 0 1px #959ea9; - } - - [data-cognigy-webchat-root] .flatpickr-wrapper { - width: 100%; - } - - [data-cognigy-webchat-root] .flatpickr-months { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - } - - [data-cognigy-webchat-root] .flatpickr-months .flatpickr-month { - margin-bottom: 10%; - background: transparent; - color: rgba(0, 0, 0, 0.9); - fill: rgba(0, 0, 0, 0.9); - height: 28px; - line-height: 1; - text-align: center; - position: relative; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - /* overflow: hidden; */ - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; - } - - [data-cognigy-webchat-root] .flatpickr-months .flatpickr-prev-month, [data-cognigy-webchat-root] .flatpickr-months .flatpickr-next-month { - text-decoration: none; - cursor: pointer; - position: absolute; - top: 0px; - line-height: 16px; - height: 28px; - padding: 10px; - margin: 8px 16px 0px; - z-index: 3; - color: rgba(0, 0, 0, 0.9); - fill: rgba(0, 0, 0, 0.9); - } - - [data-cognigy-webchat-root] .flatpickr-months .flatpickr-prev-month.disabled, [data-cognigy-webchat-root] .flatpickr-months .flatpickr-next-month.disabled { - display: none; - } - - [data-cognigy-webchat-root] .flatpickr-months .flatpickr-prev-month i, [data-cognigy-webchat-root] .flatpickr-months .flatpickr-next-month i { - position: relative; - } - - [data-cognigy-webchat-root] .flatpickr-months .flatpickr-prev-month.flatpickr-prev-month, [data-cognigy-webchat-root] .flatpickr-months .flatpickr-next-month.flatpickr-prev-month { - /* - /*rtl:begin:ignore*/ - /* - */ - left: 0; - /* - /*rtl:end:ignore*/ - /* - */ - } - - /* - /*rtl:begin:ignore*/ - - /* - /*rtl:end:ignore*/ - - [data-cognigy-webchat-root] .flatpickr-months .flatpickr-prev-month.flatpickr-next-month, [data-cognigy-webchat-root] .flatpickr-months .flatpickr-next-month.flatpickr-next-month { - /* - /*rtl:begin:ignore*/ - /* - */ - right: 0; - /* - /*rtl:end:ignore*/ - /* - */ - } - - /* - /*rtl:begin:ignore*/ - - /* - /*rtl:end:ignore*/ - - [data-cognigy-webchat-root] .flatpickr-months .flatpickr-prev-month:hover, [data-cognigy-webchat-root] .flatpickr-months .flatpickr-next-month:hover { - color: #959ea9; - } - - [data-cognigy-webchat-root] .flatpickr-months .flatpickr-prev-month:hover svg, [data-cognigy-webchat-root] .flatpickr-months .flatpickr-next-month:hover svg { - fill: #f64747; - } - - [data-cognigy-webchat-root] .flatpickr-months .flatpickr-prev-month svg, [data-cognigy-webchat-root] .flatpickr-months .flatpickr-next-month svg { - width: 14px; - height: 14px; - } - - [data-cognigy-webchat-root] .flatpickr-months .flatpickr-prev-month svg path, [data-cognigy-webchat-root] .flatpickr-months .flatpickr-next-month svg path { - -webkit-transition: fill 0.1s; - transition: fill 0.1s; - fill: inherit; - } - - [data-cognigy-webchat-root] .numInputWrapper { - position: relative; - height: auto; - } - - [data-cognigy-webchat-root] .numInputWrapper input, [data-cognigy-webchat-root] .numInputWrapper span { - display: inline-block; - } - - [data-cognigy-webchat-root] .numInputWrapper input { - width: 100%; - } - - [data-cognigy-webchat-root] .numInputWrapper input::-ms-clear { - display: none; - } - - [data-cognigy-webchat-root] .numInputWrapper input::-webkit-outer-spin-button, [data-cognigy-webchat-root] .numInputWrapper input::-webkit-inner-spin-button { - margin: 0; - -webkit-appearance: none; - } - - [data-cognigy-webchat-root] .numInputWrapper span { - position: absolute; - right: 0; - width: 14px; - padding: 0 4px 0 2px; - height: 50%; - line-height: 50%; - opacity: 0; - cursor: pointer; - border: 1px solid rgba(57, 57, 57, 0.15); - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - - [data-cognigy-webchat-root] .numInputWrapper span:hover { - background: rgba(0, 0, 0, 0.1); - } - - [data-cognigy-webchat-root] .numInputWrapper span:active { - background: rgba(0, 0, 0, 0.2); - } - - [data-cognigy-webchat-root] .numInputWrapper span:after { - display: block; - content: ""; - position: absolute; - } - - [data-cognigy-webchat-root] .numInputWrapper span.arrowUp { - top: 0; - border-bottom: 0; - } - - [data-cognigy-webchat-root] .numInputWrapper span.arrowUp:after { - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-bottom: 4px solid rgba(57, 57, 57, 0.6); - top: 26%; - } - - [data-cognigy-webchat-root] .numInputWrapper span.arrowDown { - top: 50%; - } - - [data-cognigy-webchat-root] .numInputWrapper span.arrowDown:after { - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid rgba(57, 57, 57, 0.6); - top: 40%; - } - - [data-cognigy-webchat-root] .numInputWrapper span svg { - width: inherit; - height: auto; - } - - [data-cognigy-webchat-root] .numInputWrapper span svg path { - fill: rgba(0, 0, 0, 0.5); - } - - [data-cognigy-webchat-root] .numInputWrapper:hover { - background: rgba(0, 0, 0, 0.05); - } - - [data-cognigy-webchat-root] .numInputWrapper:hover span { - opacity: 1; - } - - [data-cognigy-webchat-root] .flatpickr-current-month { - font-size: 135%; - line-height: inherit; - font-weight: 300; - color: inherit; - position: absolute; - width: 75%; - left: 12.5%; - padding: 6.16px 0 0 0; - line-height: 1; - height: 28px; - display: inline-block; - text-align: center; - -webkit-transform: translate3d(0px, 0px, 0px); - transform: translate3d(0px, 0px, 0px); - } - - [data-cognigy-webchat-root] .flatpickr-current-month span.cur-month { - font-family: inherit; - font-weight: 700; - color: inherit; - display: inline-block; - margin-left: 0.5ch; - padding: 0; - } - - [data-cognigy-webchat-root] .flatpickr-current-month span.cur-month:hover { - background: rgba(0, 0, 0, 0.05); - } - - [data-cognigy-webchat-root] .flatpickr-current-month .numInputWrapper { - width: 6ch; - width: 7ch\0; - display: inline-block; - } - - [data-cognigy-webchat-root] .flatpickr-current-month .numInputWrapper span.arrowUp:after { - border-bottom-color: rgba(0, 0, 0, 0.9); - } - - [data-cognigy-webchat-root] .flatpickr-current-month .numInputWrapper span.arrowDown:after { - border-top-color: rgba(0, 0, 0, 0.9); - } - - [data-cognigy-webchat-root] .flatpickr-current-month input.cur-year { - background: transparent; - -webkit-box-sizing: border-box; - box-sizing: border-box; - color: inherit; - cursor: text; - padding: 0 0 0 0.5ch; - margin: 0; - display: inline-block; - font-size: inherit; - font-family: inherit; - font-weight: 300; - line-height: inherit; - height: auto; - border: 0; - border-radius: 0; - vertical-align: initial; - -webkit-appearance: textfield; - -moz-appearance: textfield; - appearance: textfield; - } - - [data-cognigy-webchat-root] .flatpickr-current-month input.cur-year:focus { - outline: 0; - } - - [data-cognigy-webchat-root] .flatpickr-current-month input.cur-year[disabled], [data-cognigy-webchat-root] .flatpickr-current-month input.cur-year[disabled]:hover { - font-size: 100%; - color: rgba(0, 0, 0, 0.5); - background: transparent; - pointer-events: none; - } - - [data-cognigy-webchat-root] .flatpickr-weekdays { - background: transparent; - text-align: center; - overflow: hidden; - width: 100%; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - height: 28px; - } - - [data-cognigy-webchat-root] .flatpickr-weekdays .flatpickr-weekdaycontainer { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; - } - - span.flatpickr-weekday { - cursor: default; - font-size: 90%; - background: transparent; - color: rgba(0, 0, 0, 0.54); - line-height: 1; - margin: 0; - text-align: center; - display: block; - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; - font-weight: bolder; - } - - [data-cognigy-webchat-root] .dayContainer, [data-cognigy-webchat-root] .flatpickr-weeks { - padding: 1px 0 0 0; - } - - [data-cognigy-webchat-root] .flatpickr-days { - position: relative; - overflow: hidden; - width: 100%; - margin-top: 5%; - margin-bottom: 5%; - text-align: center; - } - - [data-cognigy-webchat-root] .flatpickr-days:focus { - outline: 0; - } - - [data-cognigy-webchat-root] .dayContainer { - padding: 0; - outline: 0; - text-align: left; - -webkit-box-sizing: border-box; - box-sizing: border-box; - display: inline-block; - display: -ms-flexbox; - display: -webkit-box; - display: -webkit-flex; - display: flex; - -webkit-flex-wrap: wrap; - flex-wrap: wrap; - -ms-flex-wrap: wrap; - -ms-flex-pack: justify; - -webkit-justify-content: space-around; - justify-content: space-around; - -webkit-transform: translate3d(0px, 0px, 0px); - transform: translate3d(0px, 0px, 0px); - opacity: 1; - } - - [data-cognigy-webchat-root] .dayContainer+.dayContainer { - -webkit-box-shadow: -1px 0 0 #e6e6e6; - box-shadow: -1px 0 0 #e6e6e6; - } - - [data-cognigy-webchat-root] .flatpickr-day { - background: none; - border: 1px solid transparent; - border-radius: 150px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - color: #393939; - cursor: pointer; - font-weight: 400; - width: 14.2857143%; - -webkit-flex-basis: 14.2857143%; - -ms-flex-preferred-size: 14.2857143%; - flex-basis: 14.2857143%; - height: 39px; - line-height: 39px; - margin: 0; - display: inline-block; - position: relative; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - text-align: center; - } - - [data-cognigy-webchat-root] .flatpickr-day.inRange, [data-cognigy-webchat-root] .flatpickr-day.prevMonthDay.inRange, [data-cognigy-webchat-root] .flatpickr-day.nextMonthDay.inRange, [data-cognigy-webchat-root] .flatpickr-day.today.inRange, [data-cognigy-webchat-root] .flatpickr-day.prevMonthDay.today.inRange, [data-cognigy-webchat-root] .flatpickr-day.nextMonthDay.today.inRange, [data-cognigy-webchat-root] .flatpickr-day:hover, [data-cognigy-webchat-root] .flatpickr-day.prevMonthDay:hover, [data-cognigy-webchat-root] .flatpickr-day.nextMonthDay:hover, [data-cognigy-webchat-root] .flatpickr-day:focus, [data-cognigy-webchat-root] .flatpickr-day.prevMonthDay:focus, [data-cognigy-webchat-root] .flatpickr-day.nextMonthDay:focus { - cursor: pointer; - outline: 0; - background: #e6e6e6; - border-color: #e6e6e6; - } - - [data-cognigy-webchat-root] .flatpickr-day.today { - border-color: #959ea9; - } - - [data-cognigy-webchat-root] .flatpickr-day.today:hover, [data-cognigy-webchat-root] .flatpickr-day.today:focus { - border-color: #959ea9; - background: #959ea9; - color: #fff; - } - - [data-cognigy-webchat-root] .flatpickr-day.selected, [data-cognigy-webchat-root] .flatpickr-day.startRange, [data-cognigy-webchat-root] .flatpickr-day.endRange, [data-cognigy-webchat-root] .flatpickr-day.selected.inRange, [data-cognigy-webchat-root] .flatpickr-day.startRange.inRange, [data-cognigy-webchat-root] .flatpickr-day.endRange.inRange, [data-cognigy-webchat-root] .flatpickr-day.selected:focus, [data-cognigy-webchat-root] .flatpickr-day.startRange:focus, [data-cognigy-webchat-root] .flatpickr-day.endRange:focus, [data-cognigy-webchat-root] .flatpickr-day.selected:hover, [data-cognigy-webchat-root] .flatpickr-day.startRange:hover, [data-cognigy-webchat-root] .flatpickr-day.endRange:hover, [data-cognigy-webchat-root] .flatpickr-day.selected.prevMonthDay, [data-cognigy-webchat-root] .flatpickr-day.startRange.prevMonthDay, [data-cognigy-webchat-root] .flatpickr-day.endRange.prevMonthDay, [data-cognigy-webchat-root] .flatpickr-day.selected.nextMonthDay, [data-cognigy-webchat-root] .flatpickr-day.startRange.nextMonthDay, [data-cognigy-webchat-root] .flatpickr-day.endRange.nextMonthDay { - -webkit-box-shadow: none; - box-shadow: none; - } - - [data-cognigy-webchat-root] .flatpickr-day.selected.startRange, [data-cognigy-webchat-root] .flatpickr-day.startRange.startRange, [data-cognigy-webchat-root] .flatpickr-day.endRange.startRange { - border-radius: 50px 0 0 50px; - } - - [data-cognigy-webchat-root] .flatpickr-day.selected.endRange, [data-cognigy-webchat-root] .flatpickr-day.startRange.endRange, [data-cognigy-webchat-root] .flatpickr-day.endRange.endRange { - border-radius: 0 50px 50px 0; - } - - [data-cognigy-webchat-root] .flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)), [data-cognigy-webchat-root] .flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)), [data-cognigy-webchat-root] .flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)) { - -webkit-box-shadow: -10px 0 0 #569ff7; - box-shadow: -10px 0 0 #569ff7; - } - - [data-cognigy-webchat-root] .flatpickr-day.selected.startRange.endRange, [data-cognigy-webchat-root] .flatpickr-day.startRange.startRange.endRange, [data-cognigy-webchat-root] .flatpickr-day.endRange.startRange.endRange { - border-radius: 50px; - } - - [data-cognigy-webchat-root] .flatpickr-day.inRange { - border-radius: 0; - -webkit-box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; - box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; - } - - [data-cognigy-webchat-root] .flatpickr-day.disabled, .flatpickr-disabled.flatpickr-day, [data-cognigy-webchat-root] .flatpickr-day.disabled:hover, [data-cognigy-webchat-root] .flatpickr-day.prevMonthDay, [data-cognigy-webchat-root] .flatpickr-day.nextMonthDay, [data-cognigy-webchat-root] .flatpickr-day.notAllowed, [data-cognigy-webchat-root] .flatpickr-day.notAllowed.prevMonthDay, [data-cognigy-webchat-root] .flatpickr-day.notAllowed.nextMonthDay { - color: rgba(57, 57, 57, 0.3); - background: transparent; - border-color: transparent; - cursor: default; - } - - [data-cognigy-webchat-root] .flatpickr-day.disabled, [data-cognigy-webchat-root] .flatpickr-day.disabled:hover { - cursor: not-allowed; - color: rgba(57, 57, 57, 0.1); - } - - [data-cognigy-webchat-root] .flatpickr-day.week.selected { - border-radius: 0; - -webkit-box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7; - box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7; - } - - [data-cognigy-webchat-root] .flatpickr-day.hidden { - visibility: hidden; - } - - [data-cognigy-webchat-root] .rangeMode .flatpickr-day { - margin-top: 1px; - } - - [data-cognigy-webchat-root] .flatpickr-weekwrapper { - display: inline-block; - float: left; - } - - [data-cognigy-webchat-root] .flatpickr-weekwrapper .flatpickr-weeks { - padding: 0 12px; - -webkit-box-shadow: 1px 0 0 #e6e6e6; - box-shadow: 1px 0 0 #e6e6e6; - } - - [data-cognigy-webchat-root] .flatpickr-weekwrapper .flatpickr-weekday { - float: none; - width: 100%; - line-height: 28px; - } - - [data-cognigy-webchat-root] .flatpickr-weekwrapper span.flatpickr-day, [data-cognigy-webchat-root] .flatpickr-weekwrapper span.flatpickr-day:hover { - display: block; - width: 14%; - flex-basis: 14%; - max-width: none; - color: rgba(57, 57, 57, 0.3); - background: transparent; - cursor: default; - border: none; - } - - [data-cognigy-webchat-root] .flatpickr-innerContainer { - /* display: block; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-sizing: border-box; - box-sizing: border-box; - overflow: hidden; */ - } - - [data-cognigy-webchat-root] .flatpickr-rContainer { - display: flex; - flex-direction: column; - flex-grow: 1; - } - - [data-cognigy-webchat-root] .flatpickr-time { - text-align: center; - outline: 0; - display: block; - height: 0; - line-height: 40px; - max-height: 40px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - overflow: hidden; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - } - - [data-cognigy-webchat-root] .flatpickr-time:after { - content: ""; - display: table; - clear: both; - } - - [data-cognigy-webchat-root] .flatpickr-time .numInputWrapper { - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; - width: 40%; - height: 40px; - float: left; - } - - [data-cognigy-webchat-root] .flatpickr-time .numInputWrapper span.arrowUp:after { - border-bottom-color: #393939; - } - - [data-cognigy-webchat-root] .flatpickr-time .numInputWrapper span.arrowDown:after { - border-top-color: #393939; - } - - [data-cognigy-webchat-root] .flatpickr-time.hasSeconds .numInputWrapper { - width: 26%; - } - - [data-cognigy-webchat-root] .flatpickr-time.time24hr .numInputWrapper { - width: 49%; - } - - [data-cognigy-webchat-root] .flatpickr-time input { - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - border: 0; - border-radius: 0; - text-align: center; - margin: 0; - padding: 0; - height: inherit; - line-height: inherit; - color: #393939; - font-size: 14px; - position: relative; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -webkit-appearance: textfield; - -moz-appearance: textfield; - appearance: textfield; - } - - [data-cognigy-webchat-root] .flatpickr-time input.flatpickr-hour { - font-weight: bold; - } - - [data-cognigy-webchat-root] .flatpickr-time input.flatpickr-minute, [data-cognigy-webchat-root] .flatpickr-time input.flatpickr-second { - font-weight: 400; - } - - [data-cognigy-webchat-root] .flatpickr-time input:focus { - outline: 0; - border: 0; - } - - [data-cognigy-webchat-root] .flatpickr-time .flatpickr-time-separator, [data-cognigy-webchat-root] .flatpickr-time .flatpickr-am-pm { - height: inherit; - display: inline-block; - float: left; - line-height: inherit; - color: #393939; - font-weight: bold; - width: 2%; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-align-self: center; - -ms-flex-item-align: center; - align-self: center; - } - - [data-cognigy-webchat-root] .flatpickr-time .flatpickr-am-pm { - outline: 0; - width: 18%; - cursor: pointer; - /* text-align: center; */ - font-weight: 400; - display: flex; - justify-content: center; - align-items: center; - } - - [data-cognigy-webchat-root] .flatpickr-time input:hover, [data-cognigy-webchat-root] .flatpickr-time .flatpickr-am-pm:hover, [data-cognigy-webchat-root] .flatpickr-time input:focus, [data-cognigy-webchat-root] .flatpickr-time .flatpickr-am-pm:focus { - background: #eee; - } - - [data-cognigy-webchat-root] .flatpickr-input[readonly] { - cursor: pointer; - } - - @-webkit-keyframes fpFadeInDown { - from { - opacity: 0; - -webkit-transform: translate3d(0, -20px, 0); - transform: translate3d(0, -20px, 0); - } - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - } - - @keyframes fpFadeInDown { - from { - opacity: 0; - -webkit-transform: translate3d(0, -20px, 0); - transform: translate3d(0, -20px, 0); - } - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - } \ No newline at end of file diff --git a/src/plugins/date-picker/index.tsx b/src/plugins/date-picker/index.tsx deleted file mode 100644 index 12c0d4dd..00000000 --- a/src/plugins/date-picker/index.tsx +++ /dev/null @@ -1,447 +0,0 @@ -import * as React from "react"; -import "./style.css"; - -// Flatpickr Datepicker -import Flatpickr from './components/react-flatpickr'; -import './flatpickr.css'; - -// languages -import l10n from './langHelper'; -import moment from 'moment'; - -import { MessageComponentProps, MessagePlugin, MessagePluginFactory } from "../../common/interfaces/message-plugin"; -import { createMessagePlugin, registerMessagePlugin } from "../helper"; -import { IMessage } from "../../common/interfaces/message"; -import { v4 as uuidv4 } from "uuid" - -const datePickerDaySelector = ".flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay"; - -interface IState { - msg: string, -} - - -/** - * Transforms regional locales to flatpicks internal locale key - */ -const getFlatpickrLocaleId = (locale: string) => { - switch (locale) { - case 'us': - case 'gb': - case 'au': - case 'ca': - return 'en'; - } - - return locale; -} - -/** - * Transforms regional locales to flatpicks internal locale key - */ -const getMomemtLocaleId = (locale: string) => { - switch (locale) { - case 'au': - return 'en-au'; - case 'ca': - return 'en-ca'; - case 'gb': - return 'en-gb'; - case 'us': - return 'en'; - } - - return locale; -} - -const datePickerPlugin: MessagePluginFactory = ({ styled }) => { - - - const DatePickerRoot = styled.div(({ theme }) => ({ - display: "flex", - flexDirection: "column", - flexGrow: 1, - [datePickerDaySelector]: { - background: theme.primaryGradient, - color: theme.primaryContrastColor, - } - })); - - const Button = styled.button(({ theme }) => ({ - backgroundColor: theme.greyColor, - color: theme.greyContrastColor, - - cursor: "pointer", - border: "none", - - height: 40, - - padding: `${theme.unitSize}px ${theme.unitSize * 2}px`, - borderRadius: theme.unitSize * 2, - "&:focus": { - outline: "none", - boxShadow: `0 0 4px 3px ${theme.primaryWeakColor}` - } - })); - - const PrimaryButton = styled(Button)(({ theme }) => ({ - background: theme.primaryGradient, - color: theme.primaryContrastColor, - })); - - const OutlinedButton = styled(Button)(({ theme }) => ({ - backgroundColor: 'transparent', - border: `1px solid ${theme.primaryColor}`, - color: theme.primaryColor - })); - - const SubmitButton = styled(PrimaryButton)(({ theme }) => ({ - flexGrow: 2, - marginLeft: theme.unitSize * 2 - })); - - const CancelButton = styled(Button)(({ theme }) => ({ - flexGrow: 1 - })); - - const OpenDatepickerButton = styled(OutlinedButton)(({ theme }) => ({ - '&[disabled]': { - borderColor: theme.greyColor, - color: theme.greyColor, - cursor: 'default' - }, - '&:focus':{ - outline: 'none', - boxShadow: `0 0 3px 1px ${theme.primaryWeakColor}` - } - })); - - const Padding = styled.div(({ theme }) => ({ - paddingTop: theme.unitSize, - paddingBottom: theme.unitSize, - paddingLeft: theme.unitSize * 2, - paddingRight: theme.unitSize * 2 - })); - - const Header = styled(Padding)(({ theme }) => ({ - background: theme.primaryGradient, - color: theme.primaryContrastColor, - flexGrow: 1, - display: 'flex', - alignItems: 'center', - fontWeight: 'bolder', - boxShadow: theme.shadow, - zIndex: 2 - })); - - const Content = styled.div(({ theme }) => ({ - display: 'flex', - justifyContent: 'center', - })) - - const Footer = styled(Padding)(({ theme }) => ({ - display: 'flex', - justifyContent: 'space-between', - alignItems: 'center', - backgroundColor: 'white', - boxShadow: theme.shadow, - })); - - const processedMessages: Set = new Set(); - - class DatePicker extends React.Component { - submitButtonRef: React.RefObject; - cancelButtonRef: React.RefObject; - - constructor(props) { - super(props); - this.state = { - msg: "", - }; - this.submitButtonRef = React.createRef(); - this.cancelButtonRef = React.createRef(); - } - - componentDidMount() { - const webchatWindow = document.getElementById("webchatWindow"); - const calenderElement = webchatWindow?.getElementsByClassName("flatpickr-calendar")?.[0] as HTMLElement; - // Auto-focus the calender item on mount - calenderElement?.focus(); - // Include the calender item to tab order - calenderElement?.setAttribute("tabIndex", "0"); - calenderElement?.setAttribute("aria-labelledby", "webchatDatePickerHeaderLabel"); - - // Add tabIndex 0 to time input fields to include them in the tab order - const hourField = webchatWindow?.getElementsByClassName("flatpickr-hour")?.[0] as HTMLElement; - hourField?.setAttribute("tabIndex", "0"); - const minutesField = webchatWindow?.getElementsByClassName("flatpickr-minute")?.[0] as HTMLElement; - minutesField?.setAttribute("tabIndex", "0"); - const secondsField = webchatWindow?.getElementsByClassName("flatpickr-second")?.[0] as HTMLElement; - secondsField?.setAttribute("tabIndex", "0"); - const amPmField = webchatWindow?.getElementsByClassName("flatpickr-am-pm")?.[0] as HTMLElement; - amPmField?.setAttribute("tabIndex", "0"); - } - - handleSubmit = () => { - const { message } = this.props - - // close plugin if user didn't choose a date - if (this.state.msg.length > 0) { - if (message.source === 'bot') - processedMessages.add(message.traceId); - - setTimeout(() => { - this.props.onSendMessage(this.state.msg), { - _plugin: "date-picker", - date: this.state.msg, - } - }, 300); - } else { - this.props.onDismissFullscreen(); - } - - }; - - handleAbort = () => { - const { message } = this.props; - - this.props.onDismissFullscreen(); - } - - onKeyDown = (event) => { - const webchatWindow = document.getElementById("webchatWindow"); - const calenderElements = webchatWindow?.getElementsByClassName("flatpickr-calendar"); - const calender = calenderElements?.[0] as HTMLElement; - const datePickerSubmitButton = this.submitButtonRef?.current; - const datePickerCancelButton = this.cancelButtonRef?.current; - - const tabKeyPress = !event.shiftKey && event.key === "Tab"; - const shiftTabKeyPress = event.shiftKey && event.key === "Tab"; - - // Find last input field of time picker - const { data } = this.props.message.data._plugin; - const secondsAsLastTimeInput = !!data.enableTime && data.time_24hr && data.enableSeconds; - const minutesAsLastTimeInput = !!data.enableTime && data.time_24hr && !data.enableSeconds; - const amPmAsLastTimeInput = !!data.enableTime && !data.time_24hr; - - // Time input fields - const hourField = webchatWindow?.getElementsByClassName("flatpickr-hour")?.[0] as HTMLElement; - const minutesField = webchatWindow?.getElementsByClassName("flatpickr-minute")?.[0] as HTMLElement; - const secondsField = webchatWindow?.getElementsByClassName("flatpickr-second")?.[0] as HTMLElement; - const amPmField = webchatWindow?.getElementsByClassName("flatpickr-am-pm")?.[0] as HTMLElement; - - // Check if last time input field is focused - const isLastTimeInputFieldFocused = - (minutesAsLastTimeInput && event.target === minutesField) || - (secondsAsLastTimeInput && event.target === secondsField) || - (amPmAsLastTimeInput && event.target === amPmField) - - // Close Date picker on pressing Escape - if(event.key === "Esc" || event.key === "Escape") { - this.handleAbort(); - } - - // Focus should be trapped within date-picker - // Handle Tab Navigation - if (tabKeyPress) { - if(event.target === datePickerSubmitButton) { - event.preventDefault(); - calender?.focus(); // Move focus to calender from submit button - } else if(isLastTimeInputFieldFocused) { - event.preventDefault(); - datePickerCancelButton?.focus(); // Move focus to cancel button from last time input field - } - } - // Handle Reverse Tab Navigation - if (shiftTabKeyPress) { - if(event.target === calender) { - event.preventDefault(); - datePickerSubmitButton?.focus(); // Move focus to Submit button from calender - } else if(event.target === hourField) { - event.preventDefault(); - calender?.focus(); // Move focus to calender from hour input field - } - - } - } - - static isWeekendDate(date: string) { - const isoWeekday = moment(date).isoWeekday(); - - switch (isoWeekday) { - // 6 is saturday - case 6: - // 7 is sunday - case 7: - return true; - } - - return false; - } - - static transformNamedDate(namedDate: string) { - switch (namedDate) { - case "today": - return moment().format('YYYY-MM-DD'); - - case "tomorrow": - return moment().add(1, 'days').format('YYYY-MM-DD'); - - case "yesterday": - return moment().add(-1, 'days').format('YYYY-MM-DD'); - } - - return namedDate - } - - static getOptionsFromMessage(message: IMessage) { - const { data } = message.data._plugin; - - const dateFormat = data.dateFormat || 'YYYY-MM-DD'; - const defaultDate = DatePicker.transformNamedDate(data.defaultDate) - || DatePicker.transformNamedDate(data.minDate) - || undefined; - - const localeId = data.locale || 'us'; - const momentLocaleId = getMomemtLocaleId(localeId); - const flatpickrLocaleId = getFlatpickrLocaleId(localeId); - let locale = l10n[flatpickrLocaleId]; - const enableTime = !!data.enableTime; - const timeTemp = data.time_24hr ? 'H:i' : 'h:i'; //12-hour format without AM/PM - const timeWithSeconds = data.enableSeconds ? `${timeTemp}:S` : timeTemp; - const timeFormat = data.time_24hr ? timeWithSeconds :`${timeWithSeconds} K` //12-hour format with AM/PM - - if ( localeId === 'gb' ) locale = { ...locale, firstDayOfWeek: 1 }; - const options = { - defaultHour: data.defaultHour || 12, - defaultMinute: data.defaultMinute || 0, - enableSeconds: data.enableSeconds || false, - hourIncrement: data.hourIncrement || 1, - minuteIncrement: data.minuteIncrement || 5, - noCalendar: data.noCalendar || false, - weekNumbers: data.weekNumbers || false, - dateFormat: enableTime ? `${dateFormat} ${timeFormat}` : dateFormat, - defaultDate, - disable: [] as any[], - enable: [] as any[], - enableTime, - event: data.eventName, - inline: true, - locale, - maxDate: DatePicker.transformNamedDate(data.maxDate) || '', - minDate: DatePicker.transformNamedDate(data.minDate) || '', - mode: data.mode || 'single', - static: true, - time_24hr: data.time_24hr || false, - parseDate: dateString => moment(dateString).toDate(), - // if no custom formatting is defined, apply default formatting - formatDate: !data.dateFormat - ? date => moment(date).locale(momentLocaleId).format(enableTime ? 'L LT' : 'L') - : undefined - }; - - const mask: any[] = [...(data.enable_disable || [])] - // add special rule for weekends - .map(dateString => { - if (dateString === 'weekends') - return DatePicker.isWeekendDate - - return dateString; - }) - // resolve relative date names like today, tomorrow or yesterday - .map(DatePicker.transformNamedDate); - - // the code in function_enable_disable was executed in a vm to check that its return value is from type boolean - if (data?.function_enable_disable?.length > 0) { - try { - const flatpickrFn = new Function(`"use strict"; return ${data.function_enable_disable}`)(); - /* The Flatpickr function takes in a Date object */ - if (typeof flatpickrFn(new Date()) === "boolean") { - mask.push(flatpickrFn); - } - } catch (e) { } - } - - if (!!data.wantDisable) { - // add date mask as blacklist - options.disable = mask; - } else if (mask.length > 0) { - - // add date mask as whitelist - options.enable = mask; - } - - return options; - } - - render() { - const { onSendMessage, message, config, attributes, isFullscreen, onSetFullscreen } = this.props; - - - let dateButtonText = message.data._plugin.data.openPickerButtonText || 'pick date'; - let cancelButtonText = message.data._plugin.data.cancelButtonText || 'cancel'; - let submitButtonText = message.data._plugin.data.submitButtonText || 'submit'; - - const datePickerHeading = `webchatDatePickerHeading-${uuidv4()}`; - const datePickerDescription = `webchatDatePickerContentDescription-${uuidv4()}`; - - const a11yProps = {role:"dialog", "aria-modal":"true", "aria-labelledby": datePickerHeading, "aria-describedby": datePickerDescription}; - - const options = DatePicker.getOptionsFromMessage(message); - - let datepickerWasOpen = false; - if (message.source === 'bot') { - datepickerWasOpen = processedMessages.has(message.traceId); - } - - if (!isFullscreen) { - if (datepickerWasOpen) { - return {dateButtonText} - } - - return {dateButtonText} - } - - return ( - -
-

{options.event}

- - Please use Left/ Right arrows to move focus to previous/ next day. - Please use Up/ Down arrows to move focus to the same day of previous/ next week. - Please use Control + Left/ Right arrows to change the grid of dates to previous/ next month. - Please use Control + Up/ Down arrows to change the grid of dates to previous/ next year. - -
- - { this.setState({ msg }) }} - options={ - options - } - /> - -
- - {cancelButtonText} - - - {submitButtonText} - -
-
- ); - } - } - - const plugin = { - match: "date-picker", - component: DatePicker - } - - return plugin; -} - -registerMessagePlugin(datePickerPlugin); - -export default datePickerPlugin; diff --git a/src/plugins/date-picker/langHelper.tsx b/src/plugins/date-picker/langHelper.tsx deleted file mode 100644 index 99c1400f..00000000 --- a/src/plugins/date-picker/langHelper.tsx +++ /dev/null @@ -1,115 +0,0 @@ -import { Arabic } from 'flatpickr/dist/l10n/ar' -import { Austria } from 'flatpickr/dist/l10n/at' -import { Azerbaijan } from 'flatpickr/dist/l10n/az' -import { Belarusian } from 'flatpickr/dist/l10n/be' -import { Bulgarian } from 'flatpickr/dist/l10n/bg' -import { Bangla } from 'flatpickr/dist/l10n/bn' -import { Catalan } from 'flatpickr/dist/l10n/cat' -import { Czech } from 'flatpickr/dist/l10n/cs' -import { Welsh } from 'flatpickr/dist/l10n/cy' -import { Danish } from 'flatpickr/dist/l10n/da' -import { German } from 'flatpickr/dist/l10n/de' -import { english } from 'flatpickr/dist/l10n/default' -import { Esperanto } from 'flatpickr/dist/l10n/eo' -import { Spanish } from 'flatpickr/dist/l10n/es' -import { Estonian } from 'flatpickr/dist/l10n/et' -import { Persian } from 'flatpickr/dist/l10n/fa' -import { Finnish } from 'flatpickr/dist/l10n/fi' -import { Faroese } from 'flatpickr/dist/l10n/fo' -import { French } from 'flatpickr/dist/l10n/fr' -import { Greek } from 'flatpickr/dist/l10n/gr' -import { Hebrew } from 'flatpickr/dist/l10n/he' -import { Hindi } from 'flatpickr/dist/l10n/hi' -import { Croatian } from 'flatpickr/dist/l10n/hr' -import { Hungarian } from 'flatpickr/dist/l10n/hu' -import { Indonesian } from 'flatpickr/dist/l10n/id' -import { Icelandic } from 'flatpickr/dist/l10n/is' -import { Italian } from 'flatpickr/dist/l10n/it' -import { Japanese } from 'flatpickr/dist/l10n/ja' -import { Korean } from 'flatpickr/dist/l10n/ko' -import { Khmer } from 'flatpickr/dist/l10n/km' -import { Kazakh } from 'flatpickr/dist/l10n/kz' -import { Lithuanian } from 'flatpickr/dist/l10n/lt' -import { Latvian } from 'flatpickr/dist/l10n/lv' -import { Macedonian } from 'flatpickr/dist/l10n/mk' -import { Mongolian } from 'flatpickr/dist/l10n/mn' -import { Malaysian } from 'flatpickr/dist/l10n/ms' -import { Burmese } from 'flatpickr/dist/l10n/my' -import { Dutch } from 'flatpickr/dist/l10n/nl' -import { Norwegian } from 'flatpickr/dist/l10n/no' -import { Punjabi } from 'flatpickr/dist/l10n/pa' -import { Polish } from 'flatpickr/dist/l10n/pl' -import { Portuguese } from 'flatpickr/dist/l10n/pt' -import { Romanian } from 'flatpickr/dist/l10n/ro' -import { Russian } from 'flatpickr/dist/l10n/ru' -import { Sinhala } from 'flatpickr/dist/l10n/si' -import { Slovak } from 'flatpickr/dist/l10n/sk' -import { Slovenian } from 'flatpickr/dist/l10n/sl' -import { Albanian } from 'flatpickr/dist/l10n/sq' -import { Serbian } from 'flatpickr/dist/l10n/sr' -import { Swedish } from 'flatpickr/dist/l10n/sv' -import { Thai } from 'flatpickr/dist/l10n/th' -import { Turkish } from 'flatpickr/dist/l10n/tr' -import { Ukrainian } from 'flatpickr/dist/l10n/uk' -import { Vietnamese } from 'flatpickr/dist/l10n/vn' -import { Mandarin } from 'flatpickr/dist/l10n/zh' - -const l10n = { - ar: Arabic, - at: Austria, - az: Azerbaijan, - be: Belarusian, - bg: Bulgarian, - bn: Bangla, - cat: Catalan, - cs: Czech, - cy: Welsh, - da: Danish, - de: German, - en: english, - eo: Esperanto, - es: Spanish, - et: Estonian, - fa: Persian, - fi: Finnish, - fo: Faroese, - fr: French, - gr: Greek, - he: Hebrew, - hi: Hindi, - hr: Croatian, - hu: Hungarian, - id: Indonesian, - is: Icelandic, - it: Italian, - ja: Japanese, - ko: Korean, - km: Khmer, - kz: Kazakh, - lt: Lithuanian, - lv: Latvian, - mk: Macedonian, - mn: Mongolian, - ms: Malaysian, - my: Burmese, - nl: Dutch, - no: Norwegian, - pa: Punjabi, - pl: Polish, - pt: Portuguese, - ro: Romanian, - ru: Russian, - si: Sinhala, - sk: Slovak, - sl: Slovenian, - sq: Albanian, - sr: Serbian, - sv: Swedish, - th: Thai, - tr: Turkish, - uk: Ukrainian, - vn: Vietnamese, - zh: Mandarin -}; - -export default l10n; \ No newline at end of file diff --git a/src/plugins/date-picker/style.css b/src/plugins/date-picker/style.css deleted file mode 100644 index 04365ecd..00000000 --- a/src/plugins/date-picker/style.css +++ /dev/null @@ -1,24 +0,0 @@ - /* Flatpickr */ - [data-cognigy-webchat-root] .flatpickr-input{ - display: none; - } - -/* Date Picker */ - -[data-cognigy-webchat-root] .datepicker { - display: flex; - justify-content: center; - flex-grow: inherit; - padding-top: 5%; -} - -/* Buttons */ - -[data-cognigy-webchat-root] .controlButtons { - display: flex; - justify-content: space-around; - background-color: white; - height: 5%; - padding: 3%; - align-items: center; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/MessengerPreview.interface.ts b/src/plugins/messenger/MessengerPreview/MessengerPreview.interface.ts deleted file mode 100644 index e91096f7..00000000 --- a/src/plugins/messenger/MessengerPreview/MessengerPreview.interface.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { IFBMButton } from './interfaces/Button.interface'; -import { IFBMDefaultAction } from './interfaces/Action.interface'; -import { IFBMQuickReply } from './interfaces/QuickReply.interface'; - -export type FBMActionEventHandler = (e: React.MouseEvent, action: IFBMButton | IFBMDefaultAction | IFBMQuickReply) => void; - -export interface IWithFBMActionEventHandler { - onAction: FBMActionEventHandler; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/MessengerPreview.tsx b/src/plugins/messenger/MessengerPreview/MessengerPreview.tsx deleted file mode 100644 index b3c03982..00000000 --- a/src/plugins/messenger/MessengerPreview/MessengerPreview.tsx +++ /dev/null @@ -1,120 +0,0 @@ -import { IFBMMessage, IFBMAttachmentMessage, IFBMRegularMessage } from './interfaces/Message.interface'; -import { IFBMButtonTemplatePayload } from './interfaces/ButtonTemplatePayload.interface'; -import { IFBMGenericTemplatePayload } from './interfaces/GenericTemplatePayload.interface'; -import { IFBMListTemplatePayload } from './interfaces/ListTemplatePayload.interface'; -import { IFBMMediaTemplatePayload } from './interfaces/MediaTemplatePayload.interface'; - -import { getMessengerButtonTemplate } from './components/MessengerButtonTemplate/MessengerButtonTemplate'; -import { getMessengerGenericTemplate } from './components/MessengerGenericTemplate/MessengerGenericTemplate'; -import { getMessengerListTemplate } from './components/MessengerListTemplate/MessengerListTemplate'; -import { getMessengerMediaTemplate } from './components/MessengerMediaTemplate/MessengerMediaTemplate'; - -import { FBMActionEventHandler } from './MessengerPreview.interface'; -import { MessagePluginFactoryProps } from '../../../common/interfaces/message-plugin'; -import { getMessengerTextWithQuickReplies } from './components/MessengerTextWithQuickReplies/MessengerTextWithQuickReplies'; -import { IWebchatConfig } from '../../../common/interfaces/webchat-config'; -import { IWithMessageColor } from './interfaces/MessageColor.interface'; -import { IWithMessageDirection } from './interfaces/MessageDirection.interface'; - -export interface IMessengerPreviewProps extends Omit, 'color'>, IWithMessageColor, IWithMessageDirection { - /** input.data._cognigy._facebook */ - message: IFBMMessage; - onAction?: FBMActionEventHandler; - config: IWebchatConfig; -} - -export const getMessengerPreview = ({ React, styled }: MessagePluginFactoryProps) => { - - const MessengerButtonTemplate = getMessengerButtonTemplate({ React, styled }); - const MessengerGenericTemplate = getMessengerGenericTemplate({ React, styled }); - const MessengerListTemplate = getMessengerListTemplate({ React, styled }); - const MessengerMediaTemplate = getMessengerMediaTemplate({ React, styled }); - const MessengerTextWithQuickReplies = getMessengerTextWithQuickReplies({ React, styled }); - - const MessengerPreview = (props: IMessengerPreviewProps) => { - const { message, onAction: handleAction, config, messageColor, messageDirection, ...divProps } = props; - - const { attachment } = message as IFBMAttachmentMessage; - - // if no action handler is present, use a dummy function - const onAction = props.onAction - || (e => { - e.stopPropagation(); - }); - - if (attachment) { - // return text and quick replies - - const { type, payload } = attachment; - - switch (type) { - case 'template': { - const { template_type } = payload; - - switch (template_type) { - case 'button': { - return ( - - ) - } - - case 'generic': { - return ( - - ) - } - - case 'list': { - return ( - - ); - } - - case 'media': { - return ( - - ); - } - } - - break; - } - } - } - - return ( - - ) - } - - return MessengerPreview; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/Divider.tsx b/src/plugins/messenger/MessengerPreview/components/Divider.tsx deleted file mode 100644 index bf140be7..00000000 --- a/src/plugins/messenger/MessengerPreview/components/Divider.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { MessagePluginFactoryProps } from '../../../../common/interfaces/message-plugin'; - -export const getDivider = ({ React, styled }: MessagePluginFactoryProps) => { - - const Divider = styled.div(({ theme }) => ({ - borderBottomWidth: 1, - borderBottomStyle: 'solid', - borderBottomColor: theme.greyColor - })); - - return Divider; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerBubble.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerBubble.tsx deleted file mode 100644 index eca3fbc5..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerBubble.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { MessagePluginFactoryProps } from '../../../../common/interfaces/message-plugin'; -import { IWithMessageColor } from '../interfaces/MessageColor.interface'; -import { IWithMessageDirection } from '../interfaces/MessageDirection.interface'; - -export const getMessengerBubble = ({ React, styled }: MessagePluginFactoryProps) => { - const MessengerBubble = styled.div(({ theme, messageColor, messageDirection }) => ({ - padding: `${theme.unitSize * 2}px ${theme.unitSize * 3}px`, - - // prevent horizontal overflow - minWidth: 0, - wordBreak: 'break-word', - - // render line breaks in text - whiteSpace: 'pre-wrap', - - borderRadius: theme.unitSize * 2, - borderBottomLeftRadius: messageDirection === 'outgoing' ? undefined : 0, - borderBottomRightRadius: messageDirection === 'outgoing' ? 0 : undefined, - boxShadow: theme.messageShadow, - - - background: messageColor === 'neutral' ? 'white' : theme.primaryGradient, - color: messageColor === 'neutral' ? theme.greyContrastColor : theme.primaryContrastColor - })); - - return MessengerBubble; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerButton/MessengerButton.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerButton/MessengerButton.tsx deleted file mode 100644 index 9ce9e8ff..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerButton/MessengerButton.tsx +++ /dev/null @@ -1,76 +0,0 @@ - -import { IFBMButton } from '../../interfaces/Button.interface'; -import { getButtonLabel } from './lib/messengerButtonHelpers'; -import { MessagePluginFactoryProps } from '../../../../../common/interfaces/message-plugin'; -import { IWebchatConfig } from '../../../../../common/interfaces/webchat-config'; -import { sanitizeHTML } from '../../../../../webchat/helper/sanitize'; - -interface IMessengerButtonProps { - button: IFBMButton; - config: IWebchatConfig; - position?: number; - total?: number -} - -export const getMessengerButton = ({ React, styled }: MessagePluginFactoryProps) => { - - const componentStyles = (({ theme }) => ({ - display: 'block', - color: theme.primaryColor, - border: 'none', - backgroundColor: 'white', - padding: `10px 20px`, - fontSize: 15, - cursor: 'pointer', - outline: 'none', - - '&:hover': { - backgroundColor: 'hsl(0, 0%, 97%)' - }, - - '&:focus': { - backgroundColor: 'hsl(0, 0%, 92%)' - }, - - '&:active': { - backgroundColor: 'hsl(0, 0%, 92%)' - } - })) - - const Button = styled.button(componentStyles, { - width: '100%', - }); - - const Link = styled.a(componentStyles, { - textDecoration: 'none', - textAlign: 'center' - }); - - const MessengerButton = ({ button, position, total, ...props }: IMessengerButtonProps & React.ComponentProps) => { - const buttonType = button.type; - const buttonPayload = button.payload; - const isWebURL = buttonType === "web_url"; - const isPhoneNumber = buttonPayload && buttonType === "phone_number"; - const buttonTitle = button.title ? button.title + ". " : ""; - const isWebURLButtonTargetBlank = button.target !== "_self"; - const buttonTitleWithTarget = isWebURL && isWebURLButtonTargetBlank ? buttonTitle + "Opens in new tab" : button.title; - const ariaLabel = total > 1 ? `Item ${position} of ${total}: ${buttonTitleWithTarget}` : buttonTitleWithTarget; - - const buttonLabel = getButtonLabel(button); - const __html = props.config.settings.layout.disableHtmlContentSanitization ? buttonLabel : sanitizeHTML(buttonLabel) - - const Component = isPhoneNumber ? Link : Button; - - return ( - - ) - } - - return MessengerButton; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerButton/lib/messengerButtonHelpers.ts b/src/plugins/messenger/MessengerPreview/components/MessengerButton/lib/messengerButtonHelpers.ts deleted file mode 100644 index 546d81be..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerButton/lib/messengerButtonHelpers.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { IFBMButton, IFBMPostbackButton } from "../../../interfaces/Button.interface"; - -export const getButtonLabel = (button: IFBMButton): string => { - let { title } = button as IFBMPostbackButton; - - if (!title) { - switch (button.type) { - case 'account_link': - return 'Login'; - - case 'account_unlink': - return 'Logout'; - - case 'element_share': - return 'Share'; - - case 'phone_number': - return 'Call'; - } - } - - return title; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerButtonHeader.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerButtonHeader.tsx deleted file mode 100644 index ed6ac296..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerButtonHeader.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { MessagePluginFactoryProps } from '../../../../common/interfaces/message-plugin'; -import { IWithMessageColor } from '../interfaces/MessageColor.interface'; - -export const getMessengerButtonHeader = ({ React, styled }: MessagePluginFactoryProps) => { - const MessengerFrame = styled.div(({ theme, messageColor }) => ({ - width: 250, - borderRadius: theme.unitSize * 2, - overflow: 'hidden', - background: messageColor === 'neutral' ? 'white' : theme.primaryGradient, - color: messageColor === 'neutral' ? theme.greyContrastColor : theme.primaryContrastColor, - boxShadow: theme.messageShadow - })); - - return MessengerFrame; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerButtonTemplate/MessengerButtonTemplate.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerButtonTemplate/MessengerButtonTemplate.tsx deleted file mode 100644 index 8577c052..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerButtonTemplate/MessengerButtonTemplate.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import { IFBMButtonTemplatePayload } from '../../interfaces/ButtonTemplatePayload.interface'; -import { IWithFBMActionEventHandler } from '../../MessengerPreview.interface'; -import { getDivider } from '../Divider'; -import { MessagePluginFactoryProps } from '../../../../../common/interfaces/message-plugin'; -import { getMessengerButton } from '../MessengerButton/MessengerButton'; -import { getMessengerButtonHeader } from '../MessengerButtonHeader'; -import { useEffect } from 'react'; -import {IWebchatConfig} from '../../../../../common/interfaces/webchat-config'; -import { useRandomId } from '../../../../../common/utils/randomId'; -import { sanitizeHTML } from '../../../../../webchat/helper/sanitize'; -import { IWithMessageColor } from '../../interfaces/MessageColor.interface'; - -interface IMessengerButtonTemplateProps extends IWithFBMActionEventHandler, IWithMessageColor { - payload: IFBMButtonTemplatePayload; - config: IWebchatConfig; -} - -export const getMessengerButtonTemplate = ({ - React, - styled -}: MessagePluginFactoryProps) => { - const MessengerButtonHeader = getMessengerButtonHeader({ React, styled }); - const MessengerButton = getMessengerButton({ React, styled }); - const Divider = getDivider({ React, styled }); - - const Text = styled.div(({ theme }) => ({ - padding: `${theme.unitSize * 2}px ${theme.unitSize * 3}px`, - whiteSpace: "pre-line", - "& a": { - color: theme.primaryContrastColor, - textDecoration: "underline !important" - }, - })); - - const MessengerButtonTemplate = ({ - payload, - onAction, - config, - color, - ...divProps - }: IMessengerButtonTemplateProps & React.HTMLProps) => { - const { text } = payload; - const buttons = payload.buttons || []; - const hasMoreThanOnebutton = buttons && buttons.length > 1; - - const webchatButtonTemplateButtonId = useRandomId("webchatButtonTemplateButton"); - const webchatButtonTemplateTextId = useRandomId("webchatButtonTemplateHeader"); - const buttonGroupAriaLabelledby = text ? `${webchatButtonTemplateTextId} srOnly-${webchatButtonTemplateTextId}` : undefined; - const a11yProps = hasMoreThanOnebutton ? {role: "group", "aria-labelledby": buttonGroupAriaLabelledby} : {}; - - useEffect(() => { - const firstButton = document.getElementById(`${webchatButtonTemplateButtonId}-0`); - const chatHistory = document.getElementById("webchatChatHistoryWrapperLiveLogPanel"); - - if (!config?.settings.widgetSettings.enableAutoFocus) return; - - if(!chatHistory?.contains(document.activeElement)) return; - - setTimeout(() => { - firstButton?.focus(); - }, 200); - }, []); - - const __html = config.settings.layout.disableHtmlContentSanitization ? text : sanitizeHTML(text); - - return ( - - {text && } - - {/* sr-only text with total number of buttons or links in the group*/} - {hasMoreThanOnebutton && - - With {buttons?.length} buttons or links in - - } - -
- {buttons.map((button, index) => ( - - - onAction(e, button)} - className="webchat-buttons-template-button" - config={config} - id={`${webchatButtonTemplateButtonId}-${index}`} - position={index + 1} - total={buttons.length} - /> - - ))} -
-
- ); - }; - - return MessengerButtonTemplate; -}; diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerContent.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerContent.tsx deleted file mode 100644 index 27857b42..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerContent.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { MessagePluginFactoryProps } from '../../../../common/interfaces/message-plugin'; - -export const getMessengerContent = ({ React, styled }: MessagePluginFactoryProps) => { - const MessengerContent = styled.div({ - padding: 10, - wordWrap: 'break-word', - "&:focus": { - outline: 'none', - } - }); - - return MessengerContent; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerFrame.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerFrame.tsx deleted file mode 100644 index 7c5f0517..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerFrame.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { MessagePluginFactoryProps } from '../../../../common/interfaces/message-plugin'; - -export const getMessengerFrame = ({ React, styled }: MessagePluginFactoryProps) => { - const MessengerFrame = styled.div(({ theme }) => ({ - width: 250, - borderRadius: theme.unitSize * 2, - overflow: 'hidden', - backgroundColor: 'hsl(0, 0%, 95%)', - color: 'hsla(0, 0%, 0%, .8)', - boxShadow: theme.messageShadow, - "& div": { - "& audio": { - borderRadius: theme.unitSize * 2, - "&:focus": { - outline: 'none', - boxShadow: `0 0 3px 1px ${theme.primaryWeakColor}` - }, - }, - "& video": { - borderRadius: theme.unitSize * 2, - "&:focus": { - outline: 'none', - boxShadow: `0 0 3px 1px ${theme.primaryWeakColor}` - }, - }, - }, - })); - - return MessengerFrame; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerGenericTemplate/MessengerGenericTemplate.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerGenericTemplate/MessengerGenericTemplate.tsx deleted file mode 100644 index e8755425..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerGenericTemplate/MessengerGenericTemplate.tsx +++ /dev/null @@ -1,266 +0,0 @@ -import { - IFBMGenericTemplatePayload, - IFBMGenericTemplateElement -} from '../../interfaces/GenericTemplatePayload.interface'; -import { IWithFBMActionEventHandler } from '../../MessengerPreview.interface'; -import { getDivider } from '../Divider'; -import { MessagePluginFactoryProps } from '../../../../../common/interfaces/message-plugin'; -import { getMessengerButton } from '../MessengerButton/MessengerButton'; -import { getMessengerImage } from '../MessengerImage/MessengerImage'; -import { getMessengerContent } from '../MessengerContent'; -import { getMessengerFrame } from '../MessengerFrame'; -import { getMessengerTitle } from '../MessengerTitle'; -import { getMessengerSubtitle } from '../MessengerSubtitle'; -import { Carousel } from 'react-responsive-carousel'; - -import "./carousel.css"; -import { IWebchatConfig } from "../../../../../common/interfaces/webchat-config"; -import { v4 as uuidv4 } from "uuid" -import { sanitizeHTML } from '../../../../../webchat/helper/sanitize'; - -export interface IMessengerGenericTemplateProps - extends IWithFBMActionEventHandler { - payload: IFBMGenericTemplatePayload; - config: IWebchatConfig; -} - -export interface IMessengerGenericTemplateState { - index?: number; - selectedItem: number; -} - -export const getMessengerGenericTemplate = ({ - React, - styled, -}: MessagePluginFactoryProps) => { - const MessengerSubtitle = getMessengerSubtitle({ React, styled}); - const MessengerTitle = getMessengerTitle({ React, styled }); - const MessengerFrame = getMessengerFrame({ React, styled }); - const MessengerContent = getMessengerContent({ React, styled }); - const MessengerButton = getMessengerButton({ React, styled }); - const MessengerImage = getMessengerImage({ React, styled }); - const Divider = getDivider({ React, styled }); - - const CarouselRoot = styled(Carousel)(({ theme }) => ({ - marginBottom: -32, - - ".slide": { - paddingLeft: theme.unitSize * 2, - paddingRight: theme.unitSize * 2, - paddingBottom: 32, - display: "flex", - - "&>*": { - flexGrow: 1 - } - } - })); - - const ElementRoot = styled.div({ - display: "flex" - }); - - const Frame = styled(MessengerFrame)({ - backgroundColor: "white", - display: "flex", - flexDirection: "column", - "&:focus": { - outline: "none", - }, - "&.wide": { - width: 320 - } - }); - - const GenericContent = styled(MessengerContent)({ - flexGrow: 1, - "&.link": { - cursor: "pointer", - "&:focus": { - backgroundColor: 'hsl(0, 0%, 92%)' - } - } - }); - - const MessengerGenericTemplate = class MessengerGenericTemplate extends React.Component< - IMessengerGenericTemplateProps & React.HTMLProps, - IMessengerGenericTemplateState - > { - carouselRootId = `webchatCarouselTemplateRoot-${uuidv4()}`; - carouselContentId = `webchatCarouselContentButton-${uuidv4()}`; - carouselButtonId = `webchatCarouselTemplateButton-${uuidv4()}`; - - /** - * Controlling the selectedItem state causes unexpected scroll behavior in IE11 and Edge 15 to 18. - * Therefore, detect these legacy browsers and prevent updating selectedItem state. - * Without proper selectedItem state, we will not be able to fix the accessibility issues in these browsers. - * */ - isLegacyEdgeBrowser: boolean = window.navigator.userAgent.indexOf('Edge/') > 0; //to detect Edge 15 to 18 - isIE11Browser: boolean = window.navigator.userAgent.indexOf('Trident/') > 0; //to detect ie11 - - constructor(props) { - super(props); - - this.state = { - selectedItem: 0, - } - } - - componentDidMount() { - const chatHistory = document.getElementById("webchatChatHistoryWrapperLiveLogPanel"); - const firstCardContent = document.getElementById(`${this.carouselContentId}-0`); - const firstButton = document.getElementById(`${this.carouselButtonId}-00`); - - if (!this.props.config.settings.widgetSettings.enableAutoFocus) return; - - if(!chatHistory?.contains(document.activeElement)) return; - - if(firstCardContent?.getAttribute("role") === "link") { - setTimeout(() => { - firstCardContent?.focus(); - }, 200); - } else if(firstButton) { - setTimeout(() => { - firstButton?.focus(); - }, 200); - } - } - - // Change the selectedItem state, in order to scroll the card with a focused element into view - handleScrollToView = (index) => { - if(!this.isIE11Browser && !this.isLegacyEdgeBrowser) { - this.setState({selectedItem: index}); - } - } - - /** - * Move cards in carousel using arrow keys. 'useKeyboardArrows' prop of react-responsive-carousel - * moves the carousel irrespective of it has a focused item or not. Therefore, it has to be handled this way. - * - */ - handleArrowKeyDown = (event) => { - if(!this.isIE11Browser && !this.isLegacyEdgeBrowser) { - const { selectedItem } = this.state; - const lastPosition = this.props.payload.elements.length - 1; - if((event.key === "ArrowRight" || event.keyCode === "39") && selectedItem < lastPosition) { - this.setState({selectedItem: selectedItem + 1}, () => { - this.focusCardInView(); - }); - } else if((event.key === "ArrowLeft" || event.keyCode === "39") && selectedItem > 0) { - this.setState({selectedItem: selectedItem - 1}, () => { - this.focusCardInView(); - }) - } - } - } - - focusCardInView = () => { - const nextCardToFocus = document.getElementById(`${this.carouselRootId}-${this.state.selectedItem}`); - nextCardToFocus?.focus(); - } - - renderElement = (element: IFBMGenericTemplateElement, index?: number) => { - const { onAction, ...divProps } = this.props; - const { image_url, image_alt_text, title, subtitle, default_action } = element; - const buttons = element.buttons || []; - - const carouselListLength = this.props.payload.elements.length; - const isCentered = this.props.config.settings.demoWebchat.position === 'centered'; - const carouselTitleId = `webchatCarouselTemplateTitle-${uuidv4()}`; - const carouselSubtitleId = `webchatCarouselTemplateSubtitle-${uuidv4()}`; - - const buttonsCountLabel = buttons.length === 1 ? "1 button or link." : `${buttons.length} buttons or links.`; - const buttonsInListItemAriaLabel = buttons.length > 0 ? `with ${buttonsCountLabel}` : undefined; - // When gallery items count is one, refer the gallery card as 'slide' instead of 'list item', in aria-label - const listItemCount = index !== undefined ? `${carouselListLength === 1 ? "slide" : ""} ${index + 1} of ${carouselListLength} ${buttonsInListItemAriaLabel || ""}` : undefined; - const carouselAriaLabel = title ? `${listItemCount}: ${title}` : listItemCount; - const carouselAriaLabelledby = title ? carouselTitleId : undefined; - const carouselAriaDescribedby = subtitle ? carouselSubtitleId : undefined; - const carouselRootA11yProps = {role: "group", "aria-labelledby": listItemCount ? undefined : carouselAriaLabelledby, - "aria-label": listItemCount ? carouselAriaLabel : undefined, "aria-describedby": carouselAriaDescribedby}; - const carouselTitle = title ? title + ". " : ""; - const carouselHeaderA11yProps = default_action?.url ? {"aria-label": carouselTitle + "Opens in new tab"} : - {"aria-labelledby": carouselAriaLabelledby} - - const handleKeyDown = (event, default_action) => { - if(default_action && event.key === "Enter") { - onAction(event, default_action); - } - } - - const titleHtml = this.props.config.settings.layout.disableHtmlContentSanitization ? title : sanitizeHTML(title); - const subtitleHtml = this.props.config.settings.layout.disableHtmlContentSanitization ? subtitle : sanitizeHTML(subtitle); - - return ( - - this.handleScrollToView(index)} - {...carouselRootA11yProps} - > - - default_action && onAction(e, default_action)} - className={`webchat-carousel-template-content ${default_action?.url ? "link" : ""}`} - role={default_action?.url ? "link" : undefined} - aria-describedby={carouselAriaDescribedby} - tabIndex={default_action?.url ? 0 : -1} - onKeyDown = {e => handleKeyDown(e, default_action)} - id={`${this.carouselContentId}-${index}`} - {...carouselHeaderA11yProps} - > - - - -
- {buttons && - buttons.map((button, i) => ( - - - onAction(e, button)} - className="webchat-carousel-template-button" - config={this.props.config} - id={`${this.carouselButtonId}-${index}${i}`} - position={i + 1} - total={buttons.length} - /> - - ))} -
- -
- ); - }; - - render() { - const elements = this.props.payload.elements; - const { selectedItem } = this.state; - - if (elements.length === 0) return null; - - if (elements.length === 1) return this.renderElement(elements[0], 0); - - return ( -
- - {elements.map(this.renderElement)} - -
- ); - } - }; - - return MessengerGenericTemplate; -}; diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerGenericTemplate/carousel.css b/src/plugins/messenger/MessengerPreview/components/MessengerGenericTemplate/carousel.css deleted file mode 100644 index d5fe0ff1..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerGenericTemplate/carousel.css +++ /dev/null @@ -1,316 +0,0 @@ -/******************************************** - BREAKPOINT WIDTHS -********************************************/ - -/******************************************** - FONTS -********************************************/ - -/******************************************** - COLOURS -********************************************/ - -[data-cognigy-webchat-root] .carousel .control-arrow, .carousel.carousel-slider .control-arrow { - -webkit-transition: all 0.25s ease-in; - -moz-transition: all 0.25s ease-in; - -ms-transition: all 0.25s ease-in; - -o-transition: all 0.25s ease-in; - transition: all 0.25s ease-in; - opacity: 0.4; - filter: alpha(opacity=40); - position: absolute; - z-index: 2; - top: 20px; - background: none; - border: 0; - font-size: 32px; - cursor: pointer; -} - -[data-cognigy-webchat-root] .carousel .control-arrow:hover { - opacity: 1; - filter: alpha(opacity=100); -} - -[data-cognigy-webchat-root] .carousel .control-arrow:before, .carousel.carousel-slider .control-arrow:before { - margin: 0 5px; - display: inline-block; - border-top: 8px solid transparent; - border-bottom: 8px solid transparent; - content: ''; -} - -[data-cognigy-webchat-root] .carousel .control-disabled.control-arrow { - opacity: 0; - filter: alpha(opacity=0); - cursor: inherit; - display: none; -} - -[data-cognigy-webchat-root] .carousel .control-prev.control-arrow { - left: 0; -} - -[data-cognigy-webchat-root] .carousel .control-prev.control-arrow:before { - border-right: 8px solid #fff; -} - -[data-cognigy-webchat-root] .carousel .control-next.control-arrow { - right: 0; -} - -[data-cognigy-webchat-root] .carousel .control-next.control-arrow:before { - border-left: 8px solid #fff; -} - -[data-cognigy-webchat-root] .carousel { - position: relative; - width: 100%; -} - -[data-cognigy-webchat-root] .carousel * { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -[data-cognigy-webchat-root] .carousel img { - width: 100%; - display: inline-block; - pointer-events: none; -} - -[data-cognigy-webchat-root] .carousel .carousel { - position: relative; -} - -[data-cognigy-webchat-root] .carousel .control-arrow { - outline: 0; - border: 0; - background: none; - top: 50%; - margin-top: -13px; - font-size: 18px; -} - -[data-cognigy-webchat-root] .carousel .thumbs-wrapper { - margin: 20px; - overflow: hidden; -} - -[data-cognigy-webchat-root] .carousel .thumbs { - -webkit-transition: all 0.15s ease-in; - -moz-transition: all 0.15s ease-in; - -ms-transition: all 0.15s ease-in; - -o-transition: all 0.15s ease-in; - transition: all 0.15s ease-in; - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - -ms-transform: translate3d(0, 0, 0); - -o-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - position: relative; - list-style: none; - white-space: nowrap; -} - -[data-cognigy-webchat-root] .carousel .thumb { - -webkit-transition: border 0.15s ease-in; - -moz-transition: border 0.15s ease-in; - -ms-transition: border 0.15s ease-in; - -o-transition: border 0.15s ease-in; - transition: border 0.15s ease-in; - display: inline-block; - width: 80px; - margin-right: 6px; - white-space: nowrap; - overflow: hidden; - border: 3px solid #fff; - padding: 2px; -} - -[data-cognigy-webchat-root] .carousel .thumb:focus { - border: 3px solid #ccc; - outline: none; -} - -[data-cognigy-webchat-root] .carousel .thumb.selected, .carousel .thumb:hover { - border: 3px solid #333; -} - -[data-cognigy-webchat-root] .carousel .thumb img { - vertical-align: top; -} - -[data-cognigy-webchat-root] .carousel.carousel-slider { - position: relative; - margin: 0; - overflow: hidden; -} - -[data-cognigy-webchat-root] .carousel.carousel-slider .control-arrow { - top: 0; - color: #fff; - font-size: 26px; - bottom: 0; - margin-top: 0; - padding: 5px; -} - -[data-cognigy-webchat-root] .carousel.carousel-slider .control-arrow:hover, [data-cognigy-webchat-root] .carousel.carousel-slider .control-arrow:focus { - background: rgba(0, 0, 0, 0.2); -} - -[data-cognigy-webchat-root] .carousel .slider-wrapper { - overflow: hidden; - margin: auto; - width: 100%; - -webkit-transition: height 0.15s ease-in; - -moz-transition: height 0.15s ease-in; - -ms-transition: height 0.15s ease-in; - -o-transition: height 0.15s ease-in; - transition: height 0.15s ease-in; -} - -[data-cognigy-webchat-root] .carousel .slider-wrapper.axis-horizontal .slider { - -ms-box-orient: horizontal; - display: -webkit-box; - display: -moz-box; - display: -ms-flexbox; - display: -moz-flex; - display: -webkit-flex; - display: flex; -} - -[data-cognigy-webchat-root] .carousel .slider-wrapper.axis-horizontal .slider .slide { - flex-direction: column; - flex-flow: column; -} - -[data-cognigy-webchat-root] .carousel .slider-wrapper.axis-vertical { - -ms-box-orient: horizontal; - display: -webkit-box; - display: -moz-box; - display: -ms-flexbox; - display: -moz-flex; - display: -webkit-flex; - display: flex; -} - -[data-cognigy-webchat-root] .carousel .slider-wrapper.axis-vertical .slider { - -webkit-flex-direction: column; - flex-direction: column; -} - -[data-cognigy-webchat-root] .carousel .slider { - margin: 0; - padding: 0; - position: relative; - list-style: none; - width: 100%; -} - -[data-cognigy-webchat-root] .carousel .slider.animated { - -webkit-transition: all 0.35s ease-in-out; - -moz-transition: all 0.35s ease-in-out; - -ms-transition: all 0.35s ease-in-out; - -o-transition: all 0.35s ease-in-out; - transition: all 0.35s ease-in-out; -} - -[data-cognigy-webchat-root] .carousel .slide { - min-width: 100%; - margin: 0; - position: relative; - /* text-align: center; */ - /* background: #000; */ -} - -[data-cognigy-webchat-root] .carousel .slide img { - width: 100%; - vertical-align: top; - border: 0; -} - -[data-cognigy-webchat-root] .carousel .slide iframe { - display: inline-block; - width: calc(100% - 80px); - margin: 0 40px 40px; - border: 0; -} - -[data-cognigy-webchat-root] .carousel .slide .legend { - -webkit-transition: all 0.5s ease-in-out; - -moz-transition: all 0.5s ease-in-out; - -ms-transition: all 0.5s ease-in-out; - -o-transition: all 0.5s ease-in-out; - transition: all 0.5s ease-in-out; - position: absolute; - bottom: 40px; - left: 50%; - margin-left: -45%; - width: 90%; - border-radius: 10px; - background: #000; - color: #fff; - padding: 10px; - font-size: 12px; - text-align: center; - opacity: 0.25; - -webkit-transition: opacity 0.35s ease-in-out; - -moz-transition: opacity 0.35s ease-in-out; - -ms-transition: opacity 0.35s ease-in-out; - -o-transition: opacity 0.35s ease-in-out; - transition: opacity 0.35s ease-in-out; -} - -[data-cognigy-webchat-root] .carousel .control-dots { - position: absolute; - bottom: 0; - margin: 10px 0; - text-align: center; - width: 100%; -} - -@media (min-width: 960px) { - .carousel .control-dots { - bottom: 0; - } -} - -[data-cognigy-webchat-root] .carousel .control-dots .dot { - -webkit-transition: opacity 0.25s ease-in; - -moz-transition: opacity 0.25s ease-in; - -ms-transition: opacity 0.25s ease-in; - -o-transition: opacity 0.25s ease-in; - transition: opacity 0.25s ease-in; - opacity: 0.3; - filter: alpha(opacity=30); - box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.9); - background: #fff; - border-radius: 50%; - width: 8px; - height: 8px; - cursor: pointer; - display: inline-block; - margin: 0 8px; -} - -[data-cognigy-webchat-root] .carousel .control-dots .dot.selected, .carousel .control-dots .dot:hover { - opacity: 1; - filter: alpha(opacity=100); -} - -[data-cognigy-webchat-root] .carousel .carousel-status { - position: absolute; - top: 0; - right: 0; - padding: 5px; - font-size: 10px; - text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.9); - color: #fff; -} - -[data-cognigy-webchat-root] .carousel:hover .slide .legend { - opacity: 1; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerImage/MessangerImageContext.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerImage/MessangerImageContext.tsx deleted file mode 100644 index 1f83769b..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerImage/MessangerImageContext.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { createContext, useContext } from 'react'; -import { IFBMImage } from '../../interfaces/Image.interface'; - -interface IMessangerImageContext extends IFBMImage { - onExpand: () => void, - onClose: () => void, -} - -export const MessangerImageContext = createContext(null); - -export const useMessangerImageContext = () => useContext(MessangerImageContext) as IMessangerImageContext; \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerImage/MessengerImage.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerImage/MessengerImage.tsx deleted file mode 100644 index 378f80b5..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerImage/MessengerImage.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { useState } from 'react'; -import { MessagePluginFactoryProps } from "../../../../../common/interfaces/message-plugin"; -import { getImagePreview } from '../MessengerImage/components/ImagePreview'; -import { getLightbox } from '../MessengerImage/components/Lightbox'; -import { IFBMImage } from '../../interfaces/Image.interface'; -import { MessangerImageContext } from './MessangerImageContext'; - -export const getMessengerImage = ({ React, styled }: MessagePluginFactoryProps) => { - - const ImagePreview = getImagePreview({ React, styled }); - const LightBox = getLightbox({ React, styled }); - - const MessengerImage = (props: IFBMImage & React.HTMLProps) => { - const [showLightbox, setShowLightbox] = useState(false); - const { isDownloadable } = props; - - return ( - isDownloadable && setShowLightbox(true), - onClose: () => setShowLightbox(false), - ...props - }}> - - {showLightbox && } - - ); - }; - - return MessengerImage; -}; diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerImage/components/ImagePreview.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerImage/components/ImagePreview.tsx deleted file mode 100644 index 9a22436b..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerImage/components/ImagePreview.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import { useMessangerImageContext } from '../MessangerImageContext'; -import { MessagePluginFactoryProps } from "../../../../../../common/interfaces/message-plugin"; -import { getBackgroundImage } from '../../../lib/css'; - -export const getImagePreview = ({ React, styled }: MessagePluginFactoryProps) => { - - const templateStyle = ({ template = 'media' }) => ({ - media: { - paddingTop: "75%" - }, - list: { - paddingTop: "50%" - }, - generic: { - paddingTop: "50%", - display: "table", - width: "100%" - } - })[template]; - - const FlexImageDiv = styled.div(({ isDownloadable }) => ({ - cursor: isDownloadable ? 'pointer' : 'default', - "&:hover": { - opacity: isDownloadable ? '.8' : '1', - }, - "&:focus": { - opacity: isDownloadable ? '.8' : '1', - outline: 'none' - }, - })); - - const FixedImage = styled(FlexImageDiv)({ - backgroundSize: "cover", - backgroundPosition: "center center", - }, templateStyle); - - const FlexImage = styled.img({ - display: 'block', - width: '100%' - }) - - const ImagePreview = () => { - const { config, url, altText, template, isDownloadable, onExpand } = useMessangerImageContext(); - - const divTabIndex = isDownloadable ? "0" : "-1"; - const divRole = isDownloadable ? "button" : null; - const divAriaLabel = isDownloadable ? "View Image in fullsize" : null; - - const handleKeyDown = (event: React.KeyboardEvent) => { - event.key === "Enter" && onExpand && onExpand(); - } - - return config.settings.layout.dynamicImageAspectRatio ? ( - onExpand()} - onKeyDown={handleKeyDown} - isDownloadable={isDownloadable} - tabIndex={divTabIndex} - role={divRole} - aria-label={divAriaLabel} - > - - - ) : ( - onExpand()} - template={template} - isDownloadable={isDownloadable} - onKeyDown={handleKeyDown} - tabIndex={divTabIndex} - role={divRole} - aria-label={divAriaLabel} - > - - - ) - }; - - return ImagePreview; -}; diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerImage/components/LightBoxHeader.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerImage/components/LightBoxHeader.tsx deleted file mode 100644 index 6e4bfe8f..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerImage/components/LightBoxHeader.tsx +++ /dev/null @@ -1,101 +0,0 @@ -import { useRef } from "react"; -import { useMessangerImageContext } from '../MessangerImageContext'; -import { MessagePluginFactoryProps } from "../../../../../../common/interfaces/message-plugin"; -import CloseIcon from '../../../../../../webchat-ui/assets/baseline-close-24px.svg'; -import DownloadIcon from '../../../../../../webchat-ui/assets/baseline-download-24px.svg'; - -export const getLightBoxHeader = ({ React, styled }: MessagePluginFactoryProps) => { - - const Header = styled.div(({ theme }) => ({ - position: 'absolute', - top: 0, - height: '56px', - width: '100%', - backgroundColor: theme.primaryColor, - overflow: 'hidden', - display: 'flex', - justifyContent: 'space-between' - })) - - const Caption = styled.div(({ theme }) => ({ - display: 'flex', - alignItems: 'center', - marginLeft: '15px', - color: theme.primaryContrastColor, - fontWeight: '700', - fontSize: '16px' - })) - - const IconsGroup = styled.div({ - display: 'flex', - alignItems: 'center', - marginRight: '10px' - }) - - const Icon = styled.button(({ theme }) => ({ - padding: '8px', - boxSizing: 'border-box', - backgroundColor: 'transparent', - border: 'none', - outline: 'none', - margin: 0, - transition: 'background-color .1s ease-out,color .1s ease-out,fill .1s ease-out', - color: theme.primaryContrastColor, - borderRadius: '50%', - cursor: 'pointer', - "& svg": { - fill: theme.primaryContrastColor, - }, - "&:hover, &:focus": { - backgroundColor: theme.primaryStrongColor, - opacity: '0.85' - } - })) - - const LightBoxHeader = () => { - const { url, altText, onClose } = useMessangerImageContext(); - - const firstButton = useRef(null); - - const handleDownload = () => { - window.open(url, '_blank'); - } - - const handleKeyDownload = (event: KeyboardEvent) => { - event.key === "Enter" && handleDownload(); - } - - const handleKeyClose = (event: KeyboardEvent) => { - if (event.key === "Tab" || event.shiftKey) { - firstButton.current?.focus(); - event.preventDefault(); - } - event.code === "Enter" && onClose && onClose(); - } - - return ( -
- {altText} - - - - - - - - -
- ) - }; - - return LightBoxHeader; -}; diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerImage/components/Lightbox.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerImage/components/Lightbox.tsx deleted file mode 100644 index da17267a..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerImage/components/Lightbox.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import { useEffect } from 'react'; -import { useMessangerImageContext } from '../MessangerImageContext'; -import { MessagePluginFactoryProps } from "../../../../../../common/interfaces/message-plugin"; -import { getLightBoxHeader } from '../../MessengerImage/components/LightBoxHeader'; - -export const getLightbox = ({ React, styled }: MessagePluginFactoryProps) => { - - const LightBoxHeader = getLightBoxHeader({ React, styled }); - - const Wrapper = styled.div({ - position: 'fixed', - zIndex: 5000, - left: 0, - top: 0, - width: '100%', - height: '100%', - backgroundColor: 'rgba(0, 0, 0, 0.8)', - touchAction: 'none', - overflow: 'hidden', - }) - - const Content = styled.div({ - position: 'relative', - height: '100%', - width: '100%', - }) - - const FullImage = styled.img({ - position: 'absolute', - top: '50%', - left: '50%', - maxWidth: '100%', - maxHeight: '100%', - height: 'auto', - transform: 'translate3d(-50%, -50%, 0)', - overflow: 'hidden', - }) - - const LightBox = () => { - const { url, altText, onClose } = useMessangerImageContext(); - - useEffect(() => { - const close = (event: KeyboardEvent) => { - event.code === "Escape" && onClose && onClose(); - } - window.addEventListener('keydown', close); - return () => window.removeEventListener('keydown', close); - }, []); - - const handleOnClickBackdrop = (event: React.MouseEvent) => { - event.preventDefault(); - onClose(); - } - - const handleOnClickImage = (event: React.MouseEvent) => { - event.stopPropagation(); - } - - const handleOnSwipeImage = (event: React.MouseEvent) => { - event.preventDefault(); - onClose(); - } - - return ( - - - - - - - ); - }; - - return LightBox; -}; diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerListButton.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerListButton.tsx deleted file mode 100644 index f39c126a..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerListButton.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { MessagePluginFactoryProps } from "../../../../common/interfaces/message-plugin"; - -export const getMessengerListButton = ({ React, styled }: MessagePluginFactoryProps) => { - const Button = styled.button(({ theme }) => ({ - backgroundColor: 'transparent', - borderRadius: theme.unitSize, - padding: `${theme.unitSize}px ${theme.unitSize * 2}px`, - marginTop: theme.unitSize, - color: theme.primaryColor, - border: `1px solid ${theme.primaryColor}`, - cursor: 'pointer', - outline: 'none', - - '&:hover': { - backgroundColor: 'hsl(0, 0%, 97%)' - }, - - '&:focus': { - backgroundColor: 'hsl(0, 0%, 92%)' - }, - - '&:active': { - backgroundColor: 'hsl(0, 0%, 92%)' - } - })); - - return Button; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerListTemplate/MessengerListTemplate.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerListTemplate/MessengerListTemplate.tsx deleted file mode 100644 index 23c50a6f..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerListTemplate/MessengerListTemplate.tsx +++ /dev/null @@ -1,97 +0,0 @@ -import { IFBMListTemplatePayload } from '../../interfaces/ListTemplatePayload.interface'; -import { IWithFBMActionEventHandler } from '../../MessengerPreview.interface'; -import { getDivider } from '../Divider'; -import { MessagePluginFactoryProps } from '../../../../../common/interfaces/message-plugin'; -import { getMessengerButton } from '../MessengerButton/MessengerButton'; -import { getMessengerListTemplateElement } from './components/MessengerListTemplateElement'; -import { getMessengerFrame } from '../MessengerFrame'; -import { getMessengerListTemplateHeaderElement } from './components/MessengerListTemplateHeaderElement'; -import { IWebchatConfig } from '../../../../../common/interfaces/webchat-config'; -import { useEffect } from 'react'; -import { useRandomId } from '../../../../../common/utils/randomId'; -import { IWithMessageColor } from '../../interfaces/MessageColor.interface'; - -export interface IMessengerListTemplateProps extends IWithFBMActionEventHandler, IWithMessageColor { - payload: IFBMListTemplatePayload; - config: IWebchatConfig; -} - -export const getMessengerListTemplate = ({ React, styled }: MessagePluginFactoryProps) => { - const MessengerListTemplateHeaderElement = getMessengerListTemplateHeaderElement({ React, styled }); - const MessengerFrame = getMessengerFrame({ React, styled }); - const MessengerListTemplateElement = getMessengerListTemplateElement({ React, styled }); - const MessengerButton = getMessengerButton({ React, styled }); - const Divider = getDivider({ React, styled }); - - const MessengerListTemplate = ({ payload, onAction, config, messageColor, ...divProps }: IMessengerListTemplateProps & React.HTMLProps) => { - const { elements, top_element_style, buttons } = payload; - - // We support the "large" string to maintain compatibility with old format - const showTopElementLarge = (top_element_style === "large" || top_element_style === true); - - const regularElements = showTopElementLarge - ? elements.slice(1) - : elements - - const headerElement = showTopElementLarge - ? elements[0] - : null; - - const button = buttons && buttons[0]; - const listTemplateId = useRandomId("webchatListTemplateRoot"); - - useEffect(() => { - const chatHistory = document.getElementById("webchatChatHistoryWrapperLiveLogPanel"); - - if (!config?.settings.widgetSettings.enableAutoFocus) return; - - if (!chatHistory?.contains(document.activeElement)) return; - - const listTemplateRoot = document.getElementById(listTemplateId); - // get the first focusable element within the list and add focus - const focusable = listTemplateRoot?.querySelectorAll('button, [href], [tabindex]:not([tabindex="-1"])'); - const firstFocusable = focusable && focusable[0] as HTMLElement; - setTimeout(() => { firstFocusable?.focus(); }, 200); - }, []); - - return ( - - {headerElement && ( - - )} - {regularElements.map((element, index) => ( - - {index !== 0 && ( - - )} - - - ))} - {button && ( - <> - - onAction(e, button)} - config={config} - /> - - )} - - ) - }; - - return MessengerListTemplate; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerListTemplate/components/MessengerListTemplateElement.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerListTemplate/components/MessengerListTemplateElement.tsx deleted file mode 100644 index af6c447c..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerListTemplate/components/MessengerListTemplateElement.tsx +++ /dev/null @@ -1,105 +0,0 @@ -import { IFBMListTemplateElement } from '../../../interfaces/ListTemplatePayload.interface'; -import { getButtonLabel } from '../../MessengerButton/lib/messengerButtonHelpers'; -import { IWithFBMActionEventHandler } from '../../../MessengerPreview.interface'; -import { MessagePluginFactoryProps } from '../../../../../../common/interfaces/message-plugin'; -import { getMessengerContent } from '../../MessengerContent'; -import { getMessengerSubtitle } from '../../MessengerSubtitle'; -import { getMessengerTitle } from '../../MessengerTitle'; -import { getMessengerListButton } from '../../MessengerListButton'; -import { getBackgroundImage } from '../../../lib/css'; -import { IWebchatConfig } from '../../../../../../common/interfaces/webchat-config'; -import { useRandomId } from '../../../../../../common/utils/randomId'; -import { sanitizeHTML } from '../../../../../../webchat/helper/sanitize'; - -interface IMessengerListTemplateElementProps extends IWithFBMActionEventHandler { - element: IFBMListTemplateElement; - config: IWebchatConfig; -} - -export const getMessengerListTemplateElement = ({ React, styled }: MessagePluginFactoryProps) => { - const MessengerSubtitle = getMessengerSubtitle({ React, styled }); - const MessengerTitle = getMessengerTitle({ React, styled }); - const MessengerContent = getMessengerContent({ React, styled }); - const ListButton = getMessengerListButton({ React, styled }); - - const Root = styled(MessengerContent)(({ theme }) => ({ - display: 'flex', - justifyContent: 'space-between', - backgroundColor: 'white', - "&.link": { - cursor: "pointer", - "&:focus": { - backgroundColor: 'hsl(0, 0%, 92%)' - } - } - })); - - const Image = styled.div(({ theme }) => ({ - width: theme.blockSize, - height: theme.blockSize, - backgroundSize: 'cover', - backgroundPosition: 'center center', - borderRadius: theme.unitSize - })); - - - const MessengerListTemplateElement = ({ element, onAction, config }: IMessengerListTemplateElementProps) => { - const { title, subtitle, image_url, image_alt_text, buttons, default_action } = element; - // TODO default_action - - const button = buttons && buttons[0]; - - const imgStyle: React.CSSProperties = { - backgroundImage: getBackgroundImage(image_url), - width: '25%' - } - const messengerSubtitleId = useRandomId("webchatListTemplateSubtitle"); - const messengerTitle = title ? title + ". " : ""; - const messengerAriaLabel = default_action?.url ? messengerTitle + "Opens in new tab" : title; - - const handleKeyDown = (event, default_action) => { - if (event.key === "Enter" && default_action) { - onAction(event, default_action); - } - } - - const isSanitizeEnabled = !config.settings.layout.disableHtmlContentSanitization; - - const titleHtml = isSanitizeEnabled ? sanitizeHTML(title) : title; - const subtitleHtml = isSanitizeEnabled ? sanitizeHTML(subtitle) : subtitle; - const buttonHtml = !!button && (isSanitizeEnabled ? sanitizeHTML(getButtonLabel(button)) : getButtonLabel(button)); - - return ( -
- onAction(e, default_action))} - className={`webchat-list-template-element ${default_action?.url ? "link" : ""}`} - aria-label={messengerAriaLabel} - aria-describedby={subtitle ? messengerSubtitleId : undefined} - tabIndex={default_action?.url ? 0 : -1} - onKeyDown={e => handleKeyDown(e, default_action)} - > -
- - - {button && ( - { e.stopPropagation(); onAction(e, button) }} - className="webchat-list-template-element-button" - dangerouslySetInnerHTML={{ __html: buttonHtml }} - /> - )} -
- {image_url && ( - - - - )} -
-
- ) - }; - - return MessengerListTemplateElement; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerListTemplate/components/MessengerListTemplateHeaderElement.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerListTemplate/components/MessengerListTemplateHeaderElement.tsx deleted file mode 100644 index 19d30c60..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerListTemplate/components/MessengerListTemplateHeaderElement.tsx +++ /dev/null @@ -1,133 +0,0 @@ -import { IFBMListTemplateElement } from '../../../interfaces/ListTemplatePayload.interface'; -import { IWithFBMActionEventHandler } from '../../../MessengerPreview.interface'; -import { MessagePluginFactoryProps } from '../../../../../../common/interfaces/message-plugin'; -import { getMessengerSubtitle } from '../../MessengerSubtitle'; -import { getMessengerTitle } from '../../MessengerTitle'; -import { getMessengerImage } from '../../MessengerImage/MessengerImage'; -import { getMessengerListButton } from '../../MessengerListButton'; -import { getButtonLabel } from '../../MessengerButton/lib/messengerButtonHelpers'; -import { IWebchatConfig } from '../../../../../../common/interfaces/webchat-config'; -import { useRandomId } from '../../../../../../common/utils/randomId'; -import { sanitizeHTML } from '../../../../../../webchat/helper/sanitize'; -import { IWithMessageColor } from '../../../interfaces/MessageColor.interface'; - -interface IMessengerListTemplateHeaderElementProps extends IWithFBMActionEventHandler, IWithMessageColor { - element: IFBMListTemplateElement; - config: IWebchatConfig; -} - -export const getMessengerListTemplateHeaderElement = ({ React, styled }: MessagePluginFactoryProps) => { - const MessengerSubtitle = getMessengerSubtitle({ React, styled }); - const MessengerTitle = getMessengerTitle({ React, styled }); - const ListButton = getMessengerListButton({ React, styled }); - const MessengerImage = getMessengerImage({ React, styled }); - - const Root = styled.div(() => ({ - position: 'relative', - "&:focus":{ - opacity: 0.85, - } - })); - - const DarkLayer = styled.div({ - display: 'block', - content: '" "', - position: 'absolute', - left: 0, - top: 0, - right: 0, - bottom: 0, - backgroundColor: 'hsla(0, 0%, 0%, .6)' - }); - - const Content = styled.div({ - position: 'absolute', - left: 0, - bottom: 0, - right: 0, - padding: 10, - }); - - const Title = styled(MessengerTitle)({ - color: 'hsla(0, 0%, 100%, .9)' - }); - - const Subtitle = styled(MessengerSubtitle)({ - color: 'hsla(0, 0%, 100%, .9)' - }); - - const ListHeaderButton = styled(ListButton)(({ theme, messageColor }) => ({ - backgroundColor: messageColor === 'neutral' ? theme.greyColor : theme.primaryColor, - color: messageColor === 'neutral' ? theme.greyContrastColor : theme.primaryContrastColor, - border: `none`, - cursor: 'pointer', - outline: 'none', - - '&:hover': { - backgroundColor: messageColor === 'neutral' ? theme.greyWeakColor : theme.primaryWeakColor - }, - - '&:focus': { - backgroundColor: messageColor === 'neutral' ? theme.greyStrongColor : theme.primaryStrongColor, - }, - - '&:active': { - backgroundColor: messageColor === 'neutral' ? theme.greyStrongColor : theme.primaryStrongColor - } - })) - - const MessengerListTemplateHeaderElement = ({ element, onAction, config, messageColor }: IMessengerListTemplateHeaderElementProps) => { - const { title, subtitle, image_url, image_alt_text, default_action, buttons } = element; - // TODO buttons, default_action - - const button = buttons && buttons[0]; - const messengerTitle = title ? title + ". " : ""; - const ariaLabelForMessengerTitle = default_action?.url ? messengerTitle + "Opens in new tab" : title; - const messengerSubtitleId = useRandomId("webchatListTemplateHeaderSubtitle"); - - const handleKeyDown = (event, default_action) => { - if(default_action && event.key === "Enter") { - onAction(event, default_action); - } - } - - const isSanitizeEnabled = !config.settings.layout.disableHtmlContentSanitization; - - const titleHtml = isSanitizeEnabled ? sanitizeHTML(title) : title; - const subtitleHtml = isSanitizeEnabled ? sanitizeHTML(subtitle) : subtitle; - const buttonHtml = !!button && (isSanitizeEnabled ? sanitizeHTML(getButtonLabel(button)) : getButtonLabel(button)); - - return ( -
- onAction(e, default_action))} - className="webchat-list-template-header" - role={default_action?.url ? "link" : undefined} - aria-label={ariaLabelForMessengerTitle} - aria-describedby={subtitle ? messengerSubtitleId : undefined} - tabIndex={default_action?.url ? 0 : -1} - onKeyDown = {e => handleKeyDown(e, default_action)} - style={default_action?.url ? { cursor: "pointer" }:{}} - > - - - - - <Subtitle className="webchat-list-template-header-subtitle" dangerouslySetInnerHTML={{ __html: subtitleHtml }} config={config} id={messengerSubtitleId}/> - {button && ( - <ListHeaderButton - onClick={e => {e.stopPropagation(); onAction(e, button)}} - className="webchat-list-template-header-button" - dangerouslySetInnerHTML={{ __html: buttonHtml }} - messageColor={messageColor} - > - </ListHeaderButton> - )} - </Content> - </Root> - </div> - ) - }; - - return MessengerListTemplateHeaderElement; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerMediaTemplate/MessengerMediaTemplate.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerMediaTemplate/MessengerMediaTemplate.tsx deleted file mode 100644 index 7435cf19..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerMediaTemplate/MessengerMediaTemplate.tsx +++ /dev/null @@ -1,133 +0,0 @@ -import ReactPlayer from 'react-player'; -import { getMessengerFrame } from '../MessengerFrame'; -import { - IFBMMediaTemplatePayload, - IFBMMediaTemplateUrlElement -} from '../../interfaces/MediaTemplatePayload.interface'; -import { IWithFBMActionEventHandler } from '../../MessengerPreview.interface'; -import { MessagePluginFactoryProps } from '../../../../../common/interfaces/message-plugin'; -import { getDivider } from '../Divider'; -import { getMessengerButton } from '../MessengerButton/MessengerButton'; -import { getMessengerImage } from '../MessengerImage/MessengerImage'; -import { IWebchatConfig } from '../../../../../common/interfaces/webchat-config'; -import { useRandomId } from '../../../../../common/utils/randomId'; -import "../../../../../assets/style.css"; - -interface IProps extends IWithFBMActionEventHandler { - payload: IFBMMediaTemplatePayload; - config: IWebchatConfig; -} - -export const getMessengerMediaTemplate = ({ - React, - styled -}: MessagePluginFactoryProps) => { - const MessengerFrame = getMessengerFrame({ React, styled }); - const MessengerImage = getMessengerImage({ React, styled }); - - const Video = styled.div({ - paddingTop: "75%", - position: "relative", - }); - - const VideoPlayer = styled(ReactPlayer)({ - position: "absolute", - left: 0, - top: 0, - backgroundColor: "black", - borderRadius: "16px", - }); - - const MessengerMediaTemplate = ({ - payload, - onAction, - config, - ...divProps - }: IProps & React.HTMLProps<HTMLDivElement>) => { - const { elements } = payload; - const element = elements && elements[0]; - - const { media_type, url, altText, buttons } = element as IFBMMediaTemplateUrlElement; - - const isDownloadableImage = buttons.find(b => b.type === 'web_url') !== undefined && media_type === "image"; - - const hasMoreThanOnebutton = buttons && buttons.length > 1; - const hasNobuttons = !buttons || buttons?.length < 1; - - const webchatButtonTemplateButtonId = useRandomId("webchatButtonTemplateButton"); - const a11yProps = hasMoreThanOnebutton ? {role: "group", "aria-label": altText} : {}; - - const MessengerButton = getMessengerButton({ React, styled }); - const Divider = getDivider({ React, styled }); - - if (!element) return null; - - const handleFocus = (player: ReactPlayer) => { - const chatHistory = document.getElementById("webchatChatHistoryWrapperLiveLogPanel"); - - if (!config?.settings.widgetSettings.enableAutoFocus) return; - - if(!chatHistory?.contains(document.activeElement)) return; - - setTimeout(() => { - player.getInternalPlayer()?.focus() - }, 100); - } - - const imageButtons = () => { - if(hasNobuttons) return null; - - return( - <div {...a11yProps}> - {buttons.map((button, index) => ( - <React.Fragment key={index}> - <Divider /> - <MessengerButton - button={button} - onClick={e => onAction(e, button)} - className="webchat-buttons-template-button" - config={config} - id={`${webchatButtonTemplateButtonId}-${index}`} - position={index + 1} - total={buttons.length} - /> - </React.Fragment> - ))} - </div> - ) - } - - if (media_type === "image") { - return ( - <MessengerFrame {...divProps} className="webchat-media-template-image"> - <MessengerImage url={url} config={config} altText={altText} isDownloadable={isDownloadableImage} /> - {imageButtons()} - </MessengerFrame> - ); - } - - if (media_type === "video") { - return ( - <MessengerFrame {...divProps} className="webchat-media-template-video" style={{ overflow: "visible" }}> - <Video> - <span className="sr-only">{altText || "Attachment Video"}</span> - <VideoPlayer url={url} controls width="100%" height="100%" onReady={handleFocus} /> - </Video> - </MessengerFrame> - ); - } - - if (media_type === "audio") { - return ( - <MessengerFrame {...divProps} className="webchat-media-template-audio" style={{ overflow: "visible" }}> - <span className="sr-only">{altText || "Attachment Audio"}</span> - <ReactPlayer url={url} controls width="100%" height="50px" onReady={handleFocus} /> - </MessengerFrame> - ); - } - - return null; - }; - - return MessengerMediaTemplate; -}; diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerQuickReply.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerQuickReply.tsx deleted file mode 100644 index 8d21ed52..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerQuickReply.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { MessagePluginFactoryProps } from '../../../../common/interfaces/message-plugin'; - -const componentStyles = (({ theme }) => ({ - backgroundColor: 'transparent', - border: `1px solid ${theme.primaryColor}`, - borderRadius: theme.unitSize * 5, - padding: `${theme.unitSize / 2}px ${theme.unitSize * 2}px`, - minWidth: theme.unitSize * 5, - fontSize: 15, - color: theme.primaryColor, - cursor: 'pointer', - outline: 'none', - transition: 'transform .1s ease-out', - - '&:hover': { - borderColor: theme.primaryStrongColor, - color: theme.primaryStrongColor, - transform: 'translate(0px, -1px)' - }, - - '&:focus': { - outline: 'none', - boxShadow: `0 0 3px 1px ${theme.primaryWeakColor}`, - }, - - '&:active': { - transform: 'translate(0px, 0px)' - } -})); - -export const getMessengerQuickReply = ({ React, styled }: MessagePluginFactoryProps) => { - - const MessengerQuickReply = styled.button(componentStyles, { - minHeight: 40, - }); - - return MessengerQuickReply; -} - -export const getMessengerPhoneNumberQuickReply = ({ React, styled }: MessagePluginFactoryProps) => { - - const MessengerPhoneNumberQuickReply = styled.a(componentStyles, { - minHeight: 30, - display: 'inline-flex', - textDecoration: 'none', - justifyContent: 'center', - alignItems: 'center' - }); - - return MessengerPhoneNumberQuickReply; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerSubtitle.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerSubtitle.tsx deleted file mode 100644 index 28a211a8..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerSubtitle.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { MessagePluginFactoryProps } from "../../../../common/interfaces/message-plugin"; -import { IWebchatConfig } from "../../../../common/interfaces/webchat-config"; - -export const getMessengerSubtitle = ({ React, styled }: MessagePluginFactoryProps) => { - const MessengerSubtitle = styled.p<{ config: IWebchatConfig }>(props => ({ - margin: 0, - color: 'hsla(0, 0%, 0%, .54)', - fontSize: 13, - whiteSpace: props.config.settings.widgetSettings.ignoreLineBreaks ? "initial" : "pre-line", - })); - - return MessengerSubtitle; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerTextWithQuickReplies/MessengerTextWithQuickReplies.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerTextWithQuickReplies/MessengerTextWithQuickReplies.tsx deleted file mode 100644 index ba9bc396..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerTextWithQuickReplies/MessengerTextWithQuickReplies.tsx +++ /dev/null @@ -1,169 +0,0 @@ -import { useEffect } from 'react'; -import { IFBMRegularMessage } from '../../interfaces/Message.interface'; -import { - IFBMTextQuickReply, - IFBMQuickReply -} from '../../interfaces/QuickReply.interface'; -import { getMessengerPhoneNumberQuickReply, getMessengerQuickReply } from '../MessengerQuickReply'; -import { IWithFBMActionEventHandler } from '../../MessengerPreview.interface'; -import { MessagePluginFactoryProps } from '../../../../../common/interfaces/message-plugin'; -import { IWebchatConfig } from '../../../../../common/interfaces/webchat-config'; -import { getMessengerBubble } from '../MessengerBubble'; -import { useRandomId } from '../../../../../common/utils/randomId'; -import { sanitizeHTML } from '../../../../../webchat/helper/sanitize'; -import { IWithMessageColor } from '../../interfaces/MessageColor.interface'; -import { IWithMessageDirection } from '../../interfaces/MessageDirection.interface'; -import { replaceUrlsWithHTMLanchorElem } from '../../../../../webchat/helper/url-links'; - -interface Props extends IWithFBMActionEventHandler, IWithMessageColor, IWithMessageDirection { - message: IFBMRegularMessage; - config: IWebchatConfig; -} - -export const getMessengerTextWithQuickReplies = ({ - React, - styled -}: MessagePluginFactoryProps) => { - const MessengerQuickReply = getMessengerQuickReply({ React, styled }); - const MessengerPhoneNumberQuickReply = getMessengerPhoneNumberQuickReply({ React, styled }); - const MessengerBubble = getMessengerBubble({ React, styled }); - - const BorderBubble = styled(MessengerBubble)(({ theme }) => ({ - border: `1px solid ${theme.greyColor}` - })); - - const QuickReplies = styled.div({ - textAlign: "center", - - margin: -5, - marginTop: 3, - flexWrap: "wrap", - - "&>*": { - margin: 5 - } - }); - - const QuickReplyImage = styled.img(({ theme }) => ({ - width: theme.unitSize * 3, - height: theme.unitSize * 3, - marginRight: theme.unitSize - })); - - const MessengerTextWithQuickReplies = ({ - message, - onAction, - config, - messageColor, - messageDirection, - ...divProps - }: Props & React.HTMLProps<HTMLDivElement>) => { - const { text, quick_replies } = message; - - const hasQuickReplies = quick_replies && quick_replies.length > 0; - const hasMoreThanOneQuickReply = quick_replies && quick_replies.length > 1; - const webchatQuickReplyTemplateButtonId = useRandomId("webchatQuickReplyTemplateButton"); - const webchatQuickReplyTemplateHeaderId = useRandomId("webchatQuickReplyTemplateHeader"); - const buttonGroupAriaLabelledby = text ? `${webchatQuickReplyTemplateHeaderId} srOnly-${webchatQuickReplyTemplateHeaderId}` : undefined; - const a11yProps = hasMoreThanOneQuickReply ? - {role: "group", "aria-labelledby": buttonGroupAriaLabelledby } : {}; - - // TODO add click behaviour - - useEffect(() => { - const chatHistory = document.getElementById("webchatChatHistoryWrapperLiveLogPanel"); - const quickReplyButton = document.getElementById(`${webchatQuickReplyTemplateButtonId}-0`); - - if (!config?.settings.widgetSettings.enableAutoFocus) return; - - if(!chatHistory?.contains(document.activeElement)) return; - - setTimeout(() => {quickReplyButton?.focus()}, 200); - }, []); - - const enhancedURLsText = config.settings.widgetSettings.disableRenderURLsAsLinks ? text : replaceUrlsWithHTMLanchorElem(text); - - const __html = config.settings.layout.disableHtmlContentSanitization ? enhancedURLsText : sanitizeHTML(enhancedURLsText); - - return ( - <div {...divProps} className="webchat-quick-reply-template-root"> - <BorderBubble - className="webchat-quick-reply-template-header-message" - dangerouslySetInnerHTML={{ __html }} - id={webchatQuickReplyTemplateHeaderId} - messageColor={messageColor} - messageDirection={messageDirection} - ></BorderBubble> - - {/* sr-only text with total number of quick replies in the group*/} - {hasMoreThanOneQuickReply && - <span className="sr-only" id={`srOnly-${webchatQuickReplyTemplateHeaderId}`}> - With {quick_replies?.length} buttons in - </span> - } - - {hasQuickReplies && ( - <QuickReplies className="webchat-quick-reply-template-replies-container" {...a11yProps}> - {(quick_replies as IFBMQuickReply[]).map((quickReply, index) => { - const { content_type, payload } = quickReply; - let label = ""; - let image: React.ReactNode; - - switch (content_type) { - case "location": { - label = "Send Location"; - break; - } - - case "user_phone_number": - case "text": { - const { title, image_url, image_alt_text } = quickReply as IFBMTextQuickReply; - label = title; - if (image_url) image = <QuickReplyImage src={image_url} alt={image_alt_text || ""}/>; - break; - } - - case "user_email": { - label = "Send Email-Address"; - break; - } - } - - const __html = config.settings.layout.disableHtmlContentSanitization ? label : sanitizeHTML(label); - const ariaLabel = hasMoreThanOneQuickReply ? `Item ${index + 1} of ${quick_replies?.length}: ${__html}` : undefined; - - if(content_type === "user_phone_number") { - return ( - <MessengerPhoneNumberQuickReply - key={index} - href={`tel:${payload}`} - className="webchat-quick-reply-template-reply" - id={`${webchatQuickReplyTemplateButtonId}-${index}`} - aria-label={ariaLabel} - > - {image} - <span dangerouslySetInnerHTML={{ __html }} /> - </MessengerPhoneNumberQuickReply> - ) - } - return ( - <MessengerQuickReply - key={index} - onClick={e => onAction(e, quickReply)} - className="webchat-quick-reply-template-reply" - id={`${webchatQuickReplyTemplateButtonId}-${index}`} - aria-label={ariaLabel} - > - {image} - <span dangerouslySetInnerHTML={{ __html }} /> - </MessengerQuickReply> - ); - })} - </QuickReplies> - )} - </div> - ); - }; - - return MessengerTextWithQuickReplies; -}; diff --git a/src/plugins/messenger/MessengerPreview/components/MessengerTitle.tsx b/src/plugins/messenger/MessengerPreview/components/MessengerTitle.tsx deleted file mode 100644 index 9bc9d968..00000000 --- a/src/plugins/messenger/MessengerPreview/components/MessengerTitle.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { MessagePluginFactoryProps } from "../../../../common/interfaces/message-plugin"; - -export const getMessengerTitle = ({ React, styled }: MessagePluginFactoryProps) => { - const MessengerTitle = styled.p({ - marginTop: 2, - marginBottom: 5, - fontSize: 15, - color: 'hsla(0, 0%, 0%, .8)', - fontWeight: 'bold', - }); - - return MessengerTitle -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/interfaces/Action.interface.ts b/src/plugins/messenger/MessengerPreview/interfaces/Action.interface.ts deleted file mode 100644 index 397670f2..00000000 --- a/src/plugins/messenger/MessengerPreview/interfaces/Action.interface.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface IFBMDefaultAction { - type: 'web_url'; - url: string; - messenger_extensions: boolean; - webview_height_ratio: 'compact' | 'tall' | 'full'; - target?: '_self' | '_blank' -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/interfaces/Button.interface.ts b/src/plugins/messenger/MessengerPreview/interfaces/Button.interface.ts deleted file mode 100644 index 35f071b3..00000000 --- a/src/plugins/messenger/MessengerPreview/interfaces/Button.interface.ts +++ /dev/null @@ -1,39 +0,0 @@ -export type IFBMButton = IFBMURLButton - | IFBMPostbackButton - | IFBMElementShareButton - | IFBMPhoneNumberButton - | IFBMAccountLinkButton - | IFBMAccountUnlinkButton; - -export interface IFBMURLButton { - type: 'web_url'; - url: string; - title: string; - target?: '_self' | '_blank'; -} - -export interface IFBMPostbackButton { - type: 'postback'; - title: string; - payload: string; -} - -export interface IFBMElementShareButton { - type: 'element_share' -} - -export interface IFBMPhoneNumberButton { - type: 'phone_number'; - title: string; - payload: string; -} - -export interface IFBMAccountLinkButton { - type: 'account_link'; - url: string; -} - -export interface IFBMAccountUnlinkButton { - type: 'account_unlink'; -} - diff --git a/src/plugins/messenger/MessengerPreview/interfaces/ButtonTemplatePayload.interface.ts b/src/plugins/messenger/MessengerPreview/interfaces/ButtonTemplatePayload.interface.ts deleted file mode 100644 index 1723e637..00000000 --- a/src/plugins/messenger/MessengerPreview/interfaces/ButtonTemplatePayload.interface.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { IFBMButton } from "./Button.interface"; - -export interface IFBMButtonTemplatePayload { - template_type: 'button'; - text: string; - buttons: IFBMButton[]; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/interfaces/GenericTemplatePayload.interface.ts b/src/plugins/messenger/MessengerPreview/interfaces/GenericTemplatePayload.interface.ts deleted file mode 100644 index 60f773f9..00000000 --- a/src/plugins/messenger/MessengerPreview/interfaces/GenericTemplatePayload.interface.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { IFBMDefaultAction } from "./Action.interface"; -import { IFBMButton } from "./Button.interface"; - -export interface IFBMGenericTemplatePayload { - template_type: 'generic'; - elements: IFBMGenericTemplateElement[]; -} - -export interface IFBMGenericTemplateElement { - title: string; - image_url: string; - image_alt_text?: string; - subtitle: string; - default_action: IFBMDefaultAction; - buttons: IFBMButton[]; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/interfaces/Image.interface.ts b/src/plugins/messenger/MessengerPreview/interfaces/Image.interface.ts deleted file mode 100644 index 318c0062..00000000 --- a/src/plugins/messenger/MessengerPreview/interfaces/Image.interface.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { IWebchatConfig } from '../../../../common/interfaces/webchat-config'; - -export interface IFBMImage { - config: IWebchatConfig; - url: string; - isDownloadable?: boolean; - altText?: string; - template?: 'media' | 'list' | 'generic' -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/interfaces/ListTemplatePayload.interface.ts b/src/plugins/messenger/MessengerPreview/interfaces/ListTemplatePayload.interface.ts deleted file mode 100644 index 574c2173..00000000 --- a/src/plugins/messenger/MessengerPreview/interfaces/ListTemplatePayload.interface.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { IFBMButton } from "./Button.interface"; -import { IFBMDefaultAction } from "./Action.interface"; - -export interface IFBMListTemplatePayload { - template_type: 'list'; - top_element_style: 'large' | 'compact' | boolean; - elements: IFBMListTemplateElement[]; - buttons: IFBMButton[] -} - -export interface IFBMListTemplateElement { - title: string; - subtitle: string; - image_url: string; - image_alt_text?: string; - buttons: IFBMButton[]; - default_action?: IFBMDefaultAction; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/interfaces/MediaTemplatePayload.interface.ts b/src/plugins/messenger/MessengerPreview/interfaces/MediaTemplatePayload.interface.ts deleted file mode 100644 index 7403f3cc..00000000 --- a/src/plugins/messenger/MessengerPreview/interfaces/MediaTemplatePayload.interface.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { IFBMButton } from "./Button.interface"; - -export interface IFBMMediaTemplatePayload { - template_type: 'media', - elements: IFBMMediaTemplateElement[]; -} - - -export type IFBMMediaTemplateElementMediaType = 'image' | 'video' | 'audio' | 'file'; - -export type IFBMMediaTemplateElement = IFBMMediaTemplateAttachedElement | IFBMMediaTemplateUrlElement; - -export interface IFBMMediaTemplateAttachedElement { - media_type: IFBMMediaTemplateElementMediaType; - attachment_id: string; - buttons: IFBMButton[]; -} - -export interface IFBMMediaTemplateUrlElement { - media_type: IFBMMediaTemplateElementMediaType; - url: string; - altText?: string; - buttons: IFBMButton[]; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/interfaces/Message.interface.ts b/src/plugins/messenger/MessengerPreview/interfaces/Message.interface.ts deleted file mode 100644 index fc343f8c..00000000 --- a/src/plugins/messenger/MessengerPreview/interfaces/Message.interface.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { IFBMQuickReply } from "./QuickReply.interface"; -import { IFBMButtonTemplatePayload } from "./ButtonTemplatePayload.interface"; -import { IFBMGenericTemplatePayload } from "./GenericTemplatePayload.interface"; -import { IFBMListTemplatePayload } from "./ListTemplatePayload.interface"; -import { IFBMMediaTemplatePayload } from "./MediaTemplatePayload.interface"; - -export type IFBMMessage = IFBMRegularMessage - | IFBMAttachmentMessage; - -export interface IFBMRegularMessage { - text: string; - quick_replies?: IFBMQuickReply[] -} - -export interface IFBMAttachmentMessage { - attachment: IFBMTemplateAttachment; -} - -type IFBMTemplatePayload = IFBMButtonTemplatePayload - | IFBMGenericTemplatePayload - | IFBMListTemplatePayload - | IFBMMediaTemplatePayload; - -interface IFBMTemplateAttachment { - type: 'template'; - payload: IFBMTemplatePayload; -} - diff --git a/src/plugins/messenger/MessengerPreview/interfaces/MessageColor.interface.ts b/src/plugins/messenger/MessengerPreview/interfaces/MessageColor.interface.ts deleted file mode 100644 index 321336f9..00000000 --- a/src/plugins/messenger/MessengerPreview/interfaces/MessageColor.interface.ts +++ /dev/null @@ -1,5 +0,0 @@ -type TColor = 'primary' | 'neutral'; - -export interface IWithMessageColor { - messageColor: TColor; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/interfaces/MessageDirection.interface.ts b/src/plugins/messenger/MessengerPreview/interfaces/MessageDirection.interface.ts deleted file mode 100644 index 05ed95c6..00000000 --- a/src/plugins/messenger/MessengerPreview/interfaces/MessageDirection.interface.ts +++ /dev/null @@ -1,5 +0,0 @@ -type TMessageDirection = 'incoming' | 'outgoing'; - -export interface IWithMessageDirection { - messageDirection: TMessageDirection; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/interfaces/QuickReply.interface.ts b/src/plugins/messenger/MessengerPreview/interfaces/QuickReply.interface.ts deleted file mode 100644 index aec2e13e..00000000 --- a/src/plugins/messenger/MessengerPreview/interfaces/QuickReply.interface.ts +++ /dev/null @@ -1,19 +0,0 @@ -export type IFBMQuickReply = IFBMTextQuickReply - | IFBMLocationQuickReply - | IFBMEmailQuickReply; - -export interface IFBMTextQuickReply { - content_type: 'text' | 'user_phone_number'; - title: string; - payload: string; - image_url?: string; - image_alt_text?: string; -} - -export interface IFBMLocationQuickReply { - content_type: 'location'; -} - -export interface IFBMEmailQuickReply { - content_type: 'user_email'; -} \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/lib/css.ts b/src/plugins/messenger/MessengerPreview/lib/css.ts deleted file mode 100644 index fd78d93f..00000000 --- a/src/plugins/messenger/MessengerPreview/lib/css.ts +++ /dev/null @@ -1,13 +0,0 @@ -export const getBackgroundImage = (url: string) => { - if (!url) - return undefined; - - const escapedUrl = url - // remove line breaks - .replace(/\n/g, '') - .replace(/\r/g, '') - // escape " and \ - .replace(/\"\\/g, char => `\${char}`); - - return `url("${escapedUrl}")` -}; \ No newline at end of file diff --git a/src/plugins/messenger/MessengerPreview/lib/transform.ts b/src/plugins/messenger/MessengerPreview/lib/transform.ts deleted file mode 100644 index f5afd429..00000000 --- a/src/plugins/messenger/MessengerPreview/lib/transform.ts +++ /dev/null @@ -1,160 +0,0 @@ -import { IFBMMessage, IFBMAttachmentMessage, IFBMRegularMessage } from "../interfaces/Message.interface"; -import { IFBMMediaTemplateElementMediaType } from "../interfaces/MediaTemplatePayload.interface"; -import { IFBMButton } from "../interfaces/Button.interface"; -import { IFBMListTemplatePayload } from "../interfaces/ListTemplatePayload.interface"; -import { IFBMQuickReply } from "../interfaces/QuickReply.interface"; - -type IFBMTransformer = (message: IFBMMessage) => IFBMMessage; - -export interface IFBMUploadAPIMessage { - attachment: { - type: IFBMMediaTemplateElementMediaType, - payload: { - url: string, - altText?: string; - is_reusable: boolean, - } - } -} - -const isUploadAPIMessage = (message: IFBMMessage | IFBMUploadAPIMessage) => { - if (!message) - return false; - - const { attachment } = message as IFBMUploadAPIMessage; - - if (!attachment) - return false; - - const { type } = attachment; - - if (!type) - return false; - - return ['image', 'video', 'audio', 'file'].includes(type); -} - - -const transformAttachmentUploadApiMessage = (message: IFBMMessage | IFBMUploadAPIMessage): IFBMMessage => { - const { attachment } = message as IFBMAttachmentMessage; - - // regular text message - if (!attachment) - return message as IFBMMessage; - - // regular template message - if (attachment.type === 'template') - return message as IFBMMessage; - - const { type: media_type, payload: { url, altText } } = attachment as unknown as IFBMUploadAPIMessage['attachment']; - - return { - attachment: { - type: 'template', - payload: { - template_type: 'media', - elements: [{ - media_type, - url, - altText, - buttons: attachment.payload.buttons || [] - }] - } - } - } -} - -type ButtonFilter = (button: IFBMButton) => boolean; -const filterButtons = (filter: ButtonFilter): IFBMTransformer => (message) => { - const { attachment } = message as IFBMAttachmentMessage; - if (attachment) { - const { payload } = attachment; - - switch (payload.template_type) { - case 'button': { - return { - ...message, - attachment: { - ...attachment, - payload: { - ...payload, - buttons: payload.buttons - ? payload.buttons.filter(filter) - : payload.buttons - } - } - } - } - - case 'generic': { - return { - ...message, - attachment: { - ...attachment, - payload: { - ...payload, - elements: payload.elements.map(element => ({ - ...element, - buttons: element.buttons - ? element.buttons.filter(filter) - : element.buttons - })) - } - } - } - } - - case 'list': { - return { - ...message, - attachment: { - ...attachment, - payload: { - ...payload, - buttons: payload.buttons - ? payload.buttons.filter(filter) - : payload.buttons, - elements: payload.elements.map(element => ({ - ...element, - buttons: element.buttons - ? element.buttons.filter(filter) - : element.buttons - })) - } - } - } - } - - case 'media': { - return message; - } - } - } - - return message; -} -const removeUnsupportedButtons = filterButtons(button => button.type !== 'element_share'); - - -type QuickReplyFilter = (quickReply: IFBMQuickReply) => boolean; -const filterQuickReplies = (filter: QuickReplyFilter): IFBMTransformer => (message) => { - const { quick_replies } = message as IFBMRegularMessage; - if (quick_replies) { - return { - ...message, - quick_replies: quick_replies.filter(filter) - } - } - - return message; -} - -const removeEmptyQuickReplies = filterQuickReplies(q => !(q.content_type === 'text' && !q.title)); - -export const transformMessage = (message: IFBMMessage | IFBMUploadAPIMessage): IFBMMessage => { - message = transformAttachmentUploadApiMessage(message); - message = removeUnsupportedButtons(message); - message = removeEmptyQuickReplies(message); - - return message; -} \ No newline at end of file diff --git a/src/plugins/messenger/index.tsx b/src/plugins/messenger/index.tsx deleted file mode 100644 index 859cf662..00000000 --- a/src/plugins/messenger/index.tsx +++ /dev/null @@ -1,201 +0,0 @@ - -import { MessageComponentProps, MessagePluginFactory } from "../../common/interfaces/message-plugin"; -import { getMessengerPreview } from "./MessengerPreview/MessengerPreview"; -import { registerMessagePlugin } from '../helper'; -import { transformMessage } from "./MessengerPreview/lib/transform"; -import { IFBMGenericTemplatePayload } from "./MessengerPreview/interfaces/GenericTemplatePayload.interface"; -import { IMessage } from "../../common/interfaces/message"; -import { IWebchatConfig } from "../../common/interfaces/webchat-config"; -import { sanitizeUrl } from "@braintree/sanitize-url"; -import { IFBMURLButton } from "./MessengerPreview/interfaces/Button.interface"; - -const preferFacebook = (conigyData, enableStrictMessengerSync) => { - if (enableStrictMessengerSync) { - if (conigyData.syncWebchatWithFacebook) { - return conigyData?._facebook; - } - return conigyData?._webchat; - } -}; - -const getMessengerPayload = (message: IMessage, config: IWebchatConfig) => { - - // conditions to not use messenger plugin - if (!message.data?._cognigy?._webchat?.message && - !message.data?._data?._cognigy?._webchat?.message && - !message.data?._cognigy?._facebook?.message && - !message.data?._cognigy?._defaultPreview && - !message.data?._cognigy?._defaultPreview?.adaptiveCard) { - return false; - } - - const cognigyData = (() => { - if (!config.settings.widgetSettings.disableDefaultReplyCompatiblityMode && message.data?._data?._cognigy) { - return message.data?._data?._cognigy; - } - - return message.data?._cognigy; - })(); - - if (!cognigyData) - return null; - - const { _facebook, _webchat, _defaultPreview } = cognigyData; - - if (config.settings.widgetSettings.enableDefaultPreview) { - if (_defaultPreview) { - return _defaultPreview; - } else if (message.text) { - // supposed to be rendered with regular text plugin - // not handled by the "messenger plugin" - return null; - } else if (_webchat) { - return _webchat; - } else if (_facebook) { - return _facebook - } - - return null; - } - - if (config.settings.widgetSettings.enableStrictMessengerSync) { - return preferFacebook(cognigyData, config.settings.widgetSettings.enableStrictMessengerSync); - } - - return _webchat || _facebook; -} - -const isMessengerPayload = (message: IMessage, config: IWebchatConfig) => { - const payload = getMessengerPayload(message, config); - - return payload && Object.keys(payload).length > 0; -} - -// return true if a message is a messenger generic template with more than one element -// one element should be rendered like default -const isFullscreenMessengerGenericPayload = (rawMessage: IMessage, config: IWebchatConfig) => { - const messengerPayload = getMessengerPayload(rawMessage, config); - - if (!messengerPayload) - return false; - - const { message } = messengerPayload; - if (!message) - return false; - - const { attachment } = message; - if (!attachment) - return false; - - const { payload } = attachment; - if (!payload) - return false; - - if (payload.template_type !== 'generic') - return false; - - const { elements } = payload as IFBMGenericTemplatePayload; - - return elements.length > 1; -} - -const messengerPlugin: MessagePluginFactory = ({ React, styled }) => { - - const MessengerPreview = getMessengerPreview({ React, styled }); - - return ({ - name: 'messenger', - match: isMessengerPayload, - component: ({ message, onSendMessage, config, onEmitAnalytics, color, direction }: MessageComponentProps) => ( - <MessengerPreview - message={transformMessage(getMessengerPayload(message, config).message)} - onAction={(e, action) => { - onEmitAnalytics('action', action); - - // @ts-ignore - if (action.type === 'postback' || action.content_type === 'text') { - // @ts-ignore - const { payload, title } = action; - - // Switch focus to input field if the flag is enabled - const textMessageInput = document.getElementById("webchatInputMessageInputInTextMode"); - if (textMessageInput && config.settings.behavior.focusInputAfterPostback) textMessageInput.focus(); - - onSendMessage(payload, null, { label: title }); - } - - // @ts-ignore - if (action.type === 'web_url' && action.url) { - const url = (() => { - const { url: buttonUrl } = action as IFBMURLButton; - if (config.settings.layout.disableUrlButtonSanitization) - return buttonUrl; - - return sanitizeUrl(buttonUrl) - })(); - - // prevent no-ops from sending you to a blank page - if (url === 'about:blank') - return; - - const target = (action as IFBMURLButton).target === "_self" ? "_self" : "_blank"; - - // @ts-ignore - window.open(url, target); - } - }} - config={config} - messageColor={color} - messageDirection={direction} - /> - ) - }) -} - - -const fullscreenMessengerGenericPlugin: MessagePluginFactory = ({ React, styled }) => { - - const MessengerPreview = getMessengerPreview({ React, styled }); - - return ({ - name: 'messenger', - match: isFullscreenMessengerGenericPayload, - component: ({ message, onSendMessage, config, onEmitAnalytics, color, direction }: MessageComponentProps) => ( - <MessengerPreview - message={transformMessage(getMessengerPayload(message, config).message)} - onAction={(e, action) => { - onEmitAnalytics('action', action); - - // @ts-ignore - if (action.type === 'postback' || action.content_type === 'text') { - // @ts-ignore - const { payload, title } = action; - - // Switch focus to input field if the flag is enabled - const textMessageInput = document.getElementById("webchatInputMessageInputInTextMode"); - if (textMessageInput && config.settings.behavior.focusInputAfterPostback) textMessageInput.focus(); - - onSendMessage(payload, null, { label: title }); - } - - // @ts-ignore - if (action.type === 'web_url') { - // @ts-ignore - window.open(action.url, action.target === "_self" ? "_self" : "_blank"); - } - }} - config={config} - messageColor={color} - messageDirection={direction} - /> - ), - options: { - fullwidth: true - } - }) -} - -registerMessagePlugin(fullscreenMessengerGenericPlugin); -registerMessagePlugin(messengerPlugin); - -// export default messengerPlugin; diff --git a/src/plugins/rating/index.ts b/src/plugins/rating/index.ts index c1aa30e6..3a911395 100644 --- a/src/plugins/rating/index.ts +++ b/src/plugins/rating/index.ts @@ -18,7 +18,7 @@ export const getRating = (message: IMessage): IRating | null => { data?._cognigy?.controlCommands?.[0]?.parameters?.showRatingStatus === true ) { const { comment, rating } = - message?.data?._cognigy?.controlCommands?.[0]?.parameters; + message?.data?._cognigy?.controlCommands?.[0]?.parameters || {}; return { comment, rating }; } diff --git a/src/webchat-embed/index.tsx b/src/webchat-embed/index.tsx index b62b19c7..0e289cf7 100644 --- a/src/webchat-embed/index.tsx +++ b/src/webchat-embed/index.tsx @@ -6,11 +6,7 @@ import './embedded-webchat-styles.css'; // load plugins import '../plugins/get-started-button-input'; -// import '../plugins/date-picker'; -import '../plugins/messenger'; import '../plugins/rating'; -import '../plugins/adaptivecards'; -import '../plugins/attachments'; import '../plugins/full-screen-notification'; import { Webchat } from '../webchat/components/Webchat'; import { getRegisteredMessagePlugins, prepareMessagePlugins } from '../plugins/helper'; diff --git a/src/webchat-ui/components/presentational/Avatar.tsx b/src/webchat-ui/components/presentational/Avatar.tsx index 785f2827..efbab176 100644 --- a/src/webchat-ui/components/presentational/Avatar.tsx +++ b/src/webchat-ui/components/presentational/Avatar.tsx @@ -1,6 +1,18 @@ -import React, { CSSProperties } from 'react'; -import styled from '@emotion/styled'; -import { getBackgroundImage } from '../../../plugins/messenger/MessengerPreview/lib/css'; +import React, { CSSProperties } from "react"; +import styled from "@emotion/styled"; + +const getBackgroundImage = (url: string) => { + if (!url) return undefined; + + const escapedUrl = url + // remove line breaks + .replace(/\n/g, "") + .replace(/\r/g, "") + // escape " and \ + .replace(/\"\\/g, char => `\${char}`); + + return `url("${escapedUrl}")`; +}; interface IAvatarProps { src: string; @@ -8,11 +20,11 @@ interface IAvatarProps { export default styled.div<IAvatarProps>(({ theme, src }) => ({ borderRadius: 20, - height: theme.unitSize * 3, - width: theme.unitSize * 3, + height: theme.unitSize * 3, + width: theme.unitSize * 3, border: `1px solid ${theme.greyWeakColor}`, backgroundImage: getBackgroundImage(src), backgroundSize: "cover", backgroundPosition: "center center", - backgroundRepeat: "no-repeat" -})); \ No newline at end of file + backgroundRepeat: "no-repeat", +})); diff --git a/src/webchat/store/config/config-middleware.ts b/src/webchat/store/config/config-middleware.ts index a27efa08..6cd53f27 100644 --- a/src/webchat/store/config/config-middleware.ts +++ b/src/webchat/store/config/config-middleware.ts @@ -3,7 +3,7 @@ import { StoreState } from "../store"; import { setConfig, applyWebchatSettingsOverrides } from "./config-reducer"; import { fetchWebchatConfig } from "../../helper/endpoint"; import { IWebchatSettings } from "../../../common/interfaces/webchat-config"; -import { merge } from 'lodash'; +import merge from 'lodash/merge'; export interface ISendMessageOptions { /* overrides the displayed text within a chat bubble. useful for e.g. buttons */ diff --git a/src/webchat/store/config/config-reducer.ts b/src/webchat/store/config/config-reducer.ts index 91fdffdf..534f4b04 100644 --- a/src/webchat/store/config/config-reducer.ts +++ b/src/webchat/store/config/config-reducer.ts @@ -3,7 +3,7 @@ import { IWebchatConfig, IWebchatSettings, } from "../../../common/interfaces/webchat-config"; -import { merge } from 'lodash'; +import merge from 'lodash/merge'; export type ConfigState = IWebchatConfig; diff --git a/webpack.config.js b/webpack.config.js index 4c28590d..50b94d79 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,91 +1,48 @@ -const path = require('path'); -const TerserPlugin = require("terser-webpack-plugin"); -const zlib = require("zlib"); -const CompressionPlugin = require("compression-webpack-plugin"); -const webpack = require('webpack'); +const path = require("path"); module.exports = { - mode: 'development', - entry: ['./src/webchat-embed/index.tsx'], - output: { - path: path.resolve(__dirname, 'dist'), - filename: 'webchat.js' - }, - resolve: { - extensions: ['.ts', '.tsx', '.js', '.json'], - }, - node: {}, - // devtool: 'source-map', - module: { - rules: [ - { - // Include sound files for message notification sound - test: /\.(ogg|mp3|wav|mpe?g)$/i, - use: [{ loader: 'url-loader' }] - }, - { - // Include ts, tsx, js, and jsx files. - test: /\.(ts|js)x?$/, - loader: 'babel-loader', - options: { - presets: [ - "@babel/typescript", - "@babel/preset-react" - ], - plugins: [ - "@babel/proposal-class-properties", - "@babel/plugin-proposal-nullish-coalescing-operator", - "@babel/plugin-proposal-optional-chaining" - ] - } - }, - { - test: /\.css$/, - use: ['style-loader', 'css-loader'], - }, - { - test: /\.svg$/, - exclude: /node_modules/, - use: { - loader: 'svg-react-loader' - }, - } - ], - }, - plugins: [ - new CompressionPlugin({ - filename: "[path][base].gz", - algorithm: "gzip", - test: /\.(js|css|html|svg|ts|tsx)$/, - threshold: 10240, - minRatio: 0.8, - }), - new CompressionPlugin({ - filename: "[path][base].br", - algorithm: "brotliCompress", - test: /\.(js|css|html|svg|ts|tsx)$/, - compressionOptions: { - params: { - [zlib.constants.BROTLI_PARAM_QUALITY]: 11, + mode: "development", + entry: ["./src/webchat-embed/index.tsx"], + output: { + path: path.resolve(__dirname, "dist"), + filename: "webchat.js", + }, + resolve: { + extensions: [".ts", ".tsx", ".js", ".json"], + }, + node: {}, + // devtool: 'source-map', + module: { + rules: [ + { + // Include sound files for message notification sound + test: /\.(mp3)$/i, + use: [{ loader: "url-loader" }], + }, + { + // Include ts, tsx, js, and jsx files. + test: /\.(ts|js)x?$/, + loader: "babel-loader", + options: { + presets: ["@babel/typescript", "@babel/preset-react"], + compact: false, + }, + }, + { + test: /\.css$/, + use: ["style-loader", "css-loader"], + }, + { + test: /\.svg$/, + exclude: /node_modules/, + use: { + loader: "svg-react-loader", }, }, - threshold: 10240, - minRatio: 0.8, - }), - new webpack.optimize.LimitChunkCountPlugin({ - maxChunks: 1 - }), - ], - devServer: { - port: 8787 - }, - optimization: { - minimize: true, - minimizer: [ - new TerserPlugin({ - extractComments: false, - }), ], - usedExports: true, }, -}; \ No newline at end of file + devServer: { + port: 8787, + }, + plugins: [], +}; diff --git a/webpack.dev.js b/webpack.dev.js index 6e818458..7035bab9 100644 --- a/webpack.dev.js +++ b/webpack.dev.js @@ -1,22 +1,22 @@ -const config = require('./webpack.config'); -const path = require('path'); +const config = require("./webpack.config"); +const path = require("path"); config.entry = { - 'webchat': './src/webchat-embed/index.tsx', - 'message-renderer': './src/message-renderer/embed.ts' + webchat: "./src/webchat-embed/index.tsx", }; config.devServer = { - allowedHosts: 'all', - static: { - directory: path.join(__dirname, 'dist'), - }, - port: 8787 + allowedHosts: "all", + static: { + directory: path.join(__dirname, "dist"), + }, + port: 8787, + hot: true, }; config.output = { - path: path.resolve(__dirname, 'dist'), - filename: '[name].js' + path: path.resolve(__dirname, "dist"), + filename: "[name].js", }; -module.exports = config; \ No newline at end of file +module.exports = config; diff --git a/webpack.message-renderer.js b/webpack.message-renderer.js deleted file mode 100644 index 7de5ddf5..00000000 --- a/webpack.message-renderer.js +++ /dev/null @@ -1,6 +0,0 @@ -const config = require("./webpack.dev"); - -config.entry = ["./src/message-renderer/embed.ts"]; -config.output.filename = "message-renderer.js"; - -module.exports = config; diff --git a/webpack.message-renderer.production.js b/webpack.message-renderer.production.js deleted file mode 100644 index 20872d29..00000000 --- a/webpack.message-renderer.production.js +++ /dev/null @@ -1,6 +0,0 @@ -const config = require("./webpack.production"); - -config.entry = ["./src/message-renderer/embed.ts"]; -config.output.filename = "message-renderer.js"; - -module.exports = config; diff --git a/webpack.production-plugin.adaptivecards.js b/webpack.production-plugin.adaptivecards.js deleted file mode 100644 index 74b5ba67..00000000 --- a/webpack.production-plugin.adaptivecards.js +++ /dev/null @@ -1,13 +0,0 @@ -const path = require("path"); - -const config = require("./webpack.production"); - -config.output.filename = "adaptivecards.webchat-plugin.js"; - -config.resolve.alias = { - react: path.resolve(__dirname, "alias/react"), -}; - -config.entry = "./src/plugins/adaptivecards/index.tsx"; - -module.exports = config; diff --git a/webpack.production-plugin.adaptivecards.legacy.js b/webpack.production-plugin.adaptivecards.legacy.js deleted file mode 100644 index f40cc091..00000000 --- a/webpack.production-plugin.adaptivecards.legacy.js +++ /dev/null @@ -1,15 +0,0 @@ -const path = require("path"); - -const config = require("./webpack.production.legacy"); - -config.output.filename = "adaptivecards.webchat-plugin.legacy.js"; - -config.resolve.alias = { - react: path.resolve(__dirname, "alias/react"), -}; - -config.entry = "./src/plugins/adaptivecards/index.tsx"; - -config.target = ['web', 'es5']; - -module.exports = config; diff --git a/webpack.production-plugin.attachments.js b/webpack.production-plugin.attachments.js deleted file mode 100644 index d7b29295..00000000 --- a/webpack.production-plugin.attachments.js +++ /dev/null @@ -1,13 +0,0 @@ -const path = require("path"); - -const config = require("./webpack.production"); - -config.output.filename = "attachments.webchat-plugin.js"; - -config.resolve.alias = { - react: path.resolve(__dirname, "alias/react"), -}; - -config.entry = "./src/plugins/attachments/index.ts"; - -module.exports = config; diff --git a/webpack.production-plugin.attachments.legacy.js b/webpack.production-plugin.attachments.legacy.js deleted file mode 100644 index 3da48a17..00000000 --- a/webpack.production-plugin.attachments.legacy.js +++ /dev/null @@ -1,15 +0,0 @@ -const path = require("path"); - -const config = require("./webpack.production.legacy"); - -config.output.filename = "attachments.webchat-plugin.legacy.js"; - -config.resolve.alias = { - react: path.resolve(__dirname, "alias/react"), -}; - -config.entry = "./src/plugins/attachments/index.ts"; - -config.target = ['web', 'es5']; - -module.exports = config; diff --git a/webpack.production-plugin.date-picker.js b/webpack.production-plugin.date-picker.js deleted file mode 100644 index c5456d74..00000000 --- a/webpack.production-plugin.date-picker.js +++ /dev/null @@ -1,13 +0,0 @@ -const path = require("path"); - -const config = require("./webpack.production"); - -config.output.filename = "date-picker.webchat-plugin.js"; - -config.resolve.alias = { - react: path.resolve(__dirname, "alias/react"), -}; - -config.entry = "./src/plugins/date-picker/index.tsx"; - -module.exports = config; diff --git a/webpack.production-plugin.date-picker.legacy.js b/webpack.production-plugin.date-picker.legacy.js deleted file mode 100644 index 4c5bed0f..00000000 --- a/webpack.production-plugin.date-picker.legacy.js +++ /dev/null @@ -1,15 +0,0 @@ -const path = require("path"); - -const config = require("./webpack.production.legacy"); - -config.output.filename = "date-picker.webchat-plugin.legacy.js"; - -config.resolve.alias = { - react: path.resolve(__dirname, "alias/react"), -}; - -config.entry = "./src/plugins/date-picker/index.tsx"; - -config.target = ['web', 'es5']; - -module.exports = config; diff --git a/webpack.production-plugin.full-screen-notification.legacy.js b/webpack.production-plugin.full-screen-notification.legacy.js deleted file mode 100644 index 3121660b..00000000 --- a/webpack.production-plugin.full-screen-notification.legacy.js +++ /dev/null @@ -1,15 +0,0 @@ -const path = require("path"); - -const config = require("./webpack.production.legacy"); - -config.output.filename = "full-screen-notification.webchat-plugin.legacy.js"; - -config.resolve.alias = { - react: path.resolve(__dirname, "alias/react"), -}; - -config.entry = "./src/plugins/full-screen-notification/index.tsx"; - -config.target = ['web', 'es5']; - -module.exports = config; diff --git a/webpack.production-plugin.messenger.js b/webpack.production-plugin.messenger.js deleted file mode 100644 index d4df2470..00000000 --- a/webpack.production-plugin.messenger.js +++ /dev/null @@ -1,13 +0,0 @@ -const path = require("path"); - -const config = require("./webpack.production"); - -config.output.filename = "messenger.webchat-plugin.js"; - -config.resolve.alias = { - react: path.resolve(__dirname, "alias/react"), -}; - -config.entry = "./src/plugins/messenger/index.tsx"; - -module.exports = config; diff --git a/webpack.production-plugin.messenger.legacy.js b/webpack.production-plugin.messenger.legacy.js deleted file mode 100644 index 3d8b39cb..00000000 --- a/webpack.production-plugin.messenger.legacy.js +++ /dev/null @@ -1,15 +0,0 @@ -const path = require("path"); - -const config = require("./webpack.production.legacy"); - -config.output.filename = "messenger.webchat-plugin.legacy.js"; - -config.resolve.alias = { - react: path.resolve(__dirname, "alias/react"), -}; - -config.entry = "./src/plugins/messenger/index.tsx"; - -config.target = ['web', 'es5']; - -module.exports = config; diff --git a/webpack.production-plugin.rating.legacy.js b/webpack.production-plugin.rating.legacy.js deleted file mode 100644 index 7feeaf2a..00000000 --- a/webpack.production-plugin.rating.legacy.js +++ /dev/null @@ -1,15 +0,0 @@ -const path = require("path"); - -const config = require("./webpack.production.legacy"); - -config.output.filename = "rating.webchat-plugin.legacy.js"; - -config.resolve.alias = { - react: path.resolve(__dirname, "alias/react"), -}; - -config.entry = "./src/plugins/rating/index.ts"; - -config.target = ['web', 'es5']; - -module.exports = config; diff --git a/webpack.production-plugin.speech-input.legacy.js b/webpack.production-plugin.speech-input.legacy.js deleted file mode 100644 index 19b2aba5..00000000 --- a/webpack.production-plugin.speech-input.legacy.js +++ /dev/null @@ -1,15 +0,0 @@ -const path = require("path"); - -const config = require("./webpack.production.legacy"); - -config.output.filename = "speech-input.webchat-plugin.legacy.js"; - -config.resolve.alias = { - react: path.resolve(__dirname, "alias/react"), -}; - -config.entry = "./src/plugins/speech-input/index.tsx"; - -config.target = ['web', 'es5']; - -module.exports = config; diff --git a/webpack.production-plugin.speech-output.legacy.js b/webpack.production-plugin.speech-output.legacy.js deleted file mode 100644 index 911f31c6..00000000 --- a/webpack.production-plugin.speech-output.legacy.js +++ /dev/null @@ -1,15 +0,0 @@ -const path = require("path"); - -const config = require("./webpack.production.legacy"); - -config.output.filename = "speech-output.webchat-plugin.legacy.js"; - -config.resolve.alias = { - react: path.resolve(__dirname, "alias/react"), -}; - -config.entry = "./src/plugins/speech-output/index.tsx"; - -config.target = ['web', 'es5']; - -module.exports = config; diff --git a/webpack.production.js b/webpack.production.js index 0bb5a474..d54deb07 100644 --- a/webpack.production.js +++ b/webpack.production.js @@ -1,14 +1,58 @@ -const webpack = require('webpack'); -const { version } = require('./package.json'); +const webpack = require("webpack"); +const { version } = require("./package.json"); -const config = require('./webpack.config'); +const config = require("./webpack.config"); + +const TerserPlugin = require("terser-webpack-plugin"); +const zlib = require("zlib"); +const CompressionPlugin = require("compression-webpack-plugin"); + +config.mode = "production"; +config.plugins.push( + new webpack.BannerPlugin({ + banner: `[file] v${version}\nhttps://github.com/Cognigy/WebchatWidget/tree/v${version}\nhttps://github.com/Cognigy/WebchatWidget/tree/v${version}/OSS_LICENSES.txt`, + }), +); + +config.plugins.push( + new CompressionPlugin({ + filename: "[path][base].gz", + algorithm: "gzip", + test: /\.(js|css|html|svg|ts|tsx)$/, + threshold: 10240, + minRatio: 0.8, + }), +); + +config.plugins.push( + new CompressionPlugin({ + filename: "[path][base].br", + algorithm: "brotliCompress", + test: /\.(js|css|html|svg|ts|tsx)$/, + compressionOptions: { + params: { + [zlib.constants.BROTLI_PARAM_QUALITY]: 11, + }, + }, + threshold: 10240, + minRatio: 0.8, + }), +); -config.mode = 'production'; config.plugins.push( - new webpack.BannerPlugin({ - banner: `[file] v${version}\nhttps://github.com/Cognigy/WebchatWidget/tree/v${version}\nhttps://github.com/Cognigy/WebchatWidget/tree/v${version}/OSS_LICENSES.txt` - }) -) + new webpack.optimize.LimitChunkCountPlugin({ + maxChunks: 1, + }), +); +config.optimization = { + minimize: true, + minimizer: [ + new TerserPlugin({ + extractComments: false, + }), + ], + usedExports: true, +}; -module.exports = config; \ No newline at end of file +module.exports = config; diff --git a/webpack.production.legacy.js b/webpack.production.legacy.js deleted file mode 100644 index ff8511a8..00000000 --- a/webpack.production.legacy.js +++ /dev/null @@ -1,8 +0,0 @@ -const config = require('./webpack.production'); - -config.entry.unshift('whatwg-fetch', 'url-polyfill', 'idempotent-babel-polyfill'); -config.output.filename = 'webchat.legacy.js'; -config.module.rules.find(rule => rule.loader === 'babel-loader').options.presets.unshift('@babel/preset-env'); -config.target = ['web', 'es5']; - -module.exports = config; \ No newline at end of file