diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..dc31c684e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "memphis", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/package.json @@ -0,0 +1 @@ +{} diff --git a/ui_src/package-lock.json b/ui_src/package-lock.json index aee69dfe0..44fa2cc85 100644 --- a/ui_src/package-lock.json +++ b/ui_src/package-lock.json @@ -110,6 +110,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -1525,6 +1526,7 @@ "version": "7.23.2", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -1533,6 +1535,7 @@ "version": "7.23.2", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.13", @@ -1626,6 +1629,7 @@ "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==", + "dev": true, "dependencies": { "@babel/compat-data": "^7.22.9", "@babel/helper-validator-option": "^7.22.15", @@ -1751,6 +1755,7 @@ "version": "7.23.0", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", + "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", @@ -1823,6 +1828,7 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -1873,6 +1879,7 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -1895,6 +1902,7 @@ "version": "7.23.2", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", + "dev": true, "dependencies": { "@babel/template": "^7.22.15", "@babel/traverse": "^7.23.2", @@ -9465,6 +9473,7 @@ "version": "4.22.1", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -9645,6 +9654,7 @@ "version": "1.0.30001549", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001549.tgz", "integrity": "sha512-qRp48dPYSCYaP+KurZLhDYdVE+yEyht/3NlmcJgVQ2VMGt6JL36ndQ/7rgspdZsJuxDPFIo/OzBT2+GmIJ53BA==", + "dev": true, "funding": [ { "type": "opencollective", @@ -10232,7 +10242,8 @@ "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true }, "node_modules/cookie": { "version": "0.5.0", @@ -11635,7 +11646,8 @@ "node_modules/electron-to-chromium": { "version": "1.4.556", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.556.tgz", - "integrity": "sha512-6RPN0hHfzDU8D56E72YkDvnLw5Cj2NMXZGg3UkgyoHxjVhG99KZpsKgBWMmTy0Ei89xwan+rbRsVB9yzATmYzQ==" + "integrity": "sha512-6RPN0hHfzDU8D56E72YkDvnLw5Cj2NMXZGg3UkgyoHxjVhG99KZpsKgBWMmTy0Ei89xwan+rbRsVB9yzATmYzQ==", + "dev": true }, "node_modules/element-resize-event": { "version": "3.0.6", @@ -11975,6 +11987,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, "engines": { "node": ">=6" } @@ -13802,6 +13815,7 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -19018,6 +19032,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, "bin": { "json5": "lib/cli.js" }, @@ -19730,6 +19745,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, "dependencies": { "yallist": "^3.0.2" } @@ -21233,7 +21249,8 @@ "node_modules/node-releases": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true }, "node_modules/normalize-path": { "version": "3.0.0", @@ -27518,6 +27535,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, "bin": { "semver": "bin/semver.js" } @@ -29477,20 +29495,6 @@ "is-typedarray": "^1.0.0" } }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, "node_modules/typewise": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", @@ -29811,6 +29815,7 @@ "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -31067,7 +31072,8 @@ "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, "node_modules/yaml": { "version": "1.10.2", diff --git a/ui_src/src/App.js b/ui_src/src/App.js index 6a564f62a..b1a346550 100644 --- a/ui_src/src/App.js +++ b/ui_src/src/App.js @@ -15,7 +15,6 @@ import 'App.scss'; import { Switch, Route, withRouter } from 'react-router-dom'; import React, { useCallback, useContext, useEffect, useRef, useState } from 'react'; import { JSONCodec, StringCodec, connect } from 'nats.ws'; -import { useStiggContext } from '@stigg/react-sdk'; import { useMediaQuery } from 'react-responsive'; import { useHistory } from 'react-router-dom'; import { message, notification } from 'antd'; @@ -27,18 +26,16 @@ import { LOCAL_STORAGE_INTERNAL_WS_PASS, LOCAL_STORAGE_CONNECTION_TOKEN, LOCAL_STORAGE_TOKEN, - LOCAL_STORAGE_USER_PASS_BASED_AUTH, - USER_IMAGE, - LOCAL_STORAGE_PLAN + LOCAL_STORAGE_USER_PASS_BASED_AUTH } from 'const/localStorageConsts'; -import { CLOUD_URL, HANDLE_REFRESH_INTERVAL, WS_PREFIX } from 'config'; -import { isCheckoutCompletedTrue, isCloud } from 'services/valueConvertor'; +import { HANDLE_REFRESH_INTERVAL, WS_PREFIX } from 'config'; +import { isCheckoutCompletedTrue } from 'services/valueConvertor'; import { ReactComponent as InfoNotificationIcon } from 'assets/images/infoNotificationIcon.svg'; import { handleRefreshTokenRequest, httpRequest } from 'services/http'; import { ReactComponent as RedirectIcon } from 'assets/images/redirectIcon.svg'; import { ReactComponent as SuccessIcon } from 'assets/images/successIcon.svg'; import { ReactComponent as CloseIcon } from 'assets/images/closeNotification.svg'; -import { showMessages, useGetAllowedActions } from 'services/genericServices'; +import { showMessages } from 'services/genericServices'; import StationOverview from 'domain/stationOverview'; import { ReactComponent as ErrorIcon } from 'assets/images/errorIcon.svg'; import MessageJourney from 'domain/messageJourney'; @@ -52,21 +49,18 @@ import PrivateRoute from 'PrivateRoute'; import AuthService from 'services/auth'; import Overview from 'domain/overview'; import Loader from 'components/loader'; -import Functions from 'domain/functions'; import { Context } from 'hooks/store'; import pathDomains from 'router'; import Users from 'domain/users'; -import { planType } from "const/globalConst"; +import { planType } from 'const/globalConst'; let SysLogs = undefined; let Login = undefined; let Signup = undefined; -if (!isCloud()) { - SysLogs = require('domain/sysLogs').default; - Login = require('domain/login').default; - Signup = require('domain/signup').default; -} +SysLogs = require('domain/sysLogs').default; +Login = require('domain/login').default; +Signup = require('domain/signup').default; const App = withRouter(() => { const [state, dispatch] = useContext(Context); @@ -76,69 +70,20 @@ const App = withRouter(() => { const urlParams = new URLSearchParams(window.location.search); const firebase_id_token = urlParams.get('firebase_id_token'); const firebase_organization_id = urlParams.get('firebase_organization_id'); - const [cloudLogedIn, setCloudLogedIn] = useState(isCloud() ? false : true); - const [refreshPlan, setRefreshPlan] = useState(isCloud() ? true : false); + const [cloudLogedIn, setCloudLogedIn] = useState(true); + const [refreshPlan, setRefreshPlan] = useState(false); const [persistedNotifications, setPersistedNotifications] = useState(() => { const storedNotifications = JSON.parse(localStorage.getItem('persistedNotifications')); return storedNotifications || []; }); const [displayedNotifications, setDisplayedNotifications] = useState([]); const [systemMessage, setSystemMessage] = useState([]); - const { stigg } = isCloud() && useStiggContext(); - const getAllowedActions = useGetAllowedActions(); const stateRef = useRef([]); stateRef.current = [cloudLogedIn, persistedNotifications]; - const handleLoginWithToken = async () => { - try { - const data = await httpRequest('POST', ApiEndpoints.LOGIN, { firebase_id_token, firebase_organization_id }, {}, {}, false); - if (data) { - stigg.setCustomerId(data.account_name); - localStorage.setItem(USER_IMAGE, data.user_image); - AuthService.saveToLocalStorage(data); - dispatch({ type: 'SET_USER_DATA', payload: data }); - try { - let wsHost = localStorage.getItem(LOCAL_STORAGE_WS_HOST); - wsHost = `${WS_PREFIX}://${wsHost}`; - let conn; - if (localStorage.getItem(LOCAL_STORAGE_USER_PASS_BASED_AUTH) === 'true') { - const account_id = localStorage.getItem(LOCAL_STORAGE_ACCOUNT_ID); - const internal_ws_pass = localStorage.getItem(LOCAL_STORAGE_INTERNAL_WS_PASS); - conn = await connect({ - servers: [wsHost], - user: '$memphis_user$' + account_id, - pass: internal_ws_pass, - timeout: '5000' - }); - } else { - const connection_token = localStorage.getItem(LOCAL_STORAGE_CONNECTION_TOKEN); - conn = await connect({ - servers: [wsHost], - token: '::' + connection_token, - timeout: '5000' - }); - } - dispatch({ type: 'SET_SOCKET_DETAILS', payload: conn }); - } catch (error) { - throw new Error(error); - } - } - history.push('/overview'); - setCloudLogedIn(true); - } catch (error) { - setCloudLogedIn(true); - console.log(error); - } - }; - useEffect(() => { - if (isCloud() && firebase_id_token) { - const fetchData = async () => { - await handleLoginWithToken(); - }; - fetchData(); - } else setCloudLogedIn(true); + setCloudLogedIn(true); }, []); useEffect(() => { @@ -161,8 +106,6 @@ const App = withRouter(() => { } else if (localStorage.getItem(LOCAL_STORAGE_TOKEN)) { const handleRefreshData = await handleRefreshTokenRequest(); dispatch({ type: 'SET_USER_DATA', payload: handleRefreshData }); - isCloud() && stigg.setCustomerId(handleRefreshData.account_name); - isCloud() && localStorage.setItem(LOCAL_STORAGE_PLAN, handleRefreshData.plan); if (handleRefreshData !== '') { if (firstTime) { try { @@ -193,9 +136,7 @@ const App = withRouter(() => { } return true; } - } else { - isCloud() ? window.location.replace(CLOUD_URL) : history.push(pathDomains.signup); - } + } else history.push(pathDomains.signup); }, []); const handleUpdatePlan = async () => { @@ -204,7 +145,6 @@ const App = withRouter(() => { dispatch({ type: 'SET_ENTITLEMENTS', payload: data?.entitelments }); dispatch({ type: 'SET_PLAN_TYPE', payload: data.plan === planType.FREE }); setRefreshPlan(false); - await getAllowedActions(); showMessages('success', 'Your plan has been successfully updated.'); } catch (error) { setRefreshPlan(false); @@ -382,335 +322,157 @@ const App = withRouter(() => { {systemMessage?.length > 0 && displaySystemMessage()}
Your current plan allows {state?.userData?.entitlements['feature-partitions-per-station']?.limits} partitions
Upgrade now
-days
Your current plan allows {state?.userData?.entitlements['feature-storage-retention']?.limits} retention days
Upgrade now
-- Welcome to Memphis.dev -
-It’s whole new streaming stack 🚀
-{100 - messageExample.length} characters are left
} +{100 - messageExample.length} characters are left
Partition
- {!isCloud() &&Number of records
- {!isCloud() &&{name}
Open a service request
-{expandSidebar ? 'Create New' : 'Create'}
v{state.currentVersion}
-Upgrade
- - } - isExternal={false} - /> - )} +v{state.currentVersion}
+diff --git a/ui_src/src/components/upgradePlans/index.js b/ui_src/src/components/upgradePlans/index.js deleted file mode 100644 index 4d314aaa5..000000000 --- a/ui_src/src/components/upgradePlans/index.js +++ /dev/null @@ -1,413 +0,0 @@ -// Copyright 2022-2023 The Memphis.dev Authors -// Licensed under the Memphis Business Source License 1.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// Changed License: [Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0), as published by the Apache Foundation. -// -// https://github.com/memphisdev/memphis/blob/master/LICENSE -// -// Additional Use Grant: You may make use of the Licensed Work (i) only as part of your own product or service, provided it is not a message broker or a message queue product or service; and (ii) provided that you do not use, provide, distribute, or make available the Licensed Work as a Service. -// A "Service" is a commercial offering, product, hosted, or managed service, that allows third parties (other than your own employees and contractors acting on your behalf) to access and/or use the Licensed Work or a substantial set of the features or functionality of the Licensed Work to third parties as a software-as-a-service, platform-as-a-service, infrastructure-as-a-service or other similar services that compete with Licensor products or services. - -import './style.scss'; - -import { Paywall, useStiggContext } from '@stigg/react-sdk'; -import { FiArrowUpRight, FiArrowDownLeft } from 'react-icons/fi'; -import { HiQuestionMarkCircle, HiOutlineExclamationCircle } from 'react-icons/hi'; -import React, { Fragment, useContext, useState } from 'react'; -import { BsCheckLg } from 'react-icons/bs'; -import { Link } from 'react-router-dom'; - -import { ReactComponent as RedirectIcon } from 'assets/images/redirectIcon.svg'; -import { showMessages, useGetAllowedActions } from 'services/genericServices'; -import { ApiEndpoints } from 'const/apiEndpoints'; -import { httpRequest } from 'services/http'; -import pathDomains from 'router'; -import Button from 'components/button'; -import Modal from 'components/modal'; -import Input from 'components/Input'; -import CheckboxComponent from 'components/checkBox'; -import { Context } from 'hooks/store'; -import { LOCAL_STORAGE_PLAN } from 'const/localStorageConsts'; -import { planType } from 'const/globalConst'; - -const reasons = ['Price is too high', 'Missing feature', 'Bad support', 'Performance', 'Limitations', 'Not using anymore', 'I switched to a competitor', 'Other']; - -const UpgradePlans = ({ open, onClose, content, isExternal = true }) => { - const [_, dispatch] = useContext(Context); - const { refreshData, isInitialized } = useStiggContext(); - const [instructionsModalOpen, setInstructionsModalOpen] = useState(false); - const [downgradeModalOpen, setDowngradeModalOpen] = useState(false); - const [downgradeInstructions, setDowngradeInstructions] = useState({}); - const [upgradeModalOpen, setUpgradeModalOpen] = useState(false); - const [isCheck, setIsCheck] = useState([]); - const [downgradeLoader, setDowngradeLoader] = useState(false); - const [downgradeReaon, setReasonDowngrade] = useState(''); - const [planSelected, setPlanSelected] = useState({}); - const [textInput, setTextInput] = useState(''); - const getAllowedActions = useGetAllowedActions(); - const success_url = window.location.href; - const cancel_url = window.location.href; - - const handlePlanSelected = async (plan) => { - let isDowngrade = plan.intentionType === 'DOWNGRADE_PLAN'; - setPlanSelected(plan); - if (isDowngrade) { - try { - const data = await httpRequest('POST', ApiEndpoints.DOWNGRADE_CHECK, { plan: plan.plan.id }); - if (Object.keys(data?.entitlements).length > 0) { - setDowngradeInstructions(data?.entitlements); - setInstructionsModalOpen(true); - } else { - setDowngradeModalOpen(true); - } - } catch (error) {} - } else { - await updatePlan(plan); - } - }; - - const updatePlan = async (plan, withReason = false) => { - let reason = ''; - if (withReason) { - setDowngradeLoader(true); - const selectedOptionsText = isCheck.join(', '); - const enteredText = textInput.trim(); - if (selectedOptionsText && enteredText) { - reason = `${selectedOptionsText}, ${enteredText}`; - } else { - reason = selectedOptionsText || enteredText; - } - } - try { - let quantity = 0; - if (plan.billableFeatures.length > 0) { - quantity = plan.billableFeatures[0].quantity; - } - const data = await httpRequest('POST', ApiEndpoints.UPGRADE_PLAN, { plan: plan.plan.id, success_url, cancel_url, reason: reason, unit_quantity: quantity }); - if (data.resp_type === 'payment') window.open(data.stripe_url, '_self'); - else { - dispatch({ type: 'SET_ENTITLEMENTS', payload: data.entitlements }); - dispatch({ type: 'SET_PLAN_TYPE', payload: data.plan === planType.FREE }); - await refreshData(); - setTimeout(() => { - showMessages('success', 'Your plan has been successfully updated.'); - }, 1000); - await getAllowedActions(); - isExternal ? onClose() : setUpgradeModalOpen(false); - localStorage.setItem(LOCAL_STORAGE_PLAN, data.plan); - } - } catch (error) { - isExternal ? onClose() : setUpgradeModalOpen(false); - } finally { - if (withReason) { - setDowngradeModalOpen(false); - setDowngradeLoader(false); - setReasonDowngrade(''); - setIsCheck([]); - } - } - }; - - const handleCheckedClick = (e) => { - const { id, checked } = e.target; - setIsCheck([...isCheck, id]); - if (checked) { - setReasonDowngrade({ ...downgradeReaon, id }); - } - if (!checked) { - setIsCheck(isCheck.filter((item) => item !== id)); - } - }; - - const handleUpdateTrigger = () => { - if (!isInitialized) { - showMessages('warning', 'Oh no! We are experiencing some issues with our new billing model. Please check again in a few minutes.'); - } else { - setUpgradeModalOpen(true); - } - }; - - return ( -
Pricing & Plans
-Downgrade instructions
- -Using Slack integration is violating the new plan
-Too many management users ({downgradeInstructions['feature-management-users']['usage']})
-Some stations are violating the new plan
-Some retention policy is violating the new plan
-Storage tiering is activated
-Some partitions policy is violating the new plan
-You have more stations than the allowed amount of stations in the new plan
-Some stations have attached functions
-Some stations are utilizing the DLS linkage feature
-Downgrade Successful
- - - } - width="30vw" - displayButtons={false} - open={downgradeModalOpen} - clickOutside={() => setDowngradeModalOpen(false)} - > -Tell us why you decided to downgrade
- setTextInput(e.target.value)} - onChange={(e) => setTextInput(e.target.value)} - /> -GitHub
- -Description
- - GitHub is an open source code repository and collaborative software development platform. Use GitHub repositories to manage your Schemaverse schemas - and Functions source code. - -PagerDuty
- -Description
- - In PagerDuty, you can configure operations schedules to allow for 24x7 monitoring by an operations team that can span the globe. - -New Relic
- -Description
- - New Relic is where dev, ops, security and business teams solve software. Integrate memphis logs and metrics with New Relic - -influxDB
- -Description
- Ship memphis logs to influxDB for near real-time monitoring with Grafana visualization -Billing
-View your monthly usage
-Payments
-{billingAlertButtonText}
-This section is for managing your payment methods and invoices.
-Billing Alert
- -Usage report
-We will keep an eye on your data streams and alert.
-Account ID :
- {localStorage.getItem(LOCAL_STORAGE_ACCOUNT_ID)} -{isCloud() ? 'Delete your organization' : 'Delete your account'}
- {isCloud() ? ( - - ) : ( - - )} +Delete your account
+- Confirm that I want to delete my {isCloud() ? 'organization' : 'account'}. -
+Confirm that I want to delete my account.
Attach a function
-No stations yet
-Get started by creating your first station
-Add a new station
- {isCloud() && !state?.allowedActions?.can_create_stations &&Create a new station
- -There is no available Reamde file
-
-
- {loading && (
-
- {' '}
-
-
- )}
- {!loading && readme === '' && renderNoFunctionDetails}
- {!loading && readme && readme !== '' && (
-
-
- {modifiedContent(formattedMarkdownContent(emojiSupport(readme)))}
-
-
- )}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {metaData?.is_valid && (
-
-
-
-
- )}
-
-
-
-
-
- {metaData?.owner === OWNER && (
- <>
-
-
-
-
-
-
-
-
-
-
- >
- )}
-
-
-
- Last modified on {parsingDate(metaData?.installed_updated_at, true, true)}
-
-
-
-
- {metaData?.is_valid && (
- <>
-
-
-
- >
- )}
-
- {metaData?.inputs && metaData?.inputs?.length > 0 && (
- <>
-
-
- {metaData?.inputs?.map((input, index) => (
-
-
-
- ))}
-
- >
- )}
-
-
- )}
- {tabValue === 'Code' && (
- Please choose a file from the tree on the left.
- )} -No functions found
-Please try to search again
-- Welcome to Memphis Functions -
-Say Goodbye To Writing Business Logic In Your Clients!
-Embrace Lightning-Speed Serverless Stream Processing.
-Getting Started
- <> - {steps.map((step, index) => ( -Add a New Function
-To start adding new functions, please follow the Getting Started guide
-Event data
-Template name
- setName(e.target.value)} - colorType={'black'} - backgroundColorType={'none'} - height={'38px'} - borderColorType="gray" - radiusType="semi-round" - type="text" - /> -Description
- setDescription(e.target.value)} - colorType={'black'} - backgroundColorType={'none'} - height={'38px'} - borderColorType="gray" - radiusType="semi-round" - type="text" - /> -Select Template
-{item.name}
-{item.description}
-Generate Fake Data
- -{data.name}
-{data.description}
-Create your template
- -Test the function
-Success
- {testResult?.messages?.map((message, index) => { - return{message?.payload}
; - })} - > - ) - ); - }; - - const getFailedMessages = () => { - return ( - testResult?.failed_messages && ( - <> -Failure
- {testResult?.failed_messages?.map((message, index) => { - return ( - -{message?.payload}
-{message?.error}
- - ); - })} - > - ) - ); - }; - - const getLogs = () => { - return ( - testResult?.logs && ( - <> -Logs
-{testResult?.logs}
- > - ) - ); - }; - - const getErrors = () => { - return ( - testResult?.error && ( - <> -Error
-{testResult?.error}
- > - ) - ); - }; - - return ( -EXECUTION RESULT
- -Generate synthethic data
-In case you prefer to generate a random test event
-Select Saved Event
-No Saved Events Found
-Lorem Ipsum is simply dummy text of the printing and typesetting industry.
-Create a test event
- -Account ID :
- {localStorage.getItem(LOCAL_STORAGE_ACCOUNT_ID)} -Broker hostname :
{host} @@ -251,33 +241,15 @@ function OverView() {System overview
- -Free plan usage
-Upgrade now
-{total}GB
-Storage included
-Produce
-Consume
-
- {type === 'dls' ? (
- isCloud() && !state?.allowedActions?.can_create_stations ? (
- <>
- station
Information
-{functionItem?.activated ? 'Deactivate' : 'Activate'}
-Delete
-No messages to show
-Inputs
-This function has no inputs
-Function Inputs Variables
-These variables serve as dynamic placeholders, holding different values crucial for the function’s logic.
-- Functions Inputs can be configured in the{' '} - -
- -Functions
- - -Events Orderding
- -Account ID :
- {localStorage.getItem(LOCAL_STORAGE_ACCOUNT_ID)} -Broker hostname :
{host} @@ -255,36 +241,19 @@ const StationOverviewHeader = ({ refresh }) => {Retention: {retentionValue}
- {showRetentinViolation && ( -- Partitions: - {stationState?.stationMetaData?.partitions_number === 0 ? 1 : stationState?.stationMetaData?.partitions_number} -
- )} -- Replicas: {replicasConvertor(stationState?.stationMetaData?.replicas, false)} -
- ) : ( -+
Partitions: {stationState?.stationMetaData?.partitions_number === 0 ? 1 : stationState?.stationMetaData?.partitions_number}
- )} ++ Replicas: {replicasConvertor(stationState?.stationMetaData?.replicas, false)} +
+
Dead-letter for:
diff --git a/ui_src/src/domain/stationsList/index.js b/ui_src/src/domain/stationsList/index.js
index dca6c6168..793802c17 100644
--- a/ui_src/src/domain/stationsList/index.js
+++ b/ui_src/src/domain/stationsList/index.js
@@ -22,12 +22,11 @@ import './style.scss';
import React, { useEffect, useContext, useState, useRef } from 'react';
import { Virtuoso } from 'react-virtuoso';
-import { useGetAllowedActions } from 'services/genericServices';
import { ReactComponent as DeleteWrapperIcon } from 'assets/images/deleteWrapperIcon.svg';
import StationsInstructions from 'components/stationsInstructions';
import { ReactComponent as StationIcon } from 'assets/images/stationIcon.svg';
import CreateStationForm from 'components/createStationForm';
-import { stationFilterArray, isCloud } from 'services/valueConvertor';
+import { stationFilterArray } from 'services/valueConvertor';
import DeleteItemsModal from 'components/deleteItemsModal';
import stationsIcon from 'assets/images/stationIcon.svg';
import { ApiEndpoints } from 'const/apiEndpoints';
@@ -39,8 +38,6 @@ import Loader from 'components/loader';
import LearnMore from 'components/learnMore';
import { Context } from 'hooks/store';
import Modal from 'components/modal';
-import CloudModal from 'components/cloudModal';
-import { FaArrowCircleUp } from 'react-icons/fa';
import RefreshButton from 'components/refreshButton';
const StationsList = () => {
@@ -52,9 +49,7 @@ const StationsList = () => {
const [creatingProsessd, setCreatingProsessd] = useState(false);
const [isCheck, setIsCheck] = useState([]);
const [isCheckAll, setIsCheckAll] = useState(false);
- const [openCloudModal, setOpenCloudModal] = useState(false);
const createStationRef = useRef(null);
- const getAllowedActions = useGetAllowedActions();
useEffect(() => {
dispatch({ type: 'SET_ROUTE', payload: 'stations' });
@@ -102,21 +97,12 @@ const StationsList = () => {
className="modal-btn"
width="230px"
height="42px"
- placeholder={
- isCloud() && !state?.allowedActions?.can_create_stations ? (
-
-
-
{station?.station?.storage_type}
- {!isCloud() && ( -{station?.station?.replicas}
+{station?.station?.replicas}
+User details
- {userType === 'management' && isCloud() && ( -- Email -
- updateFormState('username', e.target.value)} - onChange={(e) => { - updateFormState('username', e.target.value); - creationForm.setFieldsValue({ username: e.target.value }); - }} - value={formFields?.username || selectedRow?.username} - disabled={isDisabled} - /> -- Full name -
- updateFormState('full_name', e.target.value)} - onChange={(e) => { - updateFormState('full_name', e.target.value); - creationForm.setFieldsValue({ full_name: e.target.value }); - }} - value={formFields?.full_name || selectedRow?.full_name} - disabled={isDisabled} - /> -Team
- updateFormState('team', e.target.value)} - onChange={(e) => { - updateFormState('team', e.target.value); - creationForm.setFieldsValue({ team: e.target.value }); - }} - value={formFields?.team || selectedRow?.team} - disabled={isDisabled} - /> -Position
- updateFormState('position', e.target.value)} - onChange={(e) => { - updateFormState('position', e.target.value); - creationForm.setFieldsValue({ position: e.target.value }); - }} - value={formFields?.position || selectedRow?.position} - disabled={isDisabled} - /> -Your current plan allows {state?.userData?.entitlements['feature-management-users']?.limits} management users
-Upgrade now
-0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=null;Nt&&yn&&yn[0]&&yn[1]&&A.isAfter(yn[1],yn[0])&&(r=yn);var o=T;if(T&&"object"===(0,U.Z)(T)&&T.defaultValue){var a=T.defaultValue;o=(0,I.Z)((0,I.Z)({},T),{},{defaultValue:Be(a,qe)||void 0})}var s=null;return F&&(s=function(e,t){return F(e,t,{range:qe?"end":"start"})}),i.createElement(He.Provider,{value:{inRange:!0,panelPosition:t,rangedValue:pn||pt,hoverRangedValue:r}},i.createElement(ct,(0,u.Z)({},e,n,{dateRender:s,showTime:o,mode:At[qe],generateConfig:A,style:void 0,direction:ye,disabledDate:0===qe?It:Tt,disabledTime:function(e){return!!Z&&Z(e,0===qe?"start":"end")},className:g()((0,f.Z)({},"".concat(c,"-panel-focused"),0===qe?!Bn:!Hn)),value:Be(pt,qe),locale:w,tabIndex:-1,onPanelChange:function(e,n){0===qe&&_n(!0),1===qe&&Tn(!0),xt(je(At,n,qe),je(pt,e,qe));var r=e;"right"===t&&At[qe]===n&&(r=Ee(r,n,A,-1)),ot(r,qe)},onOk:null,onSelect:void 0,onChange:void 0,defaultValue:Be(pt,0===qe?1:0)})))}var Gn=0,qn=0;if(qe&&Re.current&&Fe.current&&Pe.current){Gn=Re.current.offsetWidth+Fe.current.offsetWidth;var Kn=Qe.current.offsetLeft>Gn?Qe.current.offsetLeft-Gn:Qe.current.offsetLeft;Pe.current.offsetWidth&&Qe.current.offsetWidth&&Gn>Pe.current.offsetWidth-Qe.current.offsetWidth-("rtl"===ye?0:Kn)&&(qn=Gn)}var Xn="rtl"===ye?{right:Gn}:{left:Gn};var Yn,Jn,$n=i.createElement("div",{className:g()("".concat(c,"-range-wrapper"),"".concat(c,"-").concat(S,"-range-wrapper")),style:{minWidth:Rt}},i.createElement("div",{ref:Qe,className:"".concat(c,"-range-arrow"),style:Xn}),function(){var e,t=at(c,At[qe],$),n=st({prefixCls:c,components:ve,needConfirmButton:De,okDisabled:!Be(pt,qe)||R&&R(pt[qe]),locale:w,rangeList:Un,onOk:function(){Be(pt,qe)&&(Vt(pt,qe),pe&&pe(pt))}});if("time"===S||T)e=Wn();else{var r=it(qe),o=Ee(r,S,A),a=At[qe]===S,s=Wn(!!a&&"left",{pickerValue:r,onPickerValueChange:function(e){ot(e,qe)}}),u=Wn("right",{pickerValue:o,onPickerValueChange:function(e){ot(Ee(e,S,A,-1),qe)}});e="rtl"===ye?i.createElement(i.Fragment,null,u,a&&s):i.createElement(i.Fragment,null,s,a&&u)}var l=i.createElement(i.Fragment,null,i.createElement("div",{className:"".concat(c,"-panels")},e),(t||n)&&i.createElement("div",{className:"".concat(c,"-footer")},t,n));return z&&(l=z(l)),i.createElement("div",{className:"".concat(c,"-panel-container"),style:{marginLeft:qn},ref:Pe,onMouseDown:function(e){e.preventDefault()}},l)}());q&&(Yn=i.createElement("span",{className:"".concat(c,"-suffix")},q)),W&&(Be(et,0)&&!Ye[0]||Be(et,1)&&!Ye[1])&&(Jn=i.createElement("span",{onMouseDown:function(e){e.preventDefault(),e.stopPropagation()},onMouseUp:function(e){e.preventDefault(),e.stopPropagation();var t=et;Ye[0]||(t=je(t,null,0)),Ye[1]||(t=je(t,null,1)),Vt(t,null),zt(!1,qe)},className:"".concat(c,"-clear")},K||i.createElement("span",{className:"".concat(c,"-clear-btn")})));var er={size:ue(S,Ue[0],A)},tr=0,nr=0;Re.current&&Ze.current&&Fe.current&&(0===qe?nr=Re.current.offsetWidth:(tr=Gn,nr=Ze.current.offsetWidth));var rr="rtl"===ye?{right:tr}:{left:tr};return i.createElement(G.Provider,{value:{operationRef:Xe,hideHeader:"time"===S,onDateMouseEnter:function(e){bn(je(pt,e,qe)),0===qe?kn(e):In(e)},onDateMouseLeave:function(){bn(je(pt,null,qe)),0===qe?_n():Tn()},hideRanges:!0,onSelect:function(e,t){var n=je(pt,e,qe);"submit"===t||"key"!==t&&!De?(Vt(n,qe),0===qe?_n():Tn()):gt(n)},open:Nt}},i.createElement(dt,{visible:Nt,popupElement:$n,popupStyle:p,prefixCls:c,dropdownClassName:v,dropdownAlign:y,getPopupContainer:b,transitionName:m,range:!0,direction:ye},i.createElement("div",(0,u.Z)({ref:Ne,className:g()(c,"".concat(c,"-range"),h,(t={},(0,f.Z)(t,"".concat(c,"-disabled"),Ye[0]&&Ye[1]),(0,f.Z)(t,"".concat(c,"-focused"),0===qe?Mn:zn),(0,f.Z)(t,"".concat(c,"-rtl"),"rtl"===ye),t)),style:d,onClick:function(e){fe&&fe(e),Nt||ze.current.contains(e.target)||Ve.current.contains(e.target)||(Ye[0]?Ye[1]||Ht(1):Ht(0))},onMouseEnter:le,onMouseLeave:de,onMouseDown:function(e){ae&&ae(e),!Nt||!Mn&&!zn||ze.current.contains(e.target)||Ve.current.contains(e.target)||e.preventDefault()},onMouseUp:se},Me(e)),i.createElement("div",{className:g()("".concat(c,"-input"),(n={},(0,f.Z)(n,"".concat(c,"-input-active"),0===qe),(0,f.Z)(n,"".concat(c,"-input-placeholder"),!!Cn),n)),ref:Re},i.createElement("input",(0,u.Z)({id:l,disabled:Ye[0],readOnly:Y||"function"===typeof Ue[0]||!Bn,value:Cn||rn,onChange:function(e){on(e.target.value)},autoFocus:k,placeholder:Be(C,0)||"",ref:ze},Pn,er,{autoComplete:Te}))),i.createElement("div",{className:"".concat(c,"-range-separator"),ref:Fe},N),i.createElement("div",{className:g()("".concat(c,"-input"),(o={},(0,f.Z)(o,"".concat(c,"-input-active"),1===qe),(0,f.Z)(o,"".concat(c,"-input-placeholder"),!!Sn),o)),ref:Ze},i.createElement("input",(0,u.Z)({disabled:Ye[1],readOnly:Y||"function"===typeof Ue[0]||!Hn,value:Sn||un,onChange:function(e){ln(e.target.value)},placeholder:Be(C,1)||"",ref:Ve},Zn,er,{autoComplete:Te}))),i.createElement("div",{className:"".concat(c,"-active-bar"),style:(0,I.Z)((0,I.Z)({},rr),{},{width:nr,position:"absolute"})}),Yn,Jn)))}var Et=function(e){(0,H.Z)(n,e);var t=(0,V.Z)(n);function n(){var e;(0,F.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a 3&&void 0!==arguments[3]?arguments[3]:{},i=r.axis||"y";return{measure:function(){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=arguments.length>2?arguments[2]:void 0;if(n.x.targetOffset=0,n.y.targetOffset=0,t!==e)for(var r=t;r&&r!=e;)n.x.targetOffset+=r.offsetLeft,n.y.targetOffset+=r.offsetTop,r=r.offsetParent;n.x.targetLength=t===e?t.scrollWidth:t.clientWidth,n.y.targetLength=t===e?t.scrollHeight:t.clientHeight,n.x.containerLength=e.clientWidth,n.y.containerLength=e.clientHeight}(e,r.target,n)},update:function(t){!function(e,t,n){Re(e,"x",t,n),Re(e,"y",t,n),t.time=n}(e,n,t),(r.offset||r.target)&&We(e,n,r)},notify:"function"===typeof t?function(){return t(n)}:qe(t,n[i])}}function qe(e,t){return e.pause(),e.forEachNative((function(e,t){var n,r,i=t.easing;if(e.updateDuration)i||(e.easing=s.V),e.updateDuration(1);else{var o={duration:1e3};i||(o.easing="linear"),null===(r=null===(n=e.effect)||void 0===n?void 0:n.updateTiming)||void 0===r||r.call(n,o)}})),function(){e.currentTime=t.progress}}var Ke=new WeakMap,Xe=new WeakMap,Ye=new WeakMap,Je=function(e){return e===document.documentElement?window:e};function $e(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.container,r=void 0===n?document.documentElement:n,i=(0,ne.__rest)(t,["container"]),o=Ye.get(r);o||(o=new Set,Ye.set(r,o));var a=Be(),s=Ge(r,e,a,i);if(o.add(s),!Ke.has(r)){var c=function(){var e,t=performance.now(),n=(0,Pe.Z)(o);try{for(n.s();!(e=n.n()).done;){e.value.measure()}}catch(c){n.e(c)}finally{n.f()}var r,i=(0,Pe.Z)(o);try{for(i.s();!(r=i.n()).done;){r.value.update(t)}}catch(c){i.e(c)}finally{i.f()}var a,s=(0,Pe.Z)(o);try{for(s.s();!(a=s.n()).done;){a.value.notify()}}catch(c){s.e(c)}finally{s.f()}};Ke.set(r,c);var u=Je(r);window.addEventListener("resize",c,{passive:!0}),r!==document.documentElement&&Xe.set(r,Ne(r,c)),u.addEventListener("scroll",c,{passive:!0})}var l=Ke.get(r),d=requestAnimationFrame(l);return function(){var t;"function"!==typeof e&&e.stop(),cancelAnimationFrame(d);var n=Ye.get(r);if(n&&(n.delete(s),!n.size)){var i=Ke.get(r);Ke.delete(r),i&&(Je(r).removeEventListener("scroll",i),null===(t=Xe.get(r))||void 0===t||t(),window.removeEventListener("resize",i))}}}var et=n(74165);function tt(e,t){return function(e){return"object"===typeof e}(e)?e:e&&t?t[e]:void 0}var nt=void 0;function rt(){if(nt){var e=nt.sort(ot).map(at);e.forEach(st),e.forEach(st),nt=void 0}}function it(e){nt?(0,c.y)(nt,e):(nt=[e],requestAnimationFrame(rt))}var ot=function(e,t){return e.getDepth()-t.getDepth()},at=function(e){return e.animateUpdates()},st=function(e){return e.next()},ct=function(e,t){return new CustomEvent(e,{detail:{target:t}})};function ut(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:{originalEvent:n}}))}function lt(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:{originalEntry:n}}))}var dt=function(e,t,n){return function(r){r.pointerType&&"mouse"!==r.pointerType||(n(),ut(e,t,r))}},ft={inView:{isActive:function(e){return Boolean(e.inView)},subscribe:function(e,t,n){var r=t.enable,i=t.disable,o=n.inViewOptions,a=void 0===o?{}:o,s=a.once,c=(0,ne.__rest)(a,["once"]);return ke(e,(function(t){if(r(),lt(e,"viewenter",t),!s)return function(t){i(),lt(e,"viewleave",t)}}),c)}},hover:{isActive:function(e){return Boolean(e.hover)},subscribe:function(e,t){var n=t.enable,r=t.disable,i=dt(e,"hoverstart",n),o=dt(e,"hoverend",r);return e.addEventListener("pointerenter",i),e.addEventListener("pointerleave",o),function(){e.removeEventListener("pointerenter",i),e.removeEventListener("pointerleave",o)}}},press:{isActive:function(e){return Boolean(e.press)},subscribe:function(e,t){var n=t.enable,r=t.disable,i=function t(n){r(),ut(e,"pressend",n),window.removeEventListener("pointerup",t)},o=function(t){n(),ut(e,"pressstart",t),window.addEventListener("pointerup",i)};return e.addEventListener("pointerdown",o),function(){e.removeEventListener("pointerdown",o),window.removeEventListener("pointerup",i)}}}},ht=["initial","animate"].concat((0,te.Z)(Object.keys(ft)),["exit"]),pt=new WeakMap;function gt(){var e,t,n=(0,et.Z)().mark(m),r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=i?i.getDepth()+1:0,a={initial:!0,animate:!0},u={},l={},d=(0,Pe.Z)(ht);try{for(d.s();!(t=d.n()).done;){var f=t.value;l[f]="string"===typeof r[f]?r[f]:null===i||void 0===i?void 0:i.getContext()[f]}}catch(w){d.e(w)}finally{d.f()}var h=!1===r.initial?"animate":"initial",p=tt(r[h]||l[h],r.variants)||{},g=(0,ne.__rest)(p,["transition"]),v=Object.assign({},g);function m(){var t,i,o,c,u,l,d,f,h,p,m,y,b;return(0,et.Z)().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:o=g,g={},c={},u=(0,Pe.Z)(ht),n.prev=4,u.s();case 6:if((l=u.n()).done){n.next=24;break}if(d=l.value,a[d]){n.next=10;break}return n.abrupt("continue",22);case 10:if(f=tt(r[d])){n.next=13;break}return n.abrupt("continue",22);case 13:n.t0=(0,et.Z)().keys(f);case 14:if((n.t1=n.t0()).done){n.next=22;break}if("transition"!==(h=n.t1.value)){n.next=18;break}return n.abrupt("continue",14);case 18:g[h]=f[h],c[h]=U(null!==(i=null!==(t=f.transition)&&void 0!==t?t:r.transition)&&void 0!==i?i:{},h),n.next=14;break;case 22:n.next=6;break;case 24:n.next=29;break;case 26:n.prev=26,n.t2=n.catch(4),u.e(n.t2);case 29:return n.prev=29,u.f(),n.finish(29);case 32:return p=new Set([].concat((0,te.Z)(Object.keys(g)),(0,te.Z)(Object.keys(o)))),m=[],p.forEach((function(t){var n,r,i;void 0===g[t]&&(g[t]=v[t]),r=o[t],i=g[t],typeof r===typeof i&&(Array.isArray(r)&&Array.isArray(i)?function(e,t){var n=t.length;if(n!==e.length)return!1;for(var r=0;r 0&&void 0!==arguments[0]?arguments[0]:{};return(null==(e=t.keys)?void 0:e.reduce((function(e,n){return e[t.up(n)]={},e}),{}))||{}}function Je(e,t){return e.reduce((function(e,t){var n=e[t];return(!n||0===Object.keys(n).length)&&delete e[t],e}),t)}function $e(e){var t,n=e.values,r=e.breakpoints,i=e.base||function(e,t){if("object"!==typeof e)return{};var n={},r=Object.keys(t);return Array.isArray(e)?r.forEach((function(t,r){r 0&&void 0!==arguments[0]?arguments[0]:{},t=e.themeId,n=e.defaultTheme,r=void 0===n?mn:n,i=e.rootShouldForwardProp,o=void 0===i?vn:i,a=e.slotShouldForwardProp,c=void 0===a?vn:a,u=function(e){return sn((0,s.Z)({},e,{theme:yn((0,s.Z)({},e,{defaultTheme:r,themeId:t}))}))};return u.__mui_systemSx=!0,function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}(e,(function(e){return e.filter((function(e){return!(null!=e&&e.__mui_systemSx)}))}));var i,a,l=n.name,d=n.slot,f=n.skipVariantsResolver,h=n.skipSx,p=n.overridesResolver,g=void 0===p?(i=(a=d)?a.charAt(0).toLowerCase()+a.slice(1):a)?function(e,t){return t[i]}:null:p,v=(0,Ue.Z)(n,hn),m=void 0!==f?f:d&&"Root"!==d&&"root"!==d||!1,y=h||!1;var b=vn;"Root"===d||"root"===d?b=o:d?b=c:function(e){return"string"===typeof e&&e.charCodeAt(0)>96}(e)&&(b=void 0);var A=tn(e,(0,s.Z)({shouldForwardProp:b,label:undefined},v)),w=function(n){for(var i=arguments.length,o=new Array(i>1?i-1:0),a=1;a0){var p=new Array(h).fill("");(f=[].concat((0,Ve.Z)(n),(0,Ve.Z)(p))).raw=[].concat((0,Ve.Z)(n.raw),(0,Ve.Z)(p))}var v=A.apply(void 0,[f].concat((0,Ve.Z)(d)));return e.muiName&&(v.muiName=e.muiName),v};return A.withConfig&&(w.withConfig=A.withConfig),w}}({themeId:ir,defaultTheme:rr,rootShouldForwardProp:or}),cr=sr;function ur(e,t){var n=(0,s.Z)({},t);return Object.keys(e).forEach((function(r){if(r.toString().match(/^(components|slots)$/))n[r]=(0,s.Z)({},e[r],n[r]);else if(r.toString().match(/^(componentsProps|slotProps)$/)){var i=e[r]||{},o=t[r];n[r]={},o&&Object.keys(o)?i&&Object.keys(i)?(n[r]=(0,s.Z)({},o),Object.keys(i).forEach((function(e){n[r][e]=ur(i[e],o[e])}))):n[r]=o:n[r]=i}else void 0===n[r]&&(n[r]=e[r])})),n}var lr=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=o.useContext(Te);return n&&(e=n,0!==Object.keys(e).length)?n:t},dr=un();var fr=function(){return lr(arguments.length>0&&void 0!==arguments[0]?arguments[0]:dr)};function hr(e){var t=e.props,n=e.name,r=e.defaultTheme,i=e.themeId,o=fr(r);i&&(o=o[i]||o);var a=function(e){var t=e.theme,n=e.name,r=e.props;return t&&t.components&&t.components[n]&&t.components[n].defaultProps?ur(t.components[n].defaultProps,r):r}({theme:o,name:n,props:t});return a}function pr(e){return hr({props:e.props,name:e.name,defaultTheme:rr,themeId:ir})}function gr(){var e=fr(rr);return e[ir]||e}var vr=o.createContext(),mr=function(e){return e},yr=function(){var e=mr;return{configure:function(t){e=t},generate:function(t){return e(t)},reset:function(){e=mr}}}(),br={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function Ar(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Mui",r=br[t];return r?"".concat(n,"-").concat(r):"".concat(yr.generate(e),"-").concat(t)}function wr(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Mui",r={};return t.forEach((function(t){r[t]=Ar(e,t,n)})),r}function Cr(e){return Ar("MuiGrid",e)}var kr=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],_r=wr("MuiGrid",["root","container","item","zeroMinWidth"].concat((0,Ve.Z)([0,1,2,3,4,5,6,7,8,9,10].map((function(e){return"spacing-xs-".concat(e)}))),(0,Ve.Z)(["column-reverse","column","row-reverse","row"].map((function(e){return"direction-xs-".concat(e)}))),(0,Ve.Z)(["nowrap","wrap-reverse","wrap"].map((function(e){return"wrap-xs-".concat(e)}))),(0,Ve.Z)(kr.map((function(e){return"grid-xs-".concat(e)}))),(0,Ve.Z)(kr.map((function(e){return"grid-sm-".concat(e)}))),(0,Ve.Z)(kr.map((function(e){return"grid-md-".concat(e)}))),(0,Ve.Z)(kr.map((function(e){return"grid-lg-".concat(e)}))),(0,Ve.Z)(kr.map((function(e){return"grid-xl-".concat(e)}))))),xr=_r,Er=n(46417),Sr=["className","columns","columnSpacing","component","container","direction","item","rowSpacing","spacing","wrap","zeroMinWidth"];function Ir(e){var t=parseFloat(e);return"".concat(t).concat(String(e).replace(String(t),"")||"px")}function Tr(e){var t=e.breakpoints,n=e.values,r="";Object.keys(n).forEach((function(e){""===r&&0!==n[e]&&(r=e)}));var i=Object.keys(t).sort((function(e,n){return t[e]-t[n]}));return i.slice(0,i.indexOf(r))}var Dr=cr("div",{name:"MuiGrid",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState,r=n.container,i=n.direction,o=n.item,a=n.spacing,s=n.wrap,c=n.zeroMinWidth,u=n.breakpoints,l=[];r&&(l=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e||e<=0)return[];if("string"===typeof e&&!Number.isNaN(Number(e))||"number"===typeof e)return[n["spacing-xs-".concat(String(e))]];var r=[];return t.forEach((function(t){var i=e[t];Number(i)>0&&r.push(n["spacing-".concat(t,"-").concat(String(i))])})),r}(a,u,t));var d=[];return u.forEach((function(e){var r=n[e];r&&d.push(t["grid-".concat(e,"-").concat(String(r))])})),[t.root,r&&t.container,o&&t.item,c&&t.zeroMinWidth].concat((0,Ve.Z)(l),["row"!==i&&t["direction-xs-".concat(String(i))],"wrap"!==s&&t["wrap-xs-".concat(String(s))]],d)}})((function(e){var t=e.ownerState;return(0,s.Z)({boxSizing:"border-box"},t.container&&{display:"flex",flexWrap:"wrap",width:"100%"},t.item&&{margin:0},t.zeroMinWidth&&{minWidth:0},"wrap"!==t.wrap&&{flexWrap:t.wrap})}),(function(e){var t=e.theme;return Xe({theme:t},$e({values:e.ownerState.direction,breakpoints:t.breakpoints.values}),(function(e){var t={flexDirection:e};return 0===e.indexOf("column")&&(t["& > .".concat(xr.item)]={maxWidth:"none"}),t}))}),(function(e){var t=e.theme,n=e.ownerState,r=n.container,i=n.rowSpacing,o={};if(r&&0!==i){var a,s=$e({values:i,breakpoints:t.breakpoints.values});"object"===typeof s&&(a=Tr({breakpoints:t.breakpoints.values,values:s})),o=Xe({theme:t},s,(function(e,n){var r,i=t.spacing(e);return"0px"!==i?(0,Qe.Z)({marginTop:"-".concat(Ir(i))},"& > .".concat(xr.item),{paddingTop:Ir(i)}):null!=(r=a)&&r.includes(n)?{}:(0,Qe.Z)({marginTop:0},"& > .".concat(xr.item),{paddingTop:0})}))}return o}),(function(e){var t=e.theme,n=e.ownerState,r=n.container,i=n.columnSpacing,o={};if(r&&0!==i){var a,s=$e({values:i,breakpoints:t.breakpoints.values});"object"===typeof s&&(a=Tr({breakpoints:t.breakpoints.values,values:s})),o=Xe({theme:t},s,(function(e,n){var r,i=t.spacing(e);return"0px"!==i?(0,Qe.Z)({width:"calc(100% + ".concat(Ir(i),")"),marginLeft:"-".concat(Ir(i))},"& > .".concat(xr.item),{paddingLeft:Ir(i)}):null!=(r=a)&&r.includes(n)?{}:(0,Qe.Z)({width:"100%",marginLeft:0},"& > .".concat(xr.item),{paddingLeft:0})}))}return o}),(function(e){var t,n=e.theme,r=e.ownerState;return n.breakpoints.keys.reduce((function(e,i){var o={};if(r[i]&&(t=r[i]),!t)return e;if(!0===t)o={flexBasis:0,flexGrow:1,maxWidth:"100%"};else if("auto"===t)o={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"};else{var a=$e({values:r.columns,breakpoints:n.breakpoints.values}),c="object"===typeof a?a[i]:a;if(void 0===c||null===c)return e;var u="".concat(Math.round(t/c*1e8)/1e6,"%"),l={};if(r.container&&r.item&&0!==r.columnSpacing){var d=n.spacing(r.columnSpacing);if("0px"!==d){var f="calc(".concat(u," + ").concat(Ir(d),")");l={flexBasis:f,maxWidth:f}}}o=(0,s.Z)({flexBasis:u,flexGrow:0,maxWidth:u},l)}return 0===n.breakpoints.values[i]?Object.assign(e,o):e[n.breakpoints.up(i)]=o,e}),{})}));var Or=function(e){var t=e.classes,n=e.container,r=e.direction,i=e.item,o=e.spacing,a=e.wrap,s=e.zeroMinWidth,c=e.breakpoints,u=[];n&&(u=function(e,t){if(!e||e<=0)return[];if("string"===typeof e&&!Number.isNaN(Number(e))||"number"===typeof e)return["spacing-xs-".concat(String(e))];var n=[];return t.forEach((function(t){var r=e[t];if(Number(r)>0){var i="spacing-".concat(t,"-").concat(String(r));n.push(i)}})),n}(o,c));var l=[];return c.forEach((function(t){var n=e[t];n&&l.push("grid-".concat(t,"-").concat(String(n)))})),$t({root:["root",n&&"container",i&&"item",s&&"zeroMinWidth"].concat((0,Ve.Z)(u),["row"!==r&&"direction-xs-".concat(String(r)),"wrap"!==a&&"wrap-xs-".concat(String(a))],l)},Cr,t)},Nr=o.forwardRef((function(e,t){var n=pr({props:e,name:"MuiGrid"}),r=gr().breakpoints,i=Jt(n),a=i.className,c=i.columns,u=i.columnSpacing,l=i.component,d=void 0===l?"div":l,f=i.container,h=void 0!==f&&f,p=i.direction,g=void 0===p?"row":p,v=i.item,m=void 0!==v&&v,y=i.rowSpacing,b=i.spacing,A=void 0===b?0:b,w=i.wrap,C=void 0===w?"wrap":w,k=i.zeroMinWidth,_=void 0!==k&&k,x=(0,Ue.Z)(i,Sr),E=y||A,S=u||A,I=o.useContext(vr),T=h?c||12:I,D={},O=(0,s.Z)({},x);r.keys.forEach((function(e){null!=x[e]&&(D[e]=x[e],delete O[e])}));var N=(0,s.Z)({},i,{columns:T,container:h,direction:g,item:m,rowSpacing:E,columnSpacing:S,wrap:C,zeroMinWidth:_,spacing:A},D,{breakpoints:r.keys}),P=Or(N);return(0,Er.jsx)(vr.Provider,{value:T,children:(0,Er.jsx)(Dr,(0,s.Z)({ownerState:N,className:Ge(P.root,a),as:d,ref:t},O))})})),Pr=Nr,Lr=n(4625),Mr=(n(67861),Ie((function(e,t){var n=e.styles,r=ke([n],void 0,o.useContext(Te)),i=o.useRef();return Ee((function(){var e=t.key+"-global",n=new t.sheet.constructor({key:e,nonce:t.sheet.nonce,container:t.sheet.container,speedy:t.sheet.isSpeedy}),o=!1,a=document.querySelector('style[data-emotion="'+e+" "+r.name+'"]');return t.sheet.tags.length&&(n.before=t.sheet.tags[0]),null!==a&&(o=!0,a.setAttribute("data-emotion",e),n.hydrate([a])),i.current=[n,o],function(){n.flush()}}),[t]),Ee((function(){var e=i.current,n=e[0];if(e[1])e[1]=!1;else{if(void 0!==r.next&&Le(t,r.next,!0),n.tags.length){var o=n.tags[n.tags.length-1].nextElementSibling;n.before=o,n.flush()}t.insert("",r,n,!1)}}),[t,r.name]),null})));function Br(){for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:"end";return function(n){var r=(n="end"===t?Math.min(n,.999):Math.max(n,.001))*e,i="end"===t?Math.floor(r):Math.ceil(r);return(0,u.u)(0,1,i/e)}},d=n(36896),f=n(53416),h={ease:c(.25,.1,.25,1),"ease-in":c(.42,0,1,1),"ease-in-out":c(.42,0,.58,1),"ease-out":c(0,0,.58,1)},p=/\((.*?)\)/;function g(e){if((0,d.m)(e))return e;if((0,f.U)(e))return c.apply(void 0,(0,r.Z)(e));if(h[e])return h[e];if(e.startsWith("steps")){var t=p.exec(e);if(t){var n=t[1].split(",");return l(parseFloat(n[0]),n[1].trim())}}return i.V}},99432:function(e,t,n){"use strict";n.r(t),n.d(t,{ScrollOffset:function(){return Fe},animate:function(){return ee},animateStyle:function(){return Q},createMotionState:function(){return gt},createStyleString:function(){return bt},createStyles:function(){return vt},getAnimationData:function(){return a},getStyleName:function(){return z},glide:function(){return we},inView:function(){return ke},mountedStates:function(){return pt},resize:function(){return Ne},scroll:function(){return $e},spring:function(){return Ae},stagger:function(){return J},style:function(){return H},timeline:function(){return fe},withControls:function(){return q}});var r=n(4942),i=n(96653),o=new WeakMap;function a(e){return o.has(e)||o.set(e,{transforms:[],values:new Map}),o.get(e)}var s=n(52924),c=n(88069),u=["","X","Y","Z"],l={x:"translateX",y:"translateY",z:"translateZ"},d={syntax:"0){if(++n>=800)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}},7465:function(e,t,n){var r=n(8407);e.exports=function(){this.__data__=new r,this.size=0}},3779:function(e){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},7599:function(e){e.exports=function(e){return this.__data__.get(e)}},4758:function(e){e.exports=function(e){return this.__data__.has(e)}},4309:function(e,t,n){var r=n(8407),i=n(7071),o=n(3369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var a=n.__data__;if(!i||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new o(a)}return n.set(e,t),this.size=n.size,this}},2351:function(e){e.exports=function(e,t,n){for(var r=n-1,i=e.length;++r-1:!!l&&r(e,t,n)>-1}},5694:function(e,t,n){var r=n(9454),i=n(7005),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(e){return i(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=c},1469:function(e){var t=Array.isArray;e.exports=t},8612:function(e,t,n){var r=n(3560),i=n(1780);e.exports=function(e){return null!=e&&i(e.length)&&!r(e)}},9246:function(e,t,n){var r=n(8612),i=n(7005);e.exports=function(e){return i(e)&&r(e)}},4144:function(e,t,n){e=n.nmd(e);var r=n(5639),i=n(5062),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,s=a&&a.exports===o?r.Buffer:void 0,c=(s?s.isBuffer:void 0)||i;e.exports=c},1609:function(e,t,n){var r=n(280),i=n(4160),o=n(5694),a=n(1469),s=n(8612),c=n(4144),u=n(5726),l=n(6719),d=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(s(e)&&(a(e)||"string"==typeof e||"function"==typeof e.splice||c(e)||l(e)||o(e)))return!e.length;var t=i(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(u(e))return!r(e).length;for(var n in e)if(d.call(e,n))return!1;return!0}},3560:function(e,t,n){var r=n(4239),i=n(3218);e.exports=function(e){if(!i(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},1780:function(e){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},6688:function(e,t,n){var r=n(5588),i=n(7518),o=n(1167),a=o&&o.isMap,s=a?i(a):r;e.exports=s},3218:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},7005:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},8630:function(e,t,n){var r=n(4239),i=n(5924),o=n(7005),a=Function.prototype,s=Object.prototype,c=a.toString,u=s.hasOwnProperty,l=c.call(Object);e.exports=function(e){if(!o(e)||"[object Object]"!=r(e))return!1;var t=i(e);if(null===t)return!0;var n=u.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==l}},2928:function(e,t,n){var r=n(9221),i=n(7518),o=n(1167),a=o&&o.isSet,s=a?i(a):r;e.exports=s},7037:function(e,t,n){var r=n(4239),i=n(1469),o=n(7005);e.exports=function(e){return"string"==typeof e||!i(e)&&o(e)&&"[object String]"==r(e)}},3448:function(e,t,n){var r=n(4239),i=n(7005);e.exports=function(e){return"symbol"==typeof e||i(e)&&"[object Symbol]"==r(e)}},6719:function(e,t,n){var r=n(8749),i=n(7518),o=n(1167),a=o&&o.isTypedArray,s=a?i(a):r;e.exports=s},3674:function(e,t,n){var r=n(4636),i=n(280),o=n(8612);e.exports=function(e){return o(e)?r(e):i(e)}},1704:function(e,t,n){var r=n(4636),i=n(313),o=n(8612);e.exports=function(e){return o(e)?r(e,!0):i(e)}},928:function(e){e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},6486:function(e,t,n){var r;e=n.nmd(e),function(){var i,o="Expected a function",a="__lodash_hash_undefined__",s="__lodash_placeholder__",c=32,u=128,l=1/0,d=9007199254740991,f=NaN,h=4294967295,p=[["ary",u],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",c],["partialRight",64],["rearg",256]],g="[object Arguments]",v="[object Array]",m="[object Boolean]",y="[object Date]",b="[object Error]",A="[object Function]",w="[object GeneratorFunction]",C="[object Map]",k="[object Number]",_="[object Object]",x="[object Promise]",E="[object RegExp]",S="[object Set]",I="[object String]",T="[object Symbol]",D="[object WeakMap]",O="[object ArrayBuffer]",N="[object DataView]",P="[object Float32Array]",L="[object Float64Array]",M="[object Int8Array]",B="[object Int16Array]",j="[object Int32Array]",R="[object Uint8Array]",Z="[object Uint8ClampedArray]",F="[object Uint16Array]",z="[object Uint32Array]",H=/\b__p \+= '';/g,V=/\b(__p \+=) '' \+/g,Q=/(__e\(.*?\)|\b__t\)) \+\n'';/g,U=/&(?:amp|lt|gt|quot|#39);/g,W=/[&<>"']/g,G=RegExp(U.source),q=RegExp(W.source),K=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,Y=/<%=([\s\S]+?)%>/g,J=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,$=/^\w*$/,ee=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,te=/[\\^$.*+?()[\]{}|]/g,ne=RegExp(te.source),re=/^\s+/,ie=/\s/,oe=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ae=/\{\n\/\* \[wrapped with (.+)\] \*/,se=/,? & /,ce=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ue=/[()=,{}\[\]\/\s]/,le=/\\(\\)?/g,de=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,fe=/\w*$/,he=/^[-+]0x[0-9a-f]+$/i,pe=/^0b[01]+$/i,ge=/^\[object .+?Constructor\]$/,ve=/^0o[0-7]+$/i,me=/^(?:0|[1-9]\d*)$/,ye=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,be=/($^)/,Ae=/['\n\r\u2028\u2029\\]/g,we="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Ce="a-z\\xdf-\\xf6\\xf8-\\xff",ke="A-Z\\xc0-\\xd6\\xd8-\\xde",_e="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",xe="["+_e+"]",Ee="["+we+"]",Se="\\d+",Ie="["+Ce+"]",Te="[^\\ud800-\\udfff"+_e+Se+"\\u2700-\\u27bf"+Ce+ke+"]",De="\\ud83c[\\udffb-\\udfff]",Oe="[^\\ud800-\\udfff]",Ne="(?:\\ud83c[\\udde6-\\uddff]){2}",Pe="[\\ud800-\\udbff][\\udc00-\\udfff]",Le="["+ke+"]",Me="(?:"+Ie+"|"+Te+")",Be="(?:"+Le+"|"+Te+")",je="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Re="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",Ze="(?:"+Ee+"|"+De+")?",Fe="[\\ufe0e\\ufe0f]?",ze=Fe+Ze+"(?:\\u200d(?:"+[Oe,Ne,Pe].join("|")+")"+Fe+Ze+")*",He="(?:"+["[\\u2700-\\u27bf]",Ne,Pe].join("|")+")"+ze,Ve="(?:"+[Oe+Ee+"?",Ee,Ne,Pe,"[\\ud800-\\udfff]"].join("|")+")",Qe=RegExp("['\u2019]","g"),Ue=RegExp(Ee,"g"),We=RegExp(De+"(?="+De+")|"+Ve+ze,"g"),Ge=RegExp([Le+"?"+Ie+"+"+je+"(?="+[xe,Le,"$"].join("|")+")",Be+"+"+Re+"(?="+[xe,Le+Me,"$"].join("|")+")",Le+"?"+Me+"+"+je,Le+"+"+Re,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Se,He].join("|"),"g"),qe=RegExp("[\\u200d\\ud800-\\udfff"+we+"\\ufe0e\\ufe0f]"),Ke=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Xe=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Ye=-1,Je={};Je[P]=Je[L]=Je[M]=Je[B]=Je[j]=Je[R]=Je[Z]=Je[F]=Je[z]=!0,Je[g]=Je[v]=Je[O]=Je[m]=Je[N]=Je[y]=Je[b]=Je[A]=Je[C]=Je[k]=Je[_]=Je[E]=Je[S]=Je[I]=Je[D]=!1;var $e={};$e[g]=$e[v]=$e[O]=$e[N]=$e[m]=$e[y]=$e[P]=$e[L]=$e[M]=$e[B]=$e[j]=$e[C]=$e[k]=$e[_]=$e[E]=$e[S]=$e[I]=$e[T]=$e[R]=$e[Z]=$e[F]=$e[z]=!0,$e[b]=$e[A]=$e[D]=!1;var et={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},tt=parseFloat,nt=parseInt,rt="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,it="object"==typeof self&&self&&self.Object===Object&&self,ot=rt||it||Function("return this")(),at=t&&!t.nodeType&&t,st=at&&e&&!e.nodeType&&e,ct=st&&st.exports===at,ut=ct&&rt.process,lt=function(){try{return st&&st.require&&st.require("util").types||ut&&ut.binding&&ut.binding("util")}catch(e){}}(),dt=lt&<.isArrayBuffer,ft=lt&<.isDate,ht=lt&<.isMap,pt=lt&<.isRegExp,gt=lt&<.isSet,vt=lt&<.isTypedArray;function mt(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function yt(e,t,n,r){for(var i=-1,o=null==e?0:e.length;++i-1},Un.prototype.set=function(e,t){var n=this.__data__,r=tr(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Wn.prototype.clear=function(){this.size=0,this.__data__={hash:new Qn,map:new(_n||Un),string:new Qn}},Wn.prototype.delete=function(e){var t=so(this,e).delete(e);return this.size-=t?1:0,t},Wn.prototype.get=function(e){return so(this,e).get(e)},Wn.prototype.has=function(e){return so(this,e).has(e)},Wn.prototype.set=function(e,t){var n=so(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Gn.prototype.add=Gn.prototype.push=function(e){return this.__data__.set(e,a),this},Gn.prototype.has=function(e){return this.__data__.has(e)},qn.prototype.clear=function(){this.__data__=new Un,this.size=0},qn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},qn.prototype.get=function(e){return this.__data__.get(e)},qn.prototype.has=function(e){return this.__data__.has(e)},qn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Un){var r=n.__data__;if(!_n||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Wn(r)}return n.set(e,t),this.size=n.size,this};var dr=Oi(br),fr=Oi(Ar,!0);function hr(e,t){var n=!0;return dr(e,(function(e,r,i){return n=!!t(e,r,i)})),n}function pr(e,t,n){for(var r=-1,o=e.length;++r-1&&e%1==0&&e0&&r(c)?n>1?e(c,n-1,r,i,o):fo(o,c):i||(o[o.length]=c)}return o};var vp=function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e};var mp=function(e,t){if(e!==t){var n=void 0!==e,r=null===e,i=e===e,o=Oa(e),a=void 0!==t,s=null===t,c=t===t,u=Oa(t);if(!s&&!u&&!o&&e>t||o&&a&&c&&!s&&!u||r&&a&&c||!n&&c||!i)return 1;if(!r&&!o&&!u&&e