\n The introduction of the PSD2 regulation in Europe requires re-entering your card details before we can allow the modification of payment details or\n access to the payment history.\n
\n )\n }}\n secondary={\n isUpdatingPaymentDetails && (\n setIsUpdatingPaymentDetails(false)}\n onComplete={onCardConfirm}\n onSubmit={() => dispatch(startCardUpdate())}\n setSnackbar={text => dispatch(setSnackbar(text))}\n />\n )\n }\n notification={\n hasUnpaid && (\n \n \n You have an unpaid invoice. Please check your payment card details\n
\n )\n }\n />\n );\n};\n\nexport default OrganizationPaymentSettings;\n","// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link, useNavigate } from 'react-router-dom';\n\n// material ui\nimport { Error as ErrorIcon, OpenInNew as OpenInNewIcon } from '@mui/icons-material';\nimport { LinearProgress, List } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport moment from 'moment';\n\nimport { cancelRequest } from '../../../actions/organizationActions';\nimport { ADDONS, PLANS } from '../../../constants/appConstants';\nimport { toggle } from '../../../helpers';\nimport { getAcceptedDevices, getDeviceLimit, getIsEnterprise, getOrganization, getUserRoles } from '../../../selectors';\nimport Alert from '../../common/alert';\nimport CancelRequestDialog from '../dialogs/cancelrequest';\nimport OrganizationPaymentSettings from './organizationpaymentsettings';\nimport OrganizationSettingsItem, { maxWidth } from './organizationsettingsitem';\n\nconst useStyles = makeStyles()(theme => ({\n deviceLimitBar: { backgroundColor: theme.palette.grey[500], margin: '15px 0' },\n wrapper: {\n backgroundColor: theme.palette.background.lightgrey,\n marginTop: theme.spacing(6),\n padding: theme.spacing(2),\n '&>h5': { marginTop: 0, marginBottom: 0 }\n }\n}));\n\nexport const TrialExpirationNote = ({ trial_expiration }) => (\n \n \n \n Your trial expires in {moment().from(moment(trial_expiration), true)}. Upgrade to a paid plan\n \n
\n);\n\nexport const DeviceLimitExpansionNotification = ({ isTrial }) => (\n \n
\n
\n To increase your device limit,{' '}\n
\n {isTrial ? (\n
upgrade to a paid plan\n ) : (\n
\n contact our sales team\n \n )}\n
.
\n
\n);\n\nexport const CancelSubscriptionAlert = () => (\n \n We've started the process to cancel your plan and deactivate your account.
\n \n We'll send you an email confirming your deactivation. If you have any question at all, contact us at our{' '}\n \n \n support portal\n \n .\n \n
\n \n);\n\nexport const CancelSubscriptionButton = ({ handleCancelSubscription, isTrial }) => (\n \n \n {isTrial ? 'End trial' : 'Cancel subscription'} and deactivate account\n \n
\n);\n\nexport const Billing = () => {\n const [cancelSubscription, setCancelSubscription] = useState(false);\n const [cancelSubscriptionConfirmation, setCancelSubscriptionConfirmation] = useState(false);\n const { isAdmin } = useSelector(getUserRoles);\n const { total: acceptedDevices = 0 } = useSelector(getAcceptedDevices);\n const deviceLimit = useSelector(getDeviceLimit);\n const isEnterprise = useSelector(getIsEnterprise);\n const organization = useSelector(getOrganization);\n const { plan: currentPlan = PLANS.os.id } = organization;\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const { classes } = useStyles();\n\n const planName = PLANS[currentPlan].name;\n\n const enabledAddOns =\n organization.addons?.reduce((accu, addon) => {\n if (addon.enabled) {\n const { title } = ADDONS[addon.name];\n let addonPrice = '';\n if (!organization.trial && !isEnterprise) {\n const planAddon = ADDONS[addon.name][currentPlan] ? ADDONS[addon.name][currentPlan] : ADDONS[addon.name].os;\n addonPrice = ` - ${planAddon.price}`;\n }\n accu.push(`${title}${addonPrice}`);\n }\n return accu;\n }, []) || [];\n\n const cancelSubscriptionSubmit = async reason =>\n dispatch(cancelRequest(organization.id, reason)).then(() => {\n setCancelSubscription(false);\n setCancelSubscriptionConfirmation(true);\n });\n\n const handleCancelSubscription = e => {\n if (e !== undefined) {\n e.preventDefault();\n }\n setCancelSubscription(toggle);\n };\n\n return (\n \n
Billing
\n
\n : null}\n />\n {deviceLimit > 0 && (\n }\n notification={}\n />\n )}\n navigate('/settings/upgrade') },\n description: enabledAddOns.length ? enabledAddOns.join(', ') : `You currently don't have any add-ons`\n }}\n notification={organization.trial && }\n sideBarContent={\n \n }\n />\n {!organization.trial && !isEnterprise && }\n
\n {cancelSubscriptionConfirmation &&
}\n {isAdmin && !cancelSubscriptionConfirmation && (\n
\n )}\n {cancelSubscription &&
setCancelSubscription(false)} onSubmit={cancelSubscriptionSubmit} />}\n \n );\n};\n\nexport default Billing;\n","// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport Dropzone from 'react-dropzone';\n\n// material ui\nimport { Close as CloseIcon, CloudUpload, FileCopyOutlined as CopyPasteIcon } from '@mui/icons-material';\nimport { Button, Divider, Drawer, IconButton } from '@mui/material';\n\nimport Editor, { loader } from '@monaco-editor/react';\nimport copy from 'copy-to-clipboard';\n\nimport { createFileDownload } from '../../../helpers';\nimport Loader from '../../common/loader';\n\nloader.config({ paths: { vs: '/ui/vs' } });\n\nconst editorProps = {\n defaultLanguage: 'xml',\n height: 700,\n language: 'xml',\n loading: ,\n options: {\n autoClosingOvertype: 'auto',\n codeLens: false,\n contextmenu: false,\n enableSplitViewResizing: false,\n formatOnPaste: true,\n lightbulb: { enabled: false },\n lineNumbers: 'off',\n minimap: { enabled: false },\n quickSuggestions: false,\n readOnly: true,\n renderOverviewRuler: false,\n scrollBeyondLastLine: false,\n wordWrap: 'on'\n }\n};\n\nexport const SSOEditor = ({ config, fileContent, hasSSOConfig, open, onCancel, onClose, onSave, setFileContent, token }) => {\n const [isEditing, setIsEditing] = useState(false);\n const [isMetadataValid, setIsMetadataValid] = useState(false);\n const editorRef = useRef();\n\n useEffect(() => {\n if (!fileContent) {\n return;\n }\n const parser = new DOMParser();\n const theDom = parser.parseFromString(fileContent, 'application/xml');\n setIsMetadataValid(!theDom.getElementsByTagName('parsererror').length);\n }, [fileContent]);\n\n const onEditClick = () => setIsEditing(true);\n\n const onDownloadClick = () => createFileDownload(fileContent, 'metadata.xml', token);\n\n const onCancelClick = useCallback(() => {\n if (isEditing) {\n setFileContent(config);\n if (!hasSSOConfig) {\n return onCancel();\n }\n return setIsEditing(false);\n }\n onCancel();\n }, [config, hasSSOConfig, isEditing, onCancel, setFileContent]);\n\n const onSubmitClick = () => {\n onSave();\n setIsEditing(false);\n };\n\n const onCopyClick = () => copy(fileContent);\n\n const onDrop = acceptedFiles => {\n let reader = new FileReader();\n reader.fileName = acceptedFiles[0].name;\n reader.onerror = error => {\n console.log('Error: ', error);\n setIsEditing(false);\n };\n reader.onload = () => {\n setFileContent(reader.result);\n setIsEditing(true);\n };\n reader.readAsBinaryString(acceptedFiles[0]);\n };\n\n const handleEditorDidMount = (editor, monaco) => {\n monaco.languages.html.registerHTMLLanguageService('xml', {}, { documentFormattingEdits: true });\n editorRef.current = { editor, monaco, modifiedEditor: editor };\n };\n\n return (\n \n \n
SAML metadata
\n
\n
\n {({ getRootProps, getInputProps }) => (\n \n \n }>\n Import from a file\n \n
\n )}\n \n\n
\n \n \n
\n
\n \n \n {!isMetadataValid && fileContent.length > 4 && There was an error parsing the metadata.
}\n \n \n {hasSSOConfig && !isEditing ? (\n
\n \n \n }>\n Copy to clipboard\n \n
\n ) : (\n <>\n
\n
\n >\n )}\n
\n \n );\n};\n\nexport default SSOEditor;\n","// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect, useState } from 'react';\nimport Dropzone from 'react-dropzone';\n\n// material ui\nimport { CloudUpload } from '@mui/icons-material';\nimport { Button } from '@mui/material';\nimport { listItemTextClasses } from '@mui/material/ListItemText';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { useradmApiUrl } from '../../../constants/userConstants';\nimport { toggle } from '../../../helpers';\nimport ExpandableAttribute from '../../common/expandable-attribute';\nimport { HELPTOOLTIPS, MenderHelpTooltip } from '../../helptips/helptooltips';\nimport { maxWidth } from './organizationsettingsitem';\nimport SSOEditor from './ssoeditor';\n\nconst useStyles = makeStyles()(theme => ({\n configDetail: {\n maxWidth,\n [`.${listItemTextClasses.primary}`]: {\n color: theme.palette.text.disabled,\n fontSize: 'smaller'\n }\n },\n uploadIcon: {\n marginBottom: theme.spacing(-0.5),\n marginRight: theme.spacing()\n },\n tinyMargin: {\n marginLeft: theme.spacing(0.5),\n marginRight: theme.spacing(0.5)\n },\n wrapper: {\n alignItems: 'start',\n columnGap: theme.spacing(2),\n display: 'grid',\n gridTemplateColumns: `minmax(max-content, ${maxWidth}px) max-content max-content`,\n position: 'relative',\n ['&.has-sso']: {\n gridTemplateColumns: `${maxWidth - 45}px 1fr`\n }\n }\n}));\n\nconst defaultDetails = [\n { key: 'entityID', label: 'Entity ID', getValue: id => `${window.location.origin}${useradmApiUrl}/sso/sp/metadata/${id}` },\n { key: 'acs', label: 'ACS URL', getValue: id => `${window.location.origin}${useradmApiUrl}/auth/sso/${id}/acs` },\n { key: 'startURL', label: 'Start URL', getValue: id => `${window.location.origin}${useradmApiUrl}/auth/sso/${id}/login` }\n];\n\nexport const SAMLConfig = ({ configs, onCancel, onSave, setSnackbar, token }) => {\n const [configDetails, setConfigDetails] = useState([]);\n const [fileContent, setFileContent] = useState('');\n const [hasSSOConfig, setHasSSOConfig] = useState(false);\n const [isEditing, setIsEditing] = useState(false);\n\n const config = configs.length ? configs[0] : undefined;\n const { id, ...content } = config || {};\n const configContent = content.config || '';\n\n const { classes } = useStyles();\n\n useEffect(() => {\n setHasSSOConfig(!!config);\n setFileContent(configContent);\n if (config?.config) {\n setConfigDetails(defaultDetails.map(item => ({ ...item, value: item.getValue(config.id) })));\n }\n }, [config, configContent]);\n\n const onCancelSSOSettings = () => {\n setHasSSOConfig(!!config);\n setFileContent(configContent);\n setIsEditing(false);\n onCancel();\n };\n\n const onSaveSSOSettings = () => {\n onSave(id, fileContent);\n setIsEditing(false);\n };\n\n const onDrop = acceptedFiles => {\n let reader = new FileReader();\n reader.fileName = acceptedFiles[0].name;\n reader.onerror = error => console.log('Error: ', error);\n reader.onload = () => {\n setIsEditing(true);\n setFileContent(reader.result);\n };\n reader.readAsBinaryString(acceptedFiles[0]);\n };\n\n const onOpenEditorClick = () => setIsEditing(toggle);\n\n return (\n <>\n \n {hasSSOConfig ? (\n
View metadata in the text editor\n ) : (\n <>\n
\n
\n {({ getRootProps, getInputProps }) => (\n \n
\n
Drag here or
browse to upload a metadata\n document\n
\n )}\n \n
\n >\n )}\n
\n {hasSSOConfig && !isEditing ? (\n \n ) : (\n <>\n \n \n >\n )}\n
\n
\n {hasSSOConfig && (\n \n {configDetails.map(item => (\n \n ))}\n
\n )}\n \n >\n );\n};\n\nexport default SAMLConfig;\n","// Copyright 2017 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useCallback, useEffect, useState } from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport { useDispatch, useSelector } from 'react-redux';\n\n// material ui\nimport { FileCopy as CopyPasteIcon } from '@mui/icons-material';\nimport { Button, Checkbox, Collapse, FormControlLabel, List } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport copy from 'copy-to-clipboard';\nimport moment from 'moment';\n\nimport { setSnackbar } from '../../../actions/appActions';\nimport {\n changeSamlConfig,\n deleteSamlConfig,\n downloadLicenseReport,\n getSamlConfigs,\n getUserOrganization,\n storeSamlConfig\n} from '../../../actions/organizationActions';\nimport { TIMEOUTS } from '../../../constants/appConstants';\nimport { createFileDownload, toggle } from '../../../helpers';\nimport { getCurrentSession, getFeatures, getIsEnterprise, getIsPreview, getOrganization, getUserRoles } from '../../../selectors';\nimport ExpandableAttribute from '../../common/expandable-attribute';\nimport { HELPTOOLTIPS, MenderHelpTooltip } from '../../helptips/helptooltips';\nimport Billing from './billing';\nimport OrganizationSettingsItem, { maxWidth } from './organizationsettingsitem';\nimport { SAMLConfig } from './samlconfig';\n\nconst useStyles = makeStyles()(theme => ({\n copyNotification: { height: 30, padding: 15 },\n deviceLimitBar: { backgroundColor: theme.palette.grey[500], margin: '15px 0' },\n ssoToggle: { width: `calc(${maxWidth}px + ${theme.spacing(4)})` },\n tenantInfo: { marginTop: 11, paddingBottom: 3, 'span': { marginLeft: theme.spacing(0.5), color: theme.palette.text.disabled } },\n tenantToken: { width: `calc(${maxWidth}px - ${theme.spacing(4)})` },\n tokenTitle: { paddingRight: 10 },\n tokenExplanation: { margin: '1em 0' }\n}));\n\nexport const OrgHeader = () => {\n const { classes } = useStyles();\n return (\n \n
Organization token
\n
\n
\n );\n};\n\nexport const CopyTextToClipboard = ({ onCopy, token }) => {\n const [copied, setCopied] = useState(false);\n const { classes } = useStyles();\n\n const onCopied = () => {\n setCopied(true);\n onCopy();\n setTimeout(() => setCopied(false), TIMEOUTS.fiveSeconds);\n };\n\n return (\n \n
\n }>Copy to clipboard\n \n
{copied && Copied to clipboard.}
\n
\n );\n};\n\nexport const Organization = () => {\n const [hasSingleSignOn, setHasSingleSignOn] = useState(false);\n const [isConfiguringSSO, setIsConfiguringSSO] = useState(false);\n const [isResettingSSO, setIsResettingSSO] = useState(false);\n const [showTokenWarning, setShowTokenWarning] = useState(false);\n const isEnterprise = useSelector(getIsEnterprise);\n const { isAdmin } = useSelector(getUserRoles);\n const canPreview = useSelector(getIsPreview);\n const { isHosted } = useSelector(getFeatures);\n const org = useSelector(getOrganization);\n const samlConfigs = useSelector(state => state.organization.samlConfigs);\n const dispatch = useDispatch();\n const { token } = useSelector(getCurrentSession);\n\n const { classes } = useStyles();\n\n useEffect(() => {\n dispatch(getUserOrganization());\n }, [dispatch]);\n\n useEffect(() => {\n if (isEnterprise) {\n dispatch(getSamlConfigs());\n }\n }, [dispatch, isEnterprise]);\n\n useEffect(() => {\n setHasSingleSignOn(!!samlConfigs.length);\n setIsConfiguringSSO(!!samlConfigs.length);\n }, [samlConfigs.length]);\n\n const dispatchedSetSnackbar = useCallback((...args) => dispatch(setSnackbar(...args)), [dispatch]);\n\n const onSSOClick = () => {\n if (hasSingleSignOn) {\n setIsConfiguringSSO(false);\n return setIsResettingSSO(true);\n }\n setIsConfiguringSSO(toggle);\n };\n\n const onCancelSSOSettings = () => {\n setIsResettingSSO(false);\n setIsConfiguringSSO(hasSingleSignOn);\n };\n\n const onSaveSSOSettings = useCallback(\n (id, fileContent) => {\n if (isResettingSSO) {\n return dispatch(deleteSamlConfig(samlConfigs[0])).then(() => setIsResettingSSO(false));\n }\n if (id) {\n return dispatch(changeSamlConfig({ id, config: fileContent }));\n }\n return dispatch(storeSamlConfig(fileContent));\n },\n [isResettingSSO, dispatch, samlConfigs]\n );\n\n const onTokenExpansion = useCallback(() => setShowTokenWarning(true), []);\n\n const onDownloadReportClick = () =>\n dispatch(downloadLicenseReport()).then(report => createFileDownload(report, `Mender-license-report-${moment().format(moment.HTML5_FMT.DATE)}`, token));\n\n const onTenantInfoClick = () => {\n copy(`Organization: ${org.name}, Tenant ID: ${org.id}`);\n setSnackbar('Copied to clipboard');\n };\n\n return (\n \n
Organization and billing
\n \n \n {org.name}\n ({org.id})\n
\n )\n }}\n />\n }\n content={{}}\n secondary={\n <>\n \n {showTokenWarning && (\n \n Important\n
\n Do not share your organization token with others. Treat this token like a password, as it can be used to request authorization for new\n devices.\n
\n )}\n >\n }\n sideBarContent={}\n />\n \n {isEnterprise && isAdmin && (\n \n }\n label=\"Enable SAML single sign-on\"\n />\n {isResettingSSO && !isConfiguringSSO && (\n <>\n \n \n >\n )}\n
\n )}\n \n \n \n {isHosted && }\n {(canPreview || !isHosted) && isEnterprise && isAdmin && (\n \n )}\n \n );\n};\n\nexport default Organization;\n","// Copyright 2021 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { CheckCircle as CheckCircleIcon } from '@mui/icons-material';\nimport { Button } from '@mui/material';\n\nimport { twoFAStates } from '../../../../constants/userConstants';\nimport Form from '../../../common/forms/form';\nimport TextInput from '../../../common/forms/textinput';\nimport Loader from '../../../common/loader';\n\nexport const AuthSetup = ({ currentUser, handle2FAState, has2FA, onClose, qrImage, verify2FA }) => {\n const current2FA = useRef(has2FA);\n const [validated2fa, setValidated2fa] = useState(false);\n const [validating2fa, setValidating2fa] = useState(false);\n\n useEffect(() => {\n current2FA.current = has2FA;\n }, [has2FA]);\n\n useEffect(() => {\n const onUnload = e => {\n if (!e || (validated2fa && current2FA.current) || !qrImage) {\n return;\n }\n e.returnValue = '2fa setup incomplete';\n return e.returnValue;\n };\n\n window.addEventListener('beforeunload', onUnload);\n return () => {\n if (!current2FA.current && qrImage) {\n handle2FAState(twoFAStates.disabled);\n }\n window.removeEventListener('beforeunload', onUnload);\n };\n }, [handle2FAState, qrImage, validated2fa]);\n\n const validate2faSetup = formData => {\n setValidating2fa(true);\n formData.email = currentUser.email;\n return verify2FA(formData)\n .then(() => setValidated2fa(true))\n .catch(() => setValidated2fa(false))\n .finally(() => setValidating2fa(false));\n };\n\n return (\n \n Setup:\n
\n
\n - \n To use Two Factor Authentication, first download a third party authentication app such as{' '}\n \n Authy\n {' '}\n or{' '}\n \n Google Authenticator\n \n .\n
\n - Scan the QR code on the right with the authenticator app you just downloaded on your device.
\n - \n
\n Type in the generated code in the input field below and click Verify.\n {validated2fa ? (\n
\n \n
\n Verified\n
\n \n ) : (\n <>\n
\n {validating2fa && (\n
\n \n \n
\n )}\n >\n )}\n
\n \n - Then each time you log in, you will be asked for a verification code which you can retrieve from the authentication app on your device.
\n
\n {!qrImage ?
:

}\n
\n
\n \n \n
\n
\n );\n};\n\nexport default AuthSetup;\n","// Copyright 2021 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect, useState } from 'react';\n\nimport { Button } from '@mui/material';\n\nimport { TIMEOUTS } from '../../../../constants/appConstants';\nimport Form from '../../../common/forms/form';\nimport TextInput from '../../../common/forms/textinput';\nimport Loader from '../../../common/loader';\n\nexport const EmailVerification = ({ activationCode, verifyEmailComplete, verifyEmailStart }) => {\n const [isVerifying, setIsVerifying] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n setIsVerifying(Boolean(activationCode));\n }, [activationCode]);\n\n const startVerification = () => {\n setIsLoading(true);\n setTimeout(() => {\n setIsVerifying(true);\n setIsLoading(false);\n }, TIMEOUTS.threeSeconds);\n verifyEmailStart().catch(() => setIsVerifying(false));\n };\n\n const completeVerification = formData => {\n verifyEmailComplete(formData.emailVerification);\n };\n\n return (\n \n Please verify your email address first, to enable Two Factor Authentication.\n
\n Once you click the button below we will send you an email with a confirmation link in it and a confirmation field will appear below. Click on the link to\n complete the verification. If the link does not work, you can also enter the confirmation code from the link in a confirmation field that will appear\n below once you clicked the button.\n {!isVerifying ? (\n
\n \n \n
\n ) : (\n
\n )}\n
\n );\n};\n\nexport default EmailVerification;\n","// Copyright 2019 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { Collapse, Switch } from '@mui/material';\n\nimport { setSnackbar } from '../../../actions/appActions';\nimport { disableUser2fa, enableUser2fa, get2FAQRCode, verify2FA, verifyEmailComplete, verifyEmailStart } from '../../../actions/userActions';\nimport { twoFAStates } from '../../../constants/userConstants';\nimport { getCurrentUser, getHas2FA } from '../../../selectors';\nimport InfoText from '../../common/infotext';\nimport AuthSetup from './twofactorauth-steps/authsetup';\nimport EmailVerification from './twofactorauth-steps/emailverification';\n\nexport const TwoFactorAuthSetup = () => {\n const activationCode = useSelector(state => state.users.activationCode);\n const currentUser = useSelector(getCurrentUser);\n const has2FA = useSelector(getHas2FA);\n const qrImage = useSelector(state => state.users.qrCode);\n const [qrExpanded, setQrExpanded] = useState(false);\n const [is2FAEnabled, setIs2FAEnabled] = useState(has2FA);\n const [showEmailVerification, setShowEmailVerification] = useState(false);\n const dispatch = useDispatch();\n\n useEffect(() => {\n if ((currentUser.verified || currentUser.email?.endsWith('@example.com')) && is2FAEnabled && !has2FA) {\n setShowEmailVerification(false);\n setQrExpanded(true);\n }\n }, [currentUser.email, currentUser.verified, is2FAEnabled, has2FA]);\n\n useEffect(() => {\n if (activationCode) {\n setIs2FAEnabled(true);\n dispatch(verifyEmailComplete(activationCode))\n .catch(() => {\n setShowEmailVerification(true);\n setQrExpanded(false);\n })\n // we have to explicitly call this, to not send the returned promise as user to activate 2fa for\n .then(() => dispatch(enableUser2fa()))\n .then(() => dispatch(get2FAQRCode()));\n }\n }, [activationCode, dispatch]);\n\n useEffect(() => {\n if (has2FA) {\n setIs2FAEnabled(has2FA);\n }\n }, [has2FA]);\n\n const handle2FAState = useCallback(\n state => {\n setIs2FAEnabled(state !== twoFAStates.disabled);\n setQrExpanded(state === twoFAStates.unverified);\n let request;\n if (state === twoFAStates.disabled) {\n request = dispatch(disableUser2fa());\n } else {\n request = dispatch(enableUser2fa());\n }\n request.then(() => {\n if (state === twoFAStates.unverified) {\n dispatch(get2FAQRCode());\n } else if (state === twoFAStates.enabled) {\n setSnackbar('Two Factor authentication set up successfully.');\n }\n });\n },\n [dispatch]\n );\n\n const onToggle2FAClick = useCallback(() => {\n if (!(currentUser.verified || currentUser.email?.endsWith('@example.com'))) {\n setShowEmailVerification(!showEmailVerification);\n setIs2FAEnabled(!showEmailVerification);\n return;\n }\n if (has2FA) {\n handle2FAState(twoFAStates.disabled);\n } else {\n is2FAEnabled ? dispatch(disableUser2fa()) : handle2FAState(twoFAStates.unverified);\n setQrExpanded(!is2FAEnabled);\n setIs2FAEnabled(!is2FAEnabled);\n }\n }, [currentUser.email, currentUser.verified, dispatch, handle2FAState, has2FA, is2FAEnabled, showEmailVerification]);\n\n return (\n \n
\n
Enable Two Factor authentication
\n
\n
\n
\n Two Factor Authentication adds a second layer of protection to your account by asking for an additional verification code each time you log in.\n \n {showEmailVerification && (\n
dispatch(verifyEmailComplete(data))}\n verifyEmailStart={() => dispatch(verifyEmailStart())}\n />\n )}\n \n dispatch(verify2FA(data))}\n onClose={() => setQrExpanded(false)}\n />\n \n \n );\n};\n\nexport default TwoFactorAuthSetup;\n","// Copyright 2017 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useMemo, useState } from 'react';\n\nimport { InfoOutlined } from '@mui/icons-material';\nimport {\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n FormControl,\n FormControlLabel,\n FormHelperText,\n InputLabel,\n ListItemText,\n MenuItem,\n Select,\n Tooltip\n} from '@mui/material';\n\nimport pluralize from 'pluralize';\n\nimport { BENEFITS } from '../../../constants/appConstants';\nimport { rolesById, rolesByName, uiPermissionsById } from '../../../constants/userConstants';\nimport { toggle } from '../../../helpers';\nimport EnterpriseNotification from '../../common/enterpriseNotification';\nimport Form from '../../common/forms/form';\nimport PasswordInput from '../../common/forms/passwordinput';\nimport TextInput from '../../common/forms/textinput';\n\nexport const UserRolesSelect = ({ currentUser, disabled, onSelect, roles, user }) => {\n const [selectedRoleIds, setSelectedRoleIds] = useState(\n (user.roles || [rolesByName.admin]).reduce((accu, roleId) => {\n const foundRole = roles[roleId];\n if (foundRole) {\n accu.push(roleId);\n }\n return accu;\n }, [])\n );\n\n const onInputChange = ({ target: { value } }) => {\n const { roles = [] } = user;\n let newlySelectedRoles = value;\n if (value.includes('')) {\n newlySelectedRoles = [];\n }\n const hadRoleChanges =\n roles.length !== newlySelectedRoles.length || roles.some(currentRoleId => !newlySelectedRoles.some(roleId => currentRoleId === roleId));\n setSelectedRoleIds(newlySelectedRoles);\n onSelect(newlySelectedRoles, hadRoleChanges);\n };\n\n const { editableRoles, showRoleUsageNotification } = useMemo(() => {\n const editableRoles = Object.entries(roles).map(([id, role]) => {\n const enabled = selectedRoleIds.some(roleId => id === roleId);\n return { enabled, id, ...role };\n });\n const showRoleUsageNotification = selectedRoleIds.reduce((accu, roleId) => {\n const { permissions, uiPermissions } = roles[roleId];\n const hasUiApiAccess = [rolesByName.ci].includes(roleId)\n ? false\n : roleId === rolesByName.admin ||\n permissions.some(permission => ![rolesByName.deploymentCreation.action].includes(permission.action)) ||\n uiPermissions.userManagement.includes(uiPermissionsById.read.value);\n if (hasUiApiAccess) {\n return false;\n }\n return typeof accu !== 'undefined' ? accu : true;\n }, undefined);\n return { editableRoles, showRoleUsageNotification };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(roles), selectedRoleIds]);\n\n return (\n \n \n Roles\n \n {showRoleUsageNotification && (\n \n The selected {pluralize('role', selectedRoleIds.length)} may prevent {currentUser.email === user.email ? 'you' : {user.email}} from using the\n Mender UI.\n
\n Consider adding the {rolesById[rolesByName.readOnly].name} role as well.\n \n )}\n \n \n
\n );\n};\n\nconst PasswordLabel = () => (\n \n Optional\n
\n You can skip setting a password for now - you can opt to send the new user an email containing a password reset link by checking the box below.
\n Organizations using Single Sign-On or other means of authorization may want to create users with no password.
\n >\n }\n >\n \n \n
\n);\n\nexport const UserForm = ({ closeDialog, currentUser, canManageUsers, isEnterprise, roles, submit }) => {\n const [hadRoleChanges, setHadRoleChanges] = useState(false);\n const [selectedRoles, setSelectedRoles] = useState();\n const [shouldResetPassword, setShouldResetPassword] = useState(false);\n\n const onSelect = (newlySelectedRoles, hadRoleChanges) => {\n setSelectedRoles(newlySelectedRoles);\n setHadRoleChanges(hadRoleChanges);\n };\n\n const onSubmit = data => {\n const { password, ...remainder } = data;\n const roleData = hadRoleChanges ? { roles: selectedRoles } : {};\n return submit({ ...remainder, ...roleData, password }, 'create');\n };\n\n const togglePasswordReset = () => setShouldResetPassword(toggle);\n\n return (\n \n );\n};\n\nexport default UserForm;\n","// Copyright 2021 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect, useMemo, useState } from 'react';\n\n// material ui\nimport { Close as CloseIcon } from '@mui/icons-material';\nimport { Button, Checkbox, Divider, Drawer, FormControl, FormControlLabel, FormHelperText, IconButton, InputLabel, TextField } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport validator from 'validator';\n\nimport { mapUserRolesToUiPermissions } from '../../../actions/userActions';\nimport { uiPermissionsByArea, uiPermissionsById } from '../../../constants/userConstants';\nimport { toggle } from '../../../helpers';\nimport { TwoColumnData } from '../../common/configurationobject';\nimport { OAuth2Providers, genericProvider } from '../../login/oauth2providers';\nimport { UserRolesSelect } from './userform';\n\nconst useStyles = makeStyles()(theme => ({\n actionButtons: { justifyContent: 'flex-end' },\n divider: { marginTop: theme.spacing(4) },\n leftButton: { marginRight: theme.spacing(2) },\n oauthIcon: { fontSize: 36, marginRight: 10 },\n widthLimit: { maxWidth: 400 }\n}));\n\nexport const getUserSSOState = user => {\n const { sso = [] } = user;\n const isOAuth2 = !!sso.length;\n const provider = isOAuth2 ? OAuth2Providers.find(provider => sso.some(({ kind }) => kind.includes(provider.id))) ?? genericProvider : null;\n return { isOAuth2, provider };\n};\n\nconst mapPermissions = permissions => permissions.map(permission => uiPermissionsById[permission].title).join(', ');\n\nconst scopedPermissionAreas = ['groups', 'releases'];\n\nexport const UserDefinition = ({ currentUser, isEnterprise, onCancel, onSubmit, onRemove, roles, selectedUser }) => {\n const { email = '', id } = selectedUser;\n\n const { classes } = useStyles();\n\n const [nameError, setNameError] = useState(false);\n const [hadRoleChanges, setHadRoleChanges] = useState(false);\n const [selectedRoles, setSelectedRoles] = useState([]);\n const [shouldResetPassword, setShouldResetPassword] = useState(false);\n const [currentEmail, setCurrentEmail] = useState('');\n\n useEffect(() => {\n setCurrentEmail(email);\n }, [email]);\n\n useEffect(() => {\n setSelectedRoles(selectedUser.roles || []);\n }, [selectedUser.roles]);\n\n const validateNameChange = ({ target: { value } }) => {\n setNameError(!validator.isEmail(value) || validator.isEmpty(value));\n setCurrentEmail(value);\n };\n\n const onRemoveClick = () => {\n onRemove(selectedUser);\n };\n\n const onRolesSelect = (newlySelectedRoles, hadRoleChanges) => {\n setSelectedRoles(newlySelectedRoles);\n setHadRoleChanges(hadRoleChanges);\n };\n\n const onSubmitClick = () => {\n if (id && !hadRoleChanges && email === currentEmail) {\n return onSubmit(null, 'edit', id, shouldResetPassword ? email : null);\n }\n const changedRoles = hadRoleChanges ? { roles: selectedRoles } : {};\n const submissionData = { ...selectedUser, ...changedRoles, email: currentEmail };\n return onSubmit(submissionData, 'edit', id, shouldResetPassword ? currentEmail : null);\n };\n\n const togglePasswordReset = () => setShouldResetPassword(toggle);\n\n const { areas, groups } = useMemo(() => {\n const emptySelection = { areas: {}, groups: {}, releases: {} };\n if (!(selectedRoles && roles)) {\n return emptySelection;\n }\n\n return Object.entries(mapUserRolesToUiPermissions(selectedRoles, roles)).reduce((accu, [key, values]) => {\n if (scopedPermissionAreas.includes(key)) {\n accu[key] = Object.entries(values).reduce((groupsAccu, [name, uiPermissions]) => {\n groupsAccu[name] = mapPermissions(uiPermissions);\n return groupsAccu;\n }, {});\n } else {\n accu.areas[uiPermissionsByArea[key].title] = mapPermissions(values);\n }\n return accu;\n }, emptySelection);\n }, [selectedRoles, roles]);\n\n const isSubmitDisabled = !selectedRoles.length;\n\n const { isOAuth2, provider } = getUserSSOState(selectedUser);\n const rolesClasses = isEnterprise ? '' : 'muted';\n return (\n \n \n
Edit user
\n
\n {currentUser.id !== id && (\n \n )}\n \n \n \n
\n
\n \n \n \n {nameError && Please enter a valid email address}\n \n {isOAuth2 ? (\n \n
{provider.icon}
\n
\n This user logs in using his {provider.name} account.\n
\n He can connect to {provider.name} to update his login settings.\n
\n
\n ) : (\n }\n label=\"Send an email to the user containing a link to reset the password\"\n />\n )}\n \n {!!(Object.keys(groups).length || Object.keys(areas).length) && (\n \n Role permissions\n \n )}\n \n {!!Object.keys(groups).length && (\n <>\n \n Device groups\n \n \n >\n )}\n \n \n \n \n
\n \n );\n};\n\nexport default UserDefinition;\n","// Copyright 2017 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { Button, Switch, TextField } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { setSnackbar } from '../../../actions/appActions';\nimport { editUser, saveUserSettings } from '../../../actions/userActions';\nimport { DARK_MODE, LIGHT_MODE } from '../../../constants/appConstants';\nimport * as UserConstants from '../../../constants/userConstants';\nimport { isDarkMode, toggle } from '../../../helpers';\nimport { getCurrentSession, getCurrentUser, getFeatures, getIsEnterprise, getUserSettings } from '../../../selectors';\nimport ExpandableAttribute from '../../common/expandable-attribute';\nimport Form from '../../common/forms/form';\nimport PasswordInput from '../../common/forms/passwordinput';\nimport TextInput from '../../common/forms/textinput';\nimport InfoText from '../../common/infotext';\nimport AccessTokenManagement from '../accesstokenmanagement';\nimport { CopyTextToClipboard } from '../organization/organization';\nimport TwoFactorAuthSetup from './twofactorauthsetup';\nimport { getUserSSOState } from './userdefinition';\n\nconst useStyles = makeStyles()(() => ({\n formField: { width: 400, maxWidth: '100%' },\n changeButton: { margin: '30px 0 0 15px' },\n infoText: { margin: 0, width: '75%' },\n jwt: { maxWidth: '70%' },\n oauthIcon: { fontSize: '36px', marginRight: 10 },\n widthLimit: { maxWidth: 750 }\n}));\n\nexport const SelfUserManagement = () => {\n const [editEmail, setEditEmail] = useState(false);\n const [editPass, setEditPass] = useState(false);\n const { classes } = useStyles();\n const dispatch = useDispatch();\n\n const { isHosted } = useSelector(getFeatures);\n const isEnterprise = useSelector(getIsEnterprise);\n const canHave2FA = isEnterprise || isHosted;\n const currentUser = useSelector(getCurrentUser);\n const hasTracking = useSelector(state => !!state.app.trackerCode);\n const { trackingConsentGiven: hasTrackingConsent, mode } = useSelector(getUserSettings);\n const { token } = useSelector(getCurrentSession);\n\n const editSubmit = userData => {\n if (userData.password != userData.password_confirmation) {\n dispatch(setSnackbar(`The passwords don't match`));\n } else {\n dispatch(editUser(UserConstants.OWN_USER_ID, userData)).then(() => {\n setEditEmail(false);\n setEditPass(false);\n });\n }\n };\n\n const handleEmail = () => setEditEmail(toggle);\n\n const toggleMode = () => {\n const newMode = isDarkMode(mode) ? LIGHT_MODE : DARK_MODE;\n dispatch(saveUserSettings({ mode: newMode }));\n };\n\n const handlePass = () => setEditPass(toggle);\n const email = currentUser.email;\n const { isOAuth2, provider } = getUserSSOState(currentUser);\n return (\n \n
My profile
\n {!editEmail && currentUser.email ? (\n
\n \n {!isOAuth2 && (\n \n )}\n
\n ) : (\n
\n )}\n {!isOAuth2 &&\n (!editPass ? (\n
\n ) : (\n <>\n
Change password
\n
\n >\n ))}\n
\n
Enable dark theme
\n
\n
\n {!isOAuth2 ? (\n canHave2FA &&
\n ) : (\n
\n
{provider.icon}
\n
\n You are logging in using your {provider.name} account.\n
\n Please connect to {provider.name} to update your login settings.\n
\n
\n )}\n
\n {!isOAuth2 &&
}\n {isEnterprise && hasTracking && (\n
\n
dispatch(saveUserSettings({ trackingConsentGiven: !hasTrackingConsent }))}>\n
Help us improve Mender
\n
\n
\n
Enable usage data and errors to be sent to help us improve our service.\n
\n )}\n
\n );\n};\n\nexport default SelfUserManagement;\n","// Copyright 2017 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useMemo } from 'react';\n\n// material ui\nimport { ArrowRightAlt as ArrowRightAltIcon, Check as CheckIcon } from '@mui/icons-material';\nimport { Chip } from '@mui/material';\n\nimport { twoFAStates } from '../../../constants/userConstants';\nimport DetailsTable from '../../common/detailstable';\nimport Time, { RelativeTime } from '../../common/time';\n\nconst columnData = [\n {\n key: 'email',\n disablePadding: false,\n title: 'Email',\n enterpriseOnly: false,\n render: user => (\n <>\n {user.email}\n {user.tfa_status === twoFAStates.enabled && (\n } label=\"2FA\" size=\"small\" variant=\"outlined\" />\n )}\n >\n )\n },\n { key: 'created_ts', disablePadding: false, title: 'Date created', enterpriseOnly: false, render: ({ created_ts }) => },\n {\n key: 'updated_ts',\n disablePadding: false,\n title: 'Last updated',\n enterpriseOnly: false,\n render: ({ updated_ts }) => \n },\n {\n key: 'roles',\n disablePadding: false,\n title: 'Role',\n enterpriseOnly: true,\n render: ({ roles: userRoles = [] }, { roles }) => userRoles.map(roleId => roles[roleId]?.name).join(', ')\n },\n {\n key: 'actions',\n disablePadding: false,\n title: 'Manage',\n enterpriseOnly: false,\n render: () => (\n \n )\n }\n];\n\nconst UserList = ({ editUser, isEnterprise, roles, users }) => {\n const columns = useMemo(\n () =>\n columnData.reduce((accu, { enterpriseOnly, ...remainder }) => {\n if (enterpriseOnly && !isEnterprise) {\n return accu;\n }\n accu.push({ ...remainder, extras: { roles } });\n return accu;\n }, []),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isEnterprise, JSON.stringify(roles)]\n );\n return ;\n};\n\nexport default UserList;\n","// Copyright 2017 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\n// material ui\nimport { Button, Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material';\n\nimport { setSnackbar } from '../../../actions/appActions';\nimport { createUser, editUser, getUserList, passwordResetStart, removeUser } from '../../../actions/userActions';\nimport { getCurrentUser, getFeatures, getIsEnterprise, getRolesById, getUserCapabilities } from '../../../selectors';\nimport { UserDefinition } from './userdefinition';\nimport UserForm from './userform';\nimport UserList from './userlist';\n\nconst actions = {\n create: 'createUser',\n edit: 'editUser',\n remove: 'removeUser'\n};\n\nconst DeleteUserDialog = ({ dismiss, open, submit, user }) => (\n \n);\n\nexport const UserManagement = () => {\n const [showCreate, setShowCreate] = useState(false);\n const [removeDialog, setRemoveDialog] = useState(false);\n const [user, setUser] = useState({});\n const dispatch = useDispatch();\n\n const { canManageUsers } = useSelector(getUserCapabilities);\n const { isHosted } = useSelector(getFeatures);\n const isEnterprise = useSelector(getIsEnterprise);\n const currentUser = useSelector(getCurrentUser);\n const roles = useSelector(getRolesById);\n const users = useSelector(state => Object.values(state.users.byId));\n const props = {\n canManageUsers,\n createUser: userData => dispatch(createUser(userData)),\n currentUser,\n editUser: (id, userData) => dispatch(editUser(id, userData)),\n isEnterprise,\n isHosted,\n removeUser: id => dispatch(removeUser(id)),\n roles,\n users\n };\n\n useEffect(() => {\n dispatch(getUserList());\n }, [dispatch]);\n\n useEffect(() => {\n dispatch(getUserList());\n }, [currentUser.id, dispatch, users.length]);\n\n const openEdit = user => {\n setUser(user);\n setRemoveDialog(false);\n dispatch(setSnackbar(''));\n };\n\n const openRemove = () => {\n dispatch(setSnackbar(''));\n setRemoveDialog(true);\n };\n\n const dialogDismiss = () => {\n setUser({});\n setShowCreate(false);\n setRemoveDialog(false);\n };\n\n const submit = (userData, type, id, passwordResetEmail) => {\n if (userData) {\n let request = null;\n if (id) {\n request = props[actions[type]](id, userData);\n } else {\n request = props[actions[type]](userData);\n }\n return request.then(() => {\n if (passwordResetEmail) {\n dispatch(passwordResetStart(passwordResetEmail));\n }\n dialogDismiss();\n });\n }\n if (passwordResetEmail) {\n dispatch(passwordResetStart(passwordResetEmail));\n }\n return dialogDismiss();\n };\n\n return (\n \n
\n
Users
\n \n \n\n
\n {showCreate &&
}\n
\n
\n
\n );\n};\n\nexport default UserManagement;\n","// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useCallback, useEffect, useState } from 'react';\n\n// material ui\nimport { Close as CloseIcon } from '@mui/icons-material';\nimport { Button, Divider, Drawer, IconButton, TextField } from '@mui/material';\n\nimport validator from 'validator';\n\nimport { EXTERNAL_PROVIDER } from '../../../constants/deviceConstants';\nimport { emptyWebhook } from '../../../constants/organizationConstants';\nimport MenderTooltip from '../../common/mendertooltip';\nimport { HELPTOOLTIPS, MenderHelpTooltip } from '../../helptips/helptooltips';\n\nconst WebhookConfiguration = ({ adding, editing, onCancel, onSubmit, webhook = { ...emptyWebhook } }) => {\n const [description, setDescription] = useState('');\n const [secret, setSecret] = useState('');\n const [secretFormatError, setSecretFormatError] = useState('');\n const [url, setUrl] = useState('');\n\n const { credentials = {}, description: hookDescription = '', id = 'new' } = webhook;\n const {\n [EXTERNAL_PROVIDER.webhook.credentialsType]: { secret: hookSecret = '', url: hookUrl = '' }\n } = credentials;\n useEffect(() => {\n setDescription(hookDescription);\n setUrl(hookUrl);\n setSecret(hookSecret);\n }, [adding, editing, hookDescription, hookSecret, hookUrl]);\n\n useEffect(() => {\n setSecretFormatError(!secret || validator.isHexadecimal(secret) ? '' : 'The secret has to be entered as a hexadecimal string');\n }, [secret]);\n\n const onSubmitClick = useCallback(() => {\n let webhookConfig = {\n id,\n provider: EXTERNAL_PROVIDER.webhook.provider,\n credentials: { type: EXTERNAL_PROVIDER.webhook.credentialsType, [EXTERNAL_PROVIDER.webhook.credentialsType]: { secret, url } },\n description\n };\n if (editing) {\n // eslint-disable-next-line no-unused-vars\n const { credentials, description, ...remainder } = webhookConfig;\n webhookConfig = { ...remainder, credentials: { ...credentials, [EXTERNAL_PROVIDER.webhook.credentialsType]: { url } } };\n }\n onSubmit(webhookConfig);\n }, [description, editing, id, onSubmit, secret, url]);\n\n const secretInputTip = editing ? 'Cannot edit webhook secrets after they have been saved' : 'The secret has to be entered as a hexadecimal string';\n const descriptionInput = (\n setDescription(e.target.value)}\n value={description}\n />\n );\n const urlInput = setUrl(e.target.value)} />;\n const isSubmitDisabled = !url || (editing && url === hookUrl);\n return (\n <>\n \n {editing ? (\n \n {urlInput}\n \n ) : (\n urlInput\n )}\n {editing ? (\n \n {descriptionInput}\n \n ) : (\n descriptionInput\n )}\n \n setSecret(e.target.value)}\n type={editing ? 'password' : 'text'}\n value={secret}\n />\n \n
\n \n \n \n {!editing && (\n \n )}\n
\n >\n );\n};\n\nexport const WebhookCreation = ({ adding, onCancel, ...props }) => (\n \n \n
\n
Add a webhook
\n \n \n
\n \n \n
\n \n \n \n);\n\nexport default WebhookConfiguration;\n","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2z\"\n}), 'Circle');","// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect, useMemo, useState } from 'react';\n\n// material ui\nimport { ArrowDropDown as ArrowDropDownIcon, ArrowDropUp as ArrowDropUpIcon, Circle as CircleIcon } from '@mui/icons-material';\nimport { Accordion, AccordionDetails, AccordionSummary, accordionClasses } from '@mui/material';\nimport { accordionSummaryClasses } from '@mui/material/AccordionSummary';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { DEVICE_LIST_DEFAULTS } from '../../../constants/deviceConstants';\nimport { toggle } from '../../../helpers';\nimport Pagination from '../../common/pagination';\nimport Time from '../../common/time';\n\nconst useStyles = makeStyles()(theme => ({\n activityList: {\n display: 'flexbox',\n flexDirection: 'column',\n ['.header']: {\n padding: `0px ${theme.spacing(2)}`,\n marginBottom: theme.spacing()\n },\n [`.header, .${accordionSummaryClasses.content}`]: {\n display: 'grid',\n gridTemplateColumns: '1fr 2fr 1fr 50px'\n },\n [`.${accordionSummaryClasses.content}`]: {\n cursor: 'pointer',\n [`&>time, &>.trigger-type`]: {\n color: theme.palette.secondary.main\n },\n [`&>:last-child`]: {\n paddingRight: 'initial'\n }\n },\n [`.${accordionClasses.root}`]: {\n backgroundColor: theme.palette.background.default\n }\n },\n divider: { marginTop: theme.spacing(), marginBottom: theme.spacing() }\n}));\n\nconst triggerMap = {\n 'device-decommissioned': 'Device decommissioned',\n 'device-provisioned': 'Device provisioned',\n 'device-status-changed': 'Device status updated'\n};\n\nconst iconStyles = {\n status: { fontSize: 12, marginRight: 8 },\n dropDown: { justifySelf: 'right', marginRight: 8 }\n};\n\nconst DeliveryStatus = ({ entry, webhook = {} }) => {\n const { delivery_statuses = [] } = entry;\n\n const status = useMemo(() => {\n const status = delivery_statuses.find(status => status.integration_id === webhook.id) ?? delivery_statuses[0];\n if (status) {\n return { code: status.status_code, signal: status.success ? 'green' : 'red' };\n }\n return { code: 418, signal: 'disabled' };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(delivery_statuses), webhook.id]);\n\n return (\n \n
\n
= 400 ? 'muted' : ''}>{status.code}
\n
\n );\n};\n\nconst columns = [\n { key: 'created_ts', title: 'Time', render: ({ entry }) => },\n { key: 'trigger', title: 'Event trigger', render: ({ entry }) => {triggerMap[entry.type] ?? entry.type}
},\n { key: 'status', title: 'Status', render: ({ entry, webhook }) => },\n {\n key: 'details',\n title: 'Details',\n render: ({ isExpanded }) => (isExpanded ? : )\n }\n];\n\nconst ListItem = ({ entry = {}, webhook }) => {\n const [isExpanded, setIsExpanded] = useState(false);\n const { data = {} } = entry;\n\n return (\n \n setIsExpanded(toggle)}>\n {columns.map(({ key, render: Column }) => (\n \n ))}\n \n \n {JSON.stringify(data)}
\n \n \n );\n};\n\nconst { page: defaultPage, perPage: defaultPerPage } = DEVICE_LIST_DEFAULTS;\nconst WebhookActivity = ({ events = [], getWebhookEvents, eventTotal, webhook }) => {\n const { classes } = useStyles();\n const [page, setPage] = useState(defaultPage);\n\n useEffect(() => {\n getWebhookEvents({ page, perPage: defaultPerPage });\n }, [getWebhookEvents, page]);\n\n return (\n \n {events.length ? (\n <>\n
\n {columns.map(({ key, title }) => (\n
{title}
\n ))}\n
\n
\n {events.map(entry => (\n
\n ))}\n {eventTotal > defaultPerPage && (\n
\n )}\n
\n >\n ) : (\n
No webhook activity yet.
\n )}\n
\n );\n};\n\nexport default WebhookActivity;\n","// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useState } from 'react';\n\n// material ui\nimport { Close as CloseIcon } from '@mui/icons-material';\nimport { Button, Divider, Drawer, IconButton, Tab, Tabs } from '@mui/material';\n\nimport { emptyWebhook } from '../../../constants/organizationConstants';\nimport WebhookActivity from './activity';\nimport WebhookConfiguration from './configuration';\n\nconst tabs = ['settings', 'activity'];\n\nexport const WebhookManagement = ({ adding, editing, events, eventTotal, getWebhookEvents, onCancel, onSubmit, onRemove, webhook = { ...emptyWebhook } }) => {\n const [currentTab, setCurrentTab] = useState(tabs[0]);\n\n return (\n \n \n
Manage webhook
\n
\n \n \n \n \n
\n
\n \n setCurrentTab(tab)} textColor=\"primary\">\n {tabs.map(key => (\n {key}} value={key} />\n ))}\n \n {currentTab === tabs[0] ? (\n \n ) : (\n \n )}\n \n );\n};\n\nexport default WebhookManagement;\n","// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\n// material ui\nimport { ArrowRightAlt as ArrowRightAltIcon } from '@mui/icons-material';\n\nimport { changeIntegration, createIntegration, deleteIntegration, getIntegrations, getWebhookEvents } from '../../../actions/organizationActions';\nimport { EXTERNAL_PROVIDER } from '../../../constants/deviceConstants';\nimport { emptyWebhook } from '../../../constants/organizationConstants';\nimport DetailsTable from '../../common/detailstable';\nimport DocsLink from '../../common/docslink';\nimport Time from '../../common/time';\nimport WebhookManagement from './management';\n\nconst columns = [\n { key: 'url', title: 'URL', render: ({ url }) => url },\n { key: 'status', title: 'Status', render: ({ status }) => status },\n {\n key: 'updated_ts',\n title: 'Last activity',\n render: ({ updated_ts }) => \n },\n {\n key: 'manage',\n title: 'Manage',\n render: () => (\n \n )\n }\n];\n\nexport const Webhooks = ({ webhook = { ...emptyWebhook } }) => {\n const [adding, setAdding] = useState(false);\n const [editing, setEditing] = useState(false);\n const [selectedWebhook, setSelectedWebhook] = useState(webhook);\n const dispatch = useDispatch();\n const { events, webhooks } = useSelector(state => {\n const webhooks = state.organization.externalDeviceIntegrations.filter(\n integration => integration.id && integration.provider === EXTERNAL_PROVIDER.webhook.provider\n );\n const events = webhooks.length ? state.organization.webhooks.events : [];\n return { events, webhooks };\n });\n const eventTotal = useSelector(state => state.organization.webhooks.eventTotal);\n\n useEffect(() => {\n dispatch(getIntegrations());\n }, [dispatch]);\n\n useEffect(() => {\n setSelectedWebhook(webhook);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(webhook)]);\n\n const onEdit = item => {\n setAdding(false);\n setEditing(true);\n setSelectedWebhook(item);\n };\n\n const onCancel = () => {\n setAdding(false);\n setEditing(false);\n };\n\n const onSubmit = item => {\n if (adding) {\n dispatch(createIntegration(item));\n } else {\n dispatch(changeIntegration(item));\n }\n setAdding(false);\n setEditing(false);\n };\n\n const onRemoveClick = () => dispatch(deleteIntegration(selectedWebhook));\n\n const { mappedWebhooks, relevantColumns } = useMemo(() => {\n const mappedWebhooks = webhooks.map(item => ({ ...item, url: item.credentials[EXTERNAL_PROVIDER.webhook.credentialsType].url, status: 'enabled' }));\n const relevantColumns = columns.reduce((accu, item) => {\n if (mappedWebhooks.some(hook => hook[item.key]) || item === columns[columns.length - 1]) {\n accu.push(item);\n }\n return accu;\n }, []);\n return { mappedWebhooks, relevantColumns };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(webhooks)]);\n\n const dispatchedGetWebhookEvents = useCallback(options => dispatch(getWebhookEvents(options)), [dispatch]);\n\n return (\n \n
Webhooks
\n {webhooks.length ? (\n
\n ) : (\n
\n No webhooks are configured yet. Learn more about webhooks in our \n
\n )}\n
\n
\n );\n};\n\nexport default Webhooks;\n","// Copyright 2021 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { Button, Divider, MenuItem, Select, TextField } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { changeIntegration, createIntegration, deleteIntegration, getIntegrations } from '../../actions/organizationActions';\nimport { TIMEOUTS } from '../../constants/appConstants';\nimport { EXTERNAL_PROVIDER } from '../../constants/deviceConstants';\nimport { customSort } from '../../helpers';\nimport { getExternalIntegrations, getIsPreview } from '../../selectors';\nimport { useDebounce } from '../../utils/debouncehook';\nimport Confirm from '../common/confirm';\nimport InfoHint from '../common/info-hint';\nimport { WebhookCreation } from './webhooks/configuration';\nimport Webhooks from './webhooks/webhooks';\n\nconst maxWidth = 750;\n\nconst useStyles = makeStyles()(theme => ({\n leftButton: { marginRight: theme.spacing() },\n inputWrapper: { alignItems: 'flex-end' },\n select: { marginTop: theme.spacing(2), minWidth: 300 },\n textInput: { margin: theme.spacing(), minWidth: 500, wordBreak: 'break-all' },\n widthLimit: { maxWidth }\n}));\n\nconst ConnectionDetailsInput = ({ connectionConfig, isEditing, setConnectionConfig }) => {\n const { access_key_id = '', secret_access_key = '', region = '', device_policy_name = '' } = connectionConfig.aws || {};\n const [keyId, setKeyId] = useState(access_key_id);\n const [keySecret, setKeySecret] = useState(secret_access_key);\n const [awsRegion, setRegion] = useState(region);\n const [policy, setPolicy] = useState(device_policy_name);\n\n const debouncedId = useDebounce(keyId, TIMEOUTS.debounceDefault);\n const debouncedSecret = useDebounce(keySecret, TIMEOUTS.debounceDefault);\n const debouncedRegion = useDebounce(awsRegion, TIMEOUTS.debounceDefault);\n const debounced = useDebounce(policy, TIMEOUTS.debounceDefault);\n\n const { classes } = useStyles();\n\n useEffect(() => {\n setConnectionConfig({\n aws: {\n access_key_id: debouncedId,\n secret_access_key: debouncedSecret,\n region: debouncedRegion,\n device_policy_name: debounced\n }\n });\n }, [debounced, debouncedRegion, debouncedId, debouncedSecret, setConnectionConfig]);\n\n useEffect(() => {\n setKeyId(access_key_id);\n setKeySecret(secret_access_key);\n setRegion(region);\n setPolicy(device_policy_name);\n }, [access_key_id, secret_access_key, region, device_policy_name]);\n\n const onKeyChange = ({ target: { value = '' } }) => setKeyId(value);\n const onSecretChange = ({ target: { value = '' } }) => setKeySecret(value);\n const onRegionChange = ({ target: { value = '' } }) => setRegion(value);\n const onPolicyChange = ({ target: { value = '' } }) => setPolicy(value);\n\n const commonProps = { className: classes.textInput, disabled: !isEditing, multiline: true };\n return (\n \n \n \n \n \n
\n );\n};\n\nconst ConnectionStringInput = ({ connectionConfig, isEditing, setConnectionConfig, title }) => {\n const [value, setValue] = useState(connectionConfig.connection_string);\n const debouncedValue = useDebounce(value, TIMEOUTS.debounceDefault);\n\n const { classes } = useStyles();\n\n useEffect(() => {\n setConnectionConfig({ connection_string: debouncedValue });\n }, [debouncedValue, setConnectionConfig]);\n\n useEffect(() => {\n setValue(connectionConfig.connection_string);\n }, [connectionConfig.connection_string]);\n\n const updateConnectionConfig = ({ target: { value = '' } }) => setValue(value);\n\n return (\n \n );\n};\n\nconst providerConfigMap = {\n 'iot-core': ConnectionDetailsInput,\n 'iot-hub': ConnectionStringInput\n};\n\nexport const IntegrationConfiguration = ({ integration, isLast, onCancel, onDelete, onSave }) => {\n const { credentials = {}, provider } = integration;\n const [connectionConfig, setConnectionConfig] = useState(credentials);\n // eslint-disable-next-line no-unused-vars\n const { type, ...otherProps } = credentials;\n const [isEditing, setIsEditing] = useState(!Object.values(otherProps).some(i => i));\n const [isDeleting, setIsDeleting] = useState(false);\n\n const { classes } = useStyles();\n\n useEffect(() => {\n const { credentials = {} } = integration;\n // eslint-disable-next-line no-unused-vars\n const { type, ...otherProps } = credentials;\n setConnectionConfig(credentials);\n setIsEditing(!Object.values(otherProps).some(i => i));\n }, [integration]);\n\n const onCancelClick = () => {\n setIsEditing(false);\n setConnectionConfig(credentials);\n onCancel(integration);\n };\n const onDeleteClick = () => setIsDeleting(true);\n const onDeleteConfirm = () => onDelete(integration);\n const onEditClick = () => setIsEditing(true);\n const onSaveClick = () =>\n onSave({\n ...integration,\n credentials: {\n type: EXTERNAL_PROVIDER[provider].credentialsType,\n ...connectionConfig\n }\n });\n\n const ConfigInput = providerConfigMap[provider];\n const { configHint, title } = EXTERNAL_PROVIDER[provider];\n return (\n <>\n {title}
\n \n
\n
\n {isEditing ? (\n <>\n \n \n >\n ) : (\n <>\n \n \n >\n )}\n
\n {isDeleting &&
setIsDeleting(false)} />}\n \n \n {!isLast && }\n >\n );\n};\n\nconst determineAvailableIntegrations = (integrations, isPreRelease) =>\n Object.values(EXTERNAL_PROVIDER).reduce((accu, provider) => {\n const hasIntegrationConfigured = integrations.some(integration => integration.provider == provider.provider);\n if (provider.title && (provider.enabled || isPreRelease) && !hasIntegrationConfigured) {\n accu.push(provider);\n }\n return accu;\n }, []);\n\nexport const Integrations = () => {\n const [availableIntegrations, setAvailableIntegrations] = useState([]);\n const [configuredIntegrations, setConfiguredIntegrations] = useState([]);\n const [isConfiguringWebhook, setIsConfiguringWebhook] = useState(false);\n const integrations = useSelector(getExternalIntegrations);\n const isPreRelease = useSelector(getIsPreview);\n const dispatch = useDispatch();\n\n const { classes } = useStyles();\n\n useEffect(() => {\n const available = determineAvailableIntegrations(integrations, isPreRelease);\n setAvailableIntegrations(integrations.length ? [] : available);\n setConfiguredIntegrations(integrations.filter(integration => integration.provider !== EXTERNAL_PROVIDER.webhook.provider));\n }, [integrations, isPreRelease]);\n\n useEffect(() => {\n dispatch(getIntegrations());\n }, [dispatch]);\n\n const onConfigureIntegration = ({ target: { value: provider = '' } }) => {\n if (provider === EXTERNAL_PROVIDER.webhook.provider) {\n return setIsConfiguringWebhook(true);\n }\n setConfiguredIntegrations([...configuredIntegrations, { id: 'new', provider }]);\n setAvailableIntegrations(integrations => integrations.filter(integration => integration.provider !== provider));\n };\n\n const onCancelClick = ({ id, provider }) => {\n if (id === 'new') {\n setAvailableIntegrations(current => [...current, EXTERNAL_PROVIDER[provider]].sort(customSort(true, 'provider')));\n setConfiguredIntegrations(current =>\n current.filter(\n integration => !(integration.id === id && integration.provider === provider && integration.provider !== EXTERNAL_PROVIDER.webhook.provider)\n )\n );\n }\n setIsConfiguringWebhook(false);\n };\n\n const onSaveClick = integration => {\n if (integration.id === 'new') {\n setIsConfiguringWebhook(false);\n return dispatch(createIntegration(integration));\n }\n dispatch(changeIntegration(integration));\n };\n\n const configuredWebhook = useMemo(() => integrations.find(integration => integration.provider === EXTERNAL_PROVIDER.webhook.provider), [integrations]);\n return (\n \n
Integrations
\n {configuredIntegrations.map((integration, index) => (\n dispatch(deleteIntegration(integration))}\n onSave={onSaveClick}\n />\n ))}\n {!configuredWebhook && !!availableIntegrations.length && (\n \n )}\n {!!configuredWebhook && }\n \n \n );\n};\n\nexport default Integrations;\n","// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect, useMemo, useState } from 'react';\n\n// material ui\nimport { Close as CloseIcon, InfoOutlined as InfoOutlinedIcon } from '@mui/icons-material';\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Divider,\n Drawer,\n FormControl,\n FormHelperText,\n IconButton,\n InputLabel,\n MenuItem,\n Select,\n TextField,\n Tooltip\n} from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport validator from 'validator';\n\nimport { ALL_DEVICES } from '../../constants/deviceConstants';\nimport { ALL_RELEASES } from '../../constants/releaseConstants';\nimport { emptyRole, emptyUiPermissions, itemUiPermissionsReducer, rolesById, uiPermissionsByArea, uiPermissionsById } from '../../constants/userConstants';\nimport { deepCompare, isEmpty, toggle } from '../../helpers';\n\nconst menuProps = {\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left'\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left'\n }\n};\n\nconst permissionEnabledDisabled = (uiPermission, values, permissionsArea, unscoped) => {\n const { permissionLevel, value: permissionValue, unscopedOnly = {} } = uiPermission;\n const disabled = values.some(permission => uiPermissionsById[permission].permissionLevel > permissionLevel);\n const enabled = values.some(permission => permission === permissionValue) || disabled;\n const skip = unscopedOnly[permissionsArea] && !unscoped;\n return { enabled, disabled, skip };\n};\n\nconst useStyles = makeStyles()(theme => ({\n buttons: { '&.flexbox.centered': { justifyContent: 'flex-end' } },\n roleDeletion: { marginRight: theme.spacing(2) },\n permissionSelect: { marginLeft: theme.spacing(-1.5) },\n permissionsTitle: { marginBottom: theme.spacing(-1), minHeight: theme.spacing(3) }\n}));\n\nconst PermissionsSelect = ({ disabled, label, onChange, options, permissionsArea, unscoped, values }) => {\n const { classes } = useStyles();\n\n const onInputChange = ({ target: { value } }) => {\n if (value.includes('')) {\n return onChange([]);\n }\n return onChange(value);\n };\n\n const { editablePermissions, selectedValues } = useMemo(\n () =>\n options.reduce(\n (accu, uiPermission) => {\n const { enabled, disabled, skip } = permissionEnabledDisabled(uiPermission, values, permissionsArea, unscoped);\n if (skip) {\n return accu;\n }\n accu.editablePermissions.push({ enabled, disabled, ...uiPermission });\n if (enabled) {\n accu.selectedValues.push(uiPermission.value);\n }\n return accu;\n },\n { editablePermissions: [], selectedValues: [] }\n ),\n [options, permissionsArea, unscoped, values]\n );\n\n return (\n \n {label && !values.length ? label : ''}\n \n \n );\n};\n\nconst PermissionsAreaTitle = ({ className = '', explanation, title }) => (\n \n {title}\n \n \n \n
\n);\n\nconst PermissionsItem = ({ area, ...remainder }) => (\n <>\n \n \n >\n);\n\nconst groupsFilter = stateGroups =>\n Object.entries(stateGroups).reduce(\n (accu, [name, groupInfo]) => {\n if (!groupInfo.filters.length) {\n accu.push(name);\n }\n return accu;\n },\n [ALL_DEVICES]\n );\n\nconst releasesFilter = stateReleaseTags => [ALL_RELEASES, ...Object.keys(stateReleaseTags)];\n\nconst scopedPermissionAreas = {\n groups: {\n key: 'groups',\n filter: groupsFilter,\n placeholder: 'Search groups',\n excessiveAccessConfig: {\n selector: ALL_DEVICES,\n warning: `For 'All devices', users with the Manage permission may also create, edit and delete devices groups.`\n }\n },\n releases: {\n key: 'releases',\n filter: releasesFilter,\n placeholder: 'Search release tags',\n excessiveAccessConfig: {\n selector: ALL_RELEASES,\n warning: `For 'All releases', users with the Manage permission may also upload and delete releases.`\n }\n }\n};\n\nconst maybeExtendPermissionSelection = (changedGroupSelection, currentGroup, items) => {\n if (items.every(item => changedGroupSelection.some(selectionItem => selectionItem.item === item))) {\n return changedGroupSelection;\n }\n if (changedGroupSelection.every(selection => selection.item && selection.uiPermissions.length)) {\n changedGroupSelection.push(emptyItemSelection);\n return changedGroupSelection;\n }\n // the following is horrible, but I couldn't come up with a better solution that ensures only a single partly defined definition exists\n const filtered = changedGroupSelection.filter(selection => !((!selection.item || !selection.uiPermissions.length) && selection !== currentGroup));\n if (!filtered.some(selection => !selection.item || !selection.uiPermissions.length)) {\n filtered.push(emptyItemSelection);\n }\n return filtered;\n};\n\nconst ItemSelection = ({\n disableEdit,\n items,\n itemsSelection,\n setter,\n permissionsArea,\n placeholder,\n excessiveAccessConfig: { selector: excessiveAccessSelector, warning: excessiveAccessWarning }\n}) => {\n const onItemSelect = (index, { target: { value } }, currentSelection) => {\n let changedSelection = [...currentSelection];\n changedSelection[index] = { ...changedSelection[index], item: value };\n changedSelection = maybeExtendPermissionSelection(changedSelection, changedSelection[index], items);\n setter(changedSelection);\n };\n\n const onItemPermissionSelect = (index, selectedPermissions, currentSelection) => {\n let changedSelection = [...currentSelection];\n changedSelection[index] = { ...changedSelection[index], uiPermissions: selectedPermissions };\n changedSelection = maybeExtendPermissionSelection(changedSelection, changedSelection[index], items);\n setter(changedSelection);\n };\n\n const { title, uiPermissions, explanation } = uiPermissionsByArea[permissionsArea];\n return (\n <>\n \n {itemsSelection.map((itemSelection, index) => {\n const disabled = disableEdit || itemSelection.disableEdit;\n return (\n \n
\n {disabled ? (\n // empty label as a shortcut to align the layout with the select path\n
\n ) : (\n
\n {!itemSelection.item ? placeholder : ''}\n \n \n )}\n
onItemPermissionSelect(index, selectedPermissions, itemsSelection)}\n options={uiPermissions}\n permissionsArea={permissionsArea}\n unscoped={itemSelection.item === excessiveAccessSelector}\n values={itemSelection.uiPermissions}\n />\n \n {itemSelection.item === excessiveAccessSelector && (\n
\n {excessiveAccessWarning}\n
\n )}\n
\n );\n })}\n >\n );\n};\n\nconst emptyItemSelection = { item: '', uiPermissions: [], disableEdit: false };\n\nconst permissionMapper = uiPermission => uiPermissionsById[uiPermission].value;\n\nconst uiPermissionCompare = (existingPermissions, changedPermissions) => deepCompare(existingPermissions, changedPermissions);\n\nconst deriveItemsAndPermissions = (stateItems, roleItems, options = {}) => {\n const { adding, disableEdit, filter } = options;\n let filteredStateItems = filter(stateItems);\n let itemSelections = Object.entries(roleItems).map(([group, permissions]) => ({\n ...emptyItemSelection,\n item: group,\n uiPermissions: permissions.map(permissionMapper)\n }));\n if (!adding && !itemSelections.length && filteredStateItems.length !== Object.keys(stateItems).length && !isEmpty(roleItems)) {\n filteredStateItems = Object.keys(roleItems);\n itemSelections = Object.keys(roleItems).map(group => ({\n item: group,\n uiPermissions: [uiPermissionsById.read.value, uiPermissionsById.manage.value],\n disableEdit: true\n }));\n } else if (!disableEdit) {\n itemSelections.push(emptyItemSelection);\n }\n return { filtered: filteredStateItems, selections: itemSelections };\n};\n\nconst permissionCompatibilityReducer = (accu, permission) => ({ [ALL_RELEASES]: [...accu[ALL_RELEASES], permission] });\n\nconst DeleteRoleDialog = ({ dismiss, open, submit, name }) => (\n \n);\n\nexport const RoleDefinition = ({\n adding,\n editing,\n features,\n stateGroups,\n stateReleaseTags,\n onCancel,\n onSubmit,\n removeRole,\n selectedRole = { ...emptyRole }\n}) => {\n const [description, setDescription] = useState(selectedRole.description);\n const [groups, setGroups] = useState([]);\n const [releases, setReleases] = useState([]);\n const [name, setName] = useState(selectedRole.name);\n const [nameError, setNameError] = useState(false);\n const [auditlogPermissions, setAuditlogPermissions] = useState([]);\n const [groupSelections, setGroupSelections] = useState([]);\n const [releasesPermissions, setReleasesPermissions] = useState([]);\n const [releaseTagSelections, setReleaseTagSelections] = useState([]);\n const [removeDialog, setRemoveDialog] = useState(false);\n const [userManagementPermissions, setUserManagementPermissions] = useState([]);\n const { classes } = useStyles();\n const { hasReleaseTags } = features;\n\n useEffect(() => {\n const { name: roleName = '', description: roleDescription = '' } = selectedRole;\n const { auditlog, groups: roleGroups = {}, releases: roleReleases = {}, userManagement } = { ...emptyUiPermissions, ...selectedRole.uiPermissions };\n const disableEdit = editing && Boolean(rolesById[roleName] || !selectedRole.editable);\n setName(roleName);\n setDescription(roleDescription);\n setUserManagementPermissions(userManagement.map(permissionMapper));\n setAuditlogPermissions(auditlog.map(permissionMapper));\n const { filtered: filteredStateGroups, selections: groupSelections } = deriveItemsAndPermissions(stateGroups, roleGroups, {\n adding,\n disableEdit,\n filter: scopedPermissionAreas.groups.filter\n });\n setGroups(filteredStateGroups);\n setGroupSelections(groupSelections);\n const { filtered: filteredReleases, selections: releaseTagSelections } = deriveItemsAndPermissions(stateReleaseTags, roleReleases, {\n adding,\n disableEdit,\n filter: scopedPermissionAreas.releases.filter\n });\n setReleases(filteredReleases);\n setReleaseTagSelections(releaseTagSelections);\n setReleasesPermissions(\n releaseTagSelections.reduce((accu, { item, uiPermissions }) => {\n if (item === ALL_RELEASES) {\n return [...accu, ...uiPermissions];\n }\n return accu;\n }, [])\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [adding, editing, JSON.stringify(selectedRole), JSON.stringify(stateGroups), JSON.stringify(stateReleaseTags)]);\n\n const validateNameChange = ({ target: { value } }) => {\n setNameError(!(value && validator.isWhitelisted(value, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-')));\n setName(value);\n };\n\n const onSubmitClick = () => {\n const allowUserManagement = userManagementPermissions.includes(uiPermissionsById.manage.value);\n const role = {\n source: selectedRole,\n allowUserManagement,\n description,\n name,\n uiPermissions: {\n auditlog: auditlogPermissions,\n groups: groupSelections,\n releases: hasReleaseTags ? releaseTagSelections : [{ item: ALL_RELEASES, uiPermissions: releasesPermissions }],\n userManagement: userManagementPermissions\n }\n };\n onSubmit(role);\n };\n\n const onRemoveRole = () => {\n setRemoveDialog(false);\n removeRole(name);\n onCancel();\n };\n\n const onToggleRemoveDialog = () => setRemoveDialog(toggle);\n\n const disableEdit = editing && Boolean(rolesById[selectedRole.id] || !selectedRole.editable);\n const isSubmitDisabled = useMemo(() => {\n const changedPermissions = {\n ...emptyUiPermissions,\n auditlog: auditlogPermissions,\n userManagement: userManagementPermissions,\n groups: groupSelections.reduce(itemUiPermissionsReducer, {}),\n releases: hasReleaseTags\n ? releaseTagSelections.reduce(itemUiPermissionsReducer, {})\n : releasesPermissions.reduce(permissionCompatibilityReducer, { [ALL_RELEASES]: [] })\n };\n const { hasPartiallyDefinedAreas, hasAreaPermissions } = [...groupSelections, ...releaseTagSelections].reduce(\n (accu, { item, uiPermissions }) => {\n accu.hasPartiallyDefinedAreas = accu.hasPartiallyDefinedAreas || (item && !uiPermissions.length) || (!item && uiPermissions.length);\n accu.hasAreaPermissions = accu.hasAreaPermissions || !!(item && uiPermissions.length);\n return accu;\n },\n { hasPartiallyDefinedAreas: false, hasAreaPermissions: false }\n );\n return Boolean(\n disableEdit ||\n !name ||\n nameError ||\n hasPartiallyDefinedAreas ||\n !(auditlogPermissions.length || hasAreaPermissions || releasesPermissions.length || userManagementPermissions.length) ||\n (Object.entries({ description, name }).every(([key, value]) => selectedRole[key] === value) &&\n uiPermissionCompare(selectedRole.uiPermissions, changedPermissions))\n );\n }, [\n auditlogPermissions,\n userManagementPermissions,\n groupSelections,\n hasReleaseTags,\n releaseTagSelections,\n releasesPermissions,\n disableEdit,\n name,\n nameError,\n description,\n selectedRole\n ]);\n\n return (\n \n \n
{adding ? 'Add a' : 'Edit'} role
\n
\n {editing && !rolesById[selectedRole.id] && (\n \n )}\n \n \n \n
\n
\n \n \n \n \n {nameError && Invalid character in role name. Valid characters are a-z, A-Z, 0-9, _ and -}\n \n setDescription(e.target.value)}\n value={description}\n />\n
\n\n \n Permissions\n \n \n
\n
\n {!hasReleaseTags && (\n
\n )}\n
\n {(!disableEdit || !!releaseTagSelections.length) && hasReleaseTags && (\n \n )}\n {(!disableEdit || !!groupSelections.length) && (\n \n )}\n \n \n \n \n
\n \n \n );\n};\n\nexport default RoleDefinition;\n","// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\n// material ui\nimport { Add as AddIcon, ArrowRightAlt as ArrowRightAltIcon } from '@mui/icons-material';\nimport { Chip } from '@mui/material';\n\nimport { getDynamicGroups, getGroups } from '../../actions/deviceActions';\nimport { createRole, editRole, getRoles, removeRole } from '../../actions/userActions';\nimport { BENEFITS } from '../../constants/appConstants';\nimport { emptyRole, rolesById } from '../../constants/userConstants';\nimport { getFeatures, getGroupsByIdWithoutUngrouped, getIsEnterprise, getReleaseTagsById, getRolesList } from '../../selectors';\nimport DetailsTable from '../common/detailstable';\nimport { DocsTooltip } from '../common/docslink';\nimport EnterpriseNotification from '../common/enterpriseNotification';\nimport { InfoHintContainer } from '../common/info-hint';\nimport RoleDefinition from './roledefinition';\n\nconst columns = [\n { key: 'name', title: 'Role', render: ({ name }) => name },\n { key: 'description', title: 'Description', render: ({ description }) => description || '-' },\n {\n key: 'manage',\n title: 'Manage',\n render: () => (\n \n )\n }\n];\n\nexport const RoleManagement = () => {\n const [adding, setAdding] = useState(false);\n const [editing, setEditing] = useState(false);\n const [role, setRole] = useState({ ...emptyRole });\n const dispatch = useDispatch();\n const features = useSelector(getFeatures);\n const groups = useSelector(getGroupsByIdWithoutUngrouped);\n const releaseTags = useSelector(getReleaseTagsById);\n const roles = useSelector(getRolesList);\n const isEnterprise = useSelector(getIsEnterprise);\n\n useEffect(() => {\n if (Object.keys(groups).length) {\n return;\n }\n dispatch(getDynamicGroups());\n dispatch(getGroups());\n dispatch(getRoles());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dispatch, JSON.stringify(groups)]);\n\n const addRole = () => {\n setAdding(true);\n setEditing(false);\n setRole({ ...emptyRole });\n };\n\n const onEditRole = editedRole => {\n setAdding(false);\n setEditing(true);\n setRole(editedRole);\n };\n\n const onCancel = () => {\n setAdding(false);\n setEditing(false);\n };\n\n const onSubmit = submittedRole => {\n if (adding) {\n dispatch(createRole(submittedRole));\n } else {\n dispatch(editRole(submittedRole));\n }\n onCancel();\n };\n\n const items = useMemo(\n () =>\n Object.keys(rolesById)\n .reverse()\n .reduce((accu, key) => {\n const index = accu.findIndex(({ id }) => id === key);\n accu = [accu[index], ...accu.filter((item, itemIndex) => index !== itemIndex)];\n return accu;\n }, roles),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(roles)]\n );\n\n return (\n \n
\n
Roles
\n \n \n \n \n \n
\n
} label=\"Add a role\" onClick={addRole} disabled={!isEnterprise} />\n
dispatch(removeRole(name))}\n selectedRole={role}\n stateGroups={groups}\n stateReleaseTags={releaseTags}\n />\n \n );\n};\n\nexport default RoleManagement;\n","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"m21.41 11.58-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z\"\n}), 'LocalOffer');","// Copyright 2021 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React from 'react';\n\nimport { makeStyles } from 'tss-react/mui';\n\nimport { PLANS } from '../../constants/appConstants';\nimport { isDarkMode } from '../../helpers.js';\nimport InfoText from '../common/infotext';\n\nexport const useStyles = makeStyles()(theme => ({\n planNote: { marginBottom: -11, fontSize: 'smaller' },\n planPanel: {\n borderColor: theme.palette.background.lightgrey,\n ['&.active,&:hover']: {\n borderColor: theme.palette.grey[50],\n boxShadow: '0 1px 6px rgba(0, 0, 0, 0.15)'\n },\n ['&.active']: {\n backgroundColor: isDarkMode(theme.palette.mode) ? theme.palette.grey[50] : theme.palette.grey[400]\n },\n '&.addon': {\n alignItems: 'center',\n columnGap: 10,\n display: 'grid',\n gridTemplateColumns: 'max-content minmax(150px, min-content) 1fr max-content',\n height: 'initial',\n marginTop: 10,\n minWidth: 550,\n width: 'initial'\n },\n '&.addon.upgrade': {\n gridTemplateColumns: 'max-content minmax(120px, min-content) minmax(120px, min-content) 1fr max-content'\n }\n },\n price: { fontSize: '1rem' }\n}));\n\nexport const PlanSelection = ({ currentPlan = PLANS.os.id, isTrial, offerValid, offerTag, setUpdatedPlan, updatedPlan }) => {\n const { classes } = useStyles();\n const canUpgrade = plan => Object.keys(PLANS).indexOf(plan) >= Object.keys(PLANS).indexOf(currentPlan);\n const onPlanSelect = plan => (isTrial || canUpgrade(plan) ? setUpdatedPlan(plan) : undefined);\n return (\n <>\n {isTrial ? '1. Choose a plan' : 'Plans'}
\n \n {Object.values(PLANS).map(item => (\n
onPlanSelect(item.id)}\n >\n {!isTrial && canUpgrade(item.id) && (\n
{item.id === currentPlan ? 'current plan' : 'upgrade'}
\n )}\n
\n {item.name} {item.offer && isTrial && offerValid ? offerTag : null}\n
\n
\n {item.offer && isTrial && offerValid ? (\n <>\n
{item.offerprice}
\n
{item.price2}
\n >\n ) : (\n <>\n
{item.price}
\n
{item.deviceCount}
\n >\n )}\n
\n
\n {item.features.map((feature, index) => (\n - \n {feature}\n
\n ))}\n
\n
\n ))}\n
\n >\n );\n};\n\nexport default PlanSelection;\n","// Copyright 2021 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useMemo } from 'react';\n\nimport { Checkbox } from '@mui/material';\n\nimport { ADDONS, PLANS } from '../../constants/appConstants';\nimport InfoText from '../common/infotext';\nimport { useStyles } from './planselection';\n\nexport const AddOnSelection = ({ addons = [], features, onChange, updatedPlan = PLANS.os.id }) => {\n const { classes } = useStyles();\n const onAddOnClick = (e, name, enabled) => {\n if (e.target.tagName === 'A') {\n return;\n }\n let changedAddOns = addons.filter(item => item.name !== name);\n if (enabled) {\n changedAddOns.push({ name, enabled });\n }\n onChange(changedAddOns);\n };\n\n const isUpgrade = Object.keys(PLANS).indexOf(updatedPlan) < Object.keys(PLANS).length - 1;\n const relevantAddons = useMemo(\n () =>\n Object.entries(ADDONS).reduce((accu, [addOnName, addOn]) => {\n if (!addOn.needs.every(need => features[need])) {\n return accu;\n }\n const isEnabled = addons.some(orgAddOn => orgAddOn.enabled && addOnName === orgAddOn.name);\n accu.push({ ...addOn, name: addOnName, isEnabled });\n return accu;\n }, []),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(addons), JSON.stringify(features)]\n );\n\n return (\n <>\n Get more features with add-ons
\n\n \n
\n Extend Mender features with our add-ons. Select one or more from the list and submit to request add-ons to be added to your plan. We'll adjust\n your subscription and confirm it with you.\n
\n {relevantAddons.map(addOn => {\n const isEligible = addOn.eligible.indexOf(updatedPlan) > -1;\n\n return (\n
(isEligible ? onAddOnClick(e, addOn.name, !addOn.isEnabled) : () => false)}\n >\n
\n
{addOn.title}
\n {isUpgrade && (\n
\n
{addOn[updatedPlan].price}
\n
{addOn[updatedPlan].deviceCount}
\n
\n )}\n
{addOn.description}\n {/* eslint-disable-next-line react/jsx-no-target-blank */}\n
\n Learn more\n \n
\n );\n })}\n
\n >\n );\n};\n\nexport default AddOnSelection;\n","// Copyright 2021 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useState } from 'react';\n\nimport { Button, FormControl, FormHelperText, TextField } from '@mui/material';\n\nimport { ADDONS, PLANS } from '../../constants/appConstants';\n\nconst quoteRequest = {\n default: {\n title: 'Request a change to your plan',\n note: `If you have any questions regarding plan pricing or device limits, leave us a message and we'll respond as soon as we can.`\n },\n trial: {\n title: '2. Request a quote from our team',\n note: `If you have any notes about your requirements or device fleet size, leave a message and we'll respond as soon as we can`\n },\n enterprise: {\n title: 'Request a quote from our team',\n note: `If you have any notes about your requirements or device fleet size, leave a message and we'll respond as soon as we can`\n }\n};\n\nexport const QuoteRequestForm = ({ addOns, currentPlan, isTrial, onSendMessage, updatedPlan }) => {\n const [message, setMessage] = useState('');\n\n const isEnterpriseUpgrade = updatedPlan === 'enterprise';\n const isUpgrade = Object.keys(PLANS).indexOf(updatedPlan) > Object.keys(PLANS).indexOf(currentPlan);\n let { note, title } = isEnterpriseUpgrade ? quoteRequest.enterprise : quoteRequest.default;\n title = isTrial ? `2. ${title}` : title;\n return (\n \n
{title}
\n {isEnterpriseUpgrade ? 'You are requesting a quote for the following subscription:' : 'You are requesting the following changes:'}\n
\n
\n Plan: {isUpgrade ? 'Upgrade to ' : ''}\n {PLANS[updatedPlan].name}\n {!isTrial && !!addOns.length && (\n \n
\n Add-ons: {addOns.map(addon => ADDONS[addon.name].title).join(', ')}\n \n )}\n
\n
\n
\n Your message\n setMessage(e.target.value)} />\n \n
\n {isTrial || isEnterpriseUpgrade\n ? `After we receive your request, we'll be in touch to discuss your needs and provide a quote.`\n : `We'll send you a confirmation of any changes to your subscription.`}\n
\n
\n
\n );\n};\n\nexport default QuoteRequestForm;\n","// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\n\nimport { InfoOutlined as InfoOutlinedIcon, LocalOffer as LocalOfferIcon } from '@mui/icons-material';\n\nimport moment from 'moment';\n\nimport { setSnackbar } from '../../actions/appActions';\nimport { getDeviceLimit } from '../../actions/deviceActions';\nimport { cancelUpgrade, completeUpgrade, getUserOrganization, requestPlanChange, startUpgrade } from '../../actions/organizationActions';\nimport { PLANS, TIMEOUTS } from '../../constants/appConstants';\nimport { getFeatures, getOrganization } from '../../selectors';\nimport InfoText from '../common/infotext';\nimport Loader from '../common/loader';\nimport AddOnSelection from './addonselection';\nimport CardSection from './cardsection';\nimport PlanSelection from './planselection';\nimport QuoteRequestForm from './quoterequestform';\n\nconst offerTag = (\n \n End of year offer\n \n);\n\nexport const PostUpgradeNote = ({ newPlan }) => (\n \n
Upgrade now
\n
\n
\n Your upgrade was successful! You are now signed up to the {newPlan} plan.\n
\n
Redirecting you to your organization page...
\n
\n
\n
\n);\n\nexport const PricingContactNote = () => (\n \n \n If you have any questions about the plan pricing or device limits,{' '}\n \n contact our team\n \n .\n \n);\n\nconst upgradeNotes = {\n default: {\n title: 'Upgrades and add-ons',\n description: 'Upgrade your plan or purchase an add-on to connect more devices, access more features and advanced support.'\n },\n trial: {\n title: 'Upgrade now',\n description: 'Upgrade to one of our plans to connect more devices, continue using advanced features, and get access to support.'\n }\n};\n\nexport const Upgrade = () => {\n const offerValid = moment().isBefore('2021-01-01');\n const [addOns, setAddOns] = useState([]);\n const [updatedPlan, setUpdatedPlan] = useState(PLANS.os.id);\n const [upgraded, setUpgraded] = useState(false);\n const navigate = useNavigate();\n const dispatch = useDispatch();\n const features = useSelector(getFeatures);\n const org = useSelector(getOrganization);\n const { addons: orgAddOns = [], plan: currentPlan = PLANS.os.id, trial: isTrial = true } = org;\n\n useEffect(() => {\n dispatch(getUserOrganization());\n }, [dispatch]);\n\n useEffect(() => {\n const currentAddOns = orgAddOns.reduce((accu, addon) => {\n if (addon.enabled) {\n accu.push(addon);\n }\n return accu;\n }, []);\n const plan = Object.values(PLANS).find(plan => plan.id === (isTrial ? PLANS.os.id : currentPlan));\n setAddOns(currentAddOns);\n setUpdatedPlan(plan.id);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentPlan, isTrial, JSON.stringify(orgAddOns)]);\n\n if (upgraded) {\n return ;\n }\n\n const handleUpgrade = async () =>\n dispatch(completeUpgrade(org.id, updatedPlan)).then(() => {\n setUpgraded(true);\n setTimeout(() => {\n dispatch(getDeviceLimit());\n navigate('/settings/organization-and-billing');\n }, TIMEOUTS.threeSeconds);\n });\n\n const addOnsToString = (addons = []) =>\n addons\n .reduce((accu, item) => {\n if (item.enabled) {\n accu.push(item.name);\n }\n return accu;\n }, [])\n .join(', ');\n\n const onSendRequest = (message, addons = addOns) =>\n dispatch(\n requestPlanChange(org.id, {\n current_plan: PLANS[org.plan || PLANS.os.id].name,\n requested_plan: PLANS[updatedPlan].name,\n current_addons: addOnsToString(org.addons) || '-',\n requested_addons: addOnsToString(addons) || '-',\n user_message: message\n })\n );\n\n const { description, title } = isTrial ? upgradeNotes.trial : upgradeNotes.default;\n return (\n \n
{title}
\n
{description}
\n
\n Learn more about the different plans and at {/* eslint-disable-next-line react/jsx-no-target-blank */}\n \n mender.io/plans/pricing\n \n . Prices can change at larger device counts, please see our {/* eslint-disable-next-line react/jsx-no-target-blank */}\n \n price calculator\n {' '}\n for more.\n
\n
\n {isTrial && offerValid && (\n
\n {offerTag} – upgrade before December 31st to get a 20% discount for 6 months on Mender Basic and Mender Professional plans. The discount will be\n automatically applied to your account.\n
\n )}\n {isTrial ?
:
}\n {isTrial && updatedPlan !== PLANS.enterprise.id && (\n <>\n
2. Enter your payment details
\n
\n You are upgrading to{' '}\n \n Mender {PLANS[updatedPlan].name}\n {' '}\n for {PLANS[updatedPlan].price}\n
\n
Promise.resolve(dispatch(cancelUpgrade(org.id)))}\n onComplete={handleUpgrade}\n onSubmit={() => Promise.resolve(dispatch(startUpgrade(org.id)))}\n setSnackbar={message => dispatch(setSnackbar(message))}\n isSignUp={true}\n />\n >\n )}\n {(!isTrial || updatedPlan === PLANS.enterprise.id) && (\n \n )}\n \n );\n};\n\nexport default Upgrade;\n","// Copyright 2017 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Navigate, useParams } from 'react-router-dom';\n\n// material ui\nimport { Payment as PaymentIcon } from '@mui/icons-material';\n\nimport { Elements } from '@stripe/react-stripe-js';\n\nimport { TIMEOUTS, canAccess } from '../../constants/appConstants';\nimport { getCurrentUser, getFeatures, getOrganization, getTenantCapabilities, getUserCapabilities, getUserRoles } from '../../selectors';\nimport LeftNav from '../common/left-nav';\nimport SelfUserManagement from '../settings/user-management/selfusermanagement';\nimport UserManagement from '../settings/user-management/usermanagement';\nimport Global from './global';\nimport Integrations from './integrations';\nimport Organization from './organization/organization';\nimport Roles from './roles';\nimport Upgrade from './upgrade';\n\nlet stripePromise = null;\n\nconst sectionMap = {\n 'global-settings': { component: Global, text: () => 'Global settings', canAccess },\n 'my-profile': { component: SelfUserManagement, text: () => 'My profile', canAccess },\n 'organization-and-billing': {\n component: Organization,\n text: () => 'Organization and billing',\n canAccess: ({ hasMultitenancy }) => hasMultitenancy\n },\n 'user-management': {\n component: UserManagement,\n text: () => 'User management',\n canAccess: ({ userCapabilities: { canManageUsers } }) => canManageUsers\n },\n 'role-management': {\n component: Roles,\n text: () => 'Roles',\n canAccess: ({ currentUser, userRoles: { isAdmin } }) => currentUser && isAdmin\n },\n integrations: {\n component: Integrations,\n text: () => 'Integrations',\n canAccess: ({ userRoles: { isAdmin } }) => isAdmin\n },\n upgrade: {\n component: Upgrade,\n icon: ,\n text: ({ isTrial }) => (isTrial ? 'Upgrade to a plan' : 'Upgrades and add-ons'),\n canAccess: ({ hasMultitenancy }) => hasMultitenancy\n }\n};\n\nexport const Settings = () => {\n const currentUser = useSelector(getCurrentUser);\n const { hasMultitenancy } = useSelector(getFeatures);\n const { trial: isTrial = false } = useSelector(getOrganization);\n const stripeAPIKey = useSelector(state => state.app.stripeAPIKey);\n const tenantCapabilities = useSelector(getTenantCapabilities);\n const userCapabilities = useSelector(getUserCapabilities);\n const userRoles = useSelector(getUserRoles);\n const [loadingFinished, setLoadingFinished] = useState(!stripeAPIKey);\n const { section: sectionParam } = useParams();\n\n useEffect(() => {\n // Make sure to call `loadStripe` outside of a component’s render to avoid recreating\n // the `Stripe` object on every render - but don't initialize twice.\n if (!stripePromise) {\n import(/* webpackChunkName: \"stripe\" */ '@stripe/stripe-js').then(({ loadStripe }) => {\n if (stripeAPIKey) {\n stripePromise = loadStripe(stripeAPIKey).finally(() => setLoadingFinished(true));\n }\n });\n } else {\n const notStripePromise = new Promise(resolve => setTimeout(resolve, TIMEOUTS.debounceDefault));\n Promise.race([stripePromise, notStripePromise]).then(result => setLoadingFinished(result !== notStripePromise));\n }\n }, [stripeAPIKey]);\n\n const checkDenyAccess = item => currentUser.id && !item.canAccess({ currentUser, hasMultitenancy, isTrial, tenantCapabilities, userCapabilities, userRoles });\n\n const getCurrentSection = (sections, section = sectionParam) => {\n if (!sections.hasOwnProperty(section) || checkDenyAccess(sections[section])) {\n return;\n }\n return sections[section];\n };\n\n const links = Object.entries(sectionMap).reduce((accu, [key, item]) => {\n if (!checkDenyAccess(item)) {\n accu.push({\n path: `/settings/${key}`,\n icon: item.icon,\n title: item.text({ isTrial })\n });\n }\n return accu;\n }, []);\n\n const section = getCurrentSection(sectionMap, sectionParam);\n if (!section) {\n return ;\n }\n const Component = section.component;\n return (\n \n
\n
\n {loadingFinished && (\n \n \n \n )}\n
\n
\n );\n};\n\nexport default Settings;\n","// Copyright 2015 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React from 'react';\nimport { Route, Routes } from 'react-router-dom';\n\nimport AuditLogs from '../components/auditlogs/auditlogs';\nimport Dashboard from '../components/dashboard/dashboard';\nimport Deployments from '../components/deployments/deployments';\nimport Devices from '../components/devices/device-groups';\nimport Help from '../components/help/help';\nimport Login from '../components/login/login';\nimport Password from '../components/login/password';\nimport PasswordReset from '../components/login/passwordreset';\nimport Signup from '../components/login/signup';\nimport Releases from '../components/releases/releases';\nimport Settings from '../components/settings/settings';\n\nexport const PrivateRoutes = () => (\n \n } />\n }>\n \n \n }>\n \n \n }>\n \n \n }>\n \n \n }>\n \n \n } />\n \n);\n\nexport const PublicRoutes = () => (\n \n } />\n } />\n }>\n \n \n } />\n \n);\n","// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React from 'react';\n\nimport Tracking from './tracking';\n\nexport default class ErrorBoundary extends React.Component {\n constructor(props, context) {\n super(props, context);\n this.state = { error: null, info: null };\n }\n\n componentDidCatch(error, info) {\n this.setState({ error, info });\n Tracking.exception(error);\n }\n\n render() {\n return this.state.error ? (\n // this will get embedded in the main grid, so we have to simulate the three empty areas for logo, header and sidebar\n <>\n \n \n \n \n
\n
An error occured.
\n
Try refreshing the page, or look below for more information on the error that occured.
\n
\n {this.state.error.toString()}\n
\n {this.state.info.componentStack}\n \n
\n
\n >\n ) : (\n this.props.children\n );\n }\n}\n","function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?n.add(t):n[r]=t}function c(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,r){return d(r,!0)}),!0)),n}function h(){n(2)}function y(n){return null==n||\"object\"!=typeof n||Object.isFrozen(n)}function b(r){var t=tn[r];return t||n(18,r),t}function m(n,r){tn[n]||(tn[n]=r)}function _(){return\"production\"===process.env.NODE_ENV||U||n(0),U}function j(n,r){r&&(b(\"Patches\"),n.u=[],n.s=[],n.v=r)}function g(n){O(n),n.p.forEach(S),n.p=null}function O(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.g=!0}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.O||b(\"ES5\").S(e,r,o),o?(i[Q].P&&(g(e),n(4)),t(r)&&(r=M(e,r),e.l||x(e,r)),e.u&&b(\"Patches\").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),g(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o,u=o,a=!1;3===e.i&&(u=new Set(o),o.clear(),a=!0),i(u,(function(r,i){return A(n,e,o,r,i,t,a)})),x(n,o,!1),t&&n.u&&b(\"Patches\").N(e,t,n.u,n.s)}return e.o}function A(e,i,o,a,c,s,v){if(\"production\"!==process.env.NODE_ENV&&c===o&&n(5),r(c)){var p=M(e,c,s&&i&&3!==i.i&&!u(i.R,a)?s.concat(a):void 0);if(f(o,a,p),!r(p))return;e.m=!1}else v&&o.add(c);if(t(c)&&!y(c)){if(!e.h.D&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,r,t){void 0===t&&(t=!1),!n.l&&n.h.D&&n.m&&d(r,t)}function z(n,r){var t=n[Q];return(t?p(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function N(n,r,t){var e=s(r)?b(\"MapSet\").F(r,t):v(r)?b(\"MapSet\").T(r,t):n.O?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,R:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b(\"ES5\").J(r,t);return(t?t.A:_()).p.push(e),e}function R(e){return r(e)||n(22,e),function n(r){if(!t(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b(\"ES5\").K(u)))return u.t;u.I=!0,e=D(r,c),u.I=!1}else e=D(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f(e,r,n(t))})),3===c?new Set(e):e}(e)}function D(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function F(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return\"production\"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];\"production\"!==process.env.NODE_ENV&&f(t),en.set(t,n,r)}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k(t);break;case 4:o(t)&&k(t)}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u(r,o))return!0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return!0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return!0;for(var e=0;e1?t-1:0),o=1;o1?t-1:0),o=1;o=0;e--){var i=t[e];if(0===i.path.length&&\"replace\"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b(\"Patches\").$;return r(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);export default fn;export{un as Immer,pn as applyPatches,K as castDraft,$ as castImmutable,ln as createDraft,R as current,J as enableAllPlugins,F as enableES5,C as enableMapSet,T as enablePatches,dn as finishDraft,d as freeze,L as immerable,r as isDraft,t as isDraftable,H as nothing,e as original,fn as produce,cn as produceWithPatches,sn as setAutoFreeze,vn as setUseProxies};\n//# sourceMappingURL=immer.esm.js.map\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n};\r\nvar __defProp = Object.defineProperty;\r\nvar __defProps = Object.defineProperties;\r\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\r\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\r\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\r\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\r\nvar __defNormalProp = function (obj, key, value) { return key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value }) : obj[key] = value; };\r\nvar __spreadValues = function (a, b) {\r\n for (var prop in b || (b = {}))\r\n if (__hasOwnProp.call(b, prop))\r\n __defNormalProp(a, prop, b[prop]);\r\n if (__getOwnPropSymbols)\r\n for (var _i = 0, _c = __getOwnPropSymbols(b); _i < _c.length; _i++) {\r\n var prop = _c[_i];\r\n if (__propIsEnum.call(b, prop))\r\n __defNormalProp(a, prop, b[prop]);\r\n }\r\n return a;\r\n};\r\nvar __spreadProps = function (a, b) { return __defProps(a, __getOwnPropDescs(b)); };\r\nvar __async = function (__this, __arguments, generator) {\r\n return new Promise(function (resolve, reject) {\r\n var fulfilled = function (value) {\r\n try {\r\n step(generator.next(value));\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n };\r\n var rejected = function (value) {\r\n try {\r\n step(generator.throw(value));\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n };\r\n var step = function (x) { return x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); };\r\n step((generator = generator.apply(__this, __arguments)).next());\r\n });\r\n};\r\n// src/index.ts\r\nimport { enableES5 } from \"immer\";\r\nexport * from \"redux\";\r\nimport { default as default2, current as current2, freeze, original, isDraft as isDraft4 } from \"immer\";\r\nimport { createSelector as createSelector2 } from \"reselect\";\r\n// src/createDraftSafeSelector.ts\r\nimport { current, isDraft } from \"immer\";\r\nimport { createSelector } from \"reselect\";\r\nvar createDraftSafeSelector = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var selector = createSelector.apply(void 0, args);\r\n var wrappedSelector = function (value) {\r\n var rest = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n rest[_i - 1] = arguments[_i];\r\n }\r\n return selector.apply(void 0, __spreadArray([isDraft(value) ? current(value) : value], rest));\r\n };\r\n return wrappedSelector;\r\n};\r\n// src/configureStore.ts\r\nimport { createStore, compose as compose2, applyMiddleware, combineReducers } from \"redux\";\r\n// src/devtoolsExtension.ts\r\nimport { compose } from \"redux\";\r\nvar composeWithDevTools = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {\r\n if (arguments.length === 0)\r\n return void 0;\r\n if (typeof arguments[0] === \"object\")\r\n return compose;\r\n return compose.apply(null, arguments);\r\n};\r\nvar devToolsEnhancer = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function () {\r\n return function (noop2) {\r\n return noop2;\r\n };\r\n};\r\n// src/isPlainObject.ts\r\nfunction isPlainObject(value) {\r\n if (typeof value !== \"object\" || value === null)\r\n return false;\r\n var proto = Object.getPrototypeOf(value);\r\n if (proto === null)\r\n return true;\r\n var baseProto = proto;\r\n while (Object.getPrototypeOf(baseProto) !== null) {\r\n baseProto = Object.getPrototypeOf(baseProto);\r\n }\r\n return proto === baseProto;\r\n}\r\n// src/getDefaultMiddleware.ts\r\nimport thunkMiddleware from \"redux-thunk\";\r\n// src/tsHelpers.ts\r\nvar hasMatchFunction = function (v) {\r\n return v && typeof v.match === \"function\";\r\n};\r\n// src/createAction.ts\r\nfunction createAction(type, prepareAction) {\r\n function actionCreator() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (prepareAction) {\r\n var prepared = prepareAction.apply(void 0, args);\r\n if (!prepared) {\r\n throw new Error(\"prepareAction did not return an object\");\r\n }\r\n return __spreadValues(__spreadValues({\r\n type: type,\r\n payload: prepared.payload\r\n }, \"meta\" in prepared && { meta: prepared.meta }), \"error\" in prepared && { error: prepared.error });\r\n }\r\n return { type: type, payload: args[0] };\r\n }\r\n actionCreator.toString = function () { return \"\" + type; };\r\n actionCreator.type = type;\r\n actionCreator.match = function (action) { return action.type === type; };\r\n return actionCreator;\r\n}\r\nfunction isAction(action) {\r\n return isPlainObject(action) && \"type\" in action;\r\n}\r\nfunction isActionCreator(action) {\r\n return typeof action === \"function\" && \"type\" in action && hasMatchFunction(action);\r\n}\r\nfunction isFSA(action) {\r\n return isAction(action) && typeof action.type === \"string\" && Object.keys(action).every(isValidKey);\r\n}\r\nfunction isValidKey(key) {\r\n return [\"type\", \"payload\", \"error\", \"meta\"].indexOf(key) > -1;\r\n}\r\nfunction getType(actionCreator) {\r\n return \"\" + actionCreator;\r\n}\r\n// src/actionCreatorInvariantMiddleware.ts\r\nfunction getMessage(type) {\r\n var splitType = type ? (\"\" + type).split(\"/\") : [];\r\n var actionName = splitType[splitType.length - 1] || \"actionCreator\";\r\n return \"Detected an action creator with type \\\"\" + (type || \"unknown\") + \"\\\" being dispatched. \\nMake sure you're calling the action creator before dispatching, i.e. `dispatch(\" + actionName + \"())` instead of `dispatch(\" + actionName + \")`. This is necessary even if the action has no payload.\";\r\n}\r\nfunction createActionCreatorInvariantMiddleware(options) {\r\n if (options === void 0) { options = {}; }\r\n if (process.env.NODE_ENV === \"production\") {\r\n return function () { return function (next) { return function (action) { return next(action); }; }; };\r\n }\r\n var _c = options.isActionCreator, isActionCreator2 = _c === void 0 ? isActionCreator : _c;\r\n return function () { return function (next) { return function (action) {\r\n if (isActionCreator2(action)) {\r\n console.warn(getMessage(action.type));\r\n }\r\n return next(action);\r\n }; }; };\r\n}\r\n// src/utils.ts\r\nimport createNextState, { isDraftable } from \"immer\";\r\nfunction getTimeMeasureUtils(maxDelay, fnName) {\r\n var elapsed = 0;\r\n return {\r\n measureTime: function (fn) {\r\n var started = Date.now();\r\n try {\r\n return fn();\r\n }\r\n finally {\r\n var finished = Date.now();\r\n elapsed += finished - started;\r\n }\r\n },\r\n warnIfExceeded: function () {\r\n if (elapsed > maxDelay) {\r\n console.warn(fnName + \" took \" + elapsed + \"ms, which is more than the warning threshold of \" + maxDelay + \"ms. \\nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\\nIt is disabled in production builds, so you don't need to worry about that.\");\r\n }\r\n }\r\n };\r\n}\r\nvar MiddlewareArray = /** @class */ (function (_super) {\r\n __extends(MiddlewareArray, _super);\r\n function MiddlewareArray() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _this = _super.apply(this, args) || this;\r\n Object.setPrototypeOf(_this, MiddlewareArray.prototype);\r\n return _this;\r\n }\r\n Object.defineProperty(MiddlewareArray, Symbol.species, {\r\n get: function () {\r\n return MiddlewareArray;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n MiddlewareArray.prototype.concat = function () {\r\n var arr = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n arr[_i] = arguments[_i];\r\n }\r\n return _super.prototype.concat.apply(this, arr);\r\n };\r\n MiddlewareArray.prototype.prepend = function () {\r\n var arr = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n arr[_i] = arguments[_i];\r\n }\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new (MiddlewareArray.bind.apply(MiddlewareArray, __spreadArray([void 0], arr[0].concat(this))))();\r\n }\r\n return new (MiddlewareArray.bind.apply(MiddlewareArray, __spreadArray([void 0], arr.concat(this))))();\r\n };\r\n return MiddlewareArray;\r\n}(Array));\r\nvar EnhancerArray = /** @class */ (function (_super) {\r\n __extends(EnhancerArray, _super);\r\n function EnhancerArray() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _this = _super.apply(this, args) || this;\r\n Object.setPrototypeOf(_this, EnhancerArray.prototype);\r\n return _this;\r\n }\r\n Object.defineProperty(EnhancerArray, Symbol.species, {\r\n get: function () {\r\n return EnhancerArray;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n EnhancerArray.prototype.concat = function () {\r\n var arr = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n arr[_i] = arguments[_i];\r\n }\r\n return _super.prototype.concat.apply(this, arr);\r\n };\r\n EnhancerArray.prototype.prepend = function () {\r\n var arr = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n arr[_i] = arguments[_i];\r\n }\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new (EnhancerArray.bind.apply(EnhancerArray, __spreadArray([void 0], arr[0].concat(this))))();\r\n }\r\n return new (EnhancerArray.bind.apply(EnhancerArray, __spreadArray([void 0], arr.concat(this))))();\r\n };\r\n return EnhancerArray;\r\n}(Array));\r\nfunction freezeDraftable(val) {\r\n return isDraftable(val) ? createNextState(val, function () {\r\n }) : val;\r\n}\r\n// src/immutableStateInvariantMiddleware.ts\r\nvar isProduction = process.env.NODE_ENV === \"production\";\r\nvar prefix = \"Invariant failed\";\r\nfunction invariant(condition, message) {\r\n if (condition) {\r\n return;\r\n }\r\n if (isProduction) {\r\n throw new Error(prefix);\r\n }\r\n throw new Error(prefix + \": \" + (message || \"\"));\r\n}\r\nfunction stringify(obj, serializer, indent, decycler) {\r\n return JSON.stringify(obj, getSerialize(serializer, decycler), indent);\r\n}\r\nfunction getSerialize(serializer, decycler) {\r\n var stack = [], keys = [];\r\n if (!decycler)\r\n decycler = function (_, value) {\r\n if (stack[0] === value)\r\n return \"[Circular ~]\";\r\n return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\";\r\n };\r\n return function (key, value) {\r\n if (stack.length > 0) {\r\n var thisPos = stack.indexOf(this);\r\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\r\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\r\n if (~stack.indexOf(value))\r\n value = decycler.call(this, key, value);\r\n }\r\n else\r\n stack.push(value);\r\n return serializer == null ? value : serializer.call(this, key, value);\r\n };\r\n}\r\nfunction isImmutableDefault(value) {\r\n return typeof value !== \"object\" || value == null || Object.isFrozen(value);\r\n}\r\nfunction trackForMutations(isImmutable, ignorePaths, obj) {\r\n var trackedProperties = trackProperties(isImmutable, ignorePaths, obj);\r\n return {\r\n detectMutations: function () {\r\n return detectMutations(isImmutable, ignorePaths, trackedProperties, obj);\r\n }\r\n };\r\n}\r\nfunction trackProperties(isImmutable, ignorePaths, obj, path, checkedObjects) {\r\n if (ignorePaths === void 0) { ignorePaths = []; }\r\n if (path === void 0) { path = \"\"; }\r\n if (checkedObjects === void 0) { checkedObjects = new Set(); }\r\n var tracked = { value: obj };\r\n if (!isImmutable(obj) && !checkedObjects.has(obj)) {\r\n checkedObjects.add(obj);\r\n tracked.children = {};\r\n for (var key in obj) {\r\n var childPath = path ? path + \".\" + key : key;\r\n if (ignorePaths.length && ignorePaths.indexOf(childPath) !== -1) {\r\n continue;\r\n }\r\n tracked.children[key] = trackProperties(isImmutable, ignorePaths, obj[key], childPath);\r\n }\r\n }\r\n return tracked;\r\n}\r\nfunction detectMutations(isImmutable, ignoredPaths, trackedProperty, obj, sameParentRef, path) {\r\n if (ignoredPaths === void 0) { ignoredPaths = []; }\r\n if (sameParentRef === void 0) { sameParentRef = false; }\r\n if (path === void 0) { path = \"\"; }\r\n var prevObj = trackedProperty ? trackedProperty.value : void 0;\r\n var sameRef = prevObj === obj;\r\n if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\r\n return { wasMutated: true, path: path };\r\n }\r\n if (isImmutable(prevObj) || isImmutable(obj)) {\r\n return { wasMutated: false };\r\n }\r\n var keysToDetect = {};\r\n for (var key in trackedProperty.children) {\r\n keysToDetect[key] = true;\r\n }\r\n for (var key in obj) {\r\n keysToDetect[key] = true;\r\n }\r\n var hasIgnoredPaths = ignoredPaths.length > 0;\r\n var _loop_1 = function (key) {\r\n var nestedPath = path ? path + \".\" + key : key;\r\n if (hasIgnoredPaths) {\r\n var hasMatches = ignoredPaths.some(function (ignored) {\r\n if (ignored instanceof RegExp) {\r\n return ignored.test(nestedPath);\r\n }\r\n return nestedPath === ignored;\r\n });\r\n if (hasMatches) {\r\n return \"continue\";\r\n }\r\n }\r\n var result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);\r\n if (result.wasMutated) {\r\n return { value: result };\r\n }\r\n };\r\n for (var key in keysToDetect) {\r\n var state_1 = _loop_1(key);\r\n if (typeof state_1 === \"object\")\r\n return state_1.value;\r\n }\r\n return { wasMutated: false };\r\n}\r\nfunction createImmutableStateInvariantMiddleware(options) {\r\n if (options === void 0) { options = {}; }\r\n if (process.env.NODE_ENV === \"production\") {\r\n return function () { return function (next) { return function (action) { return next(action); }; }; };\r\n }\r\n var _c = options.isImmutable, isImmutable = _c === void 0 ? isImmutableDefault : _c, ignoredPaths = options.ignoredPaths, _d = options.warnAfter, warnAfter = _d === void 0 ? 32 : _d, ignore = options.ignore;\r\n ignoredPaths = ignoredPaths || ignore;\r\n var track = trackForMutations.bind(null, isImmutable, ignoredPaths);\r\n return function (_c) {\r\n var getState = _c.getState;\r\n var state = getState();\r\n var tracker = track(state);\r\n var result;\r\n return function (next) { return function (action) {\r\n var measureUtils = getTimeMeasureUtils(warnAfter, \"ImmutableStateInvariantMiddleware\");\r\n measureUtils.measureTime(function () {\r\n state = getState();\r\n result = tracker.detectMutations();\r\n tracker = track(state);\r\n invariant(!result.wasMutated, \"A state mutation was detected between dispatches, in the path '\" + (result.path || \"\") + \"'. This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)\");\r\n });\r\n var dispatchedAction = next(action);\r\n measureUtils.measureTime(function () {\r\n state = getState();\r\n result = tracker.detectMutations();\r\n tracker = track(state);\r\n result.wasMutated && invariant(!result.wasMutated, \"A state mutation was detected inside a dispatch, in the path: \" + (result.path || \"\") + \". Take a look at the reducer(s) handling the action \" + stringify(action) + \". (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)\");\r\n });\r\n measureUtils.warnIfExceeded();\r\n return dispatchedAction;\r\n }; };\r\n };\r\n}\r\n// src/serializableStateInvariantMiddleware.ts\r\nfunction isPlain(val) {\r\n var type = typeof val;\r\n return val == null || type === \"string\" || type === \"boolean\" || type === \"number\" || Array.isArray(val) || isPlainObject(val);\r\n}\r\nfunction findNonSerializableValue(value, path, isSerializable, getEntries, ignoredPaths, cache) {\r\n if (path === void 0) { path = \"\"; }\r\n if (isSerializable === void 0) { isSerializable = isPlain; }\r\n if (ignoredPaths === void 0) { ignoredPaths = []; }\r\n var foundNestedSerializable;\r\n if (!isSerializable(value)) {\r\n return {\r\n keyPath: path || \"\",\r\n value: value\r\n };\r\n }\r\n if (typeof value !== \"object\" || value === null) {\r\n return false;\r\n }\r\n if (cache == null ? void 0 : cache.has(value))\r\n return false;\r\n var entries = getEntries != null ? getEntries(value) : Object.entries(value);\r\n var hasIgnoredPaths = ignoredPaths.length > 0;\r\n var _loop_2 = function (key, nestedValue) {\r\n var nestedPath = path ? path + \".\" + key : key;\r\n if (hasIgnoredPaths) {\r\n var hasMatches = ignoredPaths.some(function (ignored) {\r\n if (ignored instanceof RegExp) {\r\n return ignored.test(nestedPath);\r\n }\r\n return nestedPath === ignored;\r\n });\r\n if (hasMatches) {\r\n return \"continue\";\r\n }\r\n }\r\n if (!isSerializable(nestedValue)) {\r\n return { value: {\r\n keyPath: nestedPath,\r\n value: nestedValue\r\n } };\r\n }\r\n if (typeof nestedValue === \"object\") {\r\n foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);\r\n if (foundNestedSerializable) {\r\n return { value: foundNestedSerializable };\r\n }\r\n }\r\n };\r\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\r\n var _c = entries_1[_i], key = _c[0], nestedValue = _c[1];\r\n var state_2 = _loop_2(key, nestedValue);\r\n if (typeof state_2 === \"object\")\r\n return state_2.value;\r\n }\r\n if (cache && isNestedFrozen(value))\r\n cache.add(value);\r\n return false;\r\n}\r\nfunction isNestedFrozen(value) {\r\n if (!Object.isFrozen(value))\r\n return false;\r\n for (var _i = 0, _c = Object.values(value); _i < _c.length; _i++) {\r\n var nestedValue = _c[_i];\r\n if (typeof nestedValue !== \"object\" || nestedValue === null)\r\n continue;\r\n if (!isNestedFrozen(nestedValue))\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction createSerializableStateInvariantMiddleware(options) {\r\n if (options === void 0) { options = {}; }\r\n if (process.env.NODE_ENV === \"production\") {\r\n return function () { return function (next) { return function (action) { return next(action); }; }; };\r\n }\r\n var _c = options.isSerializable, isSerializable = _c === void 0 ? isPlain : _c, getEntries = options.getEntries, _d = options.ignoredActions, ignoredActions = _d === void 0 ? [] : _d, _e = options.ignoredActionPaths, ignoredActionPaths = _e === void 0 ? [\"meta.arg\", \"meta.baseQueryMeta\"] : _e, _f = options.ignoredPaths, ignoredPaths = _f === void 0 ? [] : _f, _g = options.warnAfter, warnAfter = _g === void 0 ? 32 : _g, _h = options.ignoreState, ignoreState = _h === void 0 ? false : _h, _j = options.ignoreActions, ignoreActions = _j === void 0 ? false : _j, _k = options.disableCache, disableCache = _k === void 0 ? false : _k;\r\n var cache = !disableCache && WeakSet ? new WeakSet() : void 0;\r\n return function (storeAPI) { return function (next) { return function (action) {\r\n var result = next(action);\r\n var measureUtils = getTimeMeasureUtils(warnAfter, \"SerializableStateInvariantMiddleware\");\r\n if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type) !== -1)) {\r\n measureUtils.measureTime(function () {\r\n var foundActionNonSerializableValue = findNonSerializableValue(action, \"\", isSerializable, getEntries, ignoredActionPaths, cache);\r\n if (foundActionNonSerializableValue) {\r\n var keyPath = foundActionNonSerializableValue.keyPath, value = foundActionNonSerializableValue.value;\r\n console.error(\"A non-serializable value was detected in an action, in the path: `\" + keyPath + \"`. Value:\", value, \"\\nTake a look at the logic that dispatched this action: \", action, \"\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)\", \"\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)\");\r\n }\r\n });\r\n }\r\n if (!ignoreState) {\r\n measureUtils.measureTime(function () {\r\n var state = storeAPI.getState();\r\n var foundStateNonSerializableValue = findNonSerializableValue(state, \"\", isSerializable, getEntries, ignoredPaths, cache);\r\n if (foundStateNonSerializableValue) {\r\n var keyPath = foundStateNonSerializableValue.keyPath, value = foundStateNonSerializableValue.value;\r\n console.error(\"A non-serializable value was detected in the state, in the path: `\" + keyPath + \"`. Value:\", value, \"\\nTake a look at the reducer(s) handling this action type: \" + action.type + \".\\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)\");\r\n }\r\n });\r\n measureUtils.warnIfExceeded();\r\n }\r\n return result;\r\n }; }; };\r\n}\r\n// src/getDefaultMiddleware.ts\r\nfunction isBoolean(x) {\r\n return typeof x === \"boolean\";\r\n}\r\nfunction curryGetDefaultMiddleware() {\r\n return function curriedGetDefaultMiddleware(options) {\r\n return getDefaultMiddleware(options);\r\n };\r\n}\r\nfunction getDefaultMiddleware(options) {\r\n if (options === void 0) { options = {}; }\r\n var _c = options.thunk, thunk = _c === void 0 ? true : _c, _d = options.immutableCheck, immutableCheck = _d === void 0 ? true : _d, _e = options.serializableCheck, serializableCheck = _e === void 0 ? true : _e, _f = options.actionCreatorCheck, actionCreatorCheck = _f === void 0 ? true : _f;\r\n var middlewareArray = new MiddlewareArray();\r\n if (thunk) {\r\n if (isBoolean(thunk)) {\r\n middlewareArray.push(thunkMiddleware);\r\n }\r\n else {\r\n middlewareArray.push(thunkMiddleware.withExtraArgument(thunk.extraArgument));\r\n }\r\n }\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (immutableCheck) {\r\n var immutableOptions = {};\r\n if (!isBoolean(immutableCheck)) {\r\n immutableOptions = immutableCheck;\r\n }\r\n middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\r\n }\r\n if (serializableCheck) {\r\n var serializableOptions = {};\r\n if (!isBoolean(serializableCheck)) {\r\n serializableOptions = serializableCheck;\r\n }\r\n middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\r\n }\r\n if (actionCreatorCheck) {\r\n var actionCreatorOptions = {};\r\n if (!isBoolean(actionCreatorCheck)) {\r\n actionCreatorOptions = actionCreatorCheck;\r\n }\r\n middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\r\n }\r\n }\r\n return middlewareArray;\r\n}\r\n// src/configureStore.ts\r\nvar IS_PRODUCTION = process.env.NODE_ENV === \"production\";\r\nfunction configureStore(options) {\r\n var curriedGetDefaultMiddleware = curryGetDefaultMiddleware();\r\n var _c = options || {}, _d = _c.reducer, reducer = _d === void 0 ? void 0 : _d, _e = _c.middleware, middleware = _e === void 0 ? curriedGetDefaultMiddleware() : _e, _f = _c.devTools, devTools = _f === void 0 ? true : _f, _g = _c.preloadedState, preloadedState = _g === void 0 ? void 0 : _g, _h = _c.enhancers, enhancers = _h === void 0 ? void 0 : _h;\r\n var rootReducer;\r\n if (typeof reducer === \"function\") {\r\n rootReducer = reducer;\r\n }\r\n else if (isPlainObject(reducer)) {\r\n rootReducer = combineReducers(reducer);\r\n }\r\n else {\r\n throw new Error('\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');\r\n }\r\n var finalMiddleware = middleware;\r\n if (typeof finalMiddleware === \"function\") {\r\n finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware);\r\n if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {\r\n throw new Error(\"when using a middleware builder function, an array of middleware must be returned\");\r\n }\r\n }\r\n if (!IS_PRODUCTION && finalMiddleware.some(function (item) { return typeof item !== \"function\"; })) {\r\n throw new Error(\"each middleware provided to configureStore must be a function\");\r\n }\r\n var middlewareEnhancer = applyMiddleware.apply(void 0, finalMiddleware);\r\n var finalCompose = compose2;\r\n if (devTools) {\r\n finalCompose = composeWithDevTools(__spreadValues({\r\n trace: !IS_PRODUCTION\r\n }, typeof devTools === \"object\" && devTools));\r\n }\r\n var defaultEnhancers = new EnhancerArray(middlewareEnhancer);\r\n var storeEnhancers = defaultEnhancers;\r\n if (Array.isArray(enhancers)) {\r\n storeEnhancers = __spreadArray([middlewareEnhancer], enhancers);\r\n }\r\n else if (typeof enhancers === \"function\") {\r\n storeEnhancers = enhancers(defaultEnhancers);\r\n }\r\n var composedEnhancer = finalCompose.apply(void 0, storeEnhancers);\r\n return createStore(rootReducer, preloadedState, composedEnhancer);\r\n}\r\n// src/createReducer.ts\r\nimport createNextState2, { isDraft as isDraft2, isDraftable as isDraftable2 } from \"immer\";\r\n// src/mapBuilders.ts\r\nfunction executeReducerBuilderCallback(builderCallback) {\r\n var actionsMap = {};\r\n var actionMatchers = [];\r\n var defaultCaseReducer;\r\n var builder = {\r\n addCase: function (typeOrActionCreator, reducer) {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (actionMatchers.length > 0) {\r\n throw new Error(\"`builder.addCase` should only be called before calling `builder.addMatcher`\");\r\n }\r\n if (defaultCaseReducer) {\r\n throw new Error(\"`builder.addCase` should only be called before calling `builder.addDefaultCase`\");\r\n }\r\n }\r\n var type = typeof typeOrActionCreator === \"string\" ? typeOrActionCreator : typeOrActionCreator.type;\r\n if (!type) {\r\n throw new Error(\"`builder.addCase` cannot be called with an empty action type\");\r\n }\r\n if (type in actionsMap) {\r\n throw new Error(\"`builder.addCase` cannot be called with two reducers for the same action type\");\r\n }\r\n actionsMap[type] = reducer;\r\n return builder;\r\n },\r\n addMatcher: function (matcher, reducer) {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (defaultCaseReducer) {\r\n throw new Error(\"`builder.addMatcher` should only be called before calling `builder.addDefaultCase`\");\r\n }\r\n }\r\n actionMatchers.push({ matcher: matcher, reducer: reducer });\r\n return builder;\r\n },\r\n addDefaultCase: function (reducer) {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (defaultCaseReducer) {\r\n throw new Error(\"`builder.addDefaultCase` can only be called once\");\r\n }\r\n }\r\n defaultCaseReducer = reducer;\r\n return builder;\r\n }\r\n };\r\n builderCallback(builder);\r\n return [actionsMap, actionMatchers, defaultCaseReducer];\r\n}\r\n// src/createReducer.ts\r\nfunction isStateFunction(x) {\r\n return typeof x === \"function\";\r\n}\r\nvar hasWarnedAboutObjectNotation = false;\r\nfunction createReducer(initialState, mapOrBuilderCallback, actionMatchers, defaultCaseReducer) {\r\n if (actionMatchers === void 0) { actionMatchers = []; }\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (typeof mapOrBuilderCallback === \"object\") {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true;\r\n console.warn(\"The object notation for `createReducer` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\r\n }\r\n }\r\n }\r\n var _c = typeof mapOrBuilderCallback === \"function\" ? executeReducerBuilderCallback(mapOrBuilderCallback) : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer], actionsMap = _c[0], finalActionMatchers = _c[1], finalDefaultCaseReducer = _c[2];\r\n var getInitialState;\r\n if (isStateFunction(initialState)) {\r\n getInitialState = function () { return freezeDraftable(initialState()); };\r\n }\r\n else {\r\n var frozenInitialState_1 = freezeDraftable(initialState);\r\n getInitialState = function () { return frozenInitialState_1; };\r\n }\r\n function reducer(state, action) {\r\n if (state === void 0) { state = getInitialState(); }\r\n var caseReducers = __spreadArray([\r\n actionsMap[action.type]\r\n ], finalActionMatchers.filter(function (_c) {\r\n var matcher = _c.matcher;\r\n return matcher(action);\r\n }).map(function (_c) {\r\n var reducer2 = _c.reducer;\r\n return reducer2;\r\n }));\r\n if (caseReducers.filter(function (cr) { return !!cr; }).length === 0) {\r\n caseReducers = [finalDefaultCaseReducer];\r\n }\r\n return caseReducers.reduce(function (previousState, caseReducer) {\r\n if (caseReducer) {\r\n if (isDraft2(previousState)) {\r\n var draft = previousState;\r\n var result = caseReducer(draft, action);\r\n if (result === void 0) {\r\n return previousState;\r\n }\r\n return result;\r\n }\r\n else if (!isDraftable2(previousState)) {\r\n var result = caseReducer(previousState, action);\r\n if (result === void 0) {\r\n if (previousState === null) {\r\n return previousState;\r\n }\r\n throw Error(\"A case reducer on a non-draftable value must not return undefined\");\r\n }\r\n return result;\r\n }\r\n else {\r\n return createNextState2(previousState, function (draft) {\r\n return caseReducer(draft, action);\r\n });\r\n }\r\n }\r\n return previousState;\r\n }, state);\r\n }\r\n reducer.getInitialState = getInitialState;\r\n return reducer;\r\n}\r\n// src/createSlice.ts\r\nvar hasWarnedAboutObjectNotation2 = false;\r\nfunction getType2(slice, actionKey) {\r\n return slice + \"/\" + actionKey;\r\n}\r\nfunction createSlice(options) {\r\n var name = options.name;\r\n if (!name) {\r\n throw new Error(\"`name` is a required option for createSlice\");\r\n }\r\n if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"development\") {\r\n if (options.initialState === void 0) {\r\n console.error(\"You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`\");\r\n }\r\n }\r\n var initialState = typeof options.initialState == \"function\" ? options.initialState : freezeDraftable(options.initialState);\r\n var reducers = options.reducers || {};\r\n var reducerNames = Object.keys(reducers);\r\n var sliceCaseReducersByName = {};\r\n var sliceCaseReducersByType = {};\r\n var actionCreators = {};\r\n reducerNames.forEach(function (reducerName) {\r\n var maybeReducerWithPrepare = reducers[reducerName];\r\n var type = getType2(name, reducerName);\r\n var caseReducer;\r\n var prepareCallback;\r\n if (\"reducer\" in maybeReducerWithPrepare) {\r\n caseReducer = maybeReducerWithPrepare.reducer;\r\n prepareCallback = maybeReducerWithPrepare.prepare;\r\n }\r\n else {\r\n caseReducer = maybeReducerWithPrepare;\r\n }\r\n sliceCaseReducersByName[reducerName] = caseReducer;\r\n sliceCaseReducersByType[type] = caseReducer;\r\n actionCreators[reducerName] = prepareCallback ? createAction(type, prepareCallback) : createAction(type);\r\n });\r\n function buildReducer() {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (typeof options.extraReducers === \"object\") {\r\n if (!hasWarnedAboutObjectNotation2) {\r\n hasWarnedAboutObjectNotation2 = true;\r\n console.warn(\"The object notation for `createSlice.extraReducers` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\r\n }\r\n }\r\n }\r\n var _c = typeof options.extraReducers === \"function\" ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers], _d = _c[0], extraReducers = _d === void 0 ? {} : _d, _e = _c[1], actionMatchers = _e === void 0 ? [] : _e, _f = _c[2], defaultCaseReducer = _f === void 0 ? void 0 : _f;\r\n var finalCaseReducers = __spreadValues(__spreadValues({}, extraReducers), sliceCaseReducersByType);\r\n return createReducer(initialState, function (builder) {\r\n for (var key in finalCaseReducers) {\r\n builder.addCase(key, finalCaseReducers[key]);\r\n }\r\n for (var _i = 0, actionMatchers_1 = actionMatchers; _i < actionMatchers_1.length; _i++) {\r\n var m = actionMatchers_1[_i];\r\n builder.addMatcher(m.matcher, m.reducer);\r\n }\r\n if (defaultCaseReducer) {\r\n builder.addDefaultCase(defaultCaseReducer);\r\n }\r\n });\r\n }\r\n var _reducer;\r\n return {\r\n name: name,\r\n reducer: function (state, action) {\r\n if (!_reducer)\r\n _reducer = buildReducer();\r\n return _reducer(state, action);\r\n },\r\n actions: actionCreators,\r\n caseReducers: sliceCaseReducersByName,\r\n getInitialState: function () {\r\n if (!_reducer)\r\n _reducer = buildReducer();\r\n return _reducer.getInitialState();\r\n }\r\n };\r\n}\r\n// src/entities/entity_state.ts\r\nfunction getInitialEntityState() {\r\n return {\r\n ids: [],\r\n entities: {}\r\n };\r\n}\r\nfunction createInitialStateFactory() {\r\n function getInitialState(additionalState) {\r\n if (additionalState === void 0) { additionalState = {}; }\r\n return Object.assign(getInitialEntityState(), additionalState);\r\n }\r\n return { getInitialState: getInitialState };\r\n}\r\n// src/entities/state_selectors.ts\r\nfunction createSelectorsFactory() {\r\n function getSelectors(selectState) {\r\n var selectIds = function (state) { return state.ids; };\r\n var selectEntities = function (state) { return state.entities; };\r\n var selectAll = createDraftSafeSelector(selectIds, selectEntities, function (ids, entities) { return ids.map(function (id) { return entities[id]; }); });\r\n var selectId = function (_, id) { return id; };\r\n var selectById = function (entities, id) { return entities[id]; };\r\n var selectTotal = createDraftSafeSelector(selectIds, function (ids) { return ids.length; });\r\n if (!selectState) {\r\n return {\r\n selectIds: selectIds,\r\n selectEntities: selectEntities,\r\n selectAll: selectAll,\r\n selectTotal: selectTotal,\r\n selectById: createDraftSafeSelector(selectEntities, selectId, selectById)\r\n };\r\n }\r\n var selectGlobalizedEntities = createDraftSafeSelector(selectState, selectEntities);\r\n return {\r\n selectIds: createDraftSafeSelector(selectState, selectIds),\r\n selectEntities: selectGlobalizedEntities,\r\n selectAll: createDraftSafeSelector(selectState, selectAll),\r\n selectTotal: createDraftSafeSelector(selectState, selectTotal),\r\n selectById: createDraftSafeSelector(selectGlobalizedEntities, selectId, selectById)\r\n };\r\n }\r\n return { getSelectors: getSelectors };\r\n}\r\n// src/entities/state_adapter.ts\r\nimport createNextState3, { isDraft as isDraft3 } from \"immer\";\r\nfunction createSingleArgumentStateOperator(mutator) {\r\n var operator = createStateOperator(function (_, state) { return mutator(state); });\r\n return function operation(state) {\r\n return operator(state, void 0);\r\n };\r\n}\r\nfunction createStateOperator(mutator) {\r\n return function operation(state, arg) {\r\n function isPayloadActionArgument(arg2) {\r\n return isFSA(arg2);\r\n }\r\n var runMutator = function (draft) {\r\n if (isPayloadActionArgument(arg)) {\r\n mutator(arg.payload, draft);\r\n }\r\n else {\r\n mutator(arg, draft);\r\n }\r\n };\r\n if (isDraft3(state)) {\r\n runMutator(state);\r\n return state;\r\n }\r\n else {\r\n return createNextState3(state, runMutator);\r\n }\r\n };\r\n}\r\n// src/entities/utils.ts\r\nfunction selectIdValue(entity, selectId) {\r\n var key = selectId(entity);\r\n if (process.env.NODE_ENV !== \"production\" && key === void 0) {\r\n console.warn(\"The entity passed to the `selectId` implementation returned undefined.\", \"You should probably provide your own `selectId` implementation.\", \"The entity that was passed:\", entity, \"The `selectId` implementation:\", selectId.toString());\r\n }\r\n return key;\r\n}\r\nfunction ensureEntitiesArray(entities) {\r\n if (!Array.isArray(entities)) {\r\n entities = Object.values(entities);\r\n }\r\n return entities;\r\n}\r\nfunction splitAddedUpdatedEntities(newEntities, selectId, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n var added = [];\r\n var updated = [];\r\n for (var _i = 0, newEntities_1 = newEntities; _i < newEntities_1.length; _i++) {\r\n var entity = newEntities_1[_i];\r\n var id = selectIdValue(entity, selectId);\r\n if (id in state.entities) {\r\n updated.push({ id: id, changes: entity });\r\n }\r\n else {\r\n added.push(entity);\r\n }\r\n }\r\n return [added, updated];\r\n}\r\n// src/entities/unsorted_state_adapter.ts\r\nfunction createUnsortedStateAdapter(selectId) {\r\n function addOneMutably(entity, state) {\r\n var key = selectIdValue(entity, selectId);\r\n if (key in state.entities) {\r\n return;\r\n }\r\n state.ids.push(key);\r\n state.entities[key] = entity;\r\n }\r\n function addManyMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n for (var _i = 0, newEntities_2 = newEntities; _i < newEntities_2.length; _i++) {\r\n var entity = newEntities_2[_i];\r\n addOneMutably(entity, state);\r\n }\r\n }\r\n function setOneMutably(entity, state) {\r\n var key = selectIdValue(entity, selectId);\r\n if (!(key in state.entities)) {\r\n state.ids.push(key);\r\n }\r\n state.entities[key] = entity;\r\n }\r\n function setManyMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n for (var _i = 0, newEntities_3 = newEntities; _i < newEntities_3.length; _i++) {\r\n var entity = newEntities_3[_i];\r\n setOneMutably(entity, state);\r\n }\r\n }\r\n function setAllMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n state.ids = [];\r\n state.entities = {};\r\n addManyMutably(newEntities, state);\r\n }\r\n function removeOneMutably(key, state) {\r\n return removeManyMutably([key], state);\r\n }\r\n function removeManyMutably(keys, state) {\r\n var didMutate = false;\r\n keys.forEach(function (key) {\r\n if (key in state.entities) {\r\n delete state.entities[key];\r\n didMutate = true;\r\n }\r\n });\r\n if (didMutate) {\r\n state.ids = state.ids.filter(function (id) { return id in state.entities; });\r\n }\r\n }\r\n function removeAllMutably(state) {\r\n Object.assign(state, {\r\n ids: [],\r\n entities: {}\r\n });\r\n }\r\n function takeNewKey(keys, update, state) {\r\n var original2 = state.entities[update.id];\r\n var updated = Object.assign({}, original2, update.changes);\r\n var newKey = selectIdValue(updated, selectId);\r\n var hasNewKey = newKey !== update.id;\r\n if (hasNewKey) {\r\n keys[update.id] = newKey;\r\n delete state.entities[update.id];\r\n }\r\n state.entities[newKey] = updated;\r\n return hasNewKey;\r\n }\r\n function updateOneMutably(update, state) {\r\n return updateManyMutably([update], state);\r\n }\r\n function updateManyMutably(updates, state) {\r\n var newKeys = {};\r\n var updatesPerEntity = {};\r\n updates.forEach(function (update) {\r\n if (update.id in state.entities) {\r\n updatesPerEntity[update.id] = {\r\n id: update.id,\r\n changes: __spreadValues(__spreadValues({}, updatesPerEntity[update.id] ? updatesPerEntity[update.id].changes : null), update.changes)\r\n };\r\n }\r\n });\r\n updates = Object.values(updatesPerEntity);\r\n var didMutateEntities = updates.length > 0;\r\n if (didMutateEntities) {\r\n var didMutateIds = updates.filter(function (update) { return takeNewKey(newKeys, update, state); }).length > 0;\r\n if (didMutateIds) {\r\n state.ids = Object.keys(state.entities);\r\n }\r\n }\r\n }\r\n function upsertOneMutably(entity, state) {\r\n return upsertManyMutably([entity], state);\r\n }\r\n function upsertManyMutably(newEntities, state) {\r\n var _c = splitAddedUpdatedEntities(newEntities, selectId, state), added = _c[0], updated = _c[1];\r\n updateManyMutably(updated, state);\r\n addManyMutably(added, state);\r\n }\r\n return {\r\n removeAll: createSingleArgumentStateOperator(removeAllMutably),\r\n addOne: createStateOperator(addOneMutably),\r\n addMany: createStateOperator(addManyMutably),\r\n setOne: createStateOperator(setOneMutably),\r\n setMany: createStateOperator(setManyMutably),\r\n setAll: createStateOperator(setAllMutably),\r\n updateOne: createStateOperator(updateOneMutably),\r\n updateMany: createStateOperator(updateManyMutably),\r\n upsertOne: createStateOperator(upsertOneMutably),\r\n upsertMany: createStateOperator(upsertManyMutably),\r\n removeOne: createStateOperator(removeOneMutably),\r\n removeMany: createStateOperator(removeManyMutably)\r\n };\r\n}\r\n// src/entities/sorted_state_adapter.ts\r\nfunction createSortedStateAdapter(selectId, sort) {\r\n var _c = createUnsortedStateAdapter(selectId), removeOne = _c.removeOne, removeMany = _c.removeMany, removeAll = _c.removeAll;\r\n function addOneMutably(entity, state) {\r\n return addManyMutably([entity], state);\r\n }\r\n function addManyMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n var models = newEntities.filter(function (model) { return !(selectIdValue(model, selectId) in state.entities); });\r\n if (models.length !== 0) {\r\n merge(models, state);\r\n }\r\n }\r\n function setOneMutably(entity, state) {\r\n return setManyMutably([entity], state);\r\n }\r\n function setManyMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n if (newEntities.length !== 0) {\r\n merge(newEntities, state);\r\n }\r\n }\r\n function setAllMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n state.entities = {};\r\n state.ids = [];\r\n addManyMutably(newEntities, state);\r\n }\r\n function updateOneMutably(update, state) {\r\n return updateManyMutably([update], state);\r\n }\r\n function updateManyMutably(updates, state) {\r\n var appliedUpdates = false;\r\n for (var _i = 0, updates_1 = updates; _i < updates_1.length; _i++) {\r\n var update = updates_1[_i];\r\n var entity = state.entities[update.id];\r\n if (!entity) {\r\n continue;\r\n }\r\n appliedUpdates = true;\r\n Object.assign(entity, update.changes);\r\n var newId = selectId(entity);\r\n if (update.id !== newId) {\r\n delete state.entities[update.id];\r\n state.entities[newId] = entity;\r\n }\r\n }\r\n if (appliedUpdates) {\r\n resortEntities(state);\r\n }\r\n }\r\n function upsertOneMutably(entity, state) {\r\n return upsertManyMutably([entity], state);\r\n }\r\n function upsertManyMutably(newEntities, state) {\r\n var _c = splitAddedUpdatedEntities(newEntities, selectId, state), added = _c[0], updated = _c[1];\r\n updateManyMutably(updated, state);\r\n addManyMutably(added, state);\r\n }\r\n function areArraysEqual(a, b) {\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length && i < b.length; i++) {\r\n if (a[i] === b[i]) {\r\n continue;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n function merge(models, state) {\r\n models.forEach(function (model) {\r\n state.entities[selectId(model)] = model;\r\n });\r\n resortEntities(state);\r\n }\r\n function resortEntities(state) {\r\n var allEntities = Object.values(state.entities);\r\n allEntities.sort(sort);\r\n var newSortedIds = allEntities.map(selectId);\r\n var ids = state.ids;\r\n if (!areArraysEqual(ids, newSortedIds)) {\r\n state.ids = newSortedIds;\r\n }\r\n }\r\n return {\r\n removeOne: removeOne,\r\n removeMany: removeMany,\r\n removeAll: removeAll,\r\n addOne: createStateOperator(addOneMutably),\r\n updateOne: createStateOperator(updateOneMutably),\r\n upsertOne: createStateOperator(upsertOneMutably),\r\n setOne: createStateOperator(setOneMutably),\r\n setMany: createStateOperator(setManyMutably),\r\n setAll: createStateOperator(setAllMutably),\r\n addMany: createStateOperator(addManyMutably),\r\n updateMany: createStateOperator(updateManyMutably),\r\n upsertMany: createStateOperator(upsertManyMutably)\r\n };\r\n}\r\n// src/entities/create_adapter.ts\r\nfunction createEntityAdapter(options) {\r\n if (options === void 0) { options = {}; }\r\n var _c = __spreadValues({\r\n sortComparer: false,\r\n selectId: function (instance) { return instance.id; }\r\n }, options), selectId = _c.selectId, sortComparer = _c.sortComparer;\r\n var stateFactory = createInitialStateFactory();\r\n var selectorsFactory = createSelectorsFactory();\r\n var stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);\r\n return __spreadValues(__spreadValues(__spreadValues({\r\n selectId: selectId,\r\n sortComparer: sortComparer\r\n }, stateFactory), selectorsFactory), stateAdapter);\r\n}\r\n// src/nanoid.ts\r\nvar urlAlphabet = \"ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW\";\r\nvar nanoid = function (size) {\r\n if (size === void 0) { size = 21; }\r\n var id = \"\";\r\n var i = size;\r\n while (i--) {\r\n id += urlAlphabet[Math.random() * 64 | 0];\r\n }\r\n return id;\r\n};\r\n// src/createAsyncThunk.ts\r\nvar commonProperties = [\r\n \"name\",\r\n \"message\",\r\n \"stack\",\r\n \"code\"\r\n];\r\nvar RejectWithValue = /** @class */ (function () {\r\n function RejectWithValue(payload, meta) {\r\n this.payload = payload;\r\n this.meta = meta;\r\n }\r\n return RejectWithValue;\r\n}());\r\nvar FulfillWithMeta = /** @class */ (function () {\r\n function FulfillWithMeta(payload, meta) {\r\n this.payload = payload;\r\n this.meta = meta;\r\n }\r\n return FulfillWithMeta;\r\n}());\r\nvar miniSerializeError = function (value) {\r\n if (typeof value === \"object\" && value !== null) {\r\n var simpleError = {};\r\n for (var _i = 0, commonProperties_1 = commonProperties; _i < commonProperties_1.length; _i++) {\r\n var property = commonProperties_1[_i];\r\n if (typeof value[property] === \"string\") {\r\n simpleError[property] = value[property];\r\n }\r\n }\r\n return simpleError;\r\n }\r\n return { message: String(value) };\r\n};\r\nvar createAsyncThunk = (function () {\r\n function createAsyncThunk2(typePrefix, payloadCreator, options) {\r\n var fulfilled = createAction(typePrefix + \"/fulfilled\", function (payload, requestId, arg, meta) { return ({\r\n payload: payload,\r\n meta: __spreadProps(__spreadValues({}, meta || {}), {\r\n arg: arg,\r\n requestId: requestId,\r\n requestStatus: \"fulfilled\"\r\n })\r\n }); });\r\n var pending = createAction(typePrefix + \"/pending\", function (requestId, arg, meta) { return ({\r\n payload: void 0,\r\n meta: __spreadProps(__spreadValues({}, meta || {}), {\r\n arg: arg,\r\n requestId: requestId,\r\n requestStatus: \"pending\"\r\n })\r\n }); });\r\n var rejected = createAction(typePrefix + \"/rejected\", function (error, requestId, arg, payload, meta) { return ({\r\n payload: payload,\r\n error: (options && options.serializeError || miniSerializeError)(error || \"Rejected\"),\r\n meta: __spreadProps(__spreadValues({}, meta || {}), {\r\n arg: arg,\r\n requestId: requestId,\r\n rejectedWithValue: !!payload,\r\n requestStatus: \"rejected\",\r\n aborted: (error == null ? void 0 : error.name) === \"AbortError\",\r\n condition: (error == null ? void 0 : error.name) === \"ConditionError\"\r\n })\r\n }); });\r\n var displayedWarning = false;\r\n var AC = typeof AbortController !== \"undefined\" ? AbortController : /** @class */ (function () {\r\n function class_1() {\r\n this.signal = {\r\n aborted: false,\r\n addEventListener: function () {\r\n },\r\n dispatchEvent: function () {\r\n return false;\r\n },\r\n onabort: function () {\r\n },\r\n removeEventListener: function () {\r\n },\r\n reason: void 0,\r\n throwIfAborted: function () {\r\n }\r\n };\r\n }\r\n class_1.prototype.abort = function () {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (!displayedWarning) {\r\n displayedWarning = true;\r\n console.info(\"This platform does not implement AbortController. \\nIf you want to use the AbortController to react to `abort` events, please consider importing a polyfill like 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'.\");\r\n }\r\n }\r\n };\r\n return class_1;\r\n }());\r\n function actionCreator(arg) {\r\n return function (dispatch, getState, extra) {\r\n var requestId = (options == null ? void 0 : options.idGenerator) ? options.idGenerator(arg) : nanoid();\r\n var abortController = new AC();\r\n var abortReason;\r\n var started = false;\r\n function abort(reason) {\r\n abortReason = reason;\r\n abortController.abort();\r\n }\r\n var promise2 = function () {\r\n return __async(this, null, function () {\r\n var _a, _b, finalAction, conditionResult, abortedPromise, err_1, skipDispatch;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _c.trys.push([0, 4, , 5]);\r\n conditionResult = (_a = options == null ? void 0 : options.condition) == null ? void 0 : _a.call(options, arg, { getState: getState, extra: extra });\r\n if (!isThenable(conditionResult)) return [3 /*break*/, 2];\r\n return [4 /*yield*/, conditionResult];\r\n case 1:\r\n conditionResult = _c.sent();\r\n _c.label = 2;\r\n case 2:\r\n if (conditionResult === false || abortController.signal.aborted) {\r\n throw {\r\n name: \"ConditionError\",\r\n message: \"Aborted due to condition callback returning false.\"\r\n };\r\n }\r\n started = true;\r\n abortedPromise = new Promise(function (_, reject) { return abortController.signal.addEventListener(\"abort\", function () { return reject({\r\n name: \"AbortError\",\r\n message: abortReason || \"Aborted\"\r\n }); }); });\r\n dispatch(pending(requestId, arg, (_b = options == null ? void 0 : options.getPendingMeta) == null ? void 0 : _b.call(options, { requestId: requestId, arg: arg }, { getState: getState, extra: extra })));\r\n return [4 /*yield*/, Promise.race([\r\n abortedPromise,\r\n Promise.resolve(payloadCreator(arg, {\r\n dispatch: dispatch,\r\n getState: getState,\r\n extra: extra,\r\n requestId: requestId,\r\n signal: abortController.signal,\r\n abort: abort,\r\n rejectWithValue: function (value, meta) {\r\n return new RejectWithValue(value, meta);\r\n },\r\n fulfillWithValue: function (value, meta) {\r\n return new FulfillWithMeta(value, meta);\r\n }\r\n })).then(function (result) {\r\n if (result instanceof RejectWithValue) {\r\n throw result;\r\n }\r\n if (result instanceof FulfillWithMeta) {\r\n return fulfilled(result.payload, requestId, arg, result.meta);\r\n }\r\n return fulfilled(result, requestId, arg);\r\n })\r\n ])];\r\n case 3:\r\n finalAction = _c.sent();\r\n return [3 /*break*/, 5];\r\n case 4:\r\n err_1 = _c.sent();\r\n finalAction = err_1 instanceof RejectWithValue ? rejected(null, requestId, arg, err_1.payload, err_1.meta) : rejected(err_1, requestId, arg);\r\n return [3 /*break*/, 5];\r\n case 5:\r\n skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && finalAction.meta.condition;\r\n if (!skipDispatch) {\r\n dispatch(finalAction);\r\n }\r\n return [2 /*return*/, finalAction];\r\n }\r\n });\r\n });\r\n }();\r\n return Object.assign(promise2, {\r\n abort: abort,\r\n requestId: requestId,\r\n arg: arg,\r\n unwrap: function () {\r\n return promise2.then(unwrapResult);\r\n }\r\n });\r\n };\r\n }\r\n return Object.assign(actionCreator, {\r\n pending: pending,\r\n rejected: rejected,\r\n fulfilled: fulfilled,\r\n typePrefix: typePrefix\r\n });\r\n }\r\n createAsyncThunk2.withTypes = function () { return createAsyncThunk2; };\r\n return createAsyncThunk2;\r\n})();\r\nfunction unwrapResult(action) {\r\n if (action.meta && action.meta.rejectedWithValue) {\r\n throw action.payload;\r\n }\r\n if (action.error) {\r\n throw action.error;\r\n }\r\n return action.payload;\r\n}\r\nfunction isThenable(value) {\r\n return value !== null && typeof value === \"object\" && typeof value.then === \"function\";\r\n}\r\n// src/matchers.ts\r\nvar matches = function (matcher, action) {\r\n if (hasMatchFunction(matcher)) {\r\n return matcher.match(action);\r\n }\r\n else {\r\n return matcher(action);\r\n }\r\n};\r\nfunction isAnyOf() {\r\n var matchers = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n matchers[_i] = arguments[_i];\r\n }\r\n return function (action) {\r\n return matchers.some(function (matcher) { return matches(matcher, action); });\r\n };\r\n}\r\nfunction isAllOf() {\r\n var matchers = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n matchers[_i] = arguments[_i];\r\n }\r\n return function (action) {\r\n return matchers.every(function (matcher) { return matches(matcher, action); });\r\n };\r\n}\r\nfunction hasExpectedRequestMetadata(action, validStatus) {\r\n if (!action || !action.meta)\r\n return false;\r\n var hasValidRequestId = typeof action.meta.requestId === \"string\";\r\n var hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;\r\n return hasValidRequestId && hasValidRequestStatus;\r\n}\r\nfunction isAsyncThunkArray(a) {\r\n return typeof a[0] === \"function\" && \"pending\" in a[0] && \"fulfilled\" in a[0] && \"rejected\" in a[0];\r\n}\r\nfunction isPending() {\r\n var asyncThunks = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n asyncThunks[_i] = arguments[_i];\r\n }\r\n if (asyncThunks.length === 0) {\r\n return function (action) { return hasExpectedRequestMetadata(action, [\"pending\"]); };\r\n }\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isPending()(asyncThunks[0]);\r\n }\r\n return function (action) {\r\n var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.pending; });\r\n var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n return combinedMatcher(action);\r\n };\r\n}\r\nfunction isRejected() {\r\n var asyncThunks = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n asyncThunks[_i] = arguments[_i];\r\n }\r\n if (asyncThunks.length === 0) {\r\n return function (action) { return hasExpectedRequestMetadata(action, [\"rejected\"]); };\r\n }\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isRejected()(asyncThunks[0]);\r\n }\r\n return function (action) {\r\n var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.rejected; });\r\n var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n return combinedMatcher(action);\r\n };\r\n}\r\nfunction isRejectedWithValue() {\r\n var asyncThunks = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n asyncThunks[_i] = arguments[_i];\r\n }\r\n var hasFlag = function (action) {\r\n return action && action.meta && action.meta.rejectedWithValue;\r\n };\r\n if (asyncThunks.length === 0) {\r\n return function (action) {\r\n var combinedMatcher = isAllOf(isRejected.apply(void 0, asyncThunks), hasFlag);\r\n return combinedMatcher(action);\r\n };\r\n }\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isRejectedWithValue()(asyncThunks[0]);\r\n }\r\n return function (action) {\r\n var combinedMatcher = isAllOf(isRejected.apply(void 0, asyncThunks), hasFlag);\r\n return combinedMatcher(action);\r\n };\r\n}\r\nfunction isFulfilled() {\r\n var asyncThunks = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n asyncThunks[_i] = arguments[_i];\r\n }\r\n if (asyncThunks.length === 0) {\r\n return function (action) { return hasExpectedRequestMetadata(action, [\"fulfilled\"]); };\r\n }\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isFulfilled()(asyncThunks[0]);\r\n }\r\n return function (action) {\r\n var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.fulfilled; });\r\n var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n return combinedMatcher(action);\r\n };\r\n}\r\nfunction isAsyncThunkAction() {\r\n var asyncThunks = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n asyncThunks[_i] = arguments[_i];\r\n }\r\n if (asyncThunks.length === 0) {\r\n return function (action) { return hasExpectedRequestMetadata(action, [\"pending\", \"fulfilled\", \"rejected\"]); };\r\n }\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isAsyncThunkAction()(asyncThunks[0]);\r\n }\r\n return function (action) {\r\n var matchers = [];\r\n for (var _i = 0, asyncThunks_1 = asyncThunks; _i < asyncThunks_1.length; _i++) {\r\n var asyncThunk = asyncThunks_1[_i];\r\n matchers.push(asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled);\r\n }\r\n var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n return combinedMatcher(action);\r\n };\r\n}\r\n// src/listenerMiddleware/utils.ts\r\nvar assertFunction = function (func, expected) {\r\n if (typeof func !== \"function\") {\r\n throw new TypeError(expected + \" is not a function\");\r\n }\r\n};\r\nvar noop = function () {\r\n};\r\nvar catchRejection = function (promise2, onError) {\r\n if (onError === void 0) { onError = noop; }\r\n promise2.catch(onError);\r\n return promise2;\r\n};\r\nvar addAbortSignalListener = function (abortSignal, callback) {\r\n abortSignal.addEventListener(\"abort\", callback, { once: true });\r\n return function () { return abortSignal.removeEventListener(\"abort\", callback); };\r\n};\r\nvar abortControllerWithReason = function (abortController, reason) {\r\n var signal = abortController.signal;\r\n if (signal.aborted) {\r\n return;\r\n }\r\n if (!(\"reason\" in signal)) {\r\n Object.defineProperty(signal, \"reason\", {\r\n enumerable: true,\r\n value: reason,\r\n configurable: true,\r\n writable: true\r\n });\r\n }\r\n ;\r\n abortController.abort(reason);\r\n};\r\n// src/listenerMiddleware/exceptions.ts\r\nvar task = \"task\";\r\nvar listener = \"listener\";\r\nvar completed = \"completed\";\r\nvar cancelled = \"cancelled\";\r\nvar taskCancelled = \"task-\" + cancelled;\r\nvar taskCompleted = \"task-\" + completed;\r\nvar listenerCancelled = listener + \"-\" + cancelled;\r\nvar listenerCompleted = listener + \"-\" + completed;\r\nvar TaskAbortError = /** @class */ (function () {\r\n function TaskAbortError(code) {\r\n this.code = code;\r\n this.name = \"TaskAbortError\";\r\n this.message = task + \" \" + cancelled + \" (reason: \" + code + \")\";\r\n }\r\n return TaskAbortError;\r\n}());\r\n// src/listenerMiddleware/task.ts\r\nvar validateActive = function (signal) {\r\n if (signal.aborted) {\r\n throw new TaskAbortError(signal.reason);\r\n }\r\n};\r\nfunction raceWithSignal(signal, promise2) {\r\n var cleanup = noop;\r\n return new Promise(function (resolve, reject) {\r\n var notifyRejection = function () { return reject(new TaskAbortError(signal.reason)); };\r\n if (signal.aborted) {\r\n notifyRejection();\r\n return;\r\n }\r\n cleanup = addAbortSignalListener(signal, notifyRejection);\r\n promise2.finally(function () { return cleanup(); }).then(resolve, reject);\r\n }).finally(function () {\r\n cleanup = noop;\r\n });\r\n}\r\nvar runTask = function (task2, cleanUp) { return __async(void 0, null, function () {\r\n var value, error_1;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _c.trys.push([0, 3, 4, 5]);\r\n return [4 /*yield*/, Promise.resolve()];\r\n case 1:\r\n _c.sent();\r\n return [4 /*yield*/, task2()];\r\n case 2:\r\n value = _c.sent();\r\n return [2 /*return*/, {\r\n status: \"ok\",\r\n value: value\r\n }];\r\n case 3:\r\n error_1 = _c.sent();\r\n return [2 /*return*/, {\r\n status: error_1 instanceof TaskAbortError ? \"cancelled\" : \"rejected\",\r\n error: error_1\r\n }];\r\n case 4:\r\n cleanUp == null ? void 0 : cleanUp();\r\n return [7 /*endfinally*/];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nvar createPause = function (signal) {\r\n return function (promise2) {\r\n return catchRejection(raceWithSignal(signal, promise2).then(function (output) {\r\n validateActive(signal);\r\n return output;\r\n }));\r\n };\r\n};\r\nvar createDelay = function (signal) {\r\n var pause = createPause(signal);\r\n return function (timeoutMs) {\r\n return pause(new Promise(function (resolve) { return setTimeout(resolve, timeoutMs); }));\r\n };\r\n};\r\n// src/listenerMiddleware/index.ts\r\nvar assign = Object.assign;\r\nvar INTERNAL_NIL_TOKEN = {};\r\nvar alm = \"listenerMiddleware\";\r\nvar createFork = function (parentAbortSignal, parentBlockingPromises) {\r\n var linkControllers = function (controller) { return addAbortSignalListener(parentAbortSignal, function () { return abortControllerWithReason(controller, parentAbortSignal.reason); }); };\r\n return function (taskExecutor, opts) {\r\n assertFunction(taskExecutor, \"taskExecutor\");\r\n var childAbortController = new AbortController();\r\n linkControllers(childAbortController);\r\n var result = runTask(function () { return __async(void 0, null, function () {\r\n var result2;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n validateActive(parentAbortSignal);\r\n validateActive(childAbortController.signal);\r\n return [4 /*yield*/, taskExecutor({\r\n pause: createPause(childAbortController.signal),\r\n delay: createDelay(childAbortController.signal),\r\n signal: childAbortController.signal\r\n })];\r\n case 1:\r\n result2 = _c.sent();\r\n validateActive(childAbortController.signal);\r\n return [2 /*return*/, result2];\r\n }\r\n });\r\n }); }, function () { return abortControllerWithReason(childAbortController, taskCompleted); });\r\n if (opts == null ? void 0 : opts.autoJoin) {\r\n parentBlockingPromises.push(result);\r\n }\r\n return {\r\n result: createPause(parentAbortSignal)(result),\r\n cancel: function () {\r\n abortControllerWithReason(childAbortController, taskCancelled);\r\n }\r\n };\r\n };\r\n};\r\nvar createTakePattern = function (startListening, signal) {\r\n var take = function (predicate, timeout) { return __async(void 0, null, function () {\r\n var unsubscribe, tuplePromise, promises, output;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n validateActive(signal);\r\n unsubscribe = function () {\r\n };\r\n tuplePromise = new Promise(function (resolve, reject) {\r\n var stopListening = startListening({\r\n predicate: predicate,\r\n effect: function (action, listenerApi) {\r\n listenerApi.unsubscribe();\r\n resolve([\r\n action,\r\n listenerApi.getState(),\r\n listenerApi.getOriginalState()\r\n ]);\r\n }\r\n });\r\n unsubscribe = function () {\r\n stopListening();\r\n reject();\r\n };\r\n });\r\n promises = [\r\n tuplePromise\r\n ];\r\n if (timeout != null) {\r\n promises.push(new Promise(function (resolve) { return setTimeout(resolve, timeout, null); }));\r\n }\r\n _c.label = 1;\r\n case 1:\r\n _c.trys.push([1, , 3, 4]);\r\n return [4 /*yield*/, raceWithSignal(signal, Promise.race(promises))];\r\n case 2:\r\n output = _c.sent();\r\n validateActive(signal);\r\n return [2 /*return*/, output];\r\n case 3:\r\n unsubscribe();\r\n return [7 /*endfinally*/];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n }); };\r\n return function (predicate, timeout) { return catchRejection(take(predicate, timeout)); };\r\n};\r\nvar getListenerEntryPropsFrom = function (options) {\r\n var type = options.type, actionCreator = options.actionCreator, matcher = options.matcher, predicate = options.predicate, effect = options.effect;\r\n if (type) {\r\n predicate = createAction(type).match;\r\n }\r\n else if (actionCreator) {\r\n type = actionCreator.type;\r\n predicate = actionCreator.match;\r\n }\r\n else if (matcher) {\r\n predicate = matcher;\r\n }\r\n else if (predicate) {\r\n }\r\n else {\r\n throw new Error(\"Creating or removing a listener requires one of the known fields for matching an action\");\r\n }\r\n assertFunction(effect, \"options.listener\");\r\n return { predicate: predicate, type: type, effect: effect };\r\n};\r\nvar createListenerEntry = function (options) {\r\n var _c = getListenerEntryPropsFrom(options), type = _c.type, predicate = _c.predicate, effect = _c.effect;\r\n var id = nanoid();\r\n var entry = {\r\n id: id,\r\n effect: effect,\r\n type: type,\r\n predicate: predicate,\r\n pending: new Set(),\r\n unsubscribe: function () {\r\n throw new Error(\"Unsubscribe not initialized\");\r\n }\r\n };\r\n return entry;\r\n};\r\nvar cancelActiveListeners = function (entry) {\r\n entry.pending.forEach(function (controller) {\r\n abortControllerWithReason(controller, listenerCancelled);\r\n });\r\n};\r\nvar createClearListenerMiddleware = function (listenerMap) {\r\n return function () {\r\n listenerMap.forEach(cancelActiveListeners);\r\n listenerMap.clear();\r\n };\r\n};\r\nvar safelyNotifyError = function (errorHandler, errorToNotify, errorInfo) {\r\n try {\r\n errorHandler(errorToNotify, errorInfo);\r\n }\r\n catch (errorHandlerError) {\r\n setTimeout(function () {\r\n throw errorHandlerError;\r\n }, 0);\r\n }\r\n};\r\nvar addListener = createAction(alm + \"/add\");\r\nvar clearAllListeners = createAction(alm + \"/removeAll\");\r\nvar removeListener = createAction(alm + \"/remove\");\r\nvar defaultErrorHandler = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n console.error.apply(console, __spreadArray([alm + \"/error\"], args));\r\n};\r\nfunction createListenerMiddleware(middlewareOptions) {\r\n var _this = this;\r\n if (middlewareOptions === void 0) { middlewareOptions = {}; }\r\n var listenerMap = new Map();\r\n var extra = middlewareOptions.extra, _c = middlewareOptions.onError, onError = _c === void 0 ? defaultErrorHandler : _c;\r\n assertFunction(onError, \"onError\");\r\n var insertEntry = function (entry) {\r\n entry.unsubscribe = function () { return listenerMap.delete(entry.id); };\r\n listenerMap.set(entry.id, entry);\r\n return function (cancelOptions) {\r\n entry.unsubscribe();\r\n if (cancelOptions == null ? void 0 : cancelOptions.cancelActive) {\r\n cancelActiveListeners(entry);\r\n }\r\n };\r\n };\r\n var findListenerEntry = function (comparator) {\r\n for (var _i = 0, _c = Array.from(listenerMap.values()); _i < _c.length; _i++) {\r\n var entry = _c[_i];\r\n if (comparator(entry)) {\r\n return entry;\r\n }\r\n }\r\n return void 0;\r\n };\r\n var startListening = function (options) {\r\n var entry = findListenerEntry(function (existingEntry) { return existingEntry.effect === options.effect; });\r\n if (!entry) {\r\n entry = createListenerEntry(options);\r\n }\r\n return insertEntry(entry);\r\n };\r\n var stopListening = function (options) {\r\n var _c = getListenerEntryPropsFrom(options), type = _c.type, effect = _c.effect, predicate = _c.predicate;\r\n var entry = findListenerEntry(function (entry2) {\r\n var matchPredicateOrType = typeof type === \"string\" ? entry2.type === type : entry2.predicate === predicate;\r\n return matchPredicateOrType && entry2.effect === effect;\r\n });\r\n if (entry) {\r\n entry.unsubscribe();\r\n if (options.cancelActive) {\r\n cancelActiveListeners(entry);\r\n }\r\n }\r\n return !!entry;\r\n };\r\n var notifyListener = function (entry, action, api, getOriginalState) { return __async(_this, null, function () {\r\n var internalTaskController, take, autoJoinPromises, listenerError_1;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n internalTaskController = new AbortController();\r\n take = createTakePattern(startListening, internalTaskController.signal);\r\n autoJoinPromises = [];\r\n _c.label = 1;\r\n case 1:\r\n _c.trys.push([1, 3, 4, 6]);\r\n entry.pending.add(internalTaskController);\r\n return [4 /*yield*/, Promise.resolve(entry.effect(action, assign({}, api, {\r\n getOriginalState: getOriginalState,\r\n condition: function (predicate, timeout) { return take(predicate, timeout).then(Boolean); },\r\n take: take,\r\n delay: createDelay(internalTaskController.signal),\r\n pause: createPause(internalTaskController.signal),\r\n extra: extra,\r\n signal: internalTaskController.signal,\r\n fork: createFork(internalTaskController.signal, autoJoinPromises),\r\n unsubscribe: entry.unsubscribe,\r\n subscribe: function () {\r\n listenerMap.set(entry.id, entry);\r\n },\r\n cancelActiveListeners: function () {\r\n entry.pending.forEach(function (controller, _, set) {\r\n if (controller !== internalTaskController) {\r\n abortControllerWithReason(controller, listenerCancelled);\r\n set.delete(controller);\r\n }\r\n });\r\n }\r\n })))];\r\n case 2:\r\n _c.sent();\r\n return [3 /*break*/, 6];\r\n case 3:\r\n listenerError_1 = _c.sent();\r\n if (!(listenerError_1 instanceof TaskAbortError)) {\r\n safelyNotifyError(onError, listenerError_1, {\r\n raisedBy: \"effect\"\r\n });\r\n }\r\n return [3 /*break*/, 6];\r\n case 4: return [4 /*yield*/, Promise.allSettled(autoJoinPromises)];\r\n case 5:\r\n _c.sent();\r\n abortControllerWithReason(internalTaskController, listenerCompleted);\r\n entry.pending.delete(internalTaskController);\r\n return [7 /*endfinally*/];\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n }); };\r\n var clearListenerMiddleware = createClearListenerMiddleware(listenerMap);\r\n var middleware = function (api) { return function (next) { return function (action) {\r\n if (!isAction(action)) {\r\n return next(action);\r\n }\r\n if (addListener.match(action)) {\r\n return startListening(action.payload);\r\n }\r\n if (clearAllListeners.match(action)) {\r\n clearListenerMiddleware();\r\n return;\r\n }\r\n if (removeListener.match(action)) {\r\n return stopListening(action.payload);\r\n }\r\n var originalState = api.getState();\r\n var getOriginalState = function () {\r\n if (originalState === INTERNAL_NIL_TOKEN) {\r\n throw new Error(alm + \": getOriginalState can only be called synchronously\");\r\n }\r\n return originalState;\r\n };\r\n var result;\r\n try {\r\n result = next(action);\r\n if (listenerMap.size > 0) {\r\n var currentState = api.getState();\r\n var listenerEntries = Array.from(listenerMap.values());\r\n for (var _i = 0, listenerEntries_1 = listenerEntries; _i < listenerEntries_1.length; _i++) {\r\n var entry = listenerEntries_1[_i];\r\n var runListener = false;\r\n try {\r\n runListener = entry.predicate(action, currentState, originalState);\r\n }\r\n catch (predicateError) {\r\n runListener = false;\r\n safelyNotifyError(onError, predicateError, {\r\n raisedBy: \"predicate\"\r\n });\r\n }\r\n if (!runListener) {\r\n continue;\r\n }\r\n notifyListener(entry, action, api, getOriginalState);\r\n }\r\n }\r\n }\r\n finally {\r\n originalState = INTERNAL_NIL_TOKEN;\r\n }\r\n return result;\r\n }; }; };\r\n return {\r\n middleware: middleware,\r\n startListening: startListening,\r\n stopListening: stopListening,\r\n clearListeners: clearListenerMiddleware\r\n };\r\n}\r\n// src/autoBatchEnhancer.ts\r\nvar SHOULD_AUTOBATCH = \"RTK_autoBatch\";\r\nvar prepareAutoBatched = function () { return function (payload) {\r\n var _c;\r\n return ({\r\n payload: payload,\r\n meta: (_c = {}, _c[SHOULD_AUTOBATCH] = true, _c)\r\n });\r\n}; };\r\nvar promise;\r\nvar queueMicrotaskShim = typeof queueMicrotask === \"function\" ? queueMicrotask.bind(typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : globalThis) : function (cb) { return (promise || (promise = Promise.resolve())).then(cb).catch(function (err) { return setTimeout(function () {\r\n throw err;\r\n}, 0); }); };\r\nvar createQueueWithTimer = function (timeout) {\r\n return function (notify) {\r\n setTimeout(notify, timeout);\r\n };\r\n};\r\nvar rAF = typeof window !== \"undefined\" && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10);\r\nvar autoBatchEnhancer = function (options) {\r\n if (options === void 0) { options = { type: \"raf\" }; }\r\n return function (next) { return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var store = next.apply(void 0, args);\r\n var notifying = true;\r\n var shouldNotifyAtEndOfTick = false;\r\n var notificationQueued = false;\r\n var listeners = new Set();\r\n var queueCallback = options.type === \"tick\" ? queueMicrotaskShim : options.type === \"raf\" ? rAF : options.type === \"callback\" ? options.queueNotification : createQueueWithTimer(options.timeout);\r\n var notifyListeners = function () {\r\n notificationQueued = false;\r\n if (shouldNotifyAtEndOfTick) {\r\n shouldNotifyAtEndOfTick = false;\r\n listeners.forEach(function (l) { return l(); });\r\n }\r\n };\r\n return Object.assign({}, store, {\r\n subscribe: function (listener2) {\r\n var wrappedListener = function () { return notifying && listener2(); };\r\n var unsubscribe = store.subscribe(wrappedListener);\r\n listeners.add(listener2);\r\n return function () {\r\n unsubscribe();\r\n listeners.delete(listener2);\r\n };\r\n },\r\n dispatch: function (action) {\r\n var _a;\r\n try {\r\n notifying = !((_a = action == null ? void 0 : action.meta) == null ? void 0 : _a[SHOULD_AUTOBATCH]);\r\n shouldNotifyAtEndOfTick = !notifying;\r\n if (shouldNotifyAtEndOfTick) {\r\n if (!notificationQueued) {\r\n notificationQueued = true;\r\n queueCallback(notifyListeners);\r\n }\r\n }\r\n return store.dispatch(action);\r\n }\r\n finally {\r\n notifying = true;\r\n }\r\n }\r\n });\r\n }; };\r\n};\r\n// src/index.ts\r\nenableES5();\r\nexport { EnhancerArray, MiddlewareArray, SHOULD_AUTOBATCH, TaskAbortError, addListener, autoBatchEnhancer, clearAllListeners, configureStore, createAction, createActionCreatorInvariantMiddleware, createAsyncThunk, createDraftSafeSelector, createEntityAdapter, createImmutableStateInvariantMiddleware, createListenerMiddleware, default2 as createNextState, createReducer, createSelector2 as createSelector, createSerializableStateInvariantMiddleware, createSlice, current2 as current, findNonSerializableValue, freeze, getDefaultMiddleware, getType, isAction, isActionCreator, isAllOf, isAnyOf, isAsyncThunkAction, isDraft4 as isDraft, isFSA as isFluxStandardAction, isFulfilled, isImmutableDefault, isPending, isPlain, isPlainObject, isRejected, isRejectedWithValue, miniSerializeError, nanoid, original, prepareAutoBatched, removeListener, unwrapResult };\r\n//# sourceMappingURL=redux-toolkit.esm.js.map","// Copyright 2019 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport * as AppConstants from '../constants/appConstants';\nimport * as UserConstants from '../constants/userConstants';\n\nconst getYesterday = () => {\n const today = new Date();\n today.setDate(today.getDate() - 1);\n return today.toISOString();\n};\n\nexport const initialState = {\n cancelSource: undefined,\n hostAddress: null,\n snackbar: {\n open: false,\n message: ''\n },\n // return boolean rather than organization details\n features: {\n hasAuditlogs: false,\n hasDeltaProgress: false,\n hasMultitenancy: false,\n hasDeviceConfig: false,\n hasDeviceConnect: false,\n hasMonitor: false,\n hasReleaseTags: false,\n hasReporting: false,\n isDemoMode: false,\n isHosted: false,\n isEnterprise: false\n },\n firstLoginAfterSignup: false,\n hostedAnnouncement: '',\n docsVersion: '',\n recaptchaSiteKey: '',\n searchState: {\n deviceIds: [],\n searchTerm: '',\n searchTotal: 0,\n sort: {\n direction: AppConstants.SORTING_OPTIONS.desc\n // key: null,\n // scope: null\n }\n },\n stripeAPIKey: '',\n trackerCode: '',\n uploadsById: {\n // id: { uploading: false, uploadProgress: 0, cancelSource: undefined }\n },\n newThreshold: getYesterday(),\n offlineThreshold: getYesterday(),\n versionInformation: {\n Integration: '',\n 'Mender-Client': '',\n 'Mender-Artifact': '',\n 'Meta-Mender': '',\n Deployments: '',\n Deviceauth: '',\n Inventory: '',\n GUI: 'latest'\n },\n yesterday: undefined\n};\n\n// exclude 'pendings-redirect' since this is expected to persist refreshes - the rest should be better to be redone\nconst keys = ['sessionDeploymentChecker', UserConstants.settingsKeys.initialized];\nconst resetEnvironment = () => {\n keys.map(key => window.sessionStorage.removeItem(key));\n};\n\nresetEnvironment();\n\nconst appReducer = (state = initialState, action) => {\n switch (action.type) {\n case AppConstants.SET_FEATURES:\n return {\n ...state,\n features: {\n ...state.features,\n ...action.value\n }\n };\n case AppConstants.SET_SNACKBAR:\n return {\n ...state,\n snackbar: action.snackbar\n };\n case AppConstants.SET_FIRST_LOGIN_AFTER_SIGNUP:\n return {\n ...state,\n firstLoginAfterSignup: action.firstLoginAfterSignup\n };\n case AppConstants.SET_ANNOUNCEMENT:\n return {\n ...state,\n hostedAnnouncement: action.announcement\n };\n case AppConstants.SET_SEARCH_STATE:\n return {\n ...state,\n searchState: action.state\n };\n case AppConstants.SET_OFFLINE_THRESHOLD:\n return {\n ...state,\n offlineThreshold: action.value\n };\n case AppConstants.UPLOAD_PROGRESS:\n return {\n ...state,\n uploadsById: action.uploads\n };\n case AppConstants.SET_VERSION_INFORMATION:\n return {\n ...state,\n docsVersion: action.docsVersion,\n versionInformation: action.value\n };\n case AppConstants.SET_ENVIRONMENT_DATA:\n return {\n ...state,\n ...action.value\n };\n default:\n return state;\n }\n};\n\nexport default appReducer;\n","// Copyright 2019 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport * as DeploymentConstants from '../constants/deploymentConstants';\nimport * as DeviceConstants from '../constants/deviceConstants';\n\nexport const initialState = {\n byId: {\n // [id]: { statistics: { status: {}, total_size }, devices: { [deploymentId]: { id, log } }, totalDeviceCount }\n },\n byStatus: {\n finished: { deploymentIds: [], total: 0 },\n inprogress: { deploymentIds: [], total: 0 },\n pending: { deploymentIds: [], total: 0 },\n scheduled: { deploymentIds: [], total: 0 }\n },\n config: {\n binaryDelta: {\n timeout: -1,\n duplicatesWindow: -1,\n compressionLevel: -1,\n disableChecksum: false,\n disableDecompression: false,\n inputWindow: -1,\n instructionBuffer: -1,\n sourceWindow: -1\n },\n binaryDeltaLimits: {\n timeout: { ...DeploymentConstants.limitDefault, default: 60, max: 3600, min: 60 },\n sourceWindow: DeploymentConstants.limitDefault,\n inputWindow: DeploymentConstants.limitDefault,\n duplicatesWindow: DeploymentConstants.limitDefault,\n instructionBuffer: DeploymentConstants.limitDefault\n }\n },\n deploymentDeviceLimit: 5000,\n selectedDeviceIds: [],\n selectionState: {\n finished: { ...DeviceConstants.DEVICE_LIST_DEFAULTS, endDate: undefined, search: '', selection: [], startDate: undefined, total: 0, type: '' },\n inprogress: { ...DeviceConstants.DEVICE_LIST_DEFAULTS, perPage: DeploymentConstants.DEFAULT_PENDING_INPROGRESS_COUNT, selection: [] },\n pending: { ...DeviceConstants.DEVICE_LIST_DEFAULTS, perPage: DeploymentConstants.DEFAULT_PENDING_INPROGRESS_COUNT, selection: [] },\n scheduled: { ...DeviceConstants.DEVICE_LIST_DEFAULTS, selection: [] },\n general: {\n state: DeploymentConstants.DEPLOYMENT_ROUTES.active.key,\n showCreationDialog: false,\n showReportDialog: false,\n reportType: null // DeploymentConstants.DEPLOYMENT_TYPES.configuration|DeploymentConstants.DEPLOYMENT_TYPES.software\n },\n selectedId: undefined\n }\n};\n\nconst deploymentReducer = (state = initialState, action) => {\n switch (action.type) {\n case DeploymentConstants.CREATE_DEPLOYMENT:\n return {\n ...state,\n byId: {\n ...state.byId,\n [action.deploymentId]: {\n ...DeploymentConstants.deploymentPrototype,\n ...action.deployment\n }\n },\n byStatus: {\n ...state.byStatus,\n pending: {\n ...state.byStatus.pending,\n deploymentIds: [...state.byStatus.pending.deploymentIds, action.deploymentId],\n total: state.byStatus.pending.total + 1\n }\n },\n selectionState: {\n ...state.selectionState,\n pending: {\n ...state.selectionState.pending,\n selection: [action.deploymentId, ...state.selectionState.pending.selection],\n total: state.selectionState.pending.total + 1\n }\n }\n };\n case DeploymentConstants.REMOVE_DEPLOYMENT: {\n // eslint-disable-next-line no-unused-vars\n const { [action.deploymentId]: removedDeployment, ...remainder } = state.byId;\n return {\n ...state,\n byId: remainder\n };\n }\n case DeploymentConstants.RECEIVE_DEPLOYMENT:\n case DeploymentConstants.RECEIVE_DEPLOYMENT_DEVICE_LOG:\n return {\n ...state,\n byId: {\n ...state.byId,\n [action.deployment.id]: action.deployment\n }\n };\n case DeploymentConstants.RECEIVE_DEPLOYMENT_DEVICES:\n return {\n ...state,\n byId: {\n ...state.byId,\n [action.deploymentId]: {\n ...state.byId[action.deploymentId],\n devices: action.devices,\n totalDeviceCount: action.totalDeviceCount\n }\n },\n selectedDeviceIds: action.selectedDeviceIds\n };\n case DeploymentConstants.RECEIVE_DEPLOYMENTS:\n return {\n ...state,\n byId: {\n ...state.byId,\n ...action.deployments\n }\n };\n case DeploymentConstants.RECEIVE_INPROGRESS_DEPLOYMENTS:\n case DeploymentConstants.RECEIVE_PENDING_DEPLOYMENTS:\n case DeploymentConstants.RECEIVE_SCHEDULED_DEPLOYMENTS:\n case DeploymentConstants.RECEIVE_FINISHED_DEPLOYMENTS:\n return {\n ...state,\n byStatus: {\n ...state.byStatus,\n [action.status]: {\n ...state.byStatus[action.status],\n deploymentIds: action.deploymentIds,\n total: action.total\n }\n }\n };\n case DeploymentConstants.SELECT_INPROGRESS_DEPLOYMENTS:\n case DeploymentConstants.SELECT_PENDING_DEPLOYMENTS:\n case DeploymentConstants.SELECT_SCHEDULED_DEPLOYMENTS:\n case DeploymentConstants.SELECT_FINISHED_DEPLOYMENTS:\n return {\n ...state,\n selectionState: {\n ...state.selectionState,\n [action.status]: {\n ...state.selectionState[action.status],\n selection: action.deploymentIds,\n total: action.total\n }\n }\n };\n case DeploymentConstants.SET_DEPLOYMENTS_STATE:\n return {\n ...state,\n selectionState: action.state\n };\n case DeploymentConstants.SET_DEPLOYMENTS_CONFIG:\n return {\n ...state,\n config: action.config\n };\n default:\n return state;\n }\n};\n\nexport default deploymentReducer;\n","// Copyright 2019 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { SORTING_OPTIONS } from '../constants/appConstants';\nimport * as DeviceConstants from '../constants/deviceConstants';\nimport * as MonitorConstants from '../constants/monitorConstants';\nimport { duplicateFilter } from '../helpers';\n\nexport const initialState = {\n byId: {\n // [deviceId]: {\n // ...,\n // twinsByIntegration: { [external.provider.id]: twinData }\n // }\n },\n byStatus: {\n [DeviceConstants.DEVICE_STATES.accepted]: { deviceIds: [], total: 0 },\n active: { deviceIds: [], total: 0 },\n inactive: { deviceIds: [], total: 0 },\n [DeviceConstants.DEVICE_STATES.pending]: { deviceIds: [], total: 0 },\n [DeviceConstants.DEVICE_STATES.preauth]: { deviceIds: [], total: 0 },\n [DeviceConstants.DEVICE_STATES.rejected]: { deviceIds: [], total: 0 }\n },\n deviceList: {\n deviceIds: [],\n ...DeviceConstants.DEVICE_LIST_DEFAULTS,\n selectedAttributes: [],\n selectedIssues: [],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc\n // key: null,\n // scope: null\n },\n state: DeviceConstants.DEVICE_STATES.accepted,\n total: 0\n },\n filters: [\n // { key: 'device_type', value: 'raspberry', operator: '$eq', scope: 'inventory' }\n ],\n filteringAttributes: { identityAttributes: [], inventoryAttributes: [], systemAttributes: [], tagAttributes: [] },\n filteringAttributesLimit: 10,\n filteringAttributesConfig: {\n attributes: {\n // inventory: ['some_attribute']\n },\n count: 0,\n limit: 100\n },\n reports: [\n // { items: [{ key: \"someKey\", count: 42 }], otherCount: 123, total: }\n ],\n total: 0,\n limit: 0,\n groups: {\n byId: {\n // groupName: { deviceIds: [], total: 0, filters: [] },\n // dynamo: { deviceIds: [], total: 3, filters: [{ a: 1 }] }\n },\n selectedGroup: undefined\n }\n};\n\nconst deviceReducer = (state = initialState, action) => {\n switch (action.type) {\n case DeviceConstants.RECEIVE_GROUPS:\n case DeviceConstants.RECEIVE_DYNAMIC_GROUPS:\n case DeviceConstants.REMOVE_STATIC_GROUP:\n case DeviceConstants.REMOVE_DYNAMIC_GROUP:\n return {\n ...state,\n groups: {\n ...state.groups,\n byId: action.groups\n }\n };\n case DeviceConstants.ADD_TO_GROUP: {\n let group = {\n deviceIds: action.deviceIds,\n filters: [],\n total: 1\n };\n if (state.groups.byId[action.group]) {\n group = {\n filters: [],\n ...state.groups.byId[action.group],\n deviceIds: [...state.groups.byId[action.group].deviceIds, ...action.deviceIds],\n total: state.groups.byId[action.group].total + 1\n };\n group.deviceIds.filter(duplicateFilter);\n }\n return {\n ...state,\n groups: {\n ...state.groups,\n byId: {\n ...state.groups.byId,\n [action.group]: group\n }\n }\n };\n }\n case DeviceConstants.REMOVE_FROM_GROUP: {\n const { deviceIds = [], total = 0, ...maybeExistingGroup } = state.groups.byId[action.group] || {};\n const group = {\n ...maybeExistingGroup,\n deviceIds: deviceIds.filter(id => !action.deviceIds.includes(id)),\n total: Math.max(total - action.deviceIds.length, 0)\n };\n let byId = {};\n let selectedGroup = state.groups.selectedGroup;\n if (group.total || group.deviceIds.length) {\n byId = {\n ...state.groups.byId,\n [action.group]: group\n };\n } else if (state.groups.selectedGroup === action.group) {\n selectedGroup = undefined;\n // eslint-disable-next-line no-unused-vars\n const { [action.group]: removal, ...remainingById } = state.groups.byId;\n byId = remainingById;\n }\n return {\n ...state,\n groups: {\n ...state.groups,\n byId,\n selectedGroup\n }\n };\n }\n case DeviceConstants.ADD_DYNAMIC_GROUP:\n case DeviceConstants.ADD_STATIC_GROUP:\n case DeviceConstants.RECEIVE_GROUP_DEVICES:\n return {\n ...state,\n groups: {\n ...state.groups,\n byId: { ...state.groups.byId, [action.groupName]: action.group }\n }\n };\n case DeviceConstants.SELECT_GROUP:\n return {\n ...state,\n deviceList: {\n ...state.deviceList,\n deviceIds: state.groups.byId[action.group] && state.groups.byId[action.group].deviceIds.length > 0 ? state.groups.byId[action.group].deviceIds : []\n },\n groups: {\n ...state.groups,\n selectedGroup: action.group\n }\n };\n case DeviceConstants.SET_DEVICE_LIST_STATE:\n return { ...state, deviceList: action.state };\n case DeviceConstants.SET_FILTER_ATTRIBUTES:\n return { ...state, filteringAttributes: action.attributes };\n case DeviceConstants.SET_FILTERABLES_CONFIG:\n return {\n ...state,\n filteringAttributesConfig: {\n attributes: action.attributes,\n count: action.count,\n limit: action.limit\n }\n };\n case DeviceConstants.RECEIVE_DEVICES:\n return {\n ...state,\n byId: {\n ...state.byId,\n ...action.devicesById\n }\n };\n case DeviceConstants.SET_DEVICE_FILTERS: {\n const filters = action.filters.filter(filter => filter.key && filter.operator && filter.scope && typeof filter.value !== 'undefined');\n return {\n ...state,\n filters\n };\n }\n\n case DeviceConstants.SET_INACTIVE_DEVICES:\n return {\n ...state,\n byStatus: {\n ...state.byStatus,\n active: {\n total: action.activeDeviceTotal\n },\n inactive: {\n total: action.inactiveDeviceTotal\n }\n }\n };\n case DeviceConstants.SET_DEVICE_REPORTS:\n return {\n ...state,\n reports: action.reports\n };\n case DeviceConstants.SET_PENDING_DEVICES:\n case DeviceConstants.SET_REJECTED_DEVICES:\n case DeviceConstants.SET_PREAUTHORIZED_DEVICES:\n case DeviceConstants.SET_ACCEPTED_DEVICES: {\n const statusDeviceInfo = action.total || action.forceUpdate ? { deviceIds: action.deviceIds, total: action.total } : state.byStatus[action.status];\n return {\n ...state,\n byStatus: {\n ...state.byStatus,\n [action.status]: {\n ...statusDeviceInfo\n }\n }\n };\n }\n\n case DeviceConstants.SET_ACCEPTED_DEVICES_COUNT:\n case DeviceConstants.SET_PENDING_DEVICES_COUNT:\n case DeviceConstants.SET_REJECTED_DEVICES_COUNT:\n case DeviceConstants.SET_PREAUTHORIZED_DEVICES_COUNT:\n return {\n ...state,\n byStatus: {\n ...state.byStatus,\n [action.status]: {\n ...state.byStatus[action.status],\n total: action.count\n }\n }\n };\n case DeviceConstants.SET_TOTAL_DEVICES:\n return { ...state, total: action.count };\n case DeviceConstants.SET_DEVICE_LIMIT:\n return { ...state, limit: action.limit };\n case DeviceConstants.RECEIVE_DEVICE:\n case DeviceConstants.RECEIVE_DEVICE_CONFIG:\n case DeviceConstants.RECEIVE_DEVICE_CONNECT:\n case MonitorConstants.RECEIVE_DEVICE_MONITOR_CONFIG: {\n const { device } = action;\n return {\n ...state,\n byId: {\n ...state.byId,\n [device.id]: {\n ...state.byId[device.id],\n ...device\n }\n }\n };\n }\n default:\n return state;\n }\n};\n\nexport default deviceReducer;\n","// Copyright 2021 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { DEVICE_ISSUE_OPTIONS, DEVICE_LIST_DEFAULTS } from '../constants/deviceConstants';\nimport * as MonitorConstants from '../constants/monitorConstants';\n\nexport const initialState = {\n alerts: {\n alertList: { ...DEVICE_LIST_DEFAULTS, total: 0 },\n byDeviceId: {}\n },\n issueCounts: {\n byType: Object.values(DEVICE_ISSUE_OPTIONS).reduce((accu, { key }) => ({ ...accu, [key]: { filtered: 0, total: 0 } }), {})\n },\n settings: {\n global: {\n channels: {\n ...Object.keys(MonitorConstants.alertChannels).reduce((accu, item) => ({ ...accu, [item]: { enabled: true } }), {})\n }\n }\n }\n};\n\nconst monitorReducer = (state = initialState, action) => {\n switch (action.type) {\n case MonitorConstants.CHANGE_ALERT_CHANNEL:\n return {\n ...state,\n settings: {\n ...state.settings,\n global: {\n ...state.settings.global,\n channels: {\n ...state.settings.global.channels,\n [action.channel]: { enabled: action.enabled }\n }\n }\n }\n };\n case MonitorConstants.RECEIVE_DEVICE_ALERTS:\n return {\n ...state,\n alerts: {\n ...state.alerts,\n byDeviceId: {\n ...state.alerts.byDeviceId,\n [action.deviceId]: {\n ...state.alerts.byDeviceId[action.deviceId],\n alerts: action.alerts\n }\n }\n }\n };\n case MonitorConstants.RECEIVE_LATEST_DEVICE_ALERTS:\n return {\n ...state,\n alerts: {\n ...state.alerts,\n byDeviceId: {\n ...state.alerts.byDeviceId,\n [action.deviceId]: {\n ...state.alerts.byDeviceId[action.deviceId],\n latest: action.alerts\n }\n }\n }\n };\n case MonitorConstants.RECEIVE_DEVICE_ISSUE_COUNTS:\n return {\n ...state,\n issueCounts: {\n ...state.issueCounts,\n byType: {\n ...state.issueCounts.byType,\n [action.issueType]: action.counts\n }\n }\n };\n case MonitorConstants.SET_ALERT_LIST_STATE:\n return {\n ...state,\n alerts: {\n ...state.alerts,\n alertList: action.value\n }\n };\n\n default:\n return state;\n }\n};\n\nexport default monitorReducer;\n","// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport * as OnboardingConstants from '../constants/onboardingConstants';\n\nexport const initialState = {\n approach: null,\n complete: false,\n deviceType: null,\n demoArtifactPort: 85,\n progress: null,\n showTips: null,\n showTipsDialog: false\n};\n\nconst userReducer = (state = initialState, action) => {\n switch (action.type) {\n case OnboardingConstants.SET_ONBOARDING_STATE:\n return {\n ...state,\n ...action.value\n };\n case OnboardingConstants.SET_DEMO_ARTIFACT_PORT:\n return {\n ...state,\n demoArtifactPort: action.value\n };\n case OnboardingConstants.SET_SHOW_ONBOARDING_HELP:\n return {\n ...state,\n showTips: action.show\n };\n case OnboardingConstants.SET_SHOW_ONBOARDING_HELP_DIALOG:\n return {\n ...state,\n showTipsDialog: action.show\n };\n case OnboardingConstants.SET_ONBOARDING_COMPLETE:\n return {\n ...state,\n complete: action.complete\n };\n case OnboardingConstants.SET_ONBOARDING_PROGRESS:\n return {\n ...state,\n progress: action.value\n };\n case OnboardingConstants.SET_ONBOARDING_DEVICE_TYPE:\n return {\n ...state,\n deviceType: action.value\n };\n case OnboardingConstants.SET_ONBOARDING_APPROACH:\n return {\n ...state,\n approach: action.value\n };\n default:\n return state;\n }\n};\n\nexport default userReducer;\n","// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { SORTING_OPTIONS } from '../constants/appConstants';\nimport { DEVICE_LIST_DEFAULTS } from '../constants/deviceConstants';\nimport {\n RECEIVE_AUDIT_LOGS,\n RECEIVE_CURRENT_CARD,\n RECEIVE_EXTERNAL_DEVICE_INTEGRATIONS,\n RECEIVE_SAML_CONFIGS,\n RECEIVE_SETUP_INTENT,\n RECEIVE_WEBHOOK_EVENTS,\n SET_AUDITLOG_STATE,\n SET_ORGANIZATION\n} from '../constants/organizationConstants';\n\nexport const initialState = {\n card: {\n last4: '',\n expiration: { month: 1, year: 2020 },\n brand: ''\n },\n intentId: null,\n organization: {\n // id, name, status, tenant_token, plan\n },\n auditlog: {\n events: [],\n selectionState: {\n ...DEVICE_LIST_DEFAULTS,\n detail: undefined,\n endDate: undefined,\n selectedIssue: undefined,\n sort: { direction: SORTING_OPTIONS.desc },\n startDate: undefined,\n total: 0,\n type: undefined,\n user: undefined\n }\n },\n externalDeviceIntegrations: [\n // { , id, provider }\n ],\n samlConfigs: [],\n webhooks: {\n // [id]: { events: [] }\n // for now:\n events: [],\n eventsTotal: 0\n }\n};\n\nconst organizationReducer = (state = initialState, action) => {\n switch (action.type) {\n case RECEIVE_AUDIT_LOGS:\n return {\n ...state,\n auditlog: {\n ...state.auditlog,\n events: action.events,\n selectionState: {\n ...state.auditlog.selectionState,\n total: action.total\n }\n }\n };\n case SET_AUDITLOG_STATE:\n return {\n ...state,\n auditlog: {\n ...state.auditlog,\n selectionState: action.state\n }\n };\n case RECEIVE_CURRENT_CARD:\n return {\n ...state,\n card: action.card\n };\n case RECEIVE_SETUP_INTENT:\n return {\n ...state,\n intentId: action.intentId\n };\n case SET_ORGANIZATION:\n return {\n ...state,\n organization: {\n ...action.organization\n }\n };\n case RECEIVE_EXTERNAL_DEVICE_INTEGRATIONS:\n return {\n ...state,\n externalDeviceIntegrations: action.value\n };\n case RECEIVE_SAML_CONFIGS:\n return {\n ...state,\n samlConfigs: action.value\n };\n case RECEIVE_WEBHOOK_EVENTS:\n return {\n ...state,\n webhooks: {\n ...state.webhooks,\n events: action.value,\n eventsTotal: action.total\n }\n };\n default:\n return state;\n }\n};\n\nexport default organizationReducer;\n","// Copyright 2019 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { SORTING_OPTIONS } from '../constants/appConstants';\nimport * as DeviceConstants from '../constants/deviceConstants';\nimport * as ReleaseConstants from '../constants/releaseConstants';\n\nexport const initialState = {\n /*\n * Return list of saved artifacts objects\n */\n /*\n * return list of artifacts where duplicate names are collated with device compatibility lists combined\n */\n // artifacts: AppStore.getCollatedArtifacts(AppStore.getArtifactsRepo()),\n artifacts: [],\n /*\n * Return list of saved release objects\n */\n byId: {\n /*\n [releaseName]: {\n artifacts: [\n {\n id: '',\n name: '',\n description: '',\n device_types_compatible: [],\n ...\n updates: [{\n files: [\n { size: 123, name: '' }\n ],\n type_info: { type: '' }\n }],\n url: '' // optional\n }\n ],\n modified: ''\n device_types_compatible,\n name: '',\n tags: ['something'],\n notes: ''\n }\n */\n },\n releasesList: {\n ...DeviceConstants.DEVICE_LIST_DEFAULTS,\n searchedIds: [],\n releaseIds: [],\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'modified'\n },\n isLoading: undefined,\n searchTerm: '',\n searchTotal: 0,\n selectedTags: [],\n total: 0,\n type: ''\n },\n tags: [],\n updateTypes: [],\n /*\n * Return single release with corresponding Artifacts\n */\n selectedRelease: null\n};\n\nconst releaseReducer = (state = initialState, action) => {\n switch (action.type) {\n case ReleaseConstants.ARTIFACTS_REMOVED_ARTIFACT:\n case ReleaseConstants.ARTIFACTS_SET_ARTIFACT_URL:\n case ReleaseConstants.UPDATED_ARTIFACT:\n case ReleaseConstants.RECEIVE_RELEASE:\n return {\n ...state,\n byId: {\n ...state.byId,\n [action.release.name]: action.release\n }\n };\n case ReleaseConstants.RECEIVE_RELEASE_TAGS:\n return {\n ...state,\n tags: action.tags\n };\n case ReleaseConstants.RECEIVE_RELEASE_TYPES:\n return {\n ...state,\n updateTypes: action.types\n };\n case ReleaseConstants.RECEIVE_RELEASES: {\n return {\n ...state,\n byId: action.releases\n };\n }\n case ReleaseConstants.RELEASE_REMOVED: {\n // eslint-disable-next-line no-unused-vars\n const { [action.release]: toBeRemoved, ...byId } = state.byId;\n return {\n ...state,\n byId,\n selectedRelease: action.release === state.selectedRelease ? null : state.selectedRelease\n };\n }\n case ReleaseConstants.SELECTED_RELEASE:\n return {\n ...state,\n selectedRelease: action.release\n };\n case ReleaseConstants.SET_RELEASES_LIST_STATE:\n return { ...state, releasesList: action.value };\n default:\n return state;\n }\n};\n\nexport default releaseReducer;\n","// Copyright 2019 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport * as UserConstants from '../constants/userConstants';\n\nexport const initialState = {\n byId: {},\n currentUser: null,\n customColumns: [],\n currentSession: {\n // { token: window.localStorage.getItem('JWT'), expiresAt: '2023-01-01T00:15:00.000Z' | undefined }, // expiresAt depending on the stay logged in setting\n },\n qrCode: null,\n globalSettings: {\n id_attribute: undefined,\n previousFilters: [],\n previousPhases: [],\n retries: 0\n },\n permissionSetsById: {\n ...UserConstants.defaultPermissionSets\n },\n rolesById: {\n ...UserConstants.rolesById\n },\n tooltips: {\n byId: {\n // : { readState: } // this object is getting enhanced by the tooltip texts in the app constants\n }\n },\n userSettings: {\n columnSelection: [],\n onboarding: {}\n }\n};\n\nconst userReducer = (state = initialState, action) => {\n switch (action.type) {\n case UserConstants.RECEIVED_QR_CODE:\n return {\n ...state,\n qrCode: action.value\n };\n case UserConstants.SUCCESSFULLY_LOGGED_IN:\n return {\n ...state,\n currentSession: action.value\n };\n case UserConstants.RECEIVED_USER_LIST:\n return {\n ...state,\n byId: { ...action.users }\n };\n case UserConstants.RECEIVED_ACTIVATION_CODE:\n return {\n ...state,\n activationCode: action.code\n };\n case UserConstants.RECEIVED_USER:\n return {\n ...state,\n byId: {\n ...state.byId,\n [action.user.id]: {\n ...action.user\n }\n },\n currentUser: action.user.id\n };\n case UserConstants.CREATED_USER:\n // the new user gets a 0 as id, since this will be overwritten by the retrieved userlist anyway + there is no way to know the id before\n return {\n ...state,\n byId: {\n ...state.byId,\n 0: action.user\n }\n };\n case UserConstants.REMOVED_USER: {\n // eslint-disable-next-line no-unused-vars\n const { [action.userId]: removedUser, ...byId } = state.byId;\n return {\n ...state,\n byId,\n currentUser: state.currentUser === action.userId ? null : state.currentUser\n };\n }\n case UserConstants.UPDATED_USER:\n return {\n ...state,\n byId: {\n ...state.byId,\n [action.userId]: {\n ...state.byId[action.userId],\n ...action.user\n }\n }\n };\n case UserConstants.RECEIVED_PERMISSION_SETS:\n return {\n ...state,\n permissionSetsById: action.value\n };\n case UserConstants.RECEIVED_ROLES:\n case UserConstants.REMOVED_ROLE:\n return {\n ...state,\n rolesById: action.value\n };\n case UserConstants.CREATED_ROLE:\n case UserConstants.UPDATED_ROLE:\n return {\n ...state,\n rolesById: {\n ...state.rolesById,\n [action.roleId]: {\n ...state.rolesById[action.roleId],\n ...action.role\n }\n }\n };\n case UserConstants.SET_CUSTOM_COLUMNS:\n return {\n ...state,\n customColumns: action.value\n };\n case UserConstants.SET_GLOBAL_SETTINGS:\n return {\n ...state,\n settingsInitialized: true,\n globalSettings: {\n ...state.globalSettings,\n ...action.settings\n }\n };\n case UserConstants.SET_USER_SETTINGS:\n return {\n ...state,\n userSettingsInitialized: true,\n userSettings: {\n ...state.userSettings,\n ...action.settings\n }\n };\n case UserConstants.SET_SHOW_CONNECT_DEVICE:\n return {\n ...state,\n showConnectDeviceDialog: action.show\n };\n case UserConstants.SET_TOOLTIP_STATE:\n return {\n ...state,\n tooltips: {\n ...state.tooltips,\n byId: {\n ...state.tooltips.byId,\n [action.id]: action.value\n }\n }\n };\n case UserConstants.SET_TOOLTIPS_STATE:\n return {\n ...state,\n tooltips: {\n ...state.tooltips,\n byId: action.value\n }\n };\n default:\n return state;\n }\n};\n\nexport default userReducer;\n","// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { maxSessionAge } from '../src/js/auth';\nimport { SORTING_OPTIONS } from '../src/js/constants/appConstants';\nimport * as DeviceConstants from '../src/js/constants/deviceConstants';\nimport { ALL_RELEASES } from '../src/js/constants/releaseConstants';\nimport {\n defaultPermissionSets,\n emptyRole,\n emptyUiPermissions,\n rolesById,\n rolesByName,\n scopedPermissionAreas,\n twoFAStates,\n uiPermissionsById\n} from '../src/js/constants/userConstants';\nimport { initialState as initialAppState } from '../src/js/reducers/appReducer';\nimport { initialState as initialDeploymentsState } from '../src/js/reducers/deploymentReducer';\nimport { initialState as initialDevicesState } from '../src/js/reducers/deviceReducer';\nimport { initialState as initialMonitorState } from '../src/js/reducers/monitorReducer';\nimport { initialState as initialOnboardingState } from '../src/js/reducers/onboardingReducer';\nimport { initialState as initialOrganizationState } from '../src/js/reducers/organizationReducer';\nimport { initialState as initialReleasesState } from '../src/js/reducers/releaseReducer';\nimport { initialState as initialUsersState } from '../src/js/reducers/userReducer';\n\nexport const undefineds = /undefined|\\[object Object\\]/;\nexport const menderEnvironment = {\n features: {\n hasMultitenancy: true\n },\n integrationVersion: 'saas-123.34',\n menderVersion: 'next',\n metaMenderVersion: 'saas-123.34',\n services: {\n deploymentsVersion: '1.2.3',\n deviceauthVersion: null,\n inventoryVersion: null\n }\n};\nexport const TEST_SESSION_DATETIME = '2019-01-13T13:00:00.000Z';\nconst testDate = new Date(TEST_SESSION_DATETIME);\nexport const mockDate = new Date(testDate.setMilliseconds(testDate.getMilliseconds() + maxSessionAge));\n\nexport const defaultPassword = 'mysecretpassword!123';\nexport const defaultCreationDate = '2019-01-13T06:25:00.000Z';\nexport const defaultMacAddress = 'dc:a6:32:12:ad:bf';\n\nconst deviceTypes = { qemu: 'qemux86-64' };\nconst permissionSetObjectTypes = {\n any: 'Any',\n artifacts: 'Artifacts',\n empty: '',\n groups: 'Device groups',\n releases: 'Releases',\n userManagement: 'User management'\n};\n\nconst commonEndpoints = {\n artifacts: '^/api/management/v1/deployments/artifacts',\n artifactDetails: '^/api/management/v1/deployments/artifacts/[^/]+',\n deviceManagement: '^/api/management/(v[1-9])/(devauth|inventory)/'\n};\n\nexport const token =\n 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJjZTNkMGY4Yy1hZWRlLTQwMzAtYjM5MS03ZDUwMjBlYjg3M2UiLCJzdWIiOiJhMzBhNzgwYi1iODQzLTUzNDQtODBlMy0wZmQ5NWE0ZjZmYzMiLCJleHAiOjE2MDY4MTUzNjksImlhdCI6MTYwNjIxMDU2OSwibWVuZGVyLnRlbmFudCI6IjVmODVjMTdiY2U2MmI3ZmE3ZjVmNzA0MCIsIm1lbmRlci51c2VyIjp0cnVlLCJpc3MiOiJNZW5kZXIgVXNlcnMiLCJzY3AiOiJtZW5kZXIuKiIsIm1lbmRlci5wbGFuIjoicHJvZmVzc2lvbmFsIiwibmJmIjoxNjA2MjEwNTY5fQ.qVgYdCzLTf8OdK9uUctqqaY_HWkIiwpekuGvuGQAXCEgOv4bRNDlZRN_ZRSbxQoARG3pquhScbQrjBV9tcF4irTUPlTn3yrsXNO17DpcbTVeKRkb88RDtIKiRw3orVZ_GlIb-ckTQ5dS-Nqlyyf3Fmrhca-gwt6m_xv2UrmJK6eYYTMfggdRRWb-4u7mEkBI_pHPMTQrT8kJ2BeX-vHgazH9AoH0k85LHtFZQXD7pXHlDZRnLxJXukncwMGDmF17374gavYAIyDIzcC8sEBMDnVXgpikeA1sauzirqix6mAVs6XmxdQO7aF0wfXO1_PTYUA3Nk1oQfMYNlEI3U9uLRJRZIq2L8fmrrBryhstKd4y0KlBbGAQrx8NtRkgajjd1ljMfPBUEZrb7uSerVjneiO-aIBO76CuH0zdklphIjpGJeogkBhe8pAYNggp1XsZHgpZfl7IE5faKaDkMGnutaea--Czor6bhqUNCuY4tR0cpQJbNwy6LS9o1CFy4Log';\n\nexport const accessTokens = [\n { id: 'some-id-1', expiration_date: '2022-06-02T11:11:21.725Z', name: 'some-name-1' },\n { id: 'some-id-2', expiration_date: '2022-06-02T11:11:21.725Z', last_used: '2022-06-02T11:05:21.725Z', name: 'some-name-2' }\n];\n\nexport const webhookEvents = [\n {\n id: '1',\n type: 'device-status-changed',\n data: { id: '1', status: 'accepted' },\n time: '2020-09-01T12:00:00.000Z',\n delivery_statuses: [{ integration_id: '1', success: true, status_code: 200 }]\n },\n {\n id: '2',\n type: 'device-status-changed',\n data: { id: '3', status: 'accepted' },\n time: '2020-09-01T12:00:05.000Z',\n delivery_statuses: [{ integration_id: '1', success: true, status_code: 200 }]\n }\n];\n\nexport const adminUserCapabilities = {\n canAuditlog: true,\n canConfigure: true,\n canDeploy: true,\n canManageDevices: true,\n canManageReleases: true,\n canManageUsers: true,\n canReadDeployments: true,\n canReadDevices: true,\n canReadReleases: true,\n canReadUsers: true,\n canTroubleshoot: true,\n canUploadReleases: true,\n canWriteDevices: true\n};\n\nexport const userId = 'a30a780b-b843-5344-80e3-0fd95a4f6fc3';\nexport const defaultState = {\n app: {\n ...initialAppState,\n searchState: {\n deviceIds: [],\n searchTerm: '',\n searchTotal: 0,\n sort: {}\n },\n snackbar: {},\n uploadsById: {},\n versionInformation: {}\n },\n deployments: {\n ...initialDeploymentsState,\n byId: {\n d1: {\n id: 'd1',\n name: 'test deployment',\n artifact_name: 'r1',\n artifacts: ['123'],\n created: '2019-01-01T12:30:00.000Z',\n device_count: 1,\n devices: {\n a1: {\n attributes: {},\n id: 'a1',\n image: { size: 123 },\n status: 'installing'\n }\n },\n statistics: {\n status: {\n downloading: 0,\n decommissioned: 0,\n failure: 0,\n installing: 1,\n noartifact: 0,\n pending: 0,\n rebooting: 0,\n success: 0,\n 'already-installed': 0\n },\n total_size: 1234\n }\n },\n d2: {\n id: 'd2',\n name: 'test deployment 2',\n artifact_name: 'r1',\n artifacts: ['123'],\n created: '2019-01-01T12:25:00.000Z',\n device_count: 1,\n devices: {\n b1: {\n attributes: {},\n id: 'b1',\n status: 'pending'\n }\n },\n statistics: {\n status: {\n downloading: 0,\n decommissioned: 0,\n failure: 0,\n installing: 0,\n noartifact: 0,\n pending: 1,\n rebooting: 0,\n success: 0,\n 'already-installed': 0\n }\n }\n }\n },\n byStatus: {\n finished: { deploymentIds: ['d1'], total: 1 },\n inprogress: { deploymentIds: ['d1'], total: 1 },\n pending: { deploymentIds: ['d2'], total: 1 },\n scheduled: { deploymentIds: ['d2'], total: 1 }\n },\n deploymentDeviceLimit: 500,\n selectedDeviceIds: [],\n selectionState: {\n finished: {\n ...DeviceConstants.DEVICE_LIST_DEFAULTS,\n selection: ['d1'],\n endDate: undefined,\n search: '',\n total: 1,\n type: ''\n },\n inprogress: { ...DeviceConstants.DEVICE_LIST_DEFAULTS, selection: ['d1'], total: 1 },\n pending: { ...DeviceConstants.DEVICE_LIST_DEFAULTS, selection: ['d2'], total: 1 },\n scheduled: { ...DeviceConstants.DEVICE_LIST_DEFAULTS, selection: ['d2'], total: 1 },\n general: {\n state: 'active',\n showCreationDialog: false,\n showReportDialog: false,\n reportType: null\n },\n selectedId: 'd1'\n }\n },\n devices: {\n ...initialDevicesState,\n byId: {\n a1: {\n id: 'a1',\n attributes: {\n device_type: ['raspberrypi4'],\n ipv4_wlan0: '192.168.10.141/24'\n },\n check_in_time: '2019-01-01T10:25:00.000Z',\n identity_data: { mac: defaultMacAddress },\n status: 'accepted',\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: 'accepted'\n }\n ]\n },\n b1: {\n id: 'b1',\n attributes: {\n ipv4_wlan0: '192.168.10.141/24',\n device_type: [deviceTypes.qemu]\n },\n check_in_time: '2019-01-01T10:25:00.000Z',\n identity_data: { mac: defaultMacAddress },\n status: 'accepted',\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: 'accepted'\n }\n ]\n },\n c1: {\n id: 'c1',\n auth_sets: [],\n attributes: {\n device_type: ['qemux86-128']\n }\n }\n },\n byStatus: {\n accepted: { deviceIds: ['a1', 'b1'], total: 2 },\n active: { deviceIds: [], total: 0 },\n inactive: { deviceIds: [], total: 0 },\n pending: { deviceIds: ['c1'], total: 1 },\n preauthorized: { deviceIds: [], total: 0 },\n rejected: { deviceIds: [], total: 0 }\n },\n deviceList: {\n deviceIds: [],\n isLoading: false,\n page: 1,\n perPage: 20,\n selectedAttributes: [],\n selectedIssues: [],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc\n // key: null,\n // scope: null\n },\n state: DeviceConstants.DEVICE_STATES.accepted,\n total: 0\n },\n filteringAttributes: {\n identityAttributes: ['mac'],\n inventoryAttributes: ['artifact_name'],\n systemAttributes: [],\n tagAttributes: []\n },\n filteringAttributesLimit: 10,\n filters: [],\n groups: {\n byId: {\n testGroup: {\n deviceIds: ['a1', 'b1'],\n filters: [],\n total: 2\n },\n testGroupDynamic: {\n id: 'filter1',\n filters: [{ scope: 'system', key: 'group', operator: '$eq', value: 'things' }]\n }\n },\n selectedGroup: undefined\n },\n limit: 500\n },\n onboarding: {\n ...initialOnboardingState,\n progress: undefined,\n complete: false,\n demoArtifactPort: 85,\n showConnectDeviceDialog: false,\n showTipsDialog: false\n },\n monitor: {\n ...initialMonitorState,\n alerts: {\n alertList: { ...DeviceConstants.DEVICE_LIST_DEFAULTS, total: 0 },\n byDeviceId: {\n a1: {\n alerts: [\n {\n description: 'something',\n id: '31346239-3839-6262-2d63-3365622d3437',\n name: 'SSH Daemon is not running',\n device_id: 'a1',\n level: 'CRITICAL',\n subject: {\n name: 'sshd',\n type: 'systemd',\n status: 'not-running',\n details: { description: 'Jul 22 10:40:56 raspberrypi sshd[32031]: pam_unix(sshd:session): session closed for user root' }\n },\n timestamp: '2021-07-23T12:22:36Z'\n }\n ],\n latest: []\n }\n }\n },\n issueCounts: {\n byType: Object.values(DeviceConstants.DEVICE_ISSUE_OPTIONS).reduce(\n (accu, { isCategory, key }) => {\n if (isCategory) {\n return accu;\n }\n const current = accu[key] ?? {};\n accu[key] = { filtered: 0, total: 0, ...current };\n return accu;\n },\n {\n [DeviceConstants.DEVICE_ISSUE_OPTIONS.authRequests.key]: { filtered: 0, total: 0 },\n [DeviceConstants.DEVICE_ISSUE_OPTIONS.monitoring.key]: { filtered: 3, total: 0 },\n [DeviceConstants.DEVICE_ISSUE_OPTIONS.offline.key]: { filtered: 0, total: 0 }\n }\n )\n },\n settings: {\n global: {\n channels: { email: { enabled: true } }\n }\n }\n },\n organization: {\n ...initialOrganizationState,\n card: {\n brand: 'testCorp',\n last4: '7890',\n expiration: { month: 1, year: 2024 }\n },\n auditlog: {\n events: [\n {\n actor: {\n id: 'string',\n type: 'user',\n email: 'string@example.com'\n },\n time: '2019-01-01T12:10:22.667Z',\n action: 'create',\n object: {\n id: 'string',\n type: 'user',\n user: {\n email: 'user@acme.com'\n }\n },\n change: 'change1'\n },\n {\n actor: {\n id: 'string',\n type: 'user',\n email: 'string',\n identity_data: 'string'\n },\n time: '2019-01-01T12:16:22.667Z',\n action: 'create',\n object: {\n id: 'string',\n type: 'deployment',\n deployment: {\n name: 'production',\n artifact_name: 'Application 0.0.1'\n }\n },\n change: 'change2'\n },\n {\n actor: {\n id: 'string',\n type: 'user',\n email: 'string@example.com'\n },\n time: '2019-01-01T12:10:22.669Z',\n action: 'open_terminal',\n meta: {\n session_id: ['abd313a8-ee88-48ab-9c99-fbcd80048e6e']\n },\n object: {\n id: 'a1',\n type: 'device'\n },\n change: 'change3'\n }\n ],\n selectionState: {\n ...DeviceConstants.DEVICE_LIST_DEFAULTS,\n sort: {},\n total: 3\n }\n },\n intentId: 'testIntent',\n organization: {\n addons: [],\n id: 1,\n name: 'test',\n plan: 'os',\n trial: false\n }\n },\n releases: {\n ...initialReleasesState,\n byId: {\n r1: {\n name: 'r1',\n artifacts: [\n {\n id: 'art1',\n description: 'test description',\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n updates: [{ type_info: 'testtype' }],\n artifact_depends: {\n device_type: [deviceTypes.qemu]\n },\n artifact_provides: {\n artifact_name: 'myapp',\n 'data-partition.myapp.version': 'v2020.10',\n list_of_fancy: [deviceTypes.qemu, 'x172']\n },\n clears_artifact_provides: ['data-partition.myapp.*']\n }\n ],\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n metaData: {}\n }\n },\n releasesList: {\n ...DeviceConstants.DEVICE_LIST_DEFAULTS,\n searchedIds: [],\n isLoading: false,\n releaseIds: ['r1'],\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'name'\n },\n searchTerm: '',\n searchTotal: 0,\n total: 1\n }\n },\n users: {\n ...initialUsersState,\n byId: {\n a1: { email: 'a@b.com', id: 'a1', created_ts: '2019-01-01T10:30:00.000Z', roles: [rolesByName.admin], verified: true },\n [userId]: { email: 'a2@b.com', id: userId, created_ts: '2019-01-01T12:30:00.000Z', roles: [rolesByName.admin], tfa_status: twoFAStates.enabled }\n },\n currentUser: 'a1',\n globalSettings: { '2fa': 'enabled', id_attribute: undefined, previousFilters: [] },\n rolesById: {\n ...rolesById,\n test: {\n ...emptyRole,\n name: 'test',\n description: 'test description',\n editable: true,\n uiPermissions: {\n ...emptyUiPermissions,\n groups: { testGroup: [uiPermissionsById.read.value] }\n }\n }\n },\n settingsInitialized: true,\n userSettings: { columnSelection: [], onboarding: { something: 'here' }, tooltips: {} }\n }\n};\n\nexport const releasesList = Array.from({ length: 5000 }, (x, i) => ({\n ...defaultState.releases.byId.r1,\n name: `release-${i + 1}`,\n modified: i\n}));\n\nexport const permissionSets = [\n {\n ...defaultPermissionSets.Basic,\n object: permissionSetObjectTypes.empty,\n description: 'Set containing basic permissions.',\n permissions: [\n { action: 'http', object: { type: 'any', value: '^/api/management/v1/useradm/settings$' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/v1/useradm/users/me$' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/1.0/auth/verify$' } },\n { action: 'http', object: { type: 'PUT', value: '^/api/management/v1/useradm/2faverify$' } },\n { action: 'http', object: { type: 'POST', value: '^/api/management/v1/useradm/users/me/2fa/(enable|disable)$' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/useradm/roles' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/tenantadm/user/tenant' } }\n ]\n },\n {\n ...defaultPermissionSets.ManageReleases,\n action: uiPermissionsById.manage.title,\n object: permissionSetObjectTypes.releases,\n description: 'Set of permissions which allows user to manage releases',\n permissions: [\n { action: 'http', object: { type: 'GET', value: commonEndpoints.artifacts } },\n { action: 'http', object: { type: 'GET', value: commonEndpoints.artifactDetails } },\n { action: 'http', object: { type: 'PUT', value: commonEndpoints.artifactDetails } },\n { action: 'http', object: { type: 'DELETE', value: commonEndpoints.artifactDetails } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/v1/deployments/artifacts/[^/]+/download' } }\n ]\n },\n {\n ...defaultPermissionSets.ReadUsers,\n action: uiPermissionsById.read.title,\n object: permissionSetObjectTypes.userManagement,\n description: 'Set of permissions which allows user to view other users',\n permissions: [{ action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/useradm/' } }]\n },\n {\n ...defaultPermissionSets.ManageUsers,\n action: uiPermissionsById.manage.title,\n object: permissionSetObjectTypes.userManagement,\n description: 'Set of permissions which allows user manage other user accounts',\n permissions: [{ action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/useradm/' } }]\n },\n {\n ...defaultPermissionSets.ReadAuditLogs,\n action: uiPermissionsById.read.title,\n object: 'System audit log',\n description: 'Set of permissions which allows user to view system audit log',\n permissions: [{ action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9]|0.1.0)/auditlogs/logs' } }]\n },\n {\n ...defaultPermissionSets.DeployToDevices,\n action: 'Deploy',\n object: permissionSetObjectTypes.groups,\n description: 'Set of permissions which allows user to deploy to devices',\n permissions: [{ action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/(deployments|deviceconfig)/' } }],\n supported_scope_types: [scopedPermissionAreas.groups.scopeType]\n },\n {\n ...defaultPermissionSets.ConfigureDevices,\n action: 'Configure',\n object: permissionSetObjectTypes.groups,\n description: 'Set of permissions which allows user to manage configuration of the devices',\n permissions: [{ action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deviceconfig/' } }],\n supported_scope_types: [scopedPermissionAreas.groups.scopeType]\n },\n {\n ...defaultPermissionSets.ConnectToDevices,\n action: 'Connect',\n object: permissionSetObjectTypes.groups,\n description: 'Set of permissions which allows user to use remote terminal and file transfer',\n permissions: [\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+/connect$' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+/download\\\\?path=[^\\u0026]+$' } },\n { action: 'http', object: { type: 'PUT', value: '^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+/upload$' } }\n ],\n supported_scope_types: [scopedPermissionAreas.groups.scopeType]\n },\n {\n ...defaultPermissionSets.SuperUser,\n action: 'Any',\n object: permissionSetObjectTypes.any,\n description: 'Set of permissions which allows user to do anything',\n permissions: [{ action: 'any', object: { type: 'any', value: 'any' } }]\n },\n {\n ...defaultPermissionSets.UploadArtifacts,\n action: 'Upload',\n object: permissionSetObjectTypes.artifacts,\n description: 'Set of permissions which allows user to upload artifacts',\n permissions: [\n { action: 'http', object: { type: 'POST', value: commonEndpoints.artifacts } },\n { action: 'http', object: { type: 'POST', value: '^/api/management/v1/deployments/artifacts/generate' } }\n ]\n },\n {\n ...defaultPermissionSets.ReadDevices,\n action: uiPermissionsById.read.title,\n object: permissionSetObjectTypes.groups,\n description: 'Set of permissions which allows user to view devices',\n permissions: [\n { action: 'http', object: { type: 'POST', value: '^/api/management/v2/inventory/filters/search' } },\n { action: 'http', object: { type: 'POST', value: '^/api/management/v1/reporting/devices/search' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/(deployments|devauth|inventory|deviceconfig|devicemonitor)/' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+$' } }\n ],\n supported_scope_types: [scopedPermissionAreas.groups.scopeType]\n },\n {\n ...defaultPermissionSets.ManageDevices,\n action: uiPermissionsById.manage.title,\n object: permissionSetObjectTypes.groups,\n description: 'Set of permissions which allows user to manage devices',\n permissions: [\n { action: 'http', object: { type: 'POST', value: commonEndpoints.deviceManagement } },\n { action: 'http', object: { type: 'PUT', value: commonEndpoints.deviceManagement } },\n { action: 'http', object: { type: 'DELETE', value: commonEndpoints.deviceManagement } }\n ],\n supported_scope_types: [scopedPermissionAreas.groups.scopeType]\n },\n {\n ...defaultPermissionSets.ReadReleases,\n action: uiPermissionsById.read.title,\n object: permissionSetObjectTypes.releases,\n description: 'Set of permissions which allows user to view releases',\n permissions: [\n { action: 'http', object: { type: 'GET', value: commonEndpoints.artifacts } },\n { action: 'http', object: { type: 'GET', value: commonEndpoints.artifactDetails } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/v1/deployments/artifacts/[^/]+/download' } }\n ]\n },\n {\n name: 'almostAdmin',\n object: permissionSetObjectTypes.empty,\n description: 'Set containing all the permissions.',\n permissions: [\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/auditlogs/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deployments/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deployments/config/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deployments/deployments/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deployments/deployments/releases/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/devauth/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deviceconfig/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deviceconnect/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deviceconnect/devices' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/inventory/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/iot-manager/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/monitor/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/useradm/.*' } }\n ]\n }\n];\n\nexport const rbacRoles = [\n {\n name: 'dyn',\n description: '',\n permissions: [\n { action: 'CREATE_DEPLOYMENT', object: { type: 'DEVICE_GROUP', value: 'dyn' } },\n { action: 'VIEW_DEVICE', object: { type: 'DEVICE_GROUP', value: 'dyn' } }\n ]\n },\n { name: 'asdasd', description: '123', permissions: [{ action: 'http', object: { type: 'any', value: '/api/management/v1/useradm/.*' } }] },\n {\n name: '141sasd',\n description: '1313adg',\n permission_sets_with_scope: [\n { ...defaultPermissionSets.ReadDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ['bestgroup'] } },\n { ...defaultPermissionSets.ConnectToDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ['bestgroup'] } },\n { ...defaultPermissionSets.ManageUsers }\n ]\n },\n {\n name: 'kljlkk',\n description: 'lkl',\n permission_sets_with_scope: [{ ...defaultPermissionSets.ConnectToDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ['bestgroup'] } }]\n },\n {\n name: 'yyyyy',\n description: 'asd',\n permission_sets_with_scope: [\n { ...defaultPermissionSets.ManageDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ['dockerclient'] } },\n { ...defaultPermissionSets.ManageReleases }\n ]\n },\n {\n name: 'RBAC_ROLE_DEPLOYMENTS_MANAGER',\n description: 'Intended for users responsible for managing deployments, this role can create and abort deployments',\n permission_sets_with_scope: [{ ...defaultPermissionSets.DeployToDevices }]\n },\n {\n name: 'RBAC_ROLE_REMOTE_TERMINAL',\n description: `Intended for tech support accounts, this role can access the devices' Remote Terminal.`,\n permission_sets_with_scope: [{ ...defaultPermissionSets.ConnectToDevices }]\n },\n { name: 'RBAC_ROLE_PERMIT_ALL', description: '', permission_sets_with_scope: [{ ...defaultPermissionSets.SuperUser }] },\n {\n name: 'RBAC_ROLE_OBSERVER',\n description:\n 'Intended for team leaders or limited tech support accounts, this role can see all Devices, Artifacts and Deployment reports but not make any changes.',\n permission_sets_with_scope: [{ ...defaultPermissionSets.ReadReleases }, { ...defaultPermissionSets.ReadDevices }]\n },\n {\n name: 'RBAC_ROLE_CI',\n description:\n 'Intended for automation accounts building software (e.g. CI/CD systems), this role can only manage Artifacts, including upload new Artifacts and delete Artifacts. It does not have access to Devices or Deployments.',\n permission_sets_with_scope: [\n { ...defaultPermissionSets.ReadReleases },\n { ...defaultPermissionSets.ManageReleases },\n { ...defaultPermissionSets.UploadArtifacts }\n ]\n },\n {\n name: 'almostAdmin',\n description: 'almost admin rights',\n permissions: permissionSets.find(item => item.name === 'almostAdmin')?.permissions\n },\n {\n name: 'almostAdminNew',\n description: 'almost admin rights',\n permission_sets_with_scope: Object.values(defaultPermissionSets)\n }\n];\n\nconst expectedParsedRoles = {\n '141sasd': {\n editable: true,\n isCustom: undefined,\n uiPermissions: {\n ...emptyUiPermissions,\n groups: { bestgroup: [uiPermissionsById.read.value, uiPermissionsById.connect.value] },\n userManagement: [uiPermissionsById.manage.value]\n }\n },\n asdasd: {\n editable: false,\n isCustom: true,\n uiPermissions: { ...emptyUiPermissions, userManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value] }\n },\n dyn: {\n editable: false,\n isCustom: true,\n uiPermissions: {\n ...emptyUiPermissions,\n deployments: [uiPermissionsById.deploy.value],\n groups: { dyn: [uiPermissionsById.read.value, uiPermissionsById.deploy.value] }\n }\n },\n kljlkk: {\n editable: true,\n isCustom: false,\n uiPermissions: { ...emptyUiPermissions, groups: { bestgroup: [uiPermissionsById.read.value, uiPermissionsById.connect.value] } }\n },\n yyyyy: {\n editable: true,\n isCustom: undefined,\n uiPermissions: {\n ...emptyUiPermissions,\n groups: { dockerclient: [uiPermissionsById.read.value, uiPermissionsById.manage.value] },\n releases: { [ALL_RELEASES]: [uiPermissionsById.manage.value] }\n }\n },\n almostAdmin: {\n editable: false,\n isCustom: true,\n uiPermissions: {\n ...emptyUiPermissions,\n auditlog: [uiPermissionsById.read.value],\n deployments: [uiPermissionsById.manage.value, uiPermissionsById.deploy.value, uiPermissionsById.read.value],\n groups: {\n [DeviceConstants.ALL_DEVICES]: [\n uiPermissionsById.read.value,\n // we can't assign deployment permissions to devices here, since the old path based rbac controls don't allow the scoped permissions\n // uiPermissionsById.deploy.value,\n uiPermissionsById.manage.value,\n uiPermissionsById.connect.value,\n uiPermissionsById.configure.value\n ]\n },\n releases: {\n [ALL_RELEASES]: [uiPermissionsById.read.value, uiPermissionsById.upload.value, uiPermissionsById.manage.value]\n },\n userManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value]\n }\n },\n almostAdminNew: {\n editable: true,\n isCustom: undefined,\n uiPermissions: {\n ...emptyUiPermissions,\n auditlog: [uiPermissionsById.read.value],\n deployments: [uiPermissionsById.read.value, uiPermissionsById.deploy.value, uiPermissionsById.manage.value],\n groups: {\n [DeviceConstants.ALL_DEVICES]: [\n uiPermissionsById.read.value,\n uiPermissionsById.manage.value,\n uiPermissionsById.deploy.value,\n uiPermissionsById.connect.value,\n uiPermissionsById.configure.value\n ]\n },\n releases: {\n [ALL_RELEASES]: [uiPermissionsById.manage.value, uiPermissionsById.upload.value, uiPermissionsById.read.value]\n },\n userManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value]\n }\n }\n};\n\nexport const receivedRoles = rbacRoles.reduce(\n (accu, role) => {\n const { name, description, ...roleRemainder } = role;\n if (name.startsWith('RBAC')) {\n accu[name] = {\n ...defaultState.users.rolesById[name],\n ...roleRemainder,\n editable: false,\n isCustom: false,\n description: defaultState.users.rolesById[name].description ? defaultState.users.rolesById[name].description : description\n };\n } else {\n const result = expectedParsedRoles[name] ?? {};\n accu[name] = {\n ...emptyRole,\n ...role,\n ...result,\n name\n };\n }\n return accu;\n },\n { ...defaultState.users.rolesById }\n);\n\nexport const receivedPermissionSets = permissionSets.reduce((accu, set) => {\n const result = defaultPermissionSets[set.name]?.result ?? {};\n accu[set.name] = {\n ...set,\n result: {\n ...emptyUiPermissions,\n ...result\n }\n };\n return accu;\n}, {});\n","// Copyright 2019 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { combineReducers, configureStore } from '@reduxjs/toolkit';\n\nimport { defaultState } from '../../../tests/mockData';\nimport { SET_SNACKBAR, UPLOAD_PROGRESS } from '../constants/appConstants';\nimport { RECEIVE_EXTERNAL_DEVICE_INTEGRATIONS } from '../constants/organizationConstants';\nimport { USER_LOGOUT } from '../constants/userConstants';\nimport appReducer from './appReducer';\nimport deploymentReducer from './deploymentReducer';\nimport deviceReducer from './deviceReducer';\nimport monitorReducer from './monitorReducer';\nimport onboardingReducer from './onboardingReducer';\nimport organizationReducer from './organizationReducer';\nimport releaseReducer from './releaseReducer';\nimport userReducer from './userReducer';\n\nconst rootReducer = combineReducers({\n app: appReducer,\n devices: deviceReducer,\n deployments: deploymentReducer,\n monitor: monitorReducer,\n onboarding: onboardingReducer,\n organization: organizationReducer,\n releases: releaseReducer,\n users: userReducer\n});\n\nexport const sessionReducer = (state, action) => {\n if (action.type === USER_LOGOUT) {\n state = undefined;\n }\n return rootReducer(state, action);\n};\n\nexport const getConfiguredStore = (options = {}) => {\n const { preloadedState = { ...defaultState }, ...config } = options;\n return configureStore({\n ...config,\n preloadedState,\n reducer: sessionReducer,\n middleware: getDefaultMiddleware =>\n getDefaultMiddleware({\n immutableCheck: {\n ignoredPaths: ['app.uploadsById']\n },\n serializableCheck: {\n ignoredActions: [RECEIVE_EXTERNAL_DEVICE_INTEGRATIONS, SET_SNACKBAR, UPLOAD_PROGRESS],\n ignoredActionPaths: ['uploads', 'snackbar'],\n ignoredPaths: ['app.uploadsById', 'app.snackbar', 'organization.externalDeviceIntegrations']\n }\n })\n });\n};\n\nexport default getConfiguredStore({ preloadedState: {} });\n","// Copyright 2019 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Button, Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material';\n\nimport { setOnboardingCanceled, setShowDismissOnboardingTipsDialog } from '../../../actions/onboardingActions';\n\nexport const ConfirmDismissHelptips = () => {\n const dispatch = useDispatch();\n return (\n \n );\n};\n\nexport default ConfirmDismissHelptips;\n","// Copyright 2019 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link } from 'react-router-dom';\n\nimport { InfoOutlined as InfoIcon } from '@mui/icons-material';\nimport { Autocomplete, TextField } from '@mui/material';\nimport { createFilterOptions } from '@mui/material/useAutocomplete';\n\nimport { advanceOnboarding, setOnboardingApproach, setOnboardingDeviceType } from '../../../actions/onboardingActions';\nimport { EXTERNAL_PROVIDER } from '../../../constants/deviceConstants';\nimport { onboardingSteps } from '../../../constants/onboardingConstants';\nimport { getDebConfigurationCode, versionCompare } from '../../../helpers';\nimport {\n getCurrentSession,\n getFeatures,\n getFullVersionInformation,\n getIsEnterprise,\n getIsPreview,\n getOnboardingState,\n getOrganization\n} from '../../../selectors';\nimport { HELPTOOLTIPS, MenderHelpTooltip } from '../../helptips/helptooltips';\nimport CopyCode from '../copy-code';\nimport DocsLink from '../docslink';\nimport { MenderTooltipClickable } from '../mendertooltip';\n\nconst filter = createFilterOptions();\n\nconst types = [\n { title: 'Raspberry Pi 3', value: 'raspberrypi3' },\n { title: 'Raspberry Pi 4', value: 'raspberrypi4' }\n];\n\nexport const ConvertedImageNote = () => (\n \n We prepared an image, ready for Mender, for you to start with. You can find it in the{' '}\n documentation, which also contains\n instructions for initial device setup. Once you're done flashing you can go ahead and proceed to the next step.\n
\n);\n\nconst IntegrationsLink = () => (\n \n Integration settings\n \n);\n\nexport const ExternalProviderTip = ({ hasExternalIntegration, integrationProvider }) => (\n \n {hasExternalIntegration ? (\n \n Devices added here will be automatically integrated with the {EXTERNAL_PROVIDER[integrationProvider].title} you set in the{' '}\n .\n
\n ) : (\n \n To connect your devices with {EXTERNAL_PROVIDER[integrationProvider].title}, go to and set up the integration.\n
\n )}\n \n }\n >\n \n \n);\n\nexport const DeviceTypeSelectionStep = ({\n hasConvertedImage,\n hasExternalIntegration,\n integrationProvider,\n onboardingState,\n onSelect,\n selection = '',\n version\n}) => {\n const shouldShowOnboardingTip = !onboardingState.complete && onboardingState.showTips;\n const hasExternalIntegrationSupport = versionCompare(version, '3.2') > -1;\n return (\n <>\n Enter your device type
\n Setting this attribute on the device ensures that the device will only receive updates for compatible software releases.
\n\n \n
{\n // Value selected with enter, right from the input\n if (typeof option === 'string') {\n return option;\n }\n if (option.key === 'custom' && option.value === selection) {\n return option.value;\n }\n return option.title;\n }}\n handleHomeEndKeys\n includeInputInList\n filterOptions={(options, params) => {\n const filtered = filter(options, params);\n if (filtered.length !== 1 && params.inputValue !== '') {\n filtered.push({\n value: params.inputValue,\n key: 'custom',\n title: `Use \"${params.inputValue}\"`\n });\n }\n return filtered;\n }}\n options={types}\n onChange={onSelect}\n renderInput={params => (\n \n )}\n style={{ maxWidth: 300 }}\n value={selection}\n />\n {hasExternalIntegrationSupport && }\n {shouldShowOnboardingTip ? : }\n \n {hasConvertedImage && }\n >\n );\n};\n\nexport const InstallationStep = ({ advanceOnboarding, selection, onboardingState, ...remainingProps }) => {\n const codeToCopy = getDebConfigurationCode({ ...remainingProps, deviceType: selection, isOnboarding: !onboardingState.complete });\n return (\n <>\n Log into your device and install the Mender client
\n \n Copy & paste and run this command on your device:\n
\n advanceOnboarding(onboardingSteps.DASHBOARD_ONBOARDING_START)} withDescription={true} />\n This downloads the Mender client on the device, sets the configuration and starts the client.
\n \n Once the client has started, your device will attempt to connect to the server. It will then appear in your Pending devices tab and you can continue.\n
\n >\n );\n};\n\nconst steps = {\n 1: DeviceTypeSelectionStep,\n 2: InstallationStep\n};\n\nconst integrationProvider = EXTERNAL_PROVIDER['iot-hub'].provider;\n\nexport const PhysicalDeviceOnboarding = ({ progress }) => {\n const [selection, setSelection] = useState('');\n const hasExternalIntegration = useSelector(state => {\n const { credentials = {} } = state.organization.externalDeviceIntegrations.find(integration => integration.provider === integrationProvider) ?? {};\n const { [EXTERNAL_PROVIDER['iot-hub'].credentialsAttribute]: azureConnectionString = '' } = credentials;\n return !!azureConnectionString;\n });\n const ipAddress = useSelector(state => state.app.hostAddress);\n const isEnterprise = useSelector(getIsEnterprise);\n const { isDemoMode, isHosted } = useSelector(getFeatures);\n const isPreRelease = useSelector(getIsPreview);\n const onboardingState = useSelector(getOnboardingState);\n const { tenant_token: tenantToken } = useSelector(getOrganization);\n const { Integration: version } = useSelector(getFullVersionInformation);\n const { token } = useSelector(getCurrentSession);\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(setOnboardingApproach('physical'));\n }, [dispatch]);\n\n const onSelect = (e, deviceType, reason) => {\n if (reason === 'selectOption') {\n dispatch(setOnboardingDeviceType(deviceType.value));\n setSelection(deviceType.value);\n } else if (reason === 'clear') {\n dispatch(setOnboardingDeviceType(''));\n setSelection('');\n }\n };\n\n const hasConvertedImage = !!selection && selection.length && (selection.startsWith('raspberrypi3') || selection.startsWith('raspberrypi4'));\n\n const ComponentToShow = steps[progress];\n return (\n dispatch(advanceOnboarding(step))}\n hasExternalIntegration={hasExternalIntegration}\n hasConvertedImage={hasConvertedImage}\n integrationProvider={integrationProvider}\n ipAddress={ipAddress}\n isEnterprise={isEnterprise}\n isHosted={isHosted}\n isDemoMode={isDemoMode}\n isPreRelease={isPreRelease}\n onboardingState={onboardingState}\n onSelect={onSelect}\n selection={selection}\n tenantToken={tenantToken}\n token={token}\n version={version}\n />\n );\n};\n\nexport default PhysicalDeviceOnboarding;\n","// Copyright 2019 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { setOnboardingApproach } from '../../../actions/onboardingActions';\nimport { initialState as onboardingReducerState } from '../../../reducers/onboardingReducer';\nimport { getFeatures, getOrganization } from '../../../selectors';\nimport CopyCode from '../copy-code';\nimport DocsLink from '../docslink';\n\nexport const getDemoDeviceCreationCommand = tenantToken =>\n tenantToken\n ? `TENANT_TOKEN='${tenantToken}'\\ndocker run -it -p ${onboardingReducerState.demoArtifactPort}:${onboardingReducerState.demoArtifactPort} -e SERVER_URL='https://${window.location.hostname}' \\\\\\n-e TENANT_TOKEN=$TENANT_TOKEN --pull=always mendersoftware/mender-client-qemu`\n : './demo --client up';\n\nexport const VirtualDeviceOnboarding = () => {\n const dispatch = useDispatch();\n const { isHosted } = useSelector(getFeatures);\n const { tenant_token: tenantToken } = useSelector(getOrganization);\n\n useEffect(() => {\n dispatch(setOnboardingApproach('virtual'));\n }, [dispatch]);\n\n const codeToCopy = getDemoDeviceCreationCommand(tenantToken);\n\n return (\n \n {isHosted ? (\n
\n ) : (\n
\n
1. Prerequisites\n
\n As you are running Mender on-premise, for these instructions we assume that you already have Docker installed and the Mender integration environment\n up and running on your machine.\n
\n
To start a virtual device, change directory into the folder where you cloned Mender integration.
\n
\n )}\n
\n 2. Copy & paste and run the following command to start the virtual device:\n
\n
\n
The device should appear in the Pending devices view in a couple of minutes.
\n
\n Visit for more information on managing the virtual\n device.\n
\n
\n );\n};\n\nexport default VirtualDeviceOnboarding;\n","// Copyright 2019 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\n\nimport { Button, Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport docker from '../../../../assets/img/docker.png';\nimport raspberryPi4 from '../../../../assets/img/raspberrypi4.png';\nimport raspberryPi from '../../../../assets/img/raspberrypi.png';\nimport { setDeviceListState } from '../../../actions/deviceActions';\nimport { advanceOnboarding } from '../../../actions/onboardingActions';\nimport { saveUserSettings } from '../../../actions/userActions';\nimport { TIMEOUTS } from '../../../constants/appConstants';\nimport { DEVICE_STATES } from '../../../constants/deviceConstants';\nimport { onboardingSteps } from '../../../constants/onboardingConstants';\nimport { getDeviceCountsByStatus, getOnboardingState, getTenantCapabilities } from '../../../selectors';\nimport InfoText from '../../common/infotext';\nimport { HELPTOOLTIPS, MenderHelpTooltip } from '../../helptips/helptooltips';\nimport DocsLink from '../docslink';\nimport PhysicalDeviceOnboarding from './physicaldeviceonboarding';\nimport VirtualDeviceOnboarding from './virtualdeviceonboarding';\n\nconst useStyles = makeStyles()(theme => ({\n rpiQuickstart: {\n backgroundColor: theme.palette.background.lightgrey\n },\n virtualLogo: { height: 40, marginLeft: theme.spacing(2) }\n}));\n\nconst DeviceConnectionExplainer = ({ hasMonitor, setOnDevice, setVirtualDevice }) => {\n const { classes } = useStyles();\n return (\n <>\n \n You can connect almost any device and Linux OS with Mender, but to make things simple during evaluation we recommend you use a Raspberry Pi as a test\n device.\n
\n \n
Raspberry Pi quick start
\n
We'll walk you through the steps to connect a Raspberry Pi and deploy your first update with Mender.
\n
\n
\n {[raspberryPi, raspberryPi4].map((tile, index) => (\n

\n ))}\n
\n
\n
\n
\n \n
\n
\n
Use a virtual device
\n

\n
\n
Don't have a Raspberry Pi?
\n
You can use our Docker-run virtual device to go through the same tutorial.
\n {hasMonitor && (\n
\n If you want to evaluate our commercial components such as mender-monitor, please use a physical device instead as the virtual client does not\n support these components at this time.\n \n )}\n
setVirtualDevice(true)}>Try a virtual device\n
\n
\n
Other devices
\n
See the documentation to integrate the following with Mender:
\n
\n {[\n { key: 'debian', target: 'operating-system-updates-debian-family', title: 'Debian family' },\n { key: 'yocto', target: 'operating-system-updates-yocto-project', title: 'Yocto OSes' }\n ].map(item => (\n - \n \n
\n ))}\n
\n Or visit {/* eslint-disable-next-line react/jsx-no-target-blank */}\n
\n Mender Hub\n {' '}\n and search integrations for your device and OS.\n
\n
\n \n >\n );\n};\n\nexport const DeviceConnectionDialog = ({ onCancel }) => {\n const [onDevice, setOnDevice] = useState(false);\n const [progress, setProgress] = useState(1);\n const [virtualDevice, setVirtualDevice] = useState(false);\n const { pending: pendingCount } = useSelector(getDeviceCountsByStatus);\n const [pendingDevicesCount] = useState(pendingCount);\n const [hasMoreDevices, setHasMoreDevices] = useState(false);\n const { hasMonitor } = useSelector(getTenantCapabilities);\n const { complete: onboardingComplete, deviceType: onboardingDeviceType } = useSelector(getOnboardingState);\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n useEffect(() => {\n setHasMoreDevices(pendingCount > pendingDevicesCount);\n }, [pendingDevicesCount, pendingCount]);\n\n useEffect(() => {\n if ((virtualDevice || progress >= 2) && hasMoreDevices && !window.location.hash.includes('pending')) {\n dispatch(advanceOnboarding(onboardingSteps.DASHBOARD_ONBOARDING_START));\n dispatch(setDeviceListState({ state: DEVICE_STATES.pending }));\n navigate('/devices/pending');\n }\n if (virtualDevice || progress >= 2) {\n dispatch(saveUserSettings({ onboarding: { deviceConnection: new Date().toISOString() } }));\n }\n }, [dispatch, hasMoreDevices, navigate, progress, virtualDevice]);\n\n const onBackClick = () => {\n let updatedProgress = progress - 1;\n if (!updatedProgress) {\n updatedProgress = 1;\n setOnDevice(false);\n setVirtualDevice(false);\n }\n setProgress(updatedProgress);\n };\n\n const onAdvance = () => {\n dispatch(advanceOnboarding(onboardingSteps.DASHBOARD_ONBOARDING_START));\n setProgress(progress + 1);\n };\n\n let content = ;\n if (onDevice) {\n content = ;\n } else if (virtualDevice) {\n content = ;\n }\n\n if (hasMoreDevices && !onboardingComplete) {\n setTimeout(onCancel, TIMEOUTS.twoSeconds);\n }\n\n return (\n \n );\n};\n\nexport default DeviceConnectionDialog;\n","// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React from 'react';\n\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(theme => ({\n footer: {\n background: theme.palette.brand.northernTech,\n display: 'grid',\n minHeight: theme.mixins.toolbar.minHeight,\n gridTemplateColumns: '1fr max-content max-content',\n columnGap: theme.spacing(4),\n paddingLeft: '5vw',\n paddingRight: '5vw',\n alignItems: 'center',\n '>a': {\n color: '#fff'\n },\n '>a:hover': {\n color: '#092128'\n }\n }\n}));\n\nconst companySite = 'https://northern.tech';\n\nconst targets = [\n { key: 'company', target: companySite, title: `© ${new Date().getFullYear()} Northern.tech` },\n { key: 'tos', target: `${companySite}/legal/hosted-mender-agreement-northern-tech-as.pdf`, title: 'Terms of service' },\n { key: 'privacyPolicy', target: `${companySite}/legal/privacy-policy`, title: 'Privacy policy' }\n];\n\nexport const Footer = () => {\n const { classes } = useStyles();\n return (\n \n {targets.map(({ key, target, title }) => {\n return (\n /* eslint-disable-next-line react/jsx-no-target-blank */\n
\n {title}\n \n );\n })}\n
\n );\n};\n\nexport default Footer;\n","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 4c1.93 0 3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5S10.07 6 12 6zm0 14c-2.03 0-4.43-.82-6.14-2.88C7.55 15.8 9.68 15 12 15s4.45.8 6.14 2.12C16.43 19.18 14.03 20 12 20z\"\n}), 'AccountCircle');","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 9h-2V5h2v6zm0 4h-2v-2h2v2z\"\n}), 'Announcement');","// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React from 'react';\nimport Linkify from 'react-linkify';\n\nimport { Announcement as AnnounceIcon, Close as CloseIcon } from '@mui/icons-material';\n\nconst Announcement = ({ announcement = '', errorIconClassName, iconClassName, onHide, sectionClassName }) => (\n \n
\n
\n {announcement}\n
\n
\n
\n);\n\nexport default Announcement;\n","// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React from 'react';\n\nimport { InfoOutlined as InfoIcon } from '@mui/icons-material';\n\nimport DocsLink from '../common/docslink';\nimport { MenderTooltipClickable } from '../common/mendertooltip';\n\nconst DemoNotification = ({ iconClassName, sectionClassName }) => (\n \n Demo mode
\n \n Mender is currently running in demo mode.\n
\n \n .\n
\n >\n }\n >\n <>\n \n Demo mode\n >\n \n);\n\nexport default DemoNotification;\n","// Copyright 2017 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React from 'react';\nimport { Link } from 'react-router-dom';\n\n// material ui\nimport { Refresh as RefreshIcon } from '@mui/icons-material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { DEPLOYMENT_ROUTES } from '../../constants/deploymentConstants';\n\nconst useStyles = makeStyles()(theme => ({\n icon: { color: theme.palette.grey[500], margin: '0 7px 0 10px', top: '5px', fontSize: '20px' }\n}));\n\nconst DeploymentNotifications = props => {\n const { classes } = useStyles();\n return (\n \n {props.inprogress}\n \n \n );\n};\n\nexport default DeploymentNotifications;\n","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M22 9V7h-2V5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-2h2v-2h-2v-2h2v-2h-2V9h2zm-4 10H4V5h14v14zM6 13h5v4H6zm6-6h4v3h-4zM6 7h5v5H6zm6 4h4v6h-4z\"\n}), 'DeveloperBoard');","// Copyright 2017 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React from 'react';\nimport { Link } from 'react-router-dom';\n\n// material ui\nimport { DeveloperBoard as DeveloperBoardIcon } from '@mui/icons-material';\n\nimport pluralize from 'pluralize';\n\nimport { MenderTooltipClickable } from '../common/mendertooltip';\nimport { DeviceLimitContact } from '../devices/dialogs/preauth-dialog';\n\nconst DeviceNotifications = ({ total, limit, pending }) => {\n const approaching = limit && total / limit > 0.8;\n const warning = limit && limit <= total;\n const content = (\n <>\n \n {total.toLocaleString()}\n {limit ? /{limit.toLocaleString()} : null}\n\n \n \n {pending ? (\n \n {pending.toLocaleString()} pending\n \n ) : null}\n >\n );\n if (!limit) {\n return {content}
;\n }\n return (\n \n Device limit
\n {approaching || warning ? (\n You {approaching ? are nearing : have reached} your device limit.
\n ) : (\n \n You can still connect another {(limit - total).toLocaleString()} {pluralize('devices', limit - total)}.\n
\n )}\n \n \n Learn about the different plans available by visiting {/* eslint-disable-next-line react/jsx-no-target-blank */}\n \n mender.io/pricing\n \n
\n >\n }\n >\n {content}\n \n );\n};\nexport default DeviceNotifications;\n","// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React from 'react';\n\nimport { Announcement as AnnouncmentIcon, Close as CloseIcon } from '@mui/icons-material';\n\nimport DocsLink from '../common/docslink';\n\nconst OfferHeader = ({ onHide }) => (\n \n);\n\nexport default OfferHeader;\n","// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { InfoOutlined as InfoIcon, Payment } from '@mui/icons-material';\nimport { Button } from '@mui/material';\n\nimport moment from 'moment';\nimport momentDurationFormatSetup from 'moment-duration-format';\nimport pluralize from 'pluralize';\n\nimport { MenderTooltipClickable } from '../common/mendertooltip';\n\nmomentDurationFormatSetup(moment);\n\nconst today = new Date();\n\nconst TrialInformation = () => (\n <>\n Trial plan
\n You're using the trial version of Mender – it's free for up to 10 devices for 12 months.
\n \n Upgrade to a plan to add more devices and continue using Mender after the trial expires.\n
\n \n Or compare the plans at {/* eslint-disable-next-line react/jsx-no-target-blank */}\n \n mender.io/plans/pricing\n \n .\n
\n >\n);\n\nconst TrialNotification = ({ iconClassName, sectionClassName, expiration }) => {\n const expirationDate = moment(expiration);\n const duration = moment.duration(expirationDate.diff(moment(today)));\n const daysLeft = Math.floor(duration.asDays());\n return (\n \n
}>\n <>\n
\n Trial plan\n >\n \n
} to=\"/settings/upgrade\">\n Upgrade now\n \n\n {expiration && daysLeft <= 100 && daysLeft >= 0 && (\n
\n You have {daysLeft} {pluralize('day', daysLeft)} remaining on the trial plan\n
\n )}\n
\n );\n};\n\nexport default TrialNotification;\n","// Copyright 2015 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link } from 'react-router-dom';\n\nimport {\n AccountCircle as AccountCircleIcon,\n ArrowDropDown as ArrowDropDownIcon,\n ArrowDropUp as ArrowDropUpIcon,\n ExitToApp as ExitIcon\n} from '@mui/icons-material';\nimport { Button, IconButton, ListItemSecondaryAction, ListItemText, Menu, MenuItem, Toolbar } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport moment from 'moment';\nimport Cookies from 'universal-cookie';\n\nimport enterpriseLogo from '../../../assets/img/headerlogo-enterprise.png';\nimport logo from '../../../assets/img/headerlogo.png';\nimport whiteEnterpriseLogo from '../../../assets/img/whiteheaderlogo-enterprise.png';\nimport whiteLogo from '../../../assets/img/whiteheaderlogo.png';\nimport { setFirstLoginAfterSignup, setSearchState } from '../../actions/appActions';\nimport { getAllDeviceCounts } from '../../actions/deviceActions';\nimport { initializeSelf, logoutUser, setAllTooltipsReadState, setHideAnnouncement } from '../../actions/userActions';\nimport { TIMEOUTS } from '../../constants/appConstants';\nimport { READ_STATES } from '../../constants/userConstants';\nimport { isDarkMode } from '../../helpers';\nimport {\n getAcceptedDevices,\n getCurrentSession,\n getCurrentUser,\n getDeviceCountsByStatus,\n getDeviceLimit,\n getFeatures,\n getIsEnterprise,\n getOrganization,\n getShowHelptips,\n getUserCapabilities,\n getUserSettings\n} from '../../selectors';\nimport Tracking from '../../tracking';\nimport { useDebounce } from '../../utils/debouncehook';\nimport Search from '../common/search';\nimport Announcement from './announcement';\nimport DemoNotification from './demonotification';\nimport DeploymentNotifications from './deploymentnotifications';\nimport DeviceNotifications from './devicenotifications';\nimport OfferHeader from './offerheader';\nimport TrialNotification from './trialnotification';\n\n// Change this when a new feature/offer is introduced\nconst currentOffer = {\n name: 'add-ons',\n expires: '2021-12-30',\n trial: true,\n os: true,\n professional: true,\n enterprise: true\n};\n\nconst cookies = new Cookies();\n\nconst useStyles = makeStyles()(theme => ({\n header: {\n minHeight: 'unset',\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(5),\n width: '100%',\n borderBottom: `1px solid ${theme.palette.grey[100]}`,\n display: 'grid'\n },\n banner: { gridTemplateRows: `1fr ${theme.mixins.toolbar.minHeight}px` },\n buttonColor: { color: theme.palette.grey[600] },\n dropDown: { height: '100%', marginLeft: theme.spacing(0.5), textTransform: 'none' },\n exitIcon: { color: theme.palette.grey[600], fill: theme.palette.grey[600] },\n demoTrialAnnouncement: {\n fontSize: 14,\n height: 'auto'\n },\n demoAnnouncementIcon: {\n height: 16,\n color: theme.palette.primary.main,\n '&.MuiButton-textPrimary': {\n color: theme.palette.primary.main,\n height: 'inherit'\n }\n },\n redAnnouncementIcon: {\n color: theme.palette.error.dark\n }\n}));\n\nexport const Header = ({ mode }) => {\n const { classes } = useStyles();\n const [anchorEl, setAnchorEl] = useState(null);\n const [gettingUser, setGettingUser] = useState(false);\n const [hasOfferCookie, setHasOfferCookie] = useState(false);\n\n const organization = useSelector(getOrganization);\n const { canManageUsers: allowUserManagement } = useSelector(getUserCapabilities);\n const { total: acceptedDevices = 0 } = useSelector(getAcceptedDevices);\n const announcement = useSelector(state => state.app.hostedAnnouncement);\n const deviceLimit = useSelector(getDeviceLimit);\n const firstLoginAfterSignup = useSelector(state => state.app.firstLoginAfterSignup);\n const { trackingConsentGiven: hasTrackingEnabled } = useSelector(getUserSettings);\n const inProgress = useSelector(state => state.deployments.byStatus.inprogress.total);\n const isEnterprise = useSelector(getIsEnterprise);\n const { isDemoMode: demo, hasMultitenancy, isHosted } = useSelector(getFeatures);\n const { isSearching, searchTerm, refreshTrigger } = useSelector(state => state.app.searchState);\n const multitenancy = hasMultitenancy || isEnterprise || isHosted;\n const { pending: pendingDevices } = useSelector(getDeviceCountsByStatus);\n const userSettingInitialized = useSelector(state => state.users.settingsInitialized);\n const user = useSelector(getCurrentUser);\n const { token } = useSelector(getCurrentSession);\n const userId = useDebounce(user.id, TIMEOUTS.debounceDefault);\n\n const dispatch = useDispatch();\n const deviceTimer = useRef();\n const showHelptips = useSelector(getShowHelptips);\n\n useEffect(() => {\n if ((!userId || !user.email?.length || !userSettingInitialized) && !gettingUser && token) {\n setGettingUser(true);\n dispatch(initializeSelf());\n return;\n }\n Tracking.setTrackingEnabled(hasTrackingEnabled);\n if (hasTrackingEnabled && user.id && organization.id) {\n Tracking.setOrganizationUser(organization, user);\n if (firstLoginAfterSignup) {\n Tracking.pageview('/signup/complete');\n dispatch(setFirstLoginAfterSignup(false));\n }\n }\n }, [dispatch, firstLoginAfterSignup, gettingUser, hasTrackingEnabled, organization, token, user, user.email, userId, userSettingInitialized]);\n\n useEffect(() => {\n const showOfferCookie = cookies.get('offer') === currentOffer.name;\n setHasOfferCookie(showOfferCookie);\n clearInterval(deviceTimer.current);\n deviceTimer.current = setInterval(() => dispatch(getAllDeviceCounts()), TIMEOUTS.refreshDefault);\n return () => {\n clearInterval(deviceTimer.current);\n };\n }, [dispatch]);\n\n const onLogoutClick = () => {\n setAnchorEl(null);\n dispatch(logoutUser()).then(() => window.location.replace('/ui/'));\n };\n\n const onSearch = useCallback((searchTerm, refreshTrigger) => dispatch(setSearchState({ refreshTrigger, searchTerm, page: 1 })), [dispatch]);\n\n const onToggleTooltips = () => dispatch(setAllTooltipsReadState(showHelptips ? READ_STATES.read : READ_STATES.unread));\n\n const setHideOffer = () => {\n cookies.set('offer', currentOffer.name, { path: '/', maxAge: 2629746 });\n setHasOfferCookie(true);\n };\n\n const handleClose = () => setAnchorEl(null);\n\n const showOffer =\n isHosted && moment().isBefore(currentOffer.expires) && (organization.trial ? currentOffer.trial : currentOffer[organization.plan]) && !hasOfferCookie;\n\n const headerLogo = isDarkMode(mode) ? (isEnterprise ? whiteEnterpriseLogo : whiteLogo) : isEnterprise ? enterpriseLogo : logo;\n\n return (\n \n );\n};\n\nexport default Header;\n","// Copyright 2018 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link, NavLink } from 'react-router-dom';\n\n// material ui\nimport { List, ListItem, ListItemText, Tooltip } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport copy from 'copy-to-clipboard';\n\nimport { setSnackbar, setVersionInfo } from '../actions/appActions';\nimport { TIMEOUTS, canAccess } from '../constants/appConstants';\nimport { getFeatures, getUserCapabilities, getVersionInformation } from '../selectors';\nimport DocsLink from './common/docslink';\n\nconst listItems = [\n { route: '/', text: 'Dashboard', canAccess },\n { route: '/devices', text: 'Devices', canAccess: ({ userCapabilities: { canReadDevices } }) => canReadDevices },\n { route: '/releases', text: 'Releases', canAccess: ({ userCapabilities: { canReadReleases, canUploadReleases } }) => canReadReleases || canUploadReleases },\n { route: '/deployments', text: 'Deployments', canAccess: ({ userCapabilities: { canDeploy, canReadDeployments } }) => canReadDeployments || canDeploy },\n { route: '/auditlog', text: 'Audit log', canAccess: ({ userCapabilities: { canAuditlog } }) => canAuditlog }\n];\n\nconst useStyles = makeStyles()(theme => ({\n licenseLink: { fontSize: '13px', position: 'relative', top: '6px', color: theme.palette.primary.main },\n infoList: { padding: 0, position: 'absolute', bottom: 30, left: 0, right: 0 },\n list: {\n backgroundColor: theme.palette.background.lightgrey,\n borderRight: `1px solid ${theme.palette.grey[300]}`\n },\n navLink: { padding: '22px 16px 22px 42px' },\n listItem: { padding: '16px 16px 16px 42px' },\n versions: { display: 'grid', gridTemplateColumns: 'max-content 60px', columnGap: theme.spacing(), '>a': { color: theme.palette.grey[100] } }\n}));\n\nconst linkables = {\n 'Integration': 'integration',\n 'Mender-Client': 'mender',\n 'Mender-Artifact': 'mender-artifact',\n 'GUI': 'gui'\n};\n\nconst VersionInfo = () => {\n const [clicks, setClicks] = useState(0);\n const timer = useRef();\n const { classes } = useStyles();\n\n const dispatch = useDispatch();\n const { isHosted } = useSelector(getFeatures);\n // eslint-disable-next-line no-unused-vars\n const { latestRelease, ...versionInformation } = useSelector(getVersionInformation);\n\n useEffect(() => {\n return () => {\n clearTimeout(timer.current);\n };\n }, []);\n\n const onVersionClick = () => {\n copy(JSON.stringify(versionInformation));\n dispatch(setSnackbar('Version information copied to clipboard'));\n };\n\n const versions = (\n \n {Object.entries(versionInformation).reduce((accu, [key, version]) => {\n if (version) {\n accu.push(\n
\n {linkables[key] ? (\n \n {key}\n \n ) : (\n {key}
\n )}\n \n {version}\n
\n \n );\n }\n return accu;\n }, [])}\n
\n );\n\n const onClick = () => {\n setClicks(clicks + 1);\n clearTimeout(timer.current);\n timer.current = setTimeout(() => {\n setClicks(0);\n }, TIMEOUTS.threeSeconds);\n if (clicks > 5) {\n dispatch(setVersionInfo({ Integration: 'next' }));\n }\n onVersionClick();\n };\n\n let title = versionInformation.Integration ? `Version: ${versionInformation.Integration}` : '';\n if (isHosted && versionInformation.Integration !== 'next') {\n title = 'Version: latest';\n }\n return (\n \n \n {title}\n
\n \n );\n};\n\nexport const LeftNav = () => {\n const releasesRef = useRef();\n const { classes } = useStyles();\n\n const userCapabilities = useSelector(getUserCapabilities);\n return (\n \n \n {listItems.reduce((accu, item, index) => {\n if (!item.canAccess({ userCapabilities })) {\n return accu;\n }\n accu.push(\n \n \n \n );\n return accu;\n }, [])}\n
\n \n \n \n \n \n }\n secondary={}\n />\n \n
\n
\n );\n};\n\nexport default LeftNav;\n","// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\n\nimport { Close as CloseIcon } from '@mui/icons-material';\n// material ui\nimport { ClickAwayListener, Drawer, IconButton, Typography } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport pluralize from 'pluralize';\n\nimport { setSearchState } from '../actions/appActions';\nimport { setDeviceListState } from '../actions/deviceActions';\nimport { SORTING_OPTIONS, TIMEOUTS } from '../constants/appConstants';\nimport { getIdAttribute, getMappedDevicesList, getUserSettings } from '../selectors';\nimport { getHeaders } from './devices/authorized-devices';\nimport { routes } from './devices/base-devices';\nimport Devicelist from './devices/devicelist';\n\nconst useStyles = makeStyles()(theme => ({\n drawerOffset: {\n top: theme.mixins.toolbar.minHeight + 1,\n left: 200\n },\n paper: {\n maxWidth: '100vw',\n minHeight: '20vh',\n boxShadow: 'none'\n }\n}));\n\nconst leftNavOffset = 500;\nconst ResultTitle = ({ onClick, term, total }) => {\n const content = `${total ? total : 'No'} ${pluralize('device', total)} found for \"${term}\"`;\n let props = { className: 'bold' };\n let style = {};\n if (!total) {\n props = { className: 'info' };\n style = { width: `calc(100% - ${leftNavOffset}px)` };\n }\n return (\n \n );\n};\n\nexport const SearchResult = ({ onToggleSearchResult, open = true }) => {\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const { columnSelection } = useSelector(getUserSettings);\n const customColumnSizes = useSelector(state => state.users.customColumns);\n const devices = useSelector(state => getMappedDevicesList(state, 'search'));\n const idAttribute = useSelector(getIdAttribute);\n const searchState = useSelector(state => state.app.searchState);\n\n const { classes } = useStyles();\n\n const [columnHeaders, setColumnHeaders] = useState(getHeaders(columnSelection, routes.devices.defaultHeaders, idAttribute));\n\n const { isSearching, searchTerm, searchTotal, sort = {} } = searchState;\n const { direction: sortDown = SORTING_OPTIONS.desc, key: sortCol } = sort;\n\n useEffect(() => {\n const columnHeaders = getHeaders(columnSelection, routes.devices.defaultHeaders, idAttribute);\n setColumnHeaders(columnHeaders);\n }, [columnSelection, idAttribute, idAttribute.attribute]);\n\n useEffect(() => {\n if (!open && isSearching) {\n onToggleSearchResult();\n }\n }, [open, isSearching, onToggleSearchResult]);\n\n useEffect(() => {\n if (open && !searchTerm) {\n onToggleSearchResult();\n }\n }, [onToggleSearchResult, open, searchTerm]);\n\n const onDeviceSelect = device => {\n dispatch(setDeviceListState({ selectedId: device.id }));\n onToggleSearchResult();\n setTimeout(() => navigate(`/devices/${device.status}?id=${device.id}`), TIMEOUTS.debounceShort);\n };\n\n const handlePageChange = page => {\n dispatch(setSearchState({ page }));\n };\n\n const onSortChange = attribute => {\n let changedSortCol = attribute.name;\n let changedSortDown = sortDown === SORTING_OPTIONS.desc ? SORTING_OPTIONS.asc : SORTING_OPTIONS.desc;\n if (changedSortCol !== sortCol) {\n changedSortDown = SORTING_OPTIONS.desc;\n }\n dispatch(setSearchState({ page: 1, sort: { direction: changedSortDown, key: changedSortCol, scope: attribute.scope } }));\n };\n\n const onClearClick = () => {\n dispatch(setSearchState({ searchTerm: '' }));\n onToggleSearchResult();\n };\n\n return (\n \n \n \n \n \n \n \n
\n {!!searchTotal && (\n \n )}\n \n \n );\n};\n\nexport default SearchResult;\n","// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useCallback, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { Cancel as CancelIcon } from '@mui/icons-material';\nimport { Drawer, IconButton, LinearProgress, Tooltip, drawerClasses } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport pluralize from 'pluralize';\n\nimport { cancelFileUpload } from '../actions/releaseActions';\nimport { FileSize } from '../helpers';\n\nconst useStyles = makeStyles()(theme => ({\n progress: {\n backgroundColor: theme.palette.grey[600],\n gridColumn: 1,\n margin: '15px 0'\n },\n drawer: {\n [`.${drawerClasses.paper}`]: {\n maxWidth: 'initial'\n }\n },\n progressBarContainer: {\n position: 'fixed',\n display: 'grid',\n bottom: 0,\n gridTemplateRows: 'min-content',\n height: 'max-content',\n padding: `0 ${theme.spacing(2)}px`,\n overflow: 'hidden',\n width: '100%',\n zIindex: 10000,\n transition: 'all 0.2s ease-in-out'\n },\n progressContainer: {\n backgroundColor: theme.palette.background.default,\n borderColor: theme.palette.grey[300],\n color: theme.palette.grey[600],\n display: 'grid',\n gridTemplateRows: '30px 30px',\n gridTemplateColumns: '1fr 60px',\n columnGap: theme.spacing(2),\n ['> .MuiIconButton-root']: {\n gridColumn: 2,\n gridRowStart: 1,\n gridRowEnd: 2,\n height: 60\n }\n }\n}));\n\nconst UploadProgressBar = ({ classes, upload, uploadId }) => {\n const { name, size, uploadProgress } = upload;\n const dispatch = useDispatch();\n const onCancelClick = useCallback(() => dispatch(cancelFileUpload(uploadId)), [dispatch, uploadId]);\n return (\n \n
\n {Math.round(uploadProgress)}% - {name} ()\n
\n
\n
\n \n \n \n \n
\n );\n};\n\nconst Uploads = () => {\n const [isHovering, setIsHovering] = useState(false);\n const { classes } = useStyles();\n\n const uploads = useSelector(state => state.app.uploadsById);\n\n const isUploading = !!Object.keys(uploads).length;\n const uploadProgress = Object.values(uploads).reduce((accu, item, currentIndex, items) => {\n accu += item.uploadProgress;\n if (currentIndex === items.length - 1) {\n return accu / (currentIndex + 1);\n }\n return accu;\n }, 0);\n\n const onClose = () => setIsHovering(false);\n const onMouseOver = () => setIsHovering(true);\n\n return (\n \n {isUploading && !isHovering && }\n \n {pluralize('Upload', Object.keys(uploads).length)} in progress
\n {Object.entries(uploads).map(([uploadId, upload]) => (\n \n ))}\n \n
\n );\n};\n\nexport default Uploads;\n","// Copyright 2015 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { useIdleTimer, workerTimers } from 'react-idle-timer';\nimport { Provider, useDispatch, useSelector } from 'react-redux';\nimport { BrowserRouter, useLocation, useNavigate } from 'react-router-dom';\n\nimport createCache from '@emotion/cache';\nimport { CacheProvider } from '@emotion/react';\nimport { CssBaseline } from '@mui/material';\nimport { ThemeProvider, createTheme } from '@mui/material/styles';\nimport withStyles from '@mui/styles/withStyles';\nimport { LocalizationProvider } from '@mui/x-date-pickers';\nimport { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';\nimport { makeStyles } from 'tss-react/mui';\n\nimport Cookies from 'universal-cookie';\n\nimport { parseEnvironmentInfo, setSnackbar } from '../actions/appActions';\nimport { logoutUser, setAccountActivationCode, setShowConnectingDialog } from '../actions/userActions';\nimport { getSessionInfo, maxSessionAge, updateMaxAge } from '../auth';\nimport SharedSnackbar from '../components/common/sharedsnackbar';\nimport { PrivateRoutes, PublicRoutes } from '../config/routes';\nimport { TIMEOUTS } from '../constants/appConstants';\nimport ErrorBoundary from '../errorboundary';\nimport { isDarkMode, toggle } from '../helpers';\nimport store from '../reducers';\nimport { getCurrentSession, getCurrentUser, getUserSettings } from '../selectors';\nimport { dark as darkTheme, light as lightTheme } from '../themes/Mender';\nimport Tracking from '../tracking';\nimport ConfirmDismissHelptips from './common/dialogs/confirmdismisshelptips';\nimport DeviceConnectionDialog from './common/dialogs/deviceconnectiondialog';\nimport Footer from './footer';\nimport Header from './header/header';\nimport LeftNav from './leftnav';\nimport SearchResult from './search-result';\nimport Uploads from './uploads';\n\nconst cache = createCache({ key: 'mui', prepend: true });\n\nconst activationPath = '/activate';\nconst trackingBlacklist = [/\\/password\\/.+/i];\nconst timeout = maxSessionAge * 1000; // 15 minutes idle time\nconst cookies = new Cookies();\n\nconst reducePalette =\n prefix =>\n (accu, [key, value]) => {\n if (value instanceof Object) {\n return {\n ...accu,\n ...Object.entries(value).reduce(reducePalette(`${prefix}-${key}`), {})\n };\n } else {\n accu[`${prefix}-${key}`] = value;\n }\n return accu;\n };\n\nconst cssVariables = ({ palette }) => {\n const muiVariables = Object.entries(palette).reduce(reducePalette('--mui'), {});\n return {\n '@global': {\n ':root': {\n ...muiVariables,\n '--mui-overlay': palette.grey[400]\n }\n }\n };\n};\n\nconst WrappedBaseline = withStyles(cssVariables)(CssBaseline);\n\nconst useStyles = makeStyles()(() => ({\n public: {\n display: 'grid',\n gridTemplateRows: 'max-content 1fr max-content',\n height: '100vh',\n '.content': {\n alignSelf: 'center',\n justifySelf: 'center'\n }\n }\n}));\n\nexport const AppRoot = () => {\n const [showSearchResult, setShowSearchResult] = useState(false);\n const navigate = useNavigate();\n const { pathname = '', hash } = useLocation();\n\n const dispatch = useDispatch();\n const { id: currentUser } = useSelector(getCurrentUser);\n const showDismissHelptipsDialog = useSelector(state => !state.onboarding.complete && state.onboarding.showTipsDialog);\n const showDeviceConnectionDialog = useSelector(state => state.users.showConnectDeviceDialog);\n const snackbar = useSelector(state => state.app.snackbar);\n const trackingCode = useSelector(state => state.app.trackerCode);\n const { mode } = useSelector(getUserSettings);\n const { token: storedToken } = getSessionInfo();\n const { expiresAt, token = storedToken } = useSelector(getCurrentSession);\n\n const trackLocationChange = useCallback(\n pathname => {\n let page = pathname;\n // if we're on page whose path might contain sensitive device/ group/ deployment names etc. we sanitize the sent information before submission\n if (page.includes('=') && (page.startsWith('/devices') || page.startsWith('/deployments'))) {\n const splitter = page.lastIndexOf('/');\n const filters = page.slice(splitter + 1);\n const keyOnlyFilters = filters.split('&').reduce((accu, item) => `${accu}:${item.split('=')[0]}&`, ''); // assume the keys to filter by are not as revealing as the values things are filtered by\n page = `${page.substring(0, splitter)}?${keyOnlyFilters.substring(0, keyOnlyFilters.length - 1)}`; // cut off the last & of the reduced filters string\n } else if (page.startsWith(activationPath)) {\n dispatch(setAccountActivationCode(page.substring(activationPath.length + 1)));\n navigate('/settings/my-profile', { replace: true });\n } else if (trackingBlacklist.some(item => !!page.match(item))) {\n return;\n }\n Tracking.pageview(page);\n },\n [dispatch, navigate]\n );\n\n useEffect(() => {\n dispatch(parseEnvironmentInfo());\n if (!trackingCode) {\n return;\n }\n if (!cookies.get('_ga')) {\n Tracking.cookieconsent().then(({ trackingConsentGiven }) => {\n if (trackingConsentGiven) {\n Tracking.initialize(trackingCode);\n Tracking.pageview();\n }\n });\n } else {\n Tracking.initialize(trackingCode);\n }\n }, [dispatch, trackingCode]);\n\n useEffect(() => {\n if (!(trackingCode && cookies.get('_ga'))) {\n return;\n }\n trackLocationChange(pathname);\n }, [pathname, trackLocationChange, trackingCode]);\n\n useEffect(() => {\n trackLocationChange(pathname);\n // the following is added to ensure backwards capability for hash containing routes & links (e.g. /ui/#/devices => /ui/devices)\n if (hash) {\n navigate(hash.substring(1));\n }\n }, [hash, navigate, pathname, trackLocationChange]);\n\n const updateExpiryDate = useCallback(() => updateMaxAge({ expiresAt, token }), [expiresAt, token]);\n\n const onIdle = useCallback(() => {\n if (!!expiresAt && currentUser) {\n // logout user and warn\n return dispatch(logoutUser())\n .catch(updateExpiryDate)\n .then(() => {\n navigate('//'); // double / to ensure the logged out URL conforms to `/ui/` in order to not trigger a redirect and potentially use state\n // async snackbar setting to ensure the login screen has loaded as the snackbar might be cleared by other actions otherwise\n setTimeout(() => dispatch(setSnackbar('Your session has expired. You have been automatically logged out due to inactivity.')), TIMEOUTS.oneSecond);\n });\n }\n }, [currentUser, dispatch, expiresAt, navigate, updateExpiryDate]);\n\n useIdleTimer({ crossTab: true, onAction: updateExpiryDate, onActive: updateExpiryDate, onIdle, syncTimers: 400, timeout, timers: workerTimers });\n\n const onToggleSearchResult = () => setShowSearchResult(toggle);\n\n const theme = createTheme(isDarkMode(mode) ? darkTheme : lightTheme);\n\n const { classes } = useStyles();\n\n return (\n \n \n <>\n {token ? (\n \n
\n
\n
\n {showDismissHelptipsDialog &&
}\n {showDeviceConnectionDialog &&
dispatch(setShowConnectingDialog(false))} />}\n \n ) : (\n \n )}\n dispatch(setSnackbar(message))} />\n \n >\n \n );\n};\n\nexport const AppProviders = ({ basename = 'ui' }) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default AppRoot;\n","// Copyright 2015 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport React from 'react';\nimport { render } from 'react-dom';\n\nimport './../less/main.less';\nimport { AppProviders } from './components/app';\n\nconst welcomeMessage = `Welcome to the Mender project!\n\nDoes this page need fixes or improvements?\n\nOpen an issue, or contribute a fix to:\n\n- https://github.com/mendersoftware/gui\n\n🤝 Contribute to Mender: https://github.com/mendersoftware/mender/blob/master/CONTRIBUTING.md\n🔎 Ask about problems, and report issues: https://hub.mender.io\n🚀 We like your curiosity! Help us improve Mender by joining the team: https://northern.tech/careers\n`;\n\nconsole.log(welcomeMessage);\nrender(, document.getElementById('main') || document.createElement('div'));\n"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","StyleSheet","options","_this","this","_insertTag","tag","before","tags","length","insertionPoint","nextSibling","prepend","container","firstChild","insertBefore","push","isSpeedy","undefined","speedy","ctr","nonce","key","_proto","prototype","hydrate","nodes","forEach","insert","rule","document","createElement","setAttribute","appendChild","createTextNode","createStyleElement","sheet","i","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","e","flush","parentNode","removeChild","abs","Math","String","fromCharCode","Object","assign","trim","value","pattern","replacement","replace","indexof","search","indexOf","index","charCodeAt","begin","end","slice","array","line","column","position","character","characters","node","root","parent","type","props","children","return","prev","next","peek","caret","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","COMMENT","callback","output","stringify","element","join","compile","parse","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","j","k","x","y","z","identifierWithPointTracking","fixedElements","WeakMap","compat","isImplicitRule","get","set","parsed","toRules","getRules","parentRules","removeLabel","hash","defaultStylisPlugins","map","exec","createCache","ssrStyles","querySelectorAll","Array","call","getAttribute","head","_insert","stylisPlugins","inserted","nodesToHydrate","attrib","split","currentSheet","collection","finalizingPlugins","serializer","concat","selector","serialized","shouldCache","styles","cache","name","registered","memoize","fn","create","arg","isBrowser","EmotionCacheContext","HTMLElement","CacheProvider","Provider","__unsafe_useEmotionCache","useContext","withEmotionCache","func","forwardRef","ref","ThemeContext","Global","w","T","_ref","serializedNames","serializedStyles","dangerouslySetInnerHTML","__html","sheetRef","constructor","rehydrating","querySelector","current","sheetRefCurrent","nextElementSibling","css","_len","arguments","args","_key","keyframes","insertable","apply","anim","toString","unitlessKeys","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","toLowerCase","processStyleValue","match","p1","p2","cursor","handleInterpolation","mergedProps","interpolation","__emotion_styles","obj","string","isArray","interpolated","_i","createStringFromObject","previousCursor","result","cached","labelPattern","serializeStyles","stringMode","strings","raw","lastIndex","identifierName","str","h","len","useInsertionEffect","useInsertionEffectAlwaysWithSyncFallback","useInsertionEffectWithLayoutFallback","getRegisteredStyles","registeredStyles","classNames","rawClassName","className","registerStyles","isStringTag","insertStyles","mdiAccountKey","mdiAws","mdiDotsHorizontalCircleOutline","mdiGithub","mdiGoogle","mdiImageBrokenVariant","mdiMicrosoft","mdiMicrosoftAzure","mdiSleep","mdiTrashCanOutline","mapEventPropToEvent","eventProp","substring","ClickAwayListener","disableReactTree","mouseEvent","onClickAway","touchEvent","movedRef","nodeRef","activatedRef","syntheticEventRef","setTimeout","handleRef","handleClickAway","event","insideReactTree","doc","documentElement","clientWidth","clientX","clientHeight","clientY","clickedRootScrollbar","insideDOM","composedPath","contains","target","createHandleSynthetic","handlerName","childrenPropsHandler","childrenProps","mappedTouchEvent","handleTouchMove","addEventListener","removeEventListener","mappedMouseEvent","candidatesSelector","defaultGetTabbable","regularTabNodes","orderedTabNodes","from","nodeTabIndex","tabindexAttr","parseInt","Number","isNaN","contentEditable","nodeName","tabIndex","getTabIndex","disabled","tagName","getRadio","ownerDocument","roving","isNonTabbableRadio","isNodeMatchingSelectorFocusable","documentOrder","sort","a","b","defaultIsEnabled","FocusTrap","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","getTabbable","isEnabled","open","ignoreNextEnforceFocus","sentinelStart","sentinelEnd","nodeToRestore","reactFocusEventTarget","activated","rootRef","lastKeydown","activeElement","hasAttribute","focus","loopFocus","nativeEvent","shiftKey","contain","rootElement","hasFocus","tabbable","_lastKeydown$current","_lastKeydown$current2","isShiftTab","Boolean","focusNext","focusPrevious","interval","setInterval","clearInterval","handleFocusSentinel","relatedTarget","onFocus","Portal","forwardedRef","disablePortal","mountNode","setMountNode","getContainer","body","newProps","stripDiacritics","normalize","createFilterOptions","config","ignoreAccents","ignoreCase","limit","matchFrom","inputValue","getOptionLabel","input","filteredOptions","filter","option","candidate","findIndex","comp","defaultFilterOptions","pageSize","defaultIsActiveElementInListbox","listboxRef","_listboxRef$current$p","parentElement","useAutocomplete","unstable_isActiveElementInListbox","unstable_classNamePrefix","autoComplete","autoHighlight","autoSelect","blurOnSelect","clearOnBlur","freeSolo","clearOnEscape","componentName","defaultValue","multiple","disableClearable","disableCloseOnSelect","disabledProp","disabledItemsFocusable","disableListWrap","filterOptions","filterSelectedOptions","getOptionDisabled","getOptionLabelProp","_option$label","label","groupBy","handleHomeEndKeys","id","idProp","includeInputInList","inputValueProp","isOptionEqualToValue","onChange","onClose","onHighlightChange","onInputChange","onOpen","openProp","openOnFocus","readOnly","selectOnFocus","valueProp","useId","optionLabel","ignoreFocus","firstFocus","inputRef","anchorEl","setAnchorEl","focusedTag","setFocusedTag","defaultHighlighted","highlightedIndexRef","setValueState","useControlled","controlled","default","setInputValueState","state","focused","setFocused","resetInputValue","newValue","newInputValue","setOpenState","inputPristine","setInputPristine","inputValueIsSelectedValue","popupOpen","some","value2","previousProps","valueChange","listboxAvailable","focusTag","useEventCallback","tagToFocus","setHighlightedIndex","reason","removeAttribute","classList","remove","listboxNode","scrollTop","add","scrollHeight","scrollBottom","elementBottom","offsetTop","offsetHeight","changeHighlightedIndex","diff","direction","nextIndex","nextFocus","nextFocusDisabled","validOptionIndex","maxIndex","newIndex","getNextIndex","setSelectionRange","syncHighlightedIndex","every","val","value1","previousHighlightedOption","checkHighlightedOptionExists","valueItem","currentOption","itemIndex","optionItem","handleListboxRef","setRef","handleOpen","handleClose","handleValue","details","isTouch","selectNewValue","reasonProp","origin","splice","ctrlKey","metaKey","blur","handleFocusTag","nextTag","validTagIndex","handleClear","handleKeyDown","other","onKeyDown","defaultMuiPrevented","which","preventDefault","stopPropagation","handleFocus","handleBlur","handleInputChange","handleOptionMouseMove","currentTarget","handleOptionTouchStart","handleOptionClick","handleTagDelete","handlePopupIndicator","handleMouseDown","handleClick","selectionEnd","selectionStart","select","handleInputMouseDown","dirty","groupedOptions","Map","reduce","acc","group","getRootProps","onMouseDown","onClick","getInputLabelProps","htmlFor","getInputProps","onBlur","autoCapitalize","spellCheck","role","getClearProps","getPopupIndicatorProps","getTagProps","onDelete","getListboxProps","getOptionProps","selected","onMouseMove","onTouchStart","expanded","appendOwnerState","elementType","otherProps","ownerState","extractEventHandlers","object","excludeKeys","keys","prop","includes","isHostComponent","resolveComponentProps","componentProps","slotState","r","t","f","n","omitEventHandlers","_excluded","useSlotProps","parameters","_parameters$additiona","externalSlotProps","skipResolvingSlotProps","rest","resolvedComponentsProps","internalRef","getSlotProps","additionalProps","externalForwardedProps","joinedClasses","mergedStyle","style","eventHandlers","componentsPropsWithoutEventHandlers","otherPropsWithoutEventHandlers","internalSlotProps","mergeSlotProps","useForkRef","d","getAccordionUtilityClass","slot","getAccordionSummaryUtilityClass","createSvgIcon","getAutocompleteUtilityClass","generateUtilityClass","generateUtilityClasses","_ClearIcon","_ArrowDropDownIcon","_excluded2","AutocompleteRoot","styled","overridesResolver","fullWidth","hasClearIcon","hasPopupIcon","inputFocused","capitalize","inputRoot","clearIndicator","visibility","width","margin","maxWidth","flexWrap","paddingRight","minWidth","inputClasses","paddingBottom","padding","inputBaseClasses","sizeSmall","outlinedInputClasses","endAdornment","right","paddingTop","paddingLeft","filledInputClasses","hiddenLabel","textOverflow","AutocompleteEndAdornment","top","AutocompleteClearIndicator","IconButton","marginRight","AutocompletePopupIndicator","popupIndicator","popupIndicatorOpen","transform","AutocompletePopper","Popper","popper","popperDisablePortal","theme","vars","modal","AutocompletePaper","Paper","paper","typography","body1","overflow","AutocompleteLoading","loading","color","palette","text","secondary","AutocompleteNoOptions","noOptions","AutocompleteListbox","listbox","listStyle","maxHeight","minHeight","display","justifyContent","alignItems","boxSizing","outline","WebkitTapHighlightColor","breakpoints","up","backgroundColor","action","hover","disabledOpacity","pointerEvents","focusVisible","primary","mainChannel","selectedOpacity","main","hoverOpacity","focusOpacity","AutocompleteGroupLabel","ListSubheader","groupLabel","background","AutocompleteGroupUl","groupUl","inProps","_slotProps$clearIndic","_slotProps$paper","_slotProps$popper","_slotProps$popupIndic","useThemeProps","ChipProps","clearIcon","fontSize","clearText","closeText","componentsProps","forcePopupIcon","getLimitTagsText","more","limitTags","ListboxComponent","ListboxProps","loadingText","noOptionsText","openText","PaperComponent","PopperComponent","popupIcon","ArrowDropDown","renderGroup","renderGroupProp","renderInput","renderOption","renderOptionProp","renderTags","slotProps","externalListboxRef","_getListboxProps","otherListboxProps","combinedListboxRef","classes","slots","composeClasses","useUtilityClasses","startAdornment","getCustomizedTagProps","params","Chip","component","props2","renderListOption","optionProps","clearIndicatorSlotProps","paperSlotProps","popperSlotProps","popupIndicatorSlotProps","clsx","InputLabelProps","InputProps","title","inputProps","as","option2","index2","getBackdropUtilityClass","BackdropRoot","invisible","bottom","left","_slotProps$root","_slots$root","components","TransitionComponent","Fade","transitionDuration","rootSlotProps","in","timeout","Root","commonIconStyles","ButtonRoot","shouldForwardProp","variant","colorInherit","disableElevation","_theme$palette$getCon","_theme$palette","inheritContainedBackgroundColor","mode","grey","inheritContainedHoverBackgroundColor","A100","button","borderRadius","shape","transition","transitions","duration","short","textDecoration","primaryChannel","border","Button","inheritContainedHoverBg","boxShadow","shadows","dark","disabledBackground","getContrastText","inheritContainedBg","contrastText","borderColor","pxToRem","ButtonStartIcon","startIcon","marginLeft","ButtonEndIcon","endIcon","contextProps","buttonGroupButtonContextPositionClassName","resolvedProps","disableFocusRipple","endIconProp","focusVisibleClassName","startIconProp","composedClasses","positionClassName","focusRipple","getButtonUtilityClass","_t","_t2","_t3","_t4","_","enterKeyframe","exitKeyframe","pulsateKeyframe","TouchRippleRoot","TouchRippleRipple","pulsate","rippleX","rippleY","rippleSize","inProp","onExited","leaving","setLeaving","rippleClassName","ripple","rippleVisible","ripplePulsate","rippleStyles","height","childClassName","child","childLeaving","childPulsate","timeoutId","clearTimeout","easing","easeInOut","shorter","center","centerProp","ripples","setRipples","nextKey","rippleCallback","ignoringMouseDown","startTimer","startTimerCommit","startCommit","cb","oldRipples","start","fakeElement","rect","getBoundingClientRect","touches","round","sqrt","sizeX","max","sizeY","stop","TransitionGroup","exit","ButtonBaseRoot","userSelect","verticalAlign","MozAppearance","WebkitAppearance","borderStyle","buttonBaseClasses","colorAdjust","centerRipple","disableRipple","disableTouchRipple","LinkComponent","onContextMenu","onDragLeave","onFocusVisible","onKeyUp","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","TouchRippleProps","touchRippleRef","buttonRef","rippleRef","handleRippleRef","isFocusVisibleRef","handleFocusVisible","handleBlurVisible","focusVisibleRef","useIsFocusVisible","setFocusVisible","mountedState","setMountedState","enableTouchRipple","useRippleHandler","rippleAction","eventCallback","skipRippleAction","handleContextMenu","handleDragLeave","handleMouseUp","handleMouseLeave","handleTouchStart","handleTouchEnd","isNonNativeButton","href","keydownRef","handleKeyUp","defaultPrevented","ComponentProp","to","buttonProps","getButtonBaseUtilityClass","ChipRoot","iconColor","clickable","chipClasses","avatar","icon","deleteIcon","deletable","textColor","fontFamily","whiteSpace","defaultAvatarColor","avatarColorPrimary","avatarColorSecondary","avatarSmall","defaultIconColor","contrastTextChannel","selectedChannel","defaultBorder","iconSmall","deleteIconSmall","ChipLabel","isDeleteKeyboardEvent","keyboardEvent","avatarProp","clickableProp","deleteIconProp","iconProp","skipFocusWhenDisabled","chipRef","handleDeleteIconClick","ButtonBase","moreProps","Cancel","getChipUtilityClass","getCollapseUtilityClass","CollapseRoot","orientation","entered","collapsedSize","hidden","CollapseWrapper","wrapper","CollapseWrapperInner","wrapperInner","Collapse","addEndListener","collapsedSizeProp","onEnter","onEntered","onEntering","onExit","onExiting","standard","Transition","useTheme","timer","wrapperRef","autoTransitionDuration","isHorizontal","normalizedTransitionCallback","maybeIsAppearing","getWrapperSize","handleEnter","isAppearing","handleEntering","wrapperSize","transitionTimingFunction","duration2","getAutoHeightDuration","handleEntered","handleExit","handleExited","handleExiting","childProps","muiSupportAuto","getDialogContentUtilityClass","DialogContentRoot","dividers","WebkitOverflowScrolling","overflowY","borderTop","divider","borderBottom","dialogTitleClasses","getDialogTitleUtilityClass","getDividerUtilityClass","entering","defaultTimeout","enter","enteringScreen","leavingScreen","appear","transitionProps","webkitTransition","FilledInputRoot","disableUnderline","underline","_palette","light","bottomLineColor","hoverBackground","FilledInput","bg","borderTopLeftRadius","borderTopRightRadius","easeOut","hoverBg","disabledBg","content","error","borderBottomColor","common","onBackgroundChannel","inputUnderline","borderBottomStyle","multiline","FilledInputInput","WebkitBoxShadow","WebkitTextFillColor","caretColor","getColorSchemeSelector","_ref2","_slots$input","componentsPropsProp","inputComponent","filledInputComponentsProps","RootSlot","InputSlot","Input","muiName","getFilledInputUtilityClass","FormControlRoot","flexDirection","marginTop","marginBottom","visuallyFocused","required","adornedStart","setAdornedStart","initialAdornedStart","filled","setFilled","initialFilled","focusedState","registerEffect","childContext","onEmpty","onFilled","getFormControlUtilityClasses","formControlState","states","muiFormControl","useFormControl","getFormHelperTextUtilityClasses","_span","FormHelperTextRoot","contained","caption","textAlign","fcs","getFormLabelUtilityClasses","GlobalStyles","defaultTheme","globalStyles","themeInput","themeId","upperTheme","getScale","isWebKit154","navigator","test","userAgent","Grow","autoTimeout","delay","IconButtonRoot","edge","active","shortest","activeChannel","getIconButtonUtilityClass","InputRoot","formControl","InputInput","inputComponentsProps","getInputUtilityClass","getStyleValue","isEmpty","outerHeightStyle","TextareaAutosize","maxRows","minRows","isControlled","shadowRef","renders","setState","getUpdatedState","computedStyle","ownerWindow","getComputedStyle","inputShallow","placeholder","borderBottomWidth","borderTopWidth","innerHeight","singleRowHeight","outerHeight","min","updateState","prevState","newState","syncHeight","useEnhancedEffect","handleResize","syncHeightWithFlushSync","debounceHandleResize","debounce","containerWindow","resizeObserver","ResizeObserver","observe","clear","cancelAnimationFrame","rAF","disconnect","rows","rootOverridesResolver","adornedEnd","inputOverridesResolver","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel","InputBaseRoot","InputBaseComponent","inputPlaceholder","placeholderHidden","placeholderVisible","font","letterSpacing","animationName","animationDuration","resize","inputGlobalStyles","_slotProps$input","ariaDescribedby","autoFocus","disableInjectingGlobalStyles","inputPropsProp","inputRefProp","renderSuffix","handleInputRefWarning","instance","handleInputRef","checkDirty","InputComponent","rootProps","FormControlContext","onAnimationStart","Error","getInputBaseUtilityClass","hasValue","isFilled","SSR","isAdornedStart","FormLabelRoot","colorSecondary","formLabelClasses","AsteriskComponent","asterisk","getInputLabelUtilityClasses","InputLabelRoot","shrink","disableAnimation","animated","transformOrigin","shrinkProp","getListUtilityClass","ListRoot","disablePadding","dense","subheader","context","ListContext","ListItemRoot","alignItemsFlexStart","disableGutters","gutters","hasSecondaryAction","secondaryAction","listItemClasses","backgroundClip","ListItemContainer","childrenProp","componentProp","ContainerComponent","ContainerProps","ContainerClassName","listItemRef","toArray","isMuiElement","Component","pop","ListItemSecondaryAction","getListItemUtilityClass","getListItemIconUtilityClass","getListItemSecondaryActionClassesUtilityClass","ListItemSecondaryActionRoot","getListItemTextUtilityClass","ListSubheaderRoot","inset","disableSticky","sticky","fontWeightMedium","muiSkipListHighlight","getListSubheaderUtilityClass","getPopoverUtilityClass","_excluded3","getOffsetTop","vertical","getOffsetLeft","horizontal","getTransformOriginValue","resolveAnchorEl","PopoverRoot","Modal","PopoverPaper","overflowX","_slots$paper","anchorOrigin","anchorPosition","anchorReference","containerProp","elevation","marginThreshold","PaperProps","PaperPropsProp","transitionDurationProp","TransitionProps","disableScrollLock","externalPaperSlotProps","paperRef","handlePaperRef","getAnchorOffset","resolvedAnchorEl","anchorRect","nodeType","getTransformOrigin","elemRect","getPositioningStyle","offsetWidth","elemTransformOrigin","anchorOffset","heightThreshold","widthThreshold","innerWidth","isPositioned","setIsPositioned","setPositioningStyles","positioning","window","updatePosition","PaperSlot","paperProps","_useSlotProps","backdrop","rootSlotPropsProp","getMenuUtilityClass","RTL_ORIGIN","LTR_ORIGIN","MenuRoot","MenuPaper","MenuMenuList","MenuList","list","disableAutoFocusItem","MenuListProps","PopoverClasses","isRtl","autoFocusItem","menuListActionsRef","activeItemIndex","paperExternalSlotProps","adjustStyleForScrollbar","actions","getMenuItemUtilityClass","MenuItemRoot","dividerClasses","spacing","listItemTextClasses","listItemIconClasses","body2","tabIndexProp","menuItemRef","nextItem","item","previousItem","lastChild","previousElementSibling","textCriteriaMatches","textCriteria","innerText","textContent","repeating","moveFocus","currentFocus","traversalFunction","wrappedOnce","listRef","textCriteriaRef","previousKeyMatched","lastTime","containerElement","noExplicitWidth","scrollbarSize","items","newChildProps","List","criteria","lowerKey","currTime","performance","now","keepFocusOnCurrent","ariaHidden","show","getPaddingRight","ariaHiddenSiblings","mountElement","currentElement","elementsToExclude","blacklist","isNotExcludedElement","isNotForbiddenElement","isForbiddenTagName","isInputHidden","isAriaHiddenForbiddenOnElement","findIndexOf","idx","defaultManager","containers","modals","modalIndex","modalRef","hiddenSiblings","getHiddenSiblings","mount","containerIndex","restore","containerInfo","restoreStyle","isOverflowing","getScrollbarSize","el","scrollContainer","DocumentFragment","setProperty","removeProperty","handleContainer","ariaHiddenState","nextTop","isTopModal","getModalUtilityClass","ModalRoot","exited","ModalBackdrop","Backdrop","_slots$backdrop","_slotProps$backdrop","BackdropComponent","BackdropProps","closeAfterTransition","disableEscapeKeyDown","hideBackdrop","keepMounted","onBackdropClick","propsWithDefaults","getBackdropProps","getTransitionProps","portalRef","hasTransition","manager","onTransitionEnter","onTransitionExited","mountNodeRef","setExited","hasOwnProperty","getHasTransition","ariaHiddenProp","getModal","handleMounted","resolvedContainer","handlePortalRef","createHandleKeyDown","otherHandlers","_otherHandlers$onKeyD","createHandleBackdropClick","_otherHandlers$onClic","propsEventHandlers","externalEventHandlers","createChainedFunction","useModal","BackdropSlot","backdropSlotProps","backdropProps","NotchedOutlineRoot","borderWidth","NotchedOutlineLegend","float","withLabel","notched","OutlinedInputRoot","InputBase","notchedOutline","OutlinedInputInput","OutlinedInput","_React$Fragment","getOutlinedInputUtilityClass","alphaValue","log","toFixed","getPaperUtilityClass","PaperRoot","square","rounded","_theme$vars$overlays","backgroundImage","overlays","enabled","phase","elements","attributes","getNodeName","effect","initialStyles","strategy","arrow","attribute","requires","defaultModifiers","eventListeners","popperOffsets","computeStyles","flip","preventOverflow","hide","getPopperUtilityClass","defaultContextValue","disableDefaultClasses","ClassNameConfiguratorContext","defaultPopperOptions","PopperTooltip","modifiers","placement","initialPlacement","popperOptions","popperRef","popperRefProp","tooltipRef","ownRef","handlePopperRef","handlePopperRefRef","rtlPlacement","flipPlacement","setPlacement","resolvedAnchorElement","setResolvedAnchorElement","forceUpdate","popperModifiers","altBoundary","destroy","useClassNamesOverride","PopperRoot","RootComponent","getNativeSelectUtilityClasses","nativeSelectSelectStyles","NativeSelectSelect","nativeSelectIconStyles","NativeSelectIcon","iconOpen","IconComponent","SelectSelect","selectClasses","SelectIcon","SelectNativeInput","nativeInput","areEqualValues","_MenuProps$slotProps","ariaLabel","autoWidth","defaultOpen","displayEmpty","labelId","MenuProps","renderValue","SelectDisplayProps","openState","displayRef","displayNode","setDisplayNode","isOpenControlled","menuMinWidthState","setMenuMinWidthState","handleDisplayRef","anchorElement","getElementById","handler","getSelection","isCollapsed","update","childrenArray","handleItemClick","clonedEvent","defineProperty","writable","displaySingle","displayMultiple","computeDisplay","foundMatch","v","menuMinWidth","buttonId","listboxId","find","childItem","Menu","styledRootConfig","StyledInput","StyledOutlinedInput","StyledFilledInput","Select","classesProp","native","variantProp","restOfClasses","outlined","inputComponentRef","deepmerge","getSelectUtilityClasses","SvgIconRoot","_theme$transitions","_theme$transitions$cr","_theme$transitions2","_theme$typography","_theme$typography$pxT","_theme$typography2","_theme$typography2$px","_theme$typography3","_theme$typography3$px","_palette$ownerState$c","_palette2","_palette3","fill","hasSvgAsChild","inherit","small","medium","large","SvgIcon","htmlColor","inheritViewBox","titleAccess","viewBox","instanceFontSize","focusable","getSvgIconUtilityClass","variantComponent","TextFieldRoot","FormHelperTextProps","helperText","idOverride","SelectProps","InputMore","helperTextId","inputLabelId","InputElement","getTextFieldUtilityClass","getTooltipUtilityClass","TooltipPopper","disableInteractive","popperInteractive","popperArrow","popperClose","tooltip","TooltipTooltip","touch","tooltipArrow","Tooltip","white","wordWrap","fontWeightRegular","TooltipArrow","hystersisOpen","hystersisTimer","cursorPosition","composeEventHandler","eventHandler","_slots$popper","_ref3","_slots$transition","_ref4","_slots$tooltip","_ref5","_slots$arrow","_ref6","_slotProps$popper2","_slotProps$transition","_slotProps$tooltip","_ref7","_slotProps$tooltip2","_slotProps$arrow","_ref8","_slotProps$arrow2","describeChild","disableFocusListener","disableHoverListener","disableInteractiveProp","disableTouchListener","enterDelay","enterNextDelay","enterTouchDelay","followCursor","leaveDelay","leaveTouchDelay","PopperComponentProp","PopperProps","TransitionComponentProp","childNode","setChildNode","arrowRef","setArrowRef","ignoreNonTouchEvents","closeTimer","enterTimer","leaveTimer","touchTimer","prevUserSelect","stopTouchInteraction","WebkitUserSelect","handleLeave","setChildIsFocusVisible","detectTouchStart","handleMouseOver","nameOrDescProps","titleIsString","interactiveWrapperListeners","onMouseOver","_PopperProps$popperOp","tooltipModifiers","TooltipComponent","ArrowComponent","Arrow","popperProps","tooltipProps","tooltipArrowProps","TransitionPropsInner","Symbol","for","black","A200","A400","A700","activatedOpacity","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","caseAllCaps","textTransform","defaultFontFamily","createTypography","fontWeightLight","fontWeightBold","htmlFontSize","allVariants","pxToRem2","coef","buildVariant","casing","variants","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","overline","clone","createShadow","px","mobileStepper","fab","speedDial","appBar","drawer","snackbar","mixins","mixinsInput","paletteInput","transitionsInput","typographyInput","contrastThreshold","getDefaultPrimary","getDefaultSecondary","getDefaultError","info","getDefaultInfo","success","getDefaultSuccess","warning","getDefaultWarning","augmentColor","mainShade","lightShade","darkShade","JSON","modes","createPalette","systemTheme","muiTheme","toolbar","createTransitions","argument","unstable_sxConfig","defaultSxConfig","unstable_sx","styleFunctionSx","sx","easeIn","sharp","complex","formatMs","milliseconds","constant","inputTransitions","mergedEasing","mergedDuration","durationOption","easingOption","animatedProp","rootShouldForwardProp","slotShouldForwardProp","reflow","_style$transitionDura","_style$transitionTimi","transitionDelay","path","displayName","muiNames","_muiName","_element$type","_payload","hadFocusVisibleRecentlyTimeout","hadKeyboardEvent","hadFocusVisibleRecently","inputTypesWhitelist","url","tel","email","password","number","date","month","week","time","datetime","altKey","handlePointerDown","handleVisibilityChange","visibilityState","matches","isContentEditable","focusTriggersKeyboardModality","isFocusVisible","reactPropsRegex","isPropValid","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","isReal","optionsShouldForwardProp","__emotion_forwardProp","propName","Insertion","newStyled","createStyled","targetClassName","__emotion_real","baseTag","__emotion_base","defaultShouldForwardProp","shouldUseAs","Styled","FinalTag","classInterpolations","finalShouldForwardProp","defaultProps","withComponent","nextOptions","bind","internal_processStyles","processor","values","xs","sm","md","lg","xl","defaultBreakpoints","handleBreakpoints","propValue","styleFromPropValue","themeBreakpoints","breakpoint","cssKey","createEmptyBreakpointObject","breakpointsInput","_breakpointsInput$key","removeUnusedBreakpoints","breakpointKeys","breakpointOutput","mergeBreakpointsInOrder","emptyBreakpoints","mergedOutput","resolveBreakpointValues","breakpointValues","base","customBase","breakpointsKeys","computeBreakpointsBase","clamp","decomposeColor","charAt","re","RegExp","colors","hexToRgb","marker","colorSpace","shift","parseFloat","recomposeColor","getLuminance","rgb","s","l","hslToRgb","getContrastRatio","foreground","lumA","lumB","alpha","darken","coefficient","lighten","emphasize","propsToClassKey","classKey","getStyleOverrides","styleOverrides","transformVariants","variantsStyles","definition","getVariantStyles","variantsResolver","isMatch","themeVariantsResolver","_theme$components","themeVariants","systemDefaultTheme","createTheme","lowercaseFirstLetter","resolveTheme","defaultOverridesResolver","muiStyledFunctionResolver","styledArg","resolvedStyles","optionalVariants","systemSx","__mui_systemSx","inputOptions","componentSlot","skipVariantsResolver","inputSkipVariantsResolver","skipSx","inputSkipSx","shouldForwardPropOption","defaultStyledResolver","muiStyledResolver","styleArg","expressions","expressionsWithDefaultTheme","stylesArg","styledArgVariants","transformedStylesArg","variantStyle","transformedStyleArg","resolvedStyleOverrides","entries","slotKey","slotStyle","numOfCustomFnsApplied","placeholders","withConfig","spacingInput","shapeInput","unit","step","sortedValues","breakpointsAsArray","breakpoint1","breakpoint2","sortBreakpointsValues","down","between","endIndex","only","not","keyIndex","createBreakpoints","mui","argsInput","createSpacing","properties","m","p","directions","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","dir","marginKeys","paddingKeys","spacingKeys","createUnaryUnit","themeKey","_getPath","themeSpacing","createUnarySpacing","getValue","transformer","transformed","cssProperties","cssProperty","getStyleFromPropValue","resolveCssProperty","merge","propTypes","filterProps","getPath","checkVars","themeMapping","propValueFinal","userValue","handlers","borderTransform","borderRight","borderLeft","borderTopColor","borderRightColor","borderLeftColor","gap","columnGap","rowGap","paletteTransform","sizingTransform","_props$theme","_props$theme2","bgcolor","pt","pr","pb","pl","py","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd","mt","mr","mb","ml","mx","my","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd","displayPrint","flexBasis","alignContent","alignSelf","justifyItems","justifySelf","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","fontStyle","splitProps","_props$theme$unstable","systemProps","extendSxProp","inSx","finalSx","getThemeValue","_theme$unstable_sxCon","traverse","sxInput","sxObject","styleKey","maybeFn","breakpointsValues","objects","allKeys","union","Set","objectsHaveSameKeys","unstable_createStyleFunctionSx","getThemeProps","contextTheme","defaultGenerator","generate","configure","generator","reset","createClassNameGenerator","toUpperCase","getUtilityClass","utilityClass","funcs","wait","debounced","isPlainObject","deepClone","source","formatMuiErrorMessage","code","encodeURIComponent","globalStateClassesMapping","checked","completed","globalStatePrefix","globalStateClass","documentWidth","defaultView","resolveProps","defaultSlotProps","slotPropName","defaultProp","valueState","setValue","refs","globalId","maybeReactUseId","reactId","defaultId","setDefaultId","useGlobalId","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","scaleX","scaleY","isElementScaled","getDocumentElement","scroll","scrollLeft","offsets","isScrollParent","getWindow","getWindowScroll","clientLeft","clientTop","getWindowScrollBarX","visited","modifier","requiresIfExists","dep","has","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","modifiersData","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","listScrollParents","contextElement","merged","orderModifiers","existing","data","_ref$options","cleanupFn","_state$elements","rects","getOffsetParent","getLayoutRect","_state$orderedModifie","_state$orderedModifie2","_options","Promise","resolve","then","onFirstUpdate","rootNode","getRootNode","isSameNode","host","includeScale","isFixedStrategy","clientRect","visualViewport","addVisualOffsets","offsetLeft","isTableElement","getTrueOffsetParent","isFirefox","currentNode","getParentNode","perspective","willChange","getContainingBlock","assignedSlot","win","pageXOffset","pageYOffset","isElement","Element","isHTMLElement","isShadowRoot","ShadowRoot","isLayoutViewport","_getComputedStyle","getScrollParent","_element$ownerDocumen","scrollParent","isBody","updatedList","auto","basePlacements","clippingParents","viewport","variationPlacements","placements","modifierPhases","_state$modifiersData$","arrowElement","basePlacement","axis","paddingObject","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","axisProp","centerOffset","_options$element","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","dpr","devicePixelRatio","roundOffsetsByDPR","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","passive","_options$scroll","_options$resize","getOppositePlacement","matched","getOppositeVariationPlacement","_skip","_options$mainAxis","mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","boundary","rootBoundary","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","getBasePlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","getVariation","allowedPlacements","overflows","detectOverflow","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","check","_loop","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","referenceOverflow","elementContext","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","getMainAxisFromPlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","getFreshSideObject","arrowPaddingMin","arrowPaddingMax","arrowLen","within","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","math","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","computeOffsets","commonX","commonY","rectToClientRect","getClientRectFromMixedType","clippingParent","html","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","getDocumentRect","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","_options$altBoundary","_options$padding","mergePaddingObject","expandToHashMap","altContext","clippingClientRect","mainClippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","getClippingRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","hashMap","getUAString","uaData","userAgentData","brands","brand","version","withinMaxClamp","_extends","Action","PopStateEventType","createBrowserHistory","getLocation","createHref","validateLocation","v5Compat","globalHistory","history","Pop","listener","getIndex","handlePop","delta","location","createURL","createPath","invariant","URL","replaceState","listen","encodeLocation","pathname","Push","createLocation","historyState","getHistoryState","pushState","DOMException","Replace","go","getUrlBasedHistory","usr","message","cond","console","warn","parsePath","random","substr","parsedPath","hashIndex","searchIndex","ResultType","matchRoutes","routes","locationArg","basename","stripBasename","branches","flattenRoutes","score","compareIndexes","routesMeta","meta","childrenIndex","rankRouteBranches","matchRouteBranch","safelyDecodeURI","parentsMeta","parentPath","flattenRoute","route","relativePath","caseSensitive","startsWith","joinPaths","computeScore","_route$path","exploded","explodeOptionalSegments","segments","first","isOptional","endsWith","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","matcher","compiledParams","regexpSource","paramName","compilePath","captureGroups","memo","splatValue","decodeURIComponent","safelyDecodeURIComponent","decodeURI","startIndex","nextChar","getInvalidPathError","char","field","dest","getPathContributingMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","AbortedDeferredError","isRouteErrorResponse","status","statusText","internal","validMutationMethodsArr","validRequestMethodsArr","exports","React","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","defineProperties","_typeof","iterator","configurable","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_slicedToArray","arr","_arrayWithHoles","_s","_e","_arr","_n","_d","done","err","_iterableToArrayLimit","o","_arrayLikeToArray","_unsupportedIterableToArray","TypeError","_nonIterableRest","arr2","emptyFunction","emptyFunctionWithReset","resetWarningCache","module","createCommonjsModule","shim","propFullName","secret","getShim","isRequired","ReactPropTypes","bool","symbol","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","factoryWithThrowingShims","usePrevious","useRef","useEffect","isUnknownObject","PLAIN_OBJECT_STR","isEqual","leftArray","leftPlainObject","leftKeys","rightKeys","keySet","extractAllowedOptionsUpdates","prevOptions","immutableKeys","newOptions","isUpdated","INVALID_STRIPE_ERROR","validateStripe","maybeStripe","errorMsg","createToken","createPaymentMethod","confirmCardPayment","parseStripeProp","isPromise","stripePromise","stripe","registerWithStripeJs","_registerWrapper","registerAppInfo","CustomCheckoutSdkContext","createContext","parseCustomCheckoutSdkContext","ctx","useCase","CustomCheckoutContext","CustomCheckoutProvider","rawStripeProp","useMemo","_React$useState2","useState","session","setSession","_React$useState4","customCheckoutSdk","setContext","safeSetContext","initCustomCheckoutCalledRef","isMounted","initCustomCheckout","on","prevStripe","_prevOptions$elements","_options$elementsOpti","clientSecret","previousAppearance","elementsOptions","appearance","currentAppearance","changeAppearance","customCheckoutContextValue","sessionState","useElementsOrCustomCheckoutSdkContextWithUseCase","useCaseString","customCheckoutSdkContext","elementsContext","ElementsContext","parseElementsContext","CartElementContext","Elements","cart","setCart","cartState","setCartState","_React$useState6","updates","useElementsContextWithUseCase","useCaseMessage","DUMMY_CART_ELEMENT_CONTEXT","useCartElementContextWithUseCase","isInCustomCheckout","parseCartElementContext","ElementsConsumer","useAttachEvent","cbDefined","cbRef","decoratedCb","off","createElementComponent","isServer","readyCallback","onReady","onEscape","onLoadError","onLoaderStart","onNetworksChange","onCheckout","onLineItemClick","onConfirm","onCancel","onShippingAddressChange","onShippingRateChange","setElement","elementRef","domNode","_useCartElementContex","useLayoutEffect","newElement","__elementType","EmbeddedCheckoutContext","useEmbeddedCheckoutContext","EmbeddedCheckout","embeddedCheckout","unmount","AuBankAccountElement","CardElement","CardNumberElement","CardExpiryElement","CardCvcElement","FpxBankElement","IbanElement","IdealBankElement","P24BankElement","EpsBankElement","PaymentElement","ExpressCheckoutElement","PaymentRequestButtonElement","LinkAuthenticationElement","AddressElement","ShippingAddressElement","CartElement","PaymentMethodMessagingElement","AffirmMessageElement","AfterpayClearpayMessageElement","EmbeddedCheckoutProvider","embeddedCheckoutPromise","loadedStripe","setStripeAndInitEmbeddedCheckout","initEmbeddedCheckout","onComplete","useCartElement","useCartElementState","useCustomCheckout","useCustomCheckoutSdkContextWithUseCase","useElements","useStripe","factory","asn1","bignum","define","constants","decoders","encoders","inherits","Entity","_createNamed","Base","Generated","entity","_initNamed","_getDecoder","enc","decode","_getEncoder","encode","reporter","Reporter","Buffer","DecoderBuffer","isBuffer","EncoderBuffer","isEncoderBuffer","byteLength","isDecoderBuffer","save","readUInt8","skip","res","fail","bytes","_reporterState","out","write","copy","Node","assert","methods","_baseState","reverseArgs","choice","optional","use","useDecoder","explicit","implicit","_wrap","stateProps","cstate","method","_init","equal","_useArgs","def","num","newKey","_decode","wrapResult","prevObj","present","prevKey","enterKey","_peekTag","isError","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","track","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","_use","_createEncoderBuffer","_encode","_encodeValue","_skipDefault","primitive","_encodeChoice","_encodePrimitive","cls","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","errors","ReporterError","msg","rethrow","pathLen","inherited","elem","stack","partial","captureStackTrace","reverse","tagClass","tagClassByName","tagByName","_reverse","der","DERDecoder","tree","DERNode","derDecodeTag","buf","oct","tagStr","derDecodeLen","buffer","decodedTag","_skipUntilEnd","decoder","possibleEnd","unused","readUInt16BE","numstr","printstr","relative","identifiers","ident","subident","second","tmp","year","mon","day","hour","sec","Date","UTC","pem","PEMDecoder","lines","base64","DEREncoder","two","encodedTag","encodeTag","header","lenOctets","writeUInt16BE","objid","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","numArray","sign","unshift","dataBuffer","defaultBuffer","PEMEncoder","ctor","superCtor","super_","TempCtor","BN","endian","isBN","negative","words","red","wordSize","parseHex4Bits","c","parseHexByte","lowerBound","parseBase","mul","cmp","_initNumber","_initArray","_parseHex","_parseBase","ceil","strip","limbLen","limbPow","total","mod","word","imuln","_iaddn","pow","_expand","_normSign","inspect","zeros","groupSizes","groupBases","smallMulTo","self","lo","carry","ncarry","rword","maxJ","groupSize","groupBase","isZero","modn","idivn","toNumber","ret","toJSON","toBuffer","toArrayLike","ArrayType","reqLength","littleEndian","q","andln","iushrn","clz32","_countBits","_zeroBits","bitLength","hi","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","sub","comb10MulTo","mid","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","hncarry","bigMulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","ph","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","bits","carryMask","newCarry","ishln","hint","extended","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","egcd","A","B","C","D","g","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","x1","x2","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","_strip","outLen","mod3","one","nOne","lpow","inv","wnd","currentLen","mont","u","_defineProperties","descriptor","prim","toPrimitive","_toPrimitive","_createClass","Constructor","protoProps","staticProps","isDeepEqual","isDeepStrictEqual","_require$codes","codes","ERR_AMBIGUOUS_ARGUMENT","ERR_INVALID_ARG_TYPE","ERR_INVALID_ARG_VALUE","ERR_INVALID_RETURN_VALUE","ERR_MISSING_ARGS","AssertionError","_require$types","isRegExp","objectAssign","objectIs","RegExpPrototypeTest","lazyLoadComparison","comparison","warned","ok","NO_EXCEPTION_SENTINEL","innerFail","innerOk","argLen","generatedMessage","actual","expected","operator","stackStartFn","internalMessage","argsLen","process","emitWarning","errArgs","notEqual","deepEqual","notDeepEqual","deepStrictEqual","notDeepStrictEqual","strictEqual","notStrictEqual","Comparison","_classCallCheck","expectedException","compareExceptionKey","isPrototypeOf","getActual","checkIsPromise","catch","waitForActual","promiseFn","resultPromise","expectsError","fnType","expectsNoError","internalMatch","regexp","fnName","strict","_len6","_key6","throws","_len2","_key2","rejects","_len3","_key3","doesNotThrow","_len4","_key4","doesNotReject","_len5","_key5","ifError","newErr","origStack","tmp2","tmp1","pos","doesNotMatch","_objectSpread","_toPropertyKey","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","Function","Wrapper","_construct","_getPrototypeOf","_setPrototypeOf","Parent","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","setPrototypeOf","__proto__","getPrototypeOf","this_len","blue","green","kReadableOperator","strictEqualObject","notStrictEqualObject","notIdentical","copyError","inspectValue","compact","customInspect","depth","maxArrayLength","Infinity","showHidden","breakLength","showProxy","sorted","getters","_Error","_inspect$custom","subClass","superClass","_inherits","Derived","hasNativeReflectConstruct","_super","Super","NewTarget","stackTraceLimit","stderr","isTTY","getColorDepth","lastPos","skipped","actualInspected","actualLines","expectedLines","indicator","inputLength","floor","maxCount","repeat","maxLines","_actualLines","printedLines","skippedMsg","cur","expectedLine","actualLine","divergingLines","createErrDiff","_res","knownOperators","recurseTimes","custom","util","createErrorType","NodeError","_Base","arg1","arg2","arg3","getMessage","thing","determiner","inspected","RangeError","regexFlagsSupported","flags","arrayFromSet","arrayFromMap","is","objectGetOwnPropertySymbols","numberIsNaN","uncurryThis","objectToString","isAnyArrayBuffer","isArrayBufferView","isDate","isMap","isSet","isNativeError","isBoxedPrimitive","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isFloat32Array","isFloat64Array","isNonIndex","getOwnNonIndexProperties","compare","kNoIterator","kIsArray","kIsSet","kIsMap","innerDeepEqual","val1","val2","memos","buf1","buf2","val1Tag","keys1","keys2","keyCheck","getTime","Uint8Array","byteOffset","areSimilarTypedArrays","areSimilarFloatArrays","_keys","_keys2","BigInt","isEqualBoxedPrimitive","getEnumerables","iterationType","aKeys","bKeys","symbolKeysA","symbolKeysB","_symbolKeysB","val2MemoA","val2MemoB","areEq","aValues","setMightHaveLoosePrim","bValues","_val","setHasEqualElement","setEquiv","aEntries","_aEntries$i","item1","item2","mapMightHaveLoosePrim","bEntries","_i2","_bEntries$_i","mapHasEqualEntry","mapEquiv","keysA","objEquiv","delete","setValues","findLooseMatchingPrimitives","altValue","curB","key1","key2","file","acceptedFiles","acceptedFilesArray","fileName","mimeType","baseMimeType","validType","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","move","src","_move","modrn","allocUnsafe","allocate","_toArrayLikeLE","_toArrayLikeBE","isNegNum","Rand","rand","_rand","getBytes","getByte","crypto","getRandomValues","msCrypto","randomBytes","asUInt32Array","readUInt32BE","scrubVec","cryptBlock","M","keySchedule","SUB_MIX","SBOX","nRounds","t0","t1","t2","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s1","s2","s3","ksRow","RCON","G","INV_SBOX","INV_SUB_MIX","xi","x4","x8","AES","_reset","blockSize","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","encryptBlock","writeUInt32BE","decryptBlock","m1","scrub","aes","Transform","GHASH","incr32","StreamCipher","iv","decrypt","_cipher","ck","_ghash","_finID","ghash","toPad","ivBits","tail","writeUIntBE","calcIv","_prev","_secCache","_decrypt","_alen","_mode","_authTag","_called","_update","chunk","rump","encrypt","_final","final","xorTest","getAuthTag","setAuthTag","setAAD","ciphers","deciphers","createCipher","Cipher","createCipheriv","Cipheriv","createDecipher","Decipher","createDecipheriv","Decipheriv","listCiphers","getCiphers","AuthCipher","MODES","ebtk","Splitter","_last","_autopadding","suite","last","padded","unpad","setAutoPadding","setTo","autoPadding","PADDING","equals","padBuff","writeUInt8","ZEROES","fromArray","block","_multiply","lsbVi","Vi","Zi","abl","bl","pad","encryptStart","encryptByte","byteParam","shiftIn","getBlock","chunkNum","modeModules","ECB","CBC","CFB","CFB8","CFB1","OFB","CTR","GCM","DES","aesModes","desModes","keyLen","ivLen","CipherBase","des","instantiate","EDE","opts","modeName","_des","des3","getr","priv","modulus","prime1","prime2","crt","blinds","blinder","publicExponent","unblinder","blind","blinded","c1","c2","qinv","exponent1","m2","exponent2","createHash","stream","verify","algorithms","Sign","algorithm","Writable","_hashType","_hash","_tag","_signType","Verify","createSign","createVerify","_write","digest","sig","sigBuffer","createHmac","EC","parseKeys","curves","getKey","algo","hlen","hbits","bits2int","bits2octets","obits","makeKey","kv","makeR","hashType","signType","curve","curveId","keyFromPrivate","privateKey","toDER","ecSign","priv_key","H","dsaSign","checkValue","pub","pubkey","subjectPrivateKey","ecVerify","pub_key","unpacked","signature","montp","dsaVerify","padNum","copyProps","dst","SafeBuffer","encodingOrOffset","allocUnsafeSlow","encoding","SlowBuffer","ieee754","customInspectSymbol","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","isEncoding","fromString","ArrayBuffer","isView","arrayView","isInstance","fromArrayBuffer","fromArrayLike","fromArrayView","SharedArrayBuffer","fromObject","assertSize","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","foundIndex","found","hexWrite","remaining","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","poolSize","_isBuffer","swap16","swap32","swap64","toLocaleString","thisStart","thisEnd","thisCopy","targetCopy","isFinite","hexSliceLookupTable","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","readUintBE","readUIntBE","readUint8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","boundsError","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUint8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","E","super","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_BUFFER_OUT_OF_BOUNDS","received","isInteger","INVALID_BASE64_RE","leadSurrogate","base64clean","alphabet","table","i16","BufferBigIntNotDefined","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","originalFunction","applyBind","charenc","utf8","stringToBytes","bin","unescape","bytesToString","escape","StringDecoder","hashMode","_finalOrDigest","__final","_decoder","_encoding","inputEnc","outputEnc","outData","_toString","_transform","_flush","fin","deselectCurrent","clipboardToIE11Formatting","debug","reselectPrevious","selection","mark","createRange","all","clip","webkitUserSelect","MozUserSelect","msUserSelect","format","clipboardData","clearData","setData","onCopy","selectNodeContents","addRange","execCommand","copyKey","prompt","removeRange","removeAllRanges","elliptic","ECDH","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","ec","formatReturnValue","bn","p256","secp256r1","secp192r1","p384","p521","generateKeys","genKeyPair","getPublicKey","computeSecret","inenc","keyFromPublic","getPublic","getPrivate","getX","getPrivateKey","setPublicKey","_importPublic","setPrivateKey","_priv","_importPrivate","MD5","RIPEMD160","sha","Hash","alg","Legacy","md5","ZEROS","Hmac","blocksize","_alg","ipad","_ipad","opad","_opad","base64map","crypt","rotl","rotr","bytesToWords","wordsToBytes","bytesToHex","hex","hexToBytes","bytesToBase64","triplet","imod4","rng","pseudoRandomBytes","prng","algos","algoKeys","hashes","getHashes","pbkdf2","pbkdf2Sync","dh","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","isBetween","isAfter","isBefore","isSameOrAfter","isSame","isSameOrBefore","$locale","weekStart","Ls","locale","formats","months","monthsShort","firstDayOfWeek","weekdays","weekdaysMin","weekdaysShort","longDateFormat","meridiem","ordinal","localeData","LTS","LT","L","LL","LLL","LLLL","en","isValid","utc","toDate","$L","utcOffset","local","$u","$utils","$offset","init","$d","$y","$M","$D","$W","getUTCDay","$H","$m","$s","$ms","getUTCMilliseconds","getTimezoneOffset","$x","$localOffset","isUTC","toISOString","toUTCString","hasSymbols","toStr","origDefineProperty","hasPropertyDescriptors","supportsDescriptors","predicate","predicates","utils","CBCState","_cbcInit","_cbcState","inp","inOff","outOff","superProto","bufferOff","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","inputOff","outputOff","_finalEncrypt","_finalDecrypt","_pad","_unpad","DESState","_desState","deriveKeys","shiftTable","kL","kR","pc1","r28shl","pc2","ip","_encrypt","lStart","rStart","keyL","keyR","expand","substitute","rip","EDEState","k1","k2","k3","_edeState","inL","inR","outL","outR","pc2table","sTable","permuteTable","padSplit","generatePrime","DH","ENCODINGS","gen","genc","millerRabin","TWENTYFOUR","ELEVEN","TEN","THREE","SEVEN","_pub","primeCache","malleable","setGenerator","__prime","_primeLen","_primeCode","rem","simpleSieve","fermatTest","checkPrime","__gen","_gen","getPrime","front","getGenerator","findPrime","ONE","TWO","FIVE","FOUR","_getPrimes","n2","eddsa","getNAF","getJSF","BaseCurve","conf","zero","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","precomputed","point","validate","_fixedNafMul","doubles","_getDoubles","naf","I","nafW","repr","jpoint","mixedAdd","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","jsf","ja","jb","decodePoint","pointFromX","encodeCompressed","getY","precompute","power","beta","_getBeta","_hasDoubles","dbl","EdwardsCurve","twisted","mOneA","dd","oneC","Point","zOne","_mulA","_mulC","rhs","lhs","y2","pointFromY","isInfinity","fromJSON","_extDbl","nx","ny","nt","nz","_projDbl","_extAdd","_projAdd","mulAdd","jmulAdd","zi","eqXToP","xc","edwards","MontCurve","i4","a24","aa","bb","diffAdd","da","jumlAdd","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","isRed","inf","JPoint","lambda","betas","_getEndoRoots","lambdas","basis","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","len1","_endoSplit","v1","v2","q1","q2","ax","_endoWnafMulAdd","npoints","ncoeffs","pre","endoMul","obj2point","ys1","dyinv","_precompute","negate","zinv","zinv2","ay","pz2","z2","u1","u2","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","zs","PresetCurve","defineCurve","sha256","sha384","sha512","HmacDRBG","KeyPair","Signature","nh","keyPair","fromPrivate","fromPublic","drbg","pers","persEnc","entropy","hmacStrength","entropyEnc","ns2","_truncateToN","truncOnly","bkey","ns1","iter","kp","kpX","recoveryParam","canonical","sinv","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Q","Qprime","privEnc","pubEnc","derive","_importDER","Position","place","getLength","initial","octetLen","rmPadding","constructLength","octets","LN2","slen","backHalf","parseBytes","EDDSA","pointClass","encodingLength","keyFromSecret","hashInt","messagePrefix","R","Rencoded","encodePoint","s_","pubBytes","S","makeSignature","SG","intFromLE","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","cachedProperty","_secret","_pubBytes","privBytes","getSecret","_R","_S","_Rencoded","_Sencoded","Sencoded","toBytes","toHex","minAssert","minUtils","zero2","m8","d1","d2","m14","m24","computer","ReflectOwnKeys","ReflectApply","receiver","getOwnPropertyNames","NumberIsNaN","EventEmitter","once","emitter","reject","errorListener","removeListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","that","_addListener","events","newListener","emit","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","setMaxListeners","getMaxListeners","doError","er","listeners","addListener","prependListener","prependOnceListener","originalListener","spliceOne","removeAllListeners","rawListeners","eventNames","salt","keyBits","used","keyStart","ivStart","isCallable","thisArg","forEachArray","forEachString","forEachObject","concatty","bound","arrLike","slicy","boundLength","boundArgs","joiner","joiny","Empty","implementation","randomIndex","getNextRandomValue","randomNumber","similarCharacters","strictRules","pool","optionsLength","poolLength","numbers","exclude","uppercase","lowercase","excludeSimilarCharacters","generateMultiple","amount","passwords","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasProto","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt64Array","BigUint64Array","DataView","encodeURI","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakRef","WeakSet","errorProto","doEval","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","getBaseIntrinsic","alias","intrinsicName","quote","subString","stringToPath","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","desc","hasArrayLengthDefineBug","$Object","origSymbol","hasSymbolSham","symObj","syms","toStringTag","HashBase","_block","_blockSize","_blockOffset","_length","_finalized","prefix","throwIfNotStringOrBuffer","_digest","ripemd","hmac","sha1","sha224","ripemd160","BlockHash","pendingTotal","outSize","padLength","_delta8","_delta32","join32","inner","outer","rotl32","sum32","sum32_3","sum32_4","K","Kh","Ah","Bh","Ch","Dh","Eh","rh","sh","toHex32","split32","shaCommon","sum32_5","ft_1","sha1_K","SHA1","W","SHA256","SHA224","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","T1","T2","SHA512","SHA384","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","xh","yh","yl","zh","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","ah","al","bh","ch","cl","dl","eh","fh","fl","gh","gl","hh","hl","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","rotr32","p32","isSurrogatePair","htonl","zero8","predResist","minEntropy","_reseed","reseedInterval","V","nonceEnc","seed","_hmac","kmac","reseed","addEnc","temp","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","render","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","inheritedComponent","targetStatics","sourceStatics","$$typeof","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","condition","argIndex","framesToPop","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","supportsStandardArguments","badArrayLike","isCallableMarker","fnToStr","reflectApply","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","strClass","GeneratorFunction","isFnRegex","generatorFunc","getGeneratorFunc","getPolyfill","polyfill","availableTypedArrays","gOPD","globalThis","typedArrays","$slice","toStrTags","typedArray","anyTrue","getter","tryTypedArrays","replacer","cycleReplacer","thisPos","spaces","getSerialize","MarkerClusterGroup","FeatureGroup","extend","maxClusterRadius","iconCreateFunction","clusterPane","Marker","pane","spiderfyOnEveryZoom","spiderfyOnMaxZoom","showCoverageOnHover","zoomToBoundsOnClick","singleMarkerMode","disableClusteringAtZoom","removeOutsideVisibleBounds","animate","animateAddingMarkers","spiderfyShapePositions","spiderfyDistanceMultiplier","spiderLegPolylineOptions","weight","chunkedLoading","chunkInterval","chunkDelay","chunkProgress","polygonOptions","initialize","Util","_defaultIconCreateFunction","_featureGroup","featureGroup","addEventParent","_nonPointGroup","_inZoomAnimation","_needsClustering","_needsRemoving","_currentShownBounds","_queue","_childMarkerEventHandlers","_childMarkerDragStart","_childMarkerMoved","_childMarkerDragEnd","DomUtil","TRANSITION","_withAnimation","_noAnimation","_markerCluster","MarkerCluster","MarkerClusterNonAnimated","addLayer","layer","LayerGroup","addLayers","getLatLng","fire","_map","hasLayer","_unspiderfy","_addLayer","_maxZoom","_topClusterLevel","_recalculateBounds","_refreshClustersIcons","visibleLayer","currentZoom","_zoom","__parent","_animationAddLayer","_animationAddLayerNonAnimated","removeLayer","removeLayers","_unspiderfyLayer","_removeLayer","clusterShow","_arraySplice","latlng","_latlng","layersArray","skipLayerAddEvent","fg","npg","chunked","originalArray","started","_extractNonGroupLayers","getChildCount","markers","getAllChildMarkers","otherMarker","_recursivelyAddChildrenToMap","needsClustering","layersArray2","l2","clearLayers","_gridClusters","_gridUnclustered","_noanimationUnspiderfy","eachLayer","_generateInitialClusters","getBounds","bounds","LatLngBounds","_bounds","thisNeedsRemoving","needsRemoving","getLayers","layers","getLayer","stamp","anArray","_group","zoomToShowLayer","showMarker","_icon","spiderfy","panTo","zoomToBounds","onAdd","getMaxZoom","addTo","_maxLat","crs","projection","MAX_LATITUDE","newlatlng","_getExpandedVisibleBounds","_zoomEnd","_moveEnd","_spiderfierOnAdd","_bindEvents","onRemove","_unbindEvents","_mapPane","_spiderfierOnRemove","_hideCoverage","getVisibleParent","vMarker","_removeFromGridUnclustered","gridUnclustered","minZoom","getMinZoom","removeObject","project","__dragStart","_ignoreMove","isPopupOpen","_popup","isOpen","_moveChild","oldLatLng","openPopup","dragStart","removeFromDistanceGrid","dontUpdateMap","gridClusters","cluster","_markers","_childCount","_boundsNeedUpdate","_cLatLng","addObject","_childClusters","_iconNeedsUpdate","_isOrIsParent","oel","propagate","originalEvent","listens","childCount","DivIcon","iconSize","_zoomOrSpiderfy","_showCoverage","bottomCluster","keyCode","_container","_shownPolygon","_spiderfied","Polygon","getConvexHull","_mergeSplitClusters","newBounds","_recursivelyRemoveChildrenFromMap","maxZoom","radius","radiusFn","DistanceGrid","markerPoint","_overrideMarkerIcon","closest","getNearObject","_addChild","newCluster","lastParent","_updateIcon","_enqueue","_queueTimeout","_processQueue","mapZoom","intersects","_animationStart","_animationZoomIn","_animationZoomOut","Browser","mobile","_checkBoundsMaxLat","_mapBoundsInfinite","maxLat","getNorth","_northEast","lat","getSouth","_southWest","_addToMap","include","LatLng","previousZoomLevel","newZoomLevel","_recursively","startPos","_isSingleParent","clusterHide","_forceLayout","_recursivelyBecomeVisible","_recursivelyRestoreChildPositions","_animationEnd","_animationZoomOutSingle","me","_setPos","latLngToLayerPoint","_recursivelyAnimateChildrenInAndAddSelfToMap","setLatLng","falseFn","markerClusterGroup","Icon","storageArray","ignoreDraggedMarker","fitBoundsOptions","childClusters","boundsZoom","getBoundsZoom","getZoom","newClusters","setView","fitBounds","setIcon","createIcon","_iconObj","new1","isNotificationFromChild","_setClusterCenter","_resetBounds","lng","childLatLng","latSum","lngSum","totalCount","_wLatLng","_backupLatlng","_recursivelyAnimateChildrenIn","cm","mapMinZoom","zoomLevel","nm","_restorePosition","previousBounds","exceptBounds","boundsToApplyTo","zoomLevelToStart","zoomLevelToStop","runAtEveryLevel","runAtBottomLevel","backup","setOpacity","cellSize","_cellSize","_sqCellSize","_grid","_objectPoint","_getCoord","grid","row","cell","updateObject","eachObject","dist","objectPoint","closestDistSq","_sqDist","coord","dx","dy","QuickHull","getDistant","cpt","vY","findMostDistantPointFromBaseLine","baseLine","latLngs","maxD","maxPt","newPoints","maxPoint","buildConvexHull","convexHullBaseLines","minLat","maxLng","minLng","maxLatPt","minLatPt","maxLngPt","minLngPt","minPt","childMarkers","_2PI","_circleFootSeparation","_circleStartAngle","_spiralFootSeparation","_spiralLengthStart","_spiralLengthFactor","_circleSpiralSwitchover","positions","_generatePointsSpiral","_generatePointsCircle","_animationSpiderfy","unspiderfy","zoomDetails","_animationUnspiderfy","centerPt","angle","legLength","angleStep","_round","separation","lengthFactor","_preSpiderfyLatlng","setZIndexOffset","_spiderLeg","leg","newPos","legOptions","layerPointToLatLng","Polyline","legPath","thisLayerLatLng","thisLayerPos","svg","Path","SVG","finalLegOpacity","_path","getTotalLength","setStyle","nonAnimatable","_latLngToNewLayerPoint","closePopup","stillThereChildCount","_unspiderfyWrapper","zoomAnimation","_unspiderfyZoomStart","getRenderer","_unspiderfyZoomAnim","hasClass","refreshClusters","_layers","_flagParentsIconsNeedUpdate","_refreshSingleMarkerModeMarkers","refreshIconOptions","directlyRefreshClusters","create$2","F","lastId","_leaflet_id","throttle","lock","wrapperFn","later","wrapNum","includeMax","formatNum","precision","splitWords","getParamString","existingUrl","templateRe","template","emptyImageUrl","getPrefixed","timeoutDefer","timeToCall","requestFn","requestAnimationFrame","cancelFn","requestAnimFrame","immediate","cancelAnimFrame","NewClass","callInitHooks","parentProto","__super__","statics","Mixin","Events","checkDeprecatedMixinEvents","_initHooks","_initHooksCalled","parentOptions","mergeOptions","addInitHook","types","_on","_off","removeAll","_once","_listens","_firingCount","sourceTarget","_propagateEvent","_fn","_eventParents","removeEventParent","propagatedFrom","clearAllEventListeners","addOneTimeEventListener","fireEvent","hasEventListeners","Evented","trunc","toPoint","Bounds","toBounds","corner1","corner2","latlngs","toLatLngBounds","alt","toLatLng","lon","_add","subtract","_subtract","divideBy","_divideBy","multiplyBy","_multiplyBy","scaleBy","unscaleBy","_floor","_ceil","_trunc","distanceTo","min2","max2","getCenter","getBottomLeft","getTopRight","getTopLeft","getBottomRight","getSize","xIntersects","yIntersects","overlaps","xOverlaps","yOverlaps","bufferRatio","heightBuffer","widthBuffer","sw2","ne2","sw","ne","getSouthWest","getNorthEast","getNorthWest","getWest","getSouthEast","getEast","latIntersects","lngIntersects","latOverlaps","lngOverlaps","toBBoxString","maxMargin","Earth","wrap","wrapLatLng","sizeInMeters","latAccuracy","lngAccuracy","CRS","latLngToPoint","projectedPoint","scale","transformation","pointToLatLng","untransformedPoint","untransform","unproject","getProjectedBounds","infinite","wrapLng","wrapLat","wrapLatLngBounds","newCenter","latShift","lngShift","latlng1","latlng2","rad","lat1","lat2","sinDLat","sinDLon","atan2","earthRadius","SphericalMercator","atan","exp","Transformation","_a","_b","_c","toTransformation","EPSG3857","EPSG900913","svgCreate","createElementNS","pointsToPath","rings","closed","ielt9","webkit","userAgentContains","android","android23","webkitVer","androidStock","opera","chrome","gecko","safari","phantom","opera12","platform","ie3d","webkit3d","WebKitCSSMatrix","gecko3d","any3d","L_DISABLE_3D","mobileWebkit","mobileWebkit3d","msPointer","PointerEvent","MSPointerEvent","pointer","touchNative","TouchEvent","L_NO_TOUCH","mobileOpera","mobileGecko","retina","screen","deviceXDPI","logicalXDPI","passiveEvents","supportsPassiveOption","canvas$1","getContext","svg$1","createSVGRect","inlineSvg","innerHTML","namespaceURI","vml","behavior","adj","canvas","mac","linux","POINTER_DOWN","POINTER_MOVE","POINTER_UP","POINTER_CANCEL","pEvent","touchstart","touchmove","touchend","touchcancel","handle","MSPOINTER_TYPE_TOUCH","pointerType","_handlePointer","_pointers","_pointerDocListener","addPointerListener","_globalPointerDown","_globalPointerMove","_globalPointerUp","pointerId","MSPOINTER_TYPE_MOUSE","changedTouches","disableTextSelection","enableTextSelection","_userSelect","_outlineElement","_outlineStyle","TRANSFORM","testProp","TRANSITION_END","getStyle","currentStyle","create$1","empty","toFront","toBack","getClass","addClass","setClass","removeClass","baseVal","correspondingElement","filterName","filters","Enabled","Opacity","_setOpacityIE","setTransform","setPosition","_leaflet_pos","getPosition","userSelectProperty","disableImageDrag","enableImageDrag","preventOutline","restoreOutline","outlineStyle","getSizedParentNode","boundingClientRect","addOne","eventsKey","batchRemove","removeOne","filterFn","mouseSubst","mouseenter","mouseleave","wheel","originalHandler","detail","simDblclick","sourceCapabilities","firesTouchEvents","getPropagationPath","HTMLLabelElement","HTMLInputElement","HTMLSelectElement","newEvent","isTrusted","_simulated","makeDblclick","dblclick","addDoubleTapListener","isExternalTarget","attachEvent","removePointerListener","removeDoubleTapListener","detachEvent","_stopped","cancelBubble","disableScrollPropagation","disableClickPropagation","returnValue","ev","getMousePosition","wheelPxFactor","getWheelDelta","wheelDeltaY","deltaY","deltaMode","deltaX","deltaZ","wheelDelta","related","DomEvent","PosAnimation","run","easeLinearity","_el","_inProgress","_duration","_easeOutPower","_startPos","_startTime","_animate","_step","_complete","_animId","elapsed","_runFrame","_easeOut","progress","maxBounds","renderer","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","transform3DLimit","zoomSnap","zoomDelta","trackResize","_handlers","_zoomBoundLayers","_sizeChanged","_initContainer","_initLayout","_onResize","_initEvents","setMaxBounds","_limitZoom","_zoomAnimated","_createAnimProxy","_proxy","_catchTransitionEnd","_addLayers","_limitCenter","_stop","_loaded","pan","_tryAnimatedZoom","_tryAnimatedPan","_sizeTimer","_resetView","noMoveStart","setZoom","zoomIn","zoomOut","setZoomAround","getZoomScale","viewHalf","latLngToContainerPoint","containerPointToLatLng","_getBoundsCenterZoom","paddingTL","paddingTopLeft","paddingBR","paddingBottomRight","paddingOffset","swPoint","nePoint","fitWorld","panBy","_panAnim","_onPanTransitionStep","_onPanTransitionEnd","_getMapPanePos","_rawPanBy","flyTo","targetCenter","targetZoom","startZoom","rho","rho2","sq","sinh","cosh","r0","_moveStart","frame","_flyToFrame","getScaleZoom","flyToBounds","_panInsideMaxBounds","setMinZoom","oldZoom","setMaxZoom","panInsideBounds","_enforcingBounds","panInside","pixelCenter","pixelPoint","pixelBounds","getPixelBounds","paddedBounds","paddedSize","invalidateSize","oldSize","_lastCenter","newSize","oldCenter","debounceMoveend","locate","_locateOptions","watch","_handleGeolocationError","onResponse","_handleGeolocationResponse","onError","_locationWatchId","geolocation","watchPosition","getCurrentPosition","stopLocate","clearWatch","coords","latitude","longitude","accuracy","timestamp","addHandler","HandlerClass","enable","_containerId","_clearControlPos","_resizeRequest","_clearHandlers","_panes","_renderer","createPane","_checkIfLoaded","_moved","_getCenterLayerPoint","_layersMinZoom","_layersMaxZoom","inside","nw","se","boundsSize","snap","scalex","scaley","_size","topLeftPoint","_getTopLeftPoint","getPixelOrigin","_pixelOrigin","getPixelWorldBounds","getPane","getPanes","toZoom","fromZoom","containerPointToLayerPoint","layerPointToContainerPoint","layerPoint","mouseEventToContainerPoint","mouseEventToLayerPoint","mouseEventToLatLng","_onScroll","_fadeAnimated","_initPanes","_initControlPos","panes","_paneRenderers","markerPane","shadowPane","zoomChanged","supressEvent","_getNewPixelOrigin","pinch","_getZoomSpan","_targets","onOff","_handleDOMEvent","_onMoveEnd","_findEventTargets","targets","isHover","srcElement","dragging","_draggableMoved","_isClickDisabled","_fireDOMEvent","_mouseEvents","canvasTargets","synth","filtered","isMarker","_radius","containerPoint","bubblingMouseEvents","moved","boxZoom","disable","whenReady","topLeft","_latLngBoundsToNewLayerBounds","latLngBounds","_getCenterOffset","centerPoint","viewBounds","_getBoundsOffset","_limitOffset","pxBounds","projectedMaxBounds","_rebound","proxy","mapPane","_animatingZoom","_onZoomTransitionEnd","_animMoveEnd","_destroyAnimProxy","propertyName","_nothingToAnimate","getElementsByClassName","_animateZoom","startAnim","noUpdate","_animateToCenter","_animateToZoom","_tempFireZoomEvent","Control","removeControl","addControl","corner","_controlCorners","_refocusOnMap","screenX","screenY","control","corners","_controlContainer","createCorner","vSide","hSide","Layers","collapsed","autoZIndex","hideSingleBase","sortLayers","sortFunction","layerA","layerB","nameA","nameB","baseLayers","_layerControlInputs","_lastZIndex","_handlingClick","_preventClick","_checkDisabledLayers","_onLayerChange","_expandIfNotCollapsed","addBaseLayer","addOverlay","_getLayer","_section","acceptableHeight","collapse","section","_expandSafely","link","_layersLink","keydown","click","_baseLayersList","_separator","_overlaysList","overlay","setZIndex","baseLayersPresent","overlaysPresent","baseLayersCount","_addItem","_createRadioElement","radioHtml","radioFragment","defaultChecked","layerId","_onInputClick","holder","inputs","addedLayers","removedLayers","Zoom","zoomInText","zoomInTitle","zoomOutText","zoomOutTitle","zoomName","_zoomInButton","_createButton","_zoomIn","_zoomOutButton","_zoomOut","_updateDisabled","_disabled","zoomControl","Scale","metric","imperial","_addScales","updateWhenIdle","_mScale","_iScale","maxMeters","_updateScales","_updateMetric","_updateImperial","meters","_getRoundNum","_updateScale","maxMiles","miles","feet","maxFeet","ratio","pow10","Attribution","ukrainianFlag","_attributions","attributionControl","getAttribution","addAttribution","_addAttribution","removeAttribution","setPrefix","attribs","prefixAndAttribs","attribution","Handler","_enabled","addHooks","removeHooks","START","Draggable","clickTolerance","dragStartTarget","_element","_dragStartTarget","_preventOutline","_onDown","_dragging","finishDrag","_moving","sizedParent","_startPoint","_parentScale","mouseevent","_onMove","_onUp","_lastTarget","SVGElementInstance","correspondingUseElement","_newPos","_lastEvent","_updatePosition","noInertia","fireDragend","clipPolygon","clippedPoints","edges","_code","_getBitCode","_getEdgeIntersection","polygonCenter","area","isFlat","centroidLatLng","centroid","latlngCenter","_lastCode","PolyUtil","simplify","tolerance","sqTolerance","_simplifyDPStep","_simplifyDP","reducedPoints","_reducePoints","pointToSegmentDistance","_sqClosestPointOnSegment","sqDist","maxSqDist","clipSegment","useLastCode","codeOut","newCode","codeA","codeB","dot","_flat","polylineCenter","halfDist","segDist","LineUtil","closestPointOnSegment","LonLat","Mercator","R_MINOR","con","ts","tan","phi","dphi","EPSG3395","EPSG4326","Simple","Layer","removeFrom","_mapToAdd","addInteractiveTarget","targetEl","removeInteractiveTarget","_layerAdd","getEvents","beforeAdd","_addZoomLimit","_updateZoomLevels","_removeZoomLimit","oldZoomSpan","getLayerId","invoke","methodName","bringToFront","bringToBack","popupAnchor","tooltipAnchor","crossOrigin","oldIcon","_createIcon","_getIconUrl","img","_createImg","_setIconStyles","sizeOption","anchor","shadowAnchor","iconAnchor","IconDefault","iconUrl","iconRetinaUrl","shadowUrl","shadowSize","imagePath","_detectIconPath","_stripUrl","MarkerDrag","_marker","_draggable","dragstart","_onDragStart","predrag","_onPreDrag","drag","_onDrag","dragend","_onDragEnd","_adjustPan","speed","autoPanSpeed","autoPanPadding","iconPos","panBounds","movement","_panRequest","_oldLatLng","autoPan","shadow","_shadow","interactive","keyboard","zIndexOffset","riseOnHover","riseOffset","autoPanOnFocus","draggable","_initIcon","_removeIcon","_removeShadow","viewreset","getIcon","bindPopup","getElement","classToAdd","addIcon","mouseover","_bringToFront","mouseout","_resetZIndex","_panOnFocus","newShadow","addShadow","_updateOpacity","_initInteraction","_zIndex","_updateZIndex","opt","iconOpts","_getPopupAnchor","_getTooltipAnchor","stroke","lineCap","lineJoin","dashArray","dashOffset","fillColor","fillRule","_initPath","_addPath","_removePath","redraw","_updatePath","_updateStyle","_updateBounds","_bringToBack","_project","_clickTolerance","CircleMarker","setRadius","getRadius","_point","_radiusY","_pxBounds","_updateCircle","_empty","_containsPoint","Circle","legacyOptions","_mRadius","latR","lngR","acos","smoothFactor","noClip","_setLatLngs","getLatLngs","_latlngs","setLatLngs","closestLayerPoint","minDistance","minPoint","jLen","_parts","_defaultShape","addLatLng","_convertLatLngs","flat","_rings","_projectLatlngs","_rawPxBounds","projectedBounds","ring","_clipPoints","_simplifyPoints","_updatePoly","clipped","GeoJSON","geojson","addData","feature","features","geometries","geometry","coordinates","geometryToLayer","asFeature","resetStyle","onEachFeature","_setLayerStyle","pointToLayer","_coordsToLatLng","coordsToLatLng","_pointToLayer","coordsToLatLngs","geoLayer","featureLayer","pointToLayerFn","markersInheritOptions","levelsDeep","latLngToCoords","latLngsToCoords","getFeature","newGeometry","PointToGeoJSON","toGeoJSON","geoJSON","multi","holes","toMultiPoint","isGeometryCollection","jsons","json","geoJson","ImageOverlay","errorOverlayUrl","_url","_image","_initImage","styleOpts","setUrl","setBounds","zoomanim","wasElementSupplied","onselectstart","onmousemove","onload","onerror","_overlayOnError","image","errorUrl","VideoOverlay","autoplay","loop","keepAspectRatio","muted","playsInline","vid","onloadeddata","sourceElements","getElementsByTagName","sources","SVGOverlay","DivOverlay","_source","_content","openOn","close","toggle","_prepareOpen","_removeTimeout","getContent","setContent","_updateContent","_updateLayout","_contentNode","hasChildNodes","_getAnchor","_containerBottom","_containerLeft","_containerWidth","_initOverlay","OverlayClass","old","Popup","autoPanPaddingTopLeft","autoPanPaddingBottomRight","keepInView","closeButton","autoClose","closeOnEscapeKey","popup","closeOnClick","closePopupOnClick","preclick","moveend","_wrapper","_tipContainer","_tip","_closeButton","scrolledClass","_autopanning","containerHeight","containerWidth","layerPos","containerPos","_popupHandlersAdded","_openPopup","keypress","_onKeyPress","_movePopup","unbindPopup","togglePopup","setPopupContent","getPopup","permanent","_setPosition","subX","subY","tooltipPoint","tooltipWidth","tooltipHeight","openTooltip","closeTooltip","bindTooltip","_tooltip","isTooltipOpen","unbindTooltip","_initTooltipInteractions","_tooltipHandlersAdded","_moveTooltip","_openTooltip","_addFocusListeners","mousemove","_setAriaDescribedByOnLayer","toggleTooltip","setTooltipContent","getTooltip","_addFocusListenersOnLayer","moving","_openOnceFlag","bgPos","backgroundPosition","Default","GridLayer","tileSize","updateWhenZooming","updateInterval","maxNativeZoom","minNativeZoom","noWrap","keepBuffer","_levels","_tiles","_removeAllTiles","_tileZoom","_setAutoZIndex","isLoading","_loading","tileZoom","_clampZoom","_updateLevels","viewprereset","_invalidateAll","createTile","getTileSize","edgeZIndex","nextFrame","willPrune","tile","loaded","fade","_onOpaqueTile","_noPrune","_pruneTiles","_fadeFrame","_onUpdateLevel","_removeTilesAtZoom","_onRemoveLevel","level","_setZoomTransform","_onCreateLevel","_level","retain","_retainParent","_retainChildren","_removeTile","coords2","_tileCoordsToKey","animating","_setView","noPrune","tileZoomChanged","_abortLoading","_resetGrid","_setZoomTransforms","translate","_tileSize","_globalTileRange","_pxBoundsToTileRange","_wrapX","_wrapY","_getTiledPixelBounds","halfSize","tileRange","tileCenter","queue","noPruneRange","_isValidTile","fragment","createDocumentFragment","_addTile","tileBounds","_tileCoordsToBounds","_keyToBounds","_keyToTileCoords","_tileCoordsToNwSe","nwPoint","sePoint","bp","_initTile","tilePos","_getTilePos","_wrapCoords","_tileReady","_noTilesToLoad","newCoords","TileLayer","subdomains","errorTileUrl","zoomOffset","tms","zoomReverse","detectRetina","referrerPolicy","_onTileRemove","noRedraw","_tileOnLoad","_tileOnError","getTileUrl","_getSubdomain","_getZoomForUrl","invertedY","tilePoint","complete","tileLayer","TileLayerWMS","defaultWmsParams","service","request","transparent","wmsParams","realRetina","_crs","_wmsVersion","projectionKey","bbox","setParams","WMS","wms","Renderer","_updatePaths","_destroyContainer","_onZoom","zoomend","_onZoomEnd","_onAnimZoom","_updateTransform","currentCenterPoint","_center","topLeftOffset","Canvas","_onViewPreReset","_postponeUpdatePaths","_draw","_onMouseMove","_onClick","_handleMouseOut","_ctx","_redrawRequest","_redrawBounds","_redraw","_updateDashArray","_order","_drawLast","_drawFirst","_requestRedraw","_extendRedrawBounds","dashValue","_dashArray","_clear","clearRect","beginPath","_drawing","closePath","_fillStroke","arc","globalAlpha","fillStyle","setLineDash","lineWidth","strokeStyle","clickedLayer","_fireEvent","_handleMouseHover","_hoveredLayer","_mouseHoverThrottled","candidateHoveredLayer","vmlCreate","namespaces","vmlMixin","coordsize","_stroke","_fill","stroked","dashStyle","endcap","joinstyle","_setPath","_rootGroup","_svgSize","_getPaneRenderer","_createRenderer","preferCanvas","Rectangle","_boundsToLatLngs","BoxZoom","_pane","overlayPane","_resetStateTimeout","_destroy","_onMouseDown","_resetState","_clearDeferredResetState","contextmenu","mouseup","_onMouseUp","_onKeyDown","_box","_finish","boxZoomBounds","doubleClickZoom","DoubleClickZoom","_onDoubleClick","inertia","inertiaDeceleration","inertiaMaxSpeed","worldCopyJump","maxBoundsViscosity","Drag","_onPreDragLimit","_onPreDragWrap","_positions","_times","_offsetLimit","_viscosity","_lastTime","_lastPos","_absPos","_prunePositions","pxCenter","pxWorldCenter","_initialWorldOffset","_worldWidth","_viscousLimit","threshold","worldWidth","halfWidth","newX1","newX2","newX","ease","speedVector","limitedSpeed","limitedSpeedVector","decelerationDuration","keyboardPanDelta","Keyboard","keyCodes","_setPanDelta","_setZoomDelta","_onFocus","_onBlur","mousedown","_addHooks","_removeHooks","_focused","docEl","scrollTo","panDelta","_panKeys","_zoomKeys","newLatLng","scrollWheelZoom","wheelDebounceTime","wheelPxPerZoomLevel","ScrollWheelZoom","_onWheelScroll","_delta","_lastMousePos","_timer","_performZoom","d3","d4","tapHold","tapTolerance","TapHold","_holdTimeout","_cancel","_isTapValid","_cancelClickPrevent","_simulateEvent","cancelClickPrevent","simulatedEvent","MouseEvent","bubbles","cancelable","view","dispatchEvent","touchZoom","bounceAtZoomLimits","TouchZoom","_onTouchStart","_zooming","_centerPoint","_startLatLng","_pinchStartLatLng","_startDist","_startZoom","_onTouchMove","_onTouchEnd","_animRequest","moveFn","Projection","circle","circleMarker","divIcon","gridLayer","imageOverlay","latLng","layerGroup","polygon","polyline","rectangle","svgOverlay","videoOverlay","video","oldL","noConflict","_class","isFunction","escapeRE","fuzzyLink","fuzzyEmail","fuzzyIP","defaultSchemas","http","src_auth","src_host_port_strict","src_path","no_http","src_domain","src_domain_root","src_port","src_host_terminator","mailto","src_email_name","src_host_strict","tlds_2ch_src_re","tlds_default","__opts__","tlds","__tlds__","untpl","tpl","src_tlds","onCompile","__tlds_replaced__","src_xn","email_fuzzy","tpl_email_fuzzy","link_fuzzy","tpl_link_fuzzy","link_no_ip_fuzzy","tpl_link_no_ip_fuzzy","host_fuzzy_test","tpl_host_fuzzy_test","schemaError","__compiled__","__schemas__","compiled","createValidator","isString","slist","schema_test","src_ZPCc","schema_search","pretest","__index__","__text_cache__","resetScanCache","Match","__last_index__","schema","__schema__","createMatch","LinkifyIt","schemas","tld_pos","testSchemaAt","keepOld","src_Any","src_Cc","src_Z","src_P","src_ZCc","src_pseudo_letter","src_ip4","src_host","tpl_host_fuzzy","tpl_host_no_ip_fuzzy","tpl_host_fuzzy_strict","tpl_host_port_fuzzy_strict","tpl_host_port_no_ip_fuzzy_strict","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","entry","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","setter","iteratee","accumulator","resIndex","baseIndexOf","comparator","baseTimes","isArguments","isIndex","isTypedArray","isArr","isArg","isBuff","isType","skipIndexes","baseAssignValue","objValue","baseEach","arrayIncludes","arrayIncludesWith","arrayMap","baseUnary","cacheHas","isCommon","valuesLength","computed","valuesIndex","baseForOwn","createBaseEach","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","isStrict","baseFor","createBaseFor","castPath","toKey","keysFunc","symbolsFunc","getRawTag","symToStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","bitmask","customizer","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isMasked","isObject","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","isPrototype","nativeKeys","nativeKeysIn","isProto","isArrayLike","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","baseGet","baseIteratee","baseMap","baseSortBy","compareMultiple","iteratees","orders","basePickBy","baseSet","nativeCeil","nativeMax","overRest","setToString","assignValue","nested","baseSetToString","comparer","seen","isSymbol","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","createSet","setToArray","seenIndex","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareAscending","objCriteria","othCriteria","ordersLength","isNew","coreJsData","arrayAggregator","baseAggregator","initializer","baseRest","isIterateeCall","assigner","guard","eachFunc","iterable","findIndexFunc","baseInverter","toIteratee","baseRange","toFinite","noop","arraySome","isPartial","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","symbolValueOf","convert","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","flatten","freeGlobal","baseGetAllKeys","getSymbols","getSymbolsIn","keysIn","isKeyable","baseIsNative","getPrototype","overArg","nativeObjectToString","unmasked","arrayFilter","stubArray","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","Ctor","ctorString","hasFunc","nativeCreate","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","uid","maskSrcKey","IE_PROTO","assocIndexOf","getMapData","freeExports","freeModule","freeProcess","nodeUtil","require","binding","otherArgs","freeSelf","shortOut","nativeNow","lastCalled","pairs","LARGE_ARRAY_SIZE","memoizeCapped","reWhitespace","copyObject","createAssigner","defaults","propsIndex","propsLength","baseDifference","isArrayLikeObject","difference","createFind","toInteger","pair","createAggregator","baseHasIn","hasPath","createInverter","invert","baseIsArguments","stubFalse","baseIsDate","nodeIsDate","baseKeys","objectCtorString","baseIsRegExp","nodeIsRegExp","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeysIn","memoized","Cache","pickBy","baseOrderBy","basePick","pick","flatRest","getAllKeysIn","baseProperty","basePropertyDeep","baseSome","baseSortedUniq","remainder","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","baseUniq","idCounter","baseValues","without","ARRAY16","fnF","fnG","fnH","fnI","FF","_ff","GG","_gg","HH","_hh","II","_ii","cc","_blocksize","_digestsize","digestbytes","asBytes","asString","isSlowBuffer","brorand","MillerRabin","_randbelow","min_bytes","_randrange","rone","n1","rn1","getDivisor","moment","toLocaleStringWorks","toLocaleStringRoundingWorks","intlNumberFormatWorks","intlNumberFormatRoundingWorks","stringIncludes","repeatZero","qty","cachedNumberFormat","cacheKey","Intl","NumberFormat","formatNumber","userLocale","integerString","fractionString","exponentString","useToLocaleString","useGrouping","grouping","maximumSignificantDigits","minimumIntegerDigits","fractionDigits","groupingSeparator","decimalSeparator","roundingOptions","localeStringOptions","maximumFractionDigits","minimumFractionDigits","toPrecision","integerLength","fractionLength","digitCount","digits","digitsArray","stringRound","exponent","formattedString","durationLabelCompare","engLocale","durationLabelsStandard","SS","ss","ww","MM","durationLabelsShort","durationTimeTemplates","HMS","HM","MS","durationLabelTypes","durationPluralKey","integerValue","decimalValue","each","pluck","unique","intersection","featureTestFormatterRounding","formatter","featureTestFormatter","passed","durationsFormat","durations","settings","returnMomentTypes","formattedDurations","dur","outputTypes","largest","durationFormat","asMilliseconds","asMonths","isNegative","remainderMonths","momentTokens","years","weeks","days","hours","minutes","seconds","tokenDefs","general","typeMap","tokenizer","stopTrim","_durationTimeTemplates","useLeftUnits","usePlural","forceLength","useSignificantDigits","significantDigits","significantDigitsCache","minValue","isMinValue","maxValue","isMaxValue","trimIncludes","rBoth","rAll","trimLarge","trimSmall","trimMid","trimFinal","rawTokens","currentToken","tokens","momentTypes","momentType","rawValue","isSmallest","isLargest","wholeValue","tokenLength","truncMethod","truncate","places","factor","foundFirst","bubbled","formatValue","formatOptions","formattedValue","formattedValueEn","formattedValueMS","findType","bubble","bubbleMomentType","targetMomentType","outputType","pluralKey","labels","localeDataKey","labelType","labelKey","durationGetLabels","autoLocalized","pluralizedLabels","_durationLabelTypes","defaultFormatTemplate","_data","firstType","lastType","findLast","updateLocale","toLocaleStringFormatter","toLocaleStringSupportsLocales","intlNumberFormatFormatter","momentDurationFormatSetup","defineLocale","meridiemParse","isPM","isLower","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","dayOfMonthOrdinalParse","dow","doy","pluralForm","plurals","pluralize","withoutSuffix","isFuture","weekdaysParseExact","minute","postformat","symbolMap","preparse","numberMap","suffixes","relativeTimeWithPlural","forms","standalone","isFormat","period","lastDigit","last2Digits","meridiemHour","monthsShortRegex","monthsParseExact","relativeTimeWithMutation","mutationTable","softMutation","mutation","lastNumber","monthsParse","monthsRegex","minWeekdaysParse","weekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","ll","lll","llll","plural","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","mom","_calendarEl","monthsShortDot","invalidDate","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eras","since","narrow","abbr","until","eraYearOrdinalRegex","eraYearOrdinalParse","$0","$1","$2","isUpper","eifelerRegelAppliesToNumber","translateSingular","special","relativeTimeWithSingular","translator","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","separator","numbersNouns","numberNoun","hundred","ten","numberAsNoun","hm","processHoursFunction","nominative","accusative","genitive","webpackContext","req","webpackContextResolve","__webpack_require__","hookCallback","hooks","hasOwnProp","isObjectEmpty","isUndefined","isNumber","arrLen","createUTC","createLocalOrUTC","getParsingFlags","_pf","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","rfc2822","weekdayMismatch","_isValid","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_f","_l","_tzm","_isUTC","_locale","Moment","updateOffset","isMoment","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","formatMoment","expandFormat","makeFormatFunction","replaceLongDateFormatTokens","addUnitAlias","shorthand","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","getParseRegexForToken","regexEscape","p3","p4","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","parseTwoDigitYear","getSetYear","createDate","ms","getFullYear","setFullYear","createUTCDate","setUTCFullYear","firstWeekOffset","fwd","dayOfYearFromWeeks","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","matchMeridiem","_meridiemParse","kInput","_isPm","_meridiem","pos1","pos2","getSetHour","globalLocale","baseConfig","locales","localeFamilies","commonPrefix","arr1","minl","normalizeLocale","loadLocale","oldLocale","isLocaleNameSane","_abbr","getSetGlobalLocale","getLocale","_config","parentLocale","names","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","weekdayStr","parsedInput","getDay","checkWeekday","obsOffset","militaryOffset","numOffset","calculateOffset","setUTCMinutes","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","_useUTC","getMonth","getDate","currentDateArray","weekYear","weekdayOverflow","curWeek","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","stringLength","totalParsedInputLength","isPm","meridiemFixWrap","erasConvertYear","prepareConfig","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","millisecond","configFromObject","configFromInput","prototypeMin","prototypeMax","moments","ordering","Duration","quarters","quarter","isoWeek","unitHasDecimal","orderLen","isDurationValid","_milliseconds","_days","_months","_bubble","isDuration","absRound","offsetFromString","chunkOffset","cloneWithOffset","model","setTime","getDateOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","positiveMomentsDifference","createAdder","addSubtract","isAdding","invalid","isMomentInput","arrayTest","dataTypeTest","isNumberOrStringArray","objectTest","propertyTest","propertyLen","isMomentInputObject","monthDiff","wholeMonthDiff","newLocaleData","defaultFormat","defaultFormatUtc","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","preParsePostFormat","isCalendarSpec","sod","startOf","calendarFormat","asFloat","zoneDelta","endOf","startOfDate","isoWeekday","inputString","humanize","fromNow","toNow","invalidAt","localInput","inclusivity","localFrom","localTo","inputMs","parsingFlags","prioritized","unitsObj","getPrioritizedUnits","prioritizedLen","toObject","keepOffset","suffix","zone","isLocal","unix","creationData","eraName","eraNarrow","eraAbbr","eraYear","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","_relativeTime","pastFuture","_eras","_monthsShort","_monthsParseExact","firstDayOfYear","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","asSeconds","asMinutes","asHours","asDays","asWeeks","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","posNegDuration","relativeTime$1","toIsoString","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","streams","buildDecode","buildEncode","IncompleteBufferError","DateCodec","encodingTypes","decodingTypes","forceFloat64","compatibilityMode","disableTimestampEncoding","preferMap","protoAction","register","registerEncoder","append","registerDecoder","encoder","dt","millis","nanos","encoded","padhex","byte","upper","lower","nanoseconds","pad8","SIZES","isValidDataSize","dataLength","bufLength","headerLength","decodeArray","initialOffset","decodeResult","tryDecode","decodeMap","_temp","consumedBytes","mapping","decodeConstants","decodeExt","decodeFloat","decodeUnsignedInt","readInt64BE","decodeSigned","headerSize","toDecode","isBufferList","consume","isFloat","write64BitUint","getHeader","encodeMap","encodeString","_getBufferHeader","getCompatibleBufferHeader","getBufferHeader","encodeArray","codec","encodeExt","sortKeys","encodeObject","encodeFloat","negate64BitInt","write64BitInt","encodeNumber","fround","tag1","tag2","objectMode","highWaterMark","_msgpack","msgpack","Encoder","Decoder","_chunks","BufferList","_bufs","_new","tot","_reverseOffset","blOffset","bufferId","dstStart","srcStart","srcEnd","bufoff","shallowSlice","startOffset","endOffset","buffers","duplicate","_appendBuffer","_isBufferList","blIndex","buffOffset","buff","nativeSearchResult","revOffset","_match","searchOffset","DuplexStream","BufferListStream","_callback","piper","_read","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","keysWorksWithArguments","objectKeys","$push","$propIsEnumerable","originalGetSymbols","source1","letters","lacksProperEnumerationOrder","preventExtensions","thrower","assignHasPendingExceptions","certificate","RSAPrivateKey","seq","int","RSAPublicKey","PublicKey","AlgorithmIdentifier","bitstr","null_","PrivateKeyInfo","octstr","PrivateKey","EncryptedPrivateKeyInfo","EncryptedPrivateKey","DSAPrivateKey","DSAparam","ECPrivateKey","ECParameters","namedCurve","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","TBSCertificate","X509Certificate","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherText","cipherKey","cipher","aesid","fixProc","passphrase","subtype","ndata","stripped","tbsCertificate","subjectPublicKeyInfo","subjectPublicKey","kde","kdeparams","iters","keylen","ZERO_BUF","nextTick","checkParameters","defaultEncoding","sync","subtle","toBrowser","getNextTick","queueMicrotask","setImmediate","browserPbkdf2","iterations","importKey","deriveBits","promise","resolvePromise","browser","prom","checkNative","resp","MAX_ALLOC","sizes","rmd160","saltLen","getDigest","ipad1","ipad2","DK","block1","destPos","hLen","U","pluralRules","singularRules","uncountables","irregularPlurals","irregularSingles","sanitizeRule","restoreCase","sanitizeWord","replaceWord","replaceMap","keepMap","checkWord","inclusive","singular","isPlural","isSingular","addPluralRule","addSingularRule","addUncountableRule","addIrregularRule","single","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","env","argv","versions","cwd","chdir","umask","ReactPropTypesSecret","bigint","i2ops","mgf","withPublic","zBuffer","iHash","maskedSeed","maskedDb","db","dif","oaep","ps","pkcs1","publicKey","paddedMsg","hLen2","dblen","nonZero","MAX_BYTES","generated","oldBrowser","safeBuffer","randombytes","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","uint","CopyToClipboard","_react","_interopRequireDefault","_copyToClipboard","__esModule","_React$PureComponent","_this$props","Children","_this$props2","cloneElement","PureComponent","ba","ca","ea","fa","ha","ia","ka","_context","_render","la","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ma","_threadCount","_currentValue2","J","oa","pa","qa","ra","sa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","va","wa","xlinkHref","xa","O","ya","ta","ua","Aa","P","Ba","memoizedState","Ca","Da","Ea","Fa","Ga","dispatch","Ha","Ia","Ja","X","Ka","readContext","threadID","useReducer","useCallback","useImperativeHandle","useDebugValue","useDeferredValue","useTransition","useOpaqueIdentifier","identifierPrefix","uniqueID","useMutableSource","La","Ma","Na","br","col","embed","hr","keygen","param","wbr","Oa","menuitem","Y","lineClamp","Pa","Qa","Ra","Z","Sa","ReactCurrentDispatcher","Ta","listing","textarea","Ua","Va","Wa","Ya","Za","suppressContentEditableWarning","suppressHydrationWarning","$a","isValidElement","domNamespace","childIndex","footer","exhausted","currentSelectValue","previousWasTextNode","makeStaticMarkup","suspenseDepth","contextIndex","contextStack","contextValueStack","clearProviders","pushProvider","popProvider","fallbackFrame","isReactComponent","na","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","updater","UNSAFE_componentWillMount","componentWillMount","getChildContext","ab","renderDOM","Xa","renderToStaticMarkup","setAttributeNS","za","prepareStackTrace","_valueTracker","stopTracking","_wrapperState","initialChecked","initialValue","eb","fb","defaultSelected","gb","hb","ib","kb","mathml","lb","nb","ob","MSApp","execUnsafeLocalFunction","nodeValue","qb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","$b","dehydrated","ac","sibling","bc","dc","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","targetContainers","sc","tc","vc","wc","lanePriority","unstable_runWithPriority","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","bd","cd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","nd","od","charCode","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","isPropagationStopped","persist","isPersistent","wd","xd","yd","sd","eventPhase","timeStamp","td","ud","vd","Ad","pageX","pageY","getModifierState","zd","buttons","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","elapsedTime","pseudoElement","Id","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Meta","Shift","Pd","Qd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Vd","targetTouches","Xd","Yd","wheelDeltaX","Zd","ae","be","documentMode","ce","de","fe","ge","he","le","oe","pe","qe","te","ue","ve","we","xe","ye","ze","oninput","Ae","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","Le","Me","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","Pe","Qe","Re","Se","Te","Ue","anchorNode","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","capture","Nb","ef","ff","parentWindow","gf","hf","je","ke","jf","kf","lf","mf","nf","of","pf","qf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","cg","dg","eg","hg","ig","jg","kg","ReactCurrentBatchConfig","mg","ng","og","pg","qg","rg","_currentValue","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","effects","yg","zg","eventTime","lane","payload","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","isPureReactComponent","Mg","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","componentDidMount","Pg","Qg","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ih","memoizedProps","revealOrder","jh","kh","lh","mh","oh","pendingProps","qh","uh","_workInProgressVersionPrimary","vh","wh","Fh","Gh","Hh","baseQueue","Ih","Jh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","mutableReadLanes","Nh","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","ri","pendingContext","Bi","Ci","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","yi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","onclick","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","$i","aj","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","setStart","setEnd","onCommitFiberRoot","fk","gk","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","kk","hk","_calculateChangedBits","unstable_observedBits","form","Vj","vk","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","hasElementType","hasMap","hasSet","hasArrayBuffer","it","redactingEmail","_str","smallWords","mightBeEmail","redacted","GA4","_gtag","_format","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","isInitialized","_testMode","_currentMeasurementId","_hasLoadedGA","_isQueuing","_queueGtag","GA_MEASUREMENT_ID","gtagUrl","script","async","dataLayer","gtag","gaOptions","mapFields","cookieUpdate","cookieExpires","cookieDomain","cookieFlags","userId","clientId","anonymizeIp","contentGroup1","contentGroup2","contentGroup3","contentGroup4","contentGroup5","allowAdFeatures","allowAdPersonalizationSignals","nonInteraction","page","hitCallback","_x","_r","initConfigs","trackingId","gtagOptions","_options$testMode","testMode","_loadGA","mergedGtagOptions","_toGtagOptions","queues","fieldsObject","_gaCommand","eventCategory","eventAction","eventLabel","eventValue","event_category","event_label","non_interaction","_gaCommandSendEvent","_args$","hitType","timingCategory","timingVar","timingValue","timingLabel","_this$_toGtagOptions","page_path","page_title","page_location","_gaCommandSendPageview","_args$2","_gaCommandSendEventParameters","_gaCommandSendPageviewParameters","_gaCommandSendTiming","command","_gaCommandSend","_gaCommandSet","_len7","_key7","ga","optionsOrName","category","transport","fieldObject","_default","_window","_ga","nodeInterop","_getRequireWildcardCache","newObj","hasPropertyDescriptor","_interopRequireWildcard","cacheBabelInterop","cacheNodeInterop","_defaultComponentDecorator2","_defaultHrefDecorator2","_defaultMatchDecorator2","_defaultTextDecorator2","Linkify","_React$Component","_this2","matchDecorator","decoratedHref","hrefDecorator","decoratedText","textDecorator","decoratedComponent","componentDecorator","_this3","parseString","_linkifyIt2","_tlds2","linkify","_Linkify2","batch","getBatch","ContextKey","gT","_gT$ContextKey","contextMap","realContext","createReduxContextHook","useSyncExternalStoreWithSelector","refEquality","createSelectorHook","useReduxContext","equalityFnOrOptions","equalityFn","stabilityCheck","noopCheck","store","subscription","getServerState","globalStabilityCheck","globalNoopCheck","wrappedSelector","selectedState","addNestedSub","getState","useSelector","nullListeners","notify","useSyncExternalStore","serverState","contextValue","parentSub","unsubscribe","subscriptionsAmount","selfSubscribed","handleChangeWrapper","onStateChange","trySubscribe","isSubscribed","createListenerCollection","tryUnsubscribe","cleanupListener","removed","notifyNestedSubs","getListeners","previousState","Context","createStoreHook","createDispatchHook","useStore","useDispatch","newBatch","initializeConnect","createSearchParams","URLSearchParams","ViewTransitionContext","isTransitioning","startTransitionImpl","BrowserRouter","historyRef","setStateImpl","v7_startTransition","navigationType","ABSOLUTE_URL_REGEX","Link","absoluteHref","reloadDocument","preventScrollReset","unstable_viewTransition","isExternal","currentUrl","targetUrl","protocol","internalOnClick","replaceProp","navigate","isModifiedEvent","shouldProcessLinkClick","useLinkClickHandler","NavLink","ariaCurrentProp","classNameProp","styleProp","routerState","vtContext","hookName","useDataRouterContext","DataRouterHook","useViewTransitionState","currentPath","currentLocation","nextPath","nextLocation","nextLocationPathname","navigation","isActive","isPending","renderProps","ariaCurrent","DataRouterStateHook","useSearchParams","defaultInit","defaultSearchParamsRef","hasSetSearchParamsRef","searchParams","locationSearch","defaultSearchParams","getAll","getSearchParamsForLocation","setSearchParams","nextInit","navigateOptions","newSearchParams","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useHref","useInRouterContext","useResolvedPath","joinedPathname","useLocation","useIsomorphicLayoutEffect","static","useNavigate","router","UseNavigateStable","useCurrentRouteId","activeRef","fromRouteId","useNavigateStable","dataRouterContext","routePathnamesJson","useNavigateUnstable","useParams","routeMatch","_temp2","useRoutesImpl","dataRouterState","parentMatches","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","renderedMatches","_dataRouterState2","_dataRouterState","errorIndex","reduceRight","errorElement","defaultErrorElement","getChildren","RenderedRoute","routeContext","ErrorBoundary","RenderErrorBoundary","revalidation","_renderMatches","DefaultErrorComponent","_state$errors","useDataRouterState","UseRouteError","routeId","useRouteError","preStyles","errorInfo","staticContext","_deepestRenderedBoundaryId","useRouteContext","thisRoute","Navigate","jsonPath","Route","_props","Router","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","Routes","createRoutesFromChildren","AwaitErrorBoundary","AwaitRenderStatus","renderError","_tracked","_error","neverSettledPromise","AwaitContext","treePath","loader","hasErrorBoundary","shouldRevalidate","lazy","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","initialStatus","isMounting","appearStatus","unmountOnExit","mountOnEnter","nextCallback","updateStatus","prevProps","nextStatus","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onTransitionEnd","cancel","nextState","setNextCallback","_this4","doesNotHaveTimeoutOrListener","maybeNextCallback","TransitionGroupContext","getChildMapping","mapFn","mapper","getProp","getNextChildMapping","nextProps","prevChildMapping","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","childMapping","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","firstRender","mounted","currentChildMapping","childFactory","forceReflow","__self","__source","jsx","jsxs","_status","_result","IsSomeRendererActing","Consumer","createFactory","createRef","Duplex","Readable","allowHalfOpen","readable","onend","_writableState","ended","onEndNT","getBuffer","_readableState","destroyed","PassThrough","ReadableState","EElistenerCount","Stream","OurUint8Array","debugUtil","debuglog","createReadableStreamAsyncIterator","destroyImpl","getHighWaterMark","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","isDuplex","readableObjectMode","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","awaitDrain","readingMore","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","maybeReadMore","_undestroy","undestroy","isPaused","setEncoding","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","resume","nReadingNextTick","resume_","fromList","endReadable","endReadableNT","wState","finished","nOrig","doRead","pipe","pipeOpts","endFn","stdout","unpipe","onunpipe","unpipeInfo","hasUnpiped","onclose","onfinish","ondrain","ondata","cleanedUp","needDrain","pipeOnDrain","pause","dests","asyncIterator","_fromList","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","_transformState","transforming","writecb","writechunk","rs","needTransform","writeencoding","prefinish","err2","CorkedRequest","finish","corkReq","pendingcb","onCorkedFinish","corkedRequestsFree","WritableState","realHasInstance","internalUtil","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","doWrite","onwriteDrain","allBuffers","isBuf","callFinal","need","rState","hasInstance","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","_Object$create","hasStrings","_getString","_getBuffer","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","ERR_STREAM_PREMATURE_CLOSE","eos","called","onlegacyfinish","writableEnded","readableEnded","onrequest","setHeader","abort","isRequest","popCallback","destroys","destroyer","ERR_INVALID_OPT_VALUE","duplexKey","hwm","highWaterMarkFrom","pipeline","formatProdErrorMessage","$$observable","observable","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observer","observeState","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","bindActionCreator","actionCreator","bindActionCreators","actionCreators","boundActionCreators","compose","applyMiddleware","middlewares","_dispatch","middlewareAPI","chain","middleware","zr","sl","sr","fn1","fn2","fn3","fn4","fn5","ar","cr","dr","tl","tr","safer","Safer","kStringMaxLength","MAX_LENGTH","MAX_STRING_LENGTH","MessageChannel","unstable_forceFrameRate","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","finalSize","_finalSize","accum","assigned","lowBits","highBits","Algorithm","Sha","rotl30","ft","Sha1","rotl5","Sha256","Sha224","_g","_h","maj","sigma0","sigma1","gamma0","Sha384","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_al","_bl","_cl","_dl","_fl","_gl","_hl","writeInt64BE","Sha512","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","EE","_isStdio","didOnEnd","cleanup","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","utf8CheckExtraBytes","utf8CheckIncomplete","ranges","getRangeAt","objectFromEntries","fromEntries","typeGuard","_value","isMatched","classnames","toAdd","createCssAndCx","matchCSSObject","increaseSpecificityToTakePrecedenceOverMediaQueries","saveClassNameCSSObjectMapping","cx","feat27FixedClassnames","fixClassName","createUseCssAndCx","useCache","useCssAndCx","prevDeps","useGuaranteedMemo","cssObjectMapByCache","cssObject","cssObjectMap","classNameCSSObjects","isThereAnyMediaQueriesInPreviousClasses","fix","classNameOrCSSObject","getDependencyArrayRef","typeofValue","mergeClasses","classesFromUseStyles","classesOverrides","ruleName","useMuiThemeStyleOverridesPlugin","muiStyleOverridesParams","classesFromThemeStyleOverrides","themeClasses","cssObjectOrGetCssObject","counter","createMakeStyles","cacheProvidedAtInception","createUseCache","makeStyles","nameOrWrappedName","uniqId","cssObjectByRuleNameOrGetCssObjectByRuleName","getCssObjectByRuleName","refClassesCache","refClasses","_target","propertyKey","cssObjectByRuleName","propsClasses","pluginResultWrap","useStyles","reactContext","contextualCache","cacheExplicitlyProvidedForTss","cacheToBeUsed","__rest","fixedClassesByClasses","errorMessageGetClasses","getClasses","classesIn","incorporateMediaQueries","cssObjectByRuleNameWithMediaQueries","cssObjectByRuleNameWithMediaQueriesByMediaQuery","ruleNameOrMediaQuery","mediaQuery","cssObjectByRuleNameBis","isSSR","isJest","jest","isMocha","mocha","isVitest","__vitest_worker__","createTss","usePlugin","tss","createTss_internal","nestedSelectorUsageTrackRecord","doesUseNestedSelectors","idOfUseStyles","paramsAndPluginParams","nestedSelectorRuleNames","withStyles","Component_","Out","getHasNonRootClasses","_classes","rootClassName","createWithStyles","readCookie","cleanValue","cleanupCookieValue","doNotParse","cookies","defaultSetOptions","changeListeners","HAS_DOCUMENT_COOKIE","previousCookies","cookie","_checkChanges","domCookies","parseCookies","_emitChange","newCookies","_startPolling","pollingInterval","_stopPolling","doNotUpdate","stringValue","finalOptions","expires","maxAge","addChangeListener","cookieStore","removeChangeListener","dec","eqIdx","endIdx","fieldContentRegExp","domain","__toString","httpOnly","secure","sameSite","inst","localStorage","trace","isArgumentsObject","isGeneratorFunction","whichTypedArray","BigIntSupported","SymbolSupported","ObjectToString","numberValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isArrayBuffer","working","isDataViewToString","isDataView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isBigInt64Array","isBigUint64Array","isWeakMap","isWeakSet","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","descriptors","formatRegExp","isNull","noDeprecation","throwDeprecation","traceDeprecation","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","stylize","stylizeNoColor","isBoolean","_extend","stylizeWithColor","styleType","simple","formatPrimitive","visibleKeys","arrayToHash","formatError","braces","formatProperty","formatArray","reduceToSingleString","pid","isNullOrUndefined","isPrimitive","getHours","getMinutes","getSeconds","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","original","promiseResolve","promiseReject","callbackify","callbackified","maybeCb","rej","randomUUID","rnds8","byteToHex","rnds","unsafeStringify","_toDate","_toFloat","_toInt","_toBoolean","_equals","_contains","_matches","_isEmail","_isURL","_isMACAddress","_isIP","_isIPRange","_isFQDN","_isDate","_isTime","_isBoolean","_isLocale","_isAlpha","_isAlphanumeric","_isNumeric","_isPassportNumber","_isPort","_isLowercase","_isUppercase","_isIMEI","_isAscii","_isFullWidth","_isHalfWidth","_isVariableWidth","_isMultibyte","_isSemVer","_isSurrogatePair","_isInt","_isFloat","_isDecimal","_isHexadecimal","_isOctal","_isDivisibleBy","_isHexColor","_isRgbColor","_isHSL","_isISRC","_isIBAN","_isBIC","_isMD","_isHash","_isJWT","_isJSON","_isEmpty","_isLength","_isByteLength","_isUUID","_isMongoId","_isAfter","_isBefore","_isIn","_isLuhnNumber","_isCreditCard","_isIdentityCard","_isEAN","_isISIN","_isISBN","_isISSN","_isTaxID","_isMobilePhone","_isEthereumAddress","_isCurrency","_isBtcAddress","_isISO","_isISO2","_isISO3","_isRFC","_isISO31661Alpha","_isISO31661Alpha2","_isISO4","_isBase","_isBase2","_isBase3","_isDataURI","_isMagnetURI","_isMailtoURI","_isMimeType","_isLatLong","_isPostalCode","_ltrim","_rtrim","_trim","_escape","_unescape","_stripLow","_whitelist","_blacklist","_isWhitelisted","_normalizeEmail","_isSlug","_isLicensePlate","_isStrongPassword","_isVAT","toFloat","toBoolean","isEmail","isURL","isMACAddress","isIP","isIPRange","isFQDN","isIBAN","isBIC","isAlpha","isAlphaLocales","isAlphanumeric","isAlphanumericLocales","isNumeric","isPassportNumber","isPort","isLowercase","isUppercase","isAscii","isFullWidth","isHalfWidth","isVariableWidth","isMultibyte","isSemVer","isInt","isIMEI","isFloatLocales","isDecimal","isHexadecimal","isOctal","isDivisibleBy","isHexColor","isRgbColor","isHSL","isISRC","isMD5","isHash","isJWT","isJSON","isLocale","isByteLength","isUUID","isMongoId","isIn","isLuhnNumber","isCreditCard","isIdentityCard","isEAN","isISIN","isISBN","isISSN","isMobilePhone","isMobilePhoneLocales","isPostalCode","isPostalCodeLocales","isEthereumAddress","isCurrency","isBtcAddress","isISO6346","isFreightContainerID","isISO6391","isISO8601","isRFC3339","isISO31661Alpha2","isISO31661Alpha3","isISO4217","isBase32","isBase58","isBase64","isDataURI","isMagnetURI","isMailtoURI","isMimeType","isLatLong","ltrim","rtrim","stripLow","whitelist","isWhitelisted","normalizeEmail","isSlug","isStrongPassword","isTaxID","isTime","isLicensePlate","isVAT","ibanLocales","commaDecimal","dotDecimal","bengaliLocales","farsiLocales","arabicLocales","englishLocales","decimal","alphanumeric","_locale2","_locale3","_i3","_i4","_i5","chars","_assertString","_merge","defaulContainsOptions","minOccurrences","comparisonDate","ignore","_alpha","ascii","countryCode","CountryCodes","isBICReg","defaultBase32Options","crockford","crockfordBase32","base32","base58Reg","defaultBase64Options","urlSafe","urlSafeBase64","notBase64","firstPaddingChar","loose","looseBooleans","strictBooleans","bech32","base58","card","provider","sanitized","cards","allCards","cardProvider","amex","dinersclub","discover","jcb","mastercard","unionpay","visa","tmpCardsArray","decimal_digits","digits_after_decimal","digit","require_symbol","whole_dollar_amount_with_sep","thousands_separator","whole_dollar_amount","decimal_amount","decimal_separator","require_decimal","allow_decimal","allow_negatives","parens_for_negatives","negative_sign_after_digits","negative_sign_before_digits","allow_negative_sign_placeholder","allow_space_after_symbol","allow_space_after_digits","symbol_after_digits","currencyRegex","default_currency_options","schemeAndMediaType","mediaType","validMediaType","validAttribute","validData","default_date_options","formatDelimiter","delimiters","dateDelimiter","strictMode","dateAndFormat","zippedArr","zip","dateObj","_iterator","allowArrayLike","_e2","normalCompletion","didErr","_e3","_createForOfIteratorHelper","_step$value","dateWord","formatWord","fullYear","parsedYear","default_decimal_options","_includes","force_decimal","decimalRegExp","ean","actualCheckDigit","validEanRegex","LENGTH_EAN_8","LENGTH_EAN_14","getPositionWeightThroughLengthAndIndex","partialSum","default_email_options","require_display_name","allow_display_name","display_email","splitNameAddress","display_name","display_name_without_quotes","validateDisplayName","ignore_max_length","defaultMaxEmailLength","lower_domain","host_blacklist","host_whitelist","user","domain_specific_validation","username","_user_parts","gmailUserPart","require_tld","allow_underscores","allow_ip_domain","noBracketdomain","allow_utf8_local_part","quotedEmailUserUtf8","quotedEmailUser","emailUserUtf8Part","emailUserPart","user_parts","blacklisted_chars","default_is_empty_options","ignore_whitespace","eth","default_fqdn_options","allow_trailing_dot","allow_wildcard","tld","allow_numeric_tld","strippedStr","hslComma","hslSpace","lengths","md4","ripemd128","tiger128","tiger160","tiger192","crc32","crc32b","hexcolor","hexadecimal","isoCountryCode","isoCountryCodeInIbanRegexCodeObject","ibanRegexThroughCountryCode","hasValidIbanFormat","hasValidIbanChecksum","AD","AE","AL","AT","AZ","BA","BE","BG","BH","BR","BY","CH","CR","CY","CZ","DE","DO","EG","ES","FI","FO","FR","GB","GE","GI","GL","GR","GT","HR","HU","IE","IL","IQ","IR","IS","IT","JO","KW","KZ","LB","LC","LI","LU","LV","MA","MC","MD","ME","MK","MR","MT","MU","MZ","NL","NO","PK","PL","PS","PT","QA","RO","RS","SA","SC","SE","SI","SK","SM","SV","TL","TN","TR","UA","VA","VG","XK","imeiRegex","imeiRegexWithoutHypens","allow_hyphens","imeiRegexWithHypens","sum","tp","IPv4AddressRegExp","IPv6AddressRegExp","IPv4SegmentFormat","IPv4AddressFormat","IPv6SegmentFormat","subnetMaybe","expectedSubnet","v4Subnet","v6Subnet","isbn","sanitizedIsbn","checksum","possibleIsbn10","possibleIsbn13","isin","double","_digit","validISO31661Alpha2CountriesCodes","validISO31661Alpha3CountriesCodes","validISO4217CurrencyCodes","CurrencyCodes","isISO6346Str","isDigit","letterCode","checkSumDigit","isISO6391Set","strictSeparator","iso8601StrictSeparator","iso8601","isValidDate","ordinalMatch","oYear","oDay","monthString","dayString","isrc","testIssn","issn","require_hyphen","case_sensitive","validators","validator","weightOfDigits","allow_leading_zeroes","modulo","charsValue","IN","TH","LK","incNum","idCardNo","provincesAndCities","powers","parityBit","checkAddressCode","addressCode","checkBirthDayCode","birDayCode","xdata","check15IdCardNo","id17","getParityBit","checkParityBit","check18IdCardNo","regexIsDigit","checkSumVal","ALPHABET_CODES","intLeadingZeroes","minCheckPassed","maxCheckPassed","ltCheckPassed","gtCheckPassed","default_json_options","primitives","allow_primitives","dotSplit","currElem","defaultLatLongOptions","checkDMS","latDMS","longDMS","long","presentationSequences","surrogatePairs","languageTagRegex","language","extension","privateuse","grandfathered","langtag","tmpNum","shouldDouble","eui","no_colons","no_separators","macAddress48NoSeparators","macAddress64NoSeparators","macAddress48","macAddress48WithDots","macAddress64","macAddress64WithDots","magnetURIComponent","_url$replace$split2","_url$replace$split2$","_url$replace$split2$2","queryString","query","allowedParams","bcc","isParseFailed","queryParams","_q$split2","parseMailtoQueryString","mimeTypeSimple","mimeTypeText","mimeTypeMultipart","phones","multibyte","no_symbols","numericNoSymbols","octal","normalizedStr","passportRegexByCountryCode","AM","AR","AU","CA","CN","DZ","ID","JM","JP","KR","LY","MY","MX","NZ","PH","RU","SL","US","patterns","threeDigit","fourDigit","fiveDigit","sixDigit","HT","KE","MG","NP","PR","TW","ZA","ZM","rfc3339","timeHour","timeMinute","timeNumOffset","timeOffset","partialTime","fullDate","fullTime","includePercentValues","rgbColor","rgbaColor","rgbColorPercent","rgbaColorPercent","semanticVersioningRegex","charsetRegex","analysis","charMap","countChars","uniqueChars","uppercaseCount","lowercaseCount","numberCount","symbolCount","upperCaseRegex","lowerCaseRegex","numberRegex","symbolRegex","analyzePassword","returnScore","scoringOptions","pointsPerUnique","pointsPerRepeat","pointsForContainingLower","pointsForContainingUpper","pointsForContainingNumber","pointsForContainingSymbol","scorePassword","minLength","minLowercase","minUppercase","minNumbers","minSymbols","surrogatePair","strcopy","taxIdFormat","sanitizeRegexes","taxIdCheck","enUsCampusPrefix","andover","atlanta","austin","brookhaven","cincinnati","fresno","internet","kansas","memphis","ogden","philadelphia","sba","itItNameCheck","vowelflag","xflag","tin","century_year","multip_lookup","full_year","checkdigit","luhnCheck","occurences","trip_locations","recurrent","iso7064Check","even","reverseMultiplyAndSum","prefixes","enUsGetPrefixes","lead_replace","checkdigits","verhoeffCheck","number_replace","_number_locations","char_to_int","odd_convert","_i6","_char_to_int","multiplier","first_part","_checksum","_i7","_sum","_i8","verificators","_i9","_i10","multipliers","tin_copy","current_year","current_century","allsymbols","default_time_options","hourFormat","hour24","withSeconds","hour12","default_url_options","validate_length","allow_fragments","allow_query_components","auth","hostname","port","port_str","ipv6","require_valid_protocol","protocols","require_protocol","allow_protocol_relative_urls","require_host","disallow_auth","_auth$split2","ipv6_match","wrapped_ipv6","require_port","checkHost","uuid","vatMatchers","EL","NG","weights","UZ","BO","CL","CO","HN","NI","PA","PY","PE","UY","VE","default_normalize_email_options","raw_parts","gmail_remove_subaddress","gmail_remove_dots","dotsReplacer","all_lowercase","gmail_lowercase","gmail_convert_googlemaildotcom","icloud_domains","icloud_remove_subaddress","icloud_lowercase","outlookdotcom_domains","outlookdotcom_remove_subaddress","outlookdotcom_lowercase","yahoo_domains","yahoo_remove_subaddress","yahoo_lowercase","yandex_domains","yandex_lowercase","strIndex","keep_new_lines","radix","checkvalue","product","d_table","p_table","str_copy","invalidType","arrVal","regexpAsStringLiteral","trySlices","FitAddon","activate","_terminal","dispose","fit","proposeDimensions","cols","_core","_renderService","dimensions","scrollback","scrollBarWidth","getPropertyValue","forwardEvent","_disposed","_event","clearListeners","getDisposeArrayDisposable","disposeArray","toDisposable","MutableDisposable","Disposable","_disposables","_isDisposed","unregister","SearchAddon","_highlightedLines","_highlightDecorations","_selectedDecoration","_linesCacheTimeoutId","_onDidChangeResults","onDidChangeResults","_highlightLimit","highlightLimit","onWriteParsed","_updateMatches","onResize","clearDecorations","_highlightTimeout","_cachedSearchTerm","_lastSearchOptions","decorations","findPrevious","incremental","noScroll","findNext","_highlightAllMatches","_findNextAndSelect","_fireResults","_find","term","_createResultDecoration","decoration","clearSelection","_initLinesCache","startRow","startCol","_findInLine","baseY","getSelectionPosition","_selectResult","_findPreviousAndSelect","resultIndex","resultCount","_linesCache","_cursorMoveListener","onCursorMove","_destroyLinesCache","_resizeListener","_isWholeWord","getLine","isWrapped","_translateBufferLineToStringWithWrap","_bufferColsToStringOffset","wholeWord","_stringLengthToBufferSize","getCell","getChars","getWidth","getCode","translateToString","registerMarker","cursorY","registerDecoration","activeMatchBackground","overviewRulerOptions","activeMatchColorOverviewRuler","onRender","_applyStyles","activeMatchBorder","onDispose","viewportY","scrollLines","matchBackground","matchOverviewRuler","matchBorder","LinkComputer","WebLinkProvider","_regex","_handler","provideLinks","computeLink","_addCallbacks","leave","_getWindowedLineStrings","_mapStrIdx","getNullCell","WebLinksAddon","opener","urlRegex","_linkProvider","registerLinkProvider","__decorate","decorate","__param","AccessibilityManager","_liveRegionLineCount","_charsToConsume","_charsToAnnounce","_accessibilityContainer","_rowContainer","_rowElements","_createAccessibilityTreeNode","_topBoundaryFocusListener","_handleBoundaryFocus","_bottomBoundaryFocusListener","_refreshRowsDimensions","_liveRegion","_liveRegionDebouncer","TimeBasedDebouncer","_renderRows","insertAdjacentElement","_handleResize","_refreshRows","onScroll","onA11yChar","_handleChar","onLineFeed","onA11yTab","_handleTab","onKey","_handleKey","_clearLiveRegion","onDimensionsChange","_screenDprMonitor","ScreenDprMonitor","setListener","addDisposableDomListener","tooMuchOutput","isMac","refresh","translateBufferLineToString","ydisp","_announceCharacters","stopImmediatePropagation","_refreshRowDimensions","IRenderService","decPrivateModes","bracketedPasteMode","rawOptions","ignoreBracketedPasteMode","triggerDataEvent","rightClickHandler","moveTextAreaUnderMouseCursor","paste","handlePasteEvent","copyHandler","bracketTextForPaste","prepareTextForTerminal","selectionText","getData","rightClickSelect","ColorContrastCache","_color","TwoKeyMap","_css","setCss","getCss","setColor","getColor","Linkifier2","currentLink","_currentLink","_bufferService","_linkProviders","_linkCacheDisposables","_isMouseOut","_wasResized","_activeLine","_onShowLinkUnderline","onShowLinkUnderline","_onHideLinkUnderline","onHideLinkUnderline","_lastMouseEvent","_clearCurrentLink","attachToDom","_mouseService","_handleMouseMove","_handleMouseDown","_handleMouseUp","_positionFromMouseEvent","_lastBufferCell","_handleHover","_askForLink","_linkAtPosition","_activeProviderReplies","_checkLinkProviderResult","_removeIntersectingLinks","_handleNewLink","_mouseDownLink","_linkLeave","pointerCursor","isHovered","_linkHover","_fireUnderlineEvent","onRenderedViewportChange","_createLinkUnderlineEvent","getCoords","IBufferService","promptLabel","OscLinkProvider","_optionsService","_oscLinkService","linkHandler","CellData","getTrimmedLength","hasContent","loadCell","hasExtendedAttrs","urlId","getLinkData","uri","allowNonHttpProtocols","confirm","IOptionsService","IOscLinkService","RenderDebouncer","_parentWindow","_renderCallback","_refreshCallbacks","_animationFrame","addRefreshCallback","_innerRefresh","_rowCount","_rowStart","_rowEnd","_runRefreshCallbacks","_currentDevicePixelRatio","clearListener","_listener","_outerListener","_updateDpr","_resolutionMediaMatchList","matchMedia","Terminal","CoreTerminal","_onA11yCharEmitter","_onA11yTabEmitter","onWillOpen","_onWillOpen","_keyDownHandled","_keyDownSeen","_keyPressHandled","_unprocessedDeadKey","_accessibilityManager","_onCursorMove","_onKey","_onRender","_onSelectionChange","onSelectionChange","_onTitleChange","onTitleChange","_onBell","onBell","_setup","linkifier2","_instantiationService","createInstance","_decorationService","DecorationService","setService","IDecorationService","_inputHandler","onRequestBell","onRequestRefreshRows","onRequestSendFocus","_reportFocus","onRequestReset","onRequestWindowsOptionsReport","_reportWindowsOptions","onColor","_handleColorEvent","_afterResize","_customKeyEventHandler","_themeService","toColorRGB","ansi","coreService","C0","ESC","toRgbString","C1_ESCAPED","ST","modifyColors","rgba","toColor","restoreColor","preventScroll","_handleScreenReaderModeOptionChange","_handleTextAreaFocus","sendFocus","updateCursorStyle","_showCursor","_handleTextAreaBlur","_syncTextArea","isCursorInViewport","_compositionHelper","isComposing","ybase","_initGlobal","_bindKeys","hasSelection","_selectionService","optionsService","screenElement","rightClickSelectsWord","isLinux","_keyUp","_keyDown","_keyPress","compositionstart","compositionupdate","compositionend","_inputEvent","updateCompositionElements","isConnected","_logService","_document","_viewportElement","_viewportScrollArea","_helperContainer","isChromeOS","_coreBrowserService","CoreBrowserService","ICoreBrowserService","_charSizeService","CharSizeService","ICharSizeService","ThemeService","IThemeService","_characterJoinerService","CharacterJoinerService","ICharacterJoinerService","RenderService","_compositionView","CompositionHelper","hasRenderer","setRenderer","MouseService","IMouseService","Viewport","onRequestScrollLines","suppressScrollEvent","onRequestSyncScrollBar","syncScrollArea","handleCursorMove","SelectionService","ISelectionService","onRequestRedraw","handleSelectionChanged","columnSelectMode","onLinuxMouseSelection","BufferDecorationRenderer","coreMouseService","areMouseEventsActive","screenReaderMode","onSpecificOptionChange","overviewRulerWidth","_overviewRulerRenderer","OverviewRulerRenderer","measure","bindMouse","DomRenderer","getMouseReportCoords","overrideType","getLinesScrolled","triggerMouseEvent","ctrl","mousedrag","onProtocolChange","logLevel","explainEvents","activeProtocol","shouldForceSelection","hasScrollback","applicationCursorKeys","handleWheel","refreshRows","shouldColumnSelect","isCursorInitialized","attachCustomKeyEventHandler","registerCharacterJoiner","deregisterCharacterJoiner","deregister","addMarker","setSelection","selectAll","selectLines","macOptionIsMeta","scrollOnUserInput","scrollToBottom","evaluateKeyboardEvent","_isThirdLevelShift","ETX","domEvent","isWindows","inputType","composed","hasValidSize","clearAllMarkers","getBlankLine","DEFAULT_ATTR_DATA","clearTextureAtlas","WindowsOptionsReportType","GET_WIN_SIZE_PIXELS","GET_CELL_SIZE_PIXELS","cancelEvents","_debounceThresholdMS","_lastRefreshMs","_additionalRefreshRequested","_refreshTimeoutID","_scrollArea","_currentRowHeight","_currentDeviceCellHeight","_lastRecordedBufferLength","_lastRecordedViewportHeight","_lastRecordedBufferHeight","_lastTouchY","_lastScrollTop","_wheelPartialScroll","_refreshAnimationFrame","_ignoreNextScrollEvent","_smoothScrollState","_onRequestScrollLines","_handleScroll","_activeBuffer","onBufferActivate","activeBuffer","_renderDimensions","_handleThemeChange","onChangeColors","_refresh","device","_smoothScroll","_smoothScrollPercent","_clearSmoothScrollState","smoothScrollDuration","_bubbleScroll","_getPixelsScrolled","_applyScrollModifier","WheelEvent","DOM_DELTA_LINE","DOM_DELTA_PAGE","getBufferElements","bufferElements","cursorElement","DOM_DELTA_PIXEL","fastScrollModifier","fastScrollSensitivity","scrollSensitivity","_screenElement","_decorationElements","_altBufferIsActive","_dimensionsChanged","_doRefreshDecorations","_queueRefresh","onDecorationRegistered","onDecorationRemoved","_removeDecoration","_renderDecoration","_refreshStyle","_refreshXPosition","_createElement","onRenderEmitter","ColorZoneStore","_zones","_zonePool","_zonePoolIndex","_linePadding","full","zones","addDecoration","_lineIntersectsZone","_lineAdjacentToZone","_addLineToZone","startBufferLine","endBufferLine","setPadding","_width","_coreBrowseService","_colorZoneStore","_shouldUpdateDimensions","_shouldUpdateAnchor","_lastKnownBufferLength","_canvas","_refreshCanvasDimensions","_registerDecorationListeners","_registerBufferChangeListeners","_registerDimensionChangeListeners","normal","_refreshDrawHeightConstants","_refreshColorZonePadding","_containerHeight","_refreshDrawConstants","_refreshDecorations","_renderColorZone","fillRect","_isComposing","_textarea","_coreService","_isSendingComposition","_compositionPosition","_dataAlreadySent","_finalizeComposition","_handleAnyTextareaChanges","DEL","ICoreService","getCoordsRelativeToElement","moveToCellSequence","_linkifier2","_terminalClass","_refreshRowElements","_selectionContainer","createRenderDimensions","_updateDimensions","onOptionChange","_handleOptionsChanged","_injectCss","_rowFactory","DomRendererRowFactory","_handleLinkHover","_handleLinkLeave","_widthCache","_themeStyleElement","_dimensionsStyleElement","WidthCache","setFont","_setDefaultSpacing","_terminalSelector","multiplyOpacity","cursorAccent","cursorWidth","selectionBackgroundOpaque","selectionInactiveBackgroundOpaque","INVERTED_DEFAULT_COLOR","opaque","defaultSpacing","handleDevicePixelRatioChange","handleCharSizeChanged","renderRows","replaceChildren","_createSelectionElement","cursorBlink","cursorStyle","cursorInactiveStyle","createRow","_setCellUnderline","IInstantiationService","_workCell","_columnSelectMode","_selectionStart","_selectionEnd","getJoinedCharacters","getNoBgTrimmedLength","JoinedCellData","_isCellInSelection","forEachDecorationAtCell","WHITESPACE_CELL_CHAR","isUnderline","isOverline","isBold","isItalic","selectionForeground","isCursorHidden","isFocused","isDim","isInvisible","underlineStyle","isUnderlineColorDefault","isUnderlineColorRGB","textDecorationColor","AttributeData","getUnderlineColor","drawBoldTextInBrightColors","isStrikethrough","$","getFgColor","getFgColorMode","getBgColor","getBgColorMode","isInverse","backgroundColorRGB","foregroundColorRGB","_addStyle","_applyMinimumContrast","minimumContrastRatio","excludeFromContrastRatioDemands","_getContrastCache","ensureContrastRatio","halfContrastCache","contrastCache","_font","_fontSize","_weight","_weightBold","_measureElements","fontKerning","_holey","_measure","TEXT_BASELINE","DIM_OPACITY","isLegacyEdge","isRestrictedPowerlineGlyph","isPowerlineGlyph","throwIfFalsy","SelectionModel","isSelectAllActive","selectionStartLength","finalSelectionStart","areSelectionValuesReversed","finalSelectionEnd","handleTrim","_onCharSizeChange","onCharSizeChange","_measureStrategy","onMultipleOptionChange","_parentElement","_measureElement","combinedData","isCombined","setFromCharData","getAsCharData","_characterJoiners","_nextCharacterJoinerId","getFg","getBg","_getJoinedRanges","_mergeRanges","_stringRangesToCellRanges","getString","_isFocused","_cachedIsFocused","_pausedResizeTask","DebouncedIdleTask","_isPaused","_needsFullRefresh","_isNextRenderRedrawOnly","_needsSelectionRefresh","_canvasWidth","_canvasHeight","_selectionState","_onDimensionsChange","_onRenderedViewportChange","_onRefreshRequest","onRefreshRequest","_renderDebouncer","_fullRefresh","IntersectionObserver","_handleIntersectionChange","isIntersecting","intersectionRatio","_fireOnCanvasResize","_linkifier","_dragScrollAmount","_mouseDownTimeStamp","_oldHasSelection","_oldSelectionStart","_oldSelectionEnd","_onLinuxMouseSelection","_onRedrawRequest","_mouseMoveListener","_mouseUpListener","onUserInput","_trimListener","onTrim","_handleTrim","_handleBufferActivate","_model","_activeSelectionMode","_removeMouseDownListeners","_isClickInSelection","_getMouseBufferCoords","_areCoordsInSelection","isCellInSelection","_selectWordAtCursor","getRangeLength","_selectWordAt","_getMouseEventScrollAmount","macOptionClickForcesSelection","_handleIncrementalClick","_handleSingleClick","_handleDoubleClick","_handleTripleClick","_addMouseDownListeners","_dragScrollIntervalTimer","_dragScroll","hasWidth","_selectLineAt","_selectToWordAt","altClickMovesCursor","_fireEventIfSelectionChanged","_fireOnSelectionChange","_convertViewportColToCharacterIndex","_getWordAt","_isCharWordSeparator","getCodePoint","wordSeparator","getWrappedRangeForLine","createDecorator","DEFAULT_ANSI_COLORS","freeze","channels","toCss","toRgba","_colors","_contrastCache","_halfContrastCache","_onChangeColors","selectionBackgroundTransparent","blend","selectionInactiveBackgroundTransparent","_updateRestoreColors","_setTheme","selectionBackground","selectionInactiveBackground","NULL_COLOR","isOpaque","yellow","magenta","cyan","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","extendedAnsi","_restoreColor","_restoreColors","CircularList","_maxLength","onDeleteEmitter","onInsertEmitter","onInsert","onTrimEmitter","_array","_startIndex","maxLength","_getCyclicIndex","recycle","isFull","trimStart","shiftElements","contrastRatio","toPaddedHex","toChannels","isNode","willReadFrequently","globalCompositeOperation","createLinearGradient","getImageData","relativeLuminance","relativeLuminance2","reduceLuminance","increaseLuminance","_onScrollApi","_windowsWrappingHeuristics","_onBinary","onBinary","_onData","onData","_onLineFeed","_onWriteParsed","InstantiationService","OptionsService","BufferService","LogService","ILogService","CoreService","CoreMouseService","ICoreMouseService","unicodeService","UnicodeService","IUnicodeService","_charsetService","CharsetService","ICharsetService","OscLinkService","InputHandler","onRequestScrollToBottom","_writeBuffer","handleUserInput","_handleWindowsPtyOptionChange","markRangeDirty","WriteBuffer","writeSync","LogLevelEnum","WARN","MINIMUM_COLS","MINIMUM_ROWS","scrollPages","scrollToTop","scrollToLine","registerEscHandler","registerDcsHandler","registerCsiHandler","registerOscHandler","windowsPty","buildNumber","backend","windowsMode","_enableWindowsWrappingHeuristics","updateWindowsModeWrappedState","setWinLines","restoreWin","minimizeWin","setWinPosition","setWinSizePixels","raiseWin","lowerWin","refreshWin","setWinSizeChars","maximizeWin","fullscreenWin","getWinState","getWinPosition","getWinSizePixels","getScreenSizePixels","getCellSizePixels","getWinSizeChars","getScreenSizeChars","getIconTitle","getWinTitle","pushTitle","popTitle","getAttrData","_curAttrData","EscapeSequenceParser","_coreMouseService","_unicodeService","_parser","_parseBuffer","_stringDecoder","StringToUtf32","_utf8Decoder","Utf8ToUtf32","_windowTitle","_iconName","_windowTitleStack","_iconNameStack","_eraseAttrDataInternal","_onRequestBell","_onRequestRefreshRows","_onRequestReset","_onRequestSendFocus","_onRequestSyncScrollBar","_onRequestWindowsOptionsReport","_onA11yChar","_onA11yTab","_onColor","_parseStack","cursorStartX","cursorStartY","decodedLength","_specialColors","_dirtyRowTracker","setCsiHandlerFallback","identToString","setEscHandlerFallback","setExecuteHandlerFallback","setOscHandlerFallback","setDcsHandlerFallback","setPrintHandler","print","insertChars","intermediates","cursorUp","scrollRight","cursorDown","cursorForward","cursorBackward","cursorNextLine","cursorPrecedingLine","cursorCharAbsolute","cursorForwardTab","eraseInDisplay","eraseInLine","insertLines","deleteLines","deleteChars","scrollUp","scrollDown","eraseChars","cursorBackwardTab","charPosAbsolute","hPositionRelative","repeatPrecedingCharacter","sendDeviceAttributesPrimary","sendDeviceAttributesSecondary","linePosAbsolute","vPositionRelative","hVPosition","tabClear","setMode","setModePrivate","resetMode","resetModePrivate","charAttributes","deviceStatus","deviceStatusPrivate","softReset","setCursorStyle","setScrollRegion","saveCursor","windowOptions","restoreCursor","insertColumns","deleteColumns","selectProtected","requestMode","setExecuteHandler","BEL","bell","LF","lineFeed","VT","carriageReturn","BS","backspace","tab","SO","shiftOut","C1","IND","NEL","nextLine","HTS","tabSet","OscHandler","setTitle","setIconName","setOrReportIndexedColor","setHyperlink","setOrReportFgColor","setOrReportBgColor","setOrReportCursorColor","restoreIndexedColor","restoreFgColor","restoreBgColor","restoreCursorColor","reverseIndex","keypadApplicationMode","keypadNumericMode","fullReset","setgLevel","selectDefaultCharset","CHARSETS","selectCharset","screenAlignmentPattern","setErrorHandler","DcsHandler","requestStatusString","_preserveStack","_logSlowResolvingAsync","race","_getCurrentLinkId","DEBUG","clearRange","charset","wraparound","insertMode","markDirty","setCellFromCodePoint","wcwidth","stringFromCodePoint","addLineToLink","_eraseAttrData","insertCells","NULL_CELL_CODE","NULL_CELL_WIDTH","addCodepointToCell","precedingCodepoint","convertEol","reverseWraparound","_restrictCursor","nextStop","_setCursor","_moveCursor","tabs","prevStop","_eraseInBufferLine","replaceCells","_resetBufferLine","clearMarkers","deleteCells","_is","termName","setgCharset","DEFAULT_CHARSET","applicationKeypad","activeEncoding","activateAltBuffer","activateNormalBuffer","_updateAttrColor","fromColorRGB","_extractColor","hasSubParams","getSubParams","underlineColor","_processUnderline","updateExtended","_processSGR0","savedX","savedY","savedCurAttrData","savedCharset","_savedCharset","parseColor","_createHyperlink","_finishHyperlink","registerLink","_setOrReportSpecialColor","markAllDirty","isProtected","bar","FourKeyMap","isIphone","isIpad","getSafariVersion","isSafari","SortedList","_getKey","_search","forEachByKey","IdleTaskQueue","PriorityTaskQueue","_tasks","enqueue","_start","_idleCallback","_cancelCallback","_requestCallback","_process","timeRemaining","_createDeadline","requestIdleCallback","cancelIdleCallback","CHAR_DATA_CODE_INDEX","WHITESPACE_CELL_CODE","ExtendedAttrs","isBlink","isFgRGB","isBgRGB","isFgPalette","isBgPalette","isFgDefault","isBgDefault","isAttributeDefault","getUnderlineColorMode","isUnderlineColorPalette","getUnderlineStyle","_urlId","_ext","MAX_BUFFER_SIZE","_hasScrollback","_nullCell","fromCharData","NULL_CELL_CHAR","_whitespaceCell","WHITESPACE_CELL_WIDTH","_isClearing","_memoryCleanupQueue","_memoryCleanupPosition","_cols","_rows","_getCorrectBufferLength","setupTabStops","getWhitespaceCell","BufferLine","fillViewportRows","_isReflowEnabled","_reflow","_batchedMemoryCleanup","cleanupMemory","_reflowLarger","_reflowSmaller","reflowLargerGetLinesToRemove","reflowLargerCreateNewLayout","reflowLargerApplyNewLayout","layout","_reflowLargerAdjustViewport","countRemoved","reflowSmallerGetNewLineLengths","newLines","copyCellsFrom","getWrappedLineTrimmedLength","setCell","tabStopWidth","_removeMarker","_combined","_extendedAttrs","CHAR_DATA_ATTR_INDEX","CHAR_DATA_CHAR_INDEX","CHAR_DATA_WIDTH_INDEX","copyFrom","BufferSet","_onBufferActivate","_normal","_alt","inactiveBuffer","DEFAULT_EXT","DEFAULT_ATTR","DEFAULT_COLOR","_id","isDisposed","_nextId","_onDispose","NUL","SOH","STX","EOT","ENQ","ACK","DLE","DC1","DC2","DC3","DC4","NAK","SYN","ETB","CAN","EM","SUB","FS","GS","SP","PAD","HOP","BPH","NBH","SSA","ESA","HTJ","VTS","PLD","PLU","RI","SS2","SS3","DCS","PU1","PU2","STS","CCH","MW","SPA","EPA","SOS","SGCI","SCI","CSI","OSC","PM","APC","utf32ToString","_interim","interim","UnicodeV6","_action","_callbacks","_pendingData","_bufferOffset","_isSyncWriting","_syncCalls","_didUserInput","_innerWrite","PAYLOAD_LIMIT","DcsParser","_active","_ident","_handlerFb","_stack","loopPosition","fallThrough","registerHandler","clearHandler","setHandlerFallback","unhook","hook","put","Params","addParam","_params","_hitLimit","VT500_TRANSITION_TABLE","TransitionTable","setDefault","addMany","_transitions","handlerPos","chunkPos","initialState","_collect","_printHandlerFb","_executeHandlerFb","_csiHandlerFb","_escHandlerFb","_errorHandlerFb","_printHandler","_executeHandlers","_csiHandlers","_escHandlers","_oscParser","OscParser","_dcsParser","_errorHandler","_identifier","clearPrintHandler","clearEscHandler","clearExecuteHandler","clearCsiHandler","clearDcsHandler","clearOscHandler","clearErrorHandler","collect","addSubParam","addDigit","_state","_put","maxSubParamsLength","_subParams","_subParamsLength","_subParamsIdx","_rejectDigits","_rejectSubDigits","_digitIsSub","getSubParamsAll","AddonManager","_addons","loadAddon","_wrappedAddonDispose","BufferApiView","cursorX","BufferLineApiView","_line","BufferNamespaceApi","_onBufferChange","onBufferChange","_alternate","ParserApi","addCsiHandler","addDcsHandler","addEscHandler","addOscHandler","UnicodeApi","activeVersion","isUserScrolling","_cachedBlankLine","glevel","_charsets","NONE","restrict","X10","VT200","DRAG","ANY","DEFAULT","SGR","SGR_PIXELS","_protocols","_encodings","_activeProtocol","_activeEncoding","_onProtocolChange","addProtocol","addEncoding","_equalEvents","triggerBinaryEvent","_onUserInput","_onRequestScrollToBottom","disableStdin","_decorations","_onDecorationRegistered","_onDecorationRemoved","getKeyIterator","_cachedBg","_cachedFg","foregroundColor","ServiceCollection","_entries","_services","getService","getServiceDependencies","traceCall","setTraceLogger","TRACE","INFO","ERROR","OFF","_logLevel","_updateLogLevel","_evalLazyOptionalParams","_log","logger","customGlyphs","allowProposedApi","allowTransparency","_onOptionChange","_sanitizeAndValidateOption","_setupOptions","_entriesWithId","_dataByLinkId","_removeMarkerFromLink","_getEntryIdKey","serviceRegistry","_providers","_onChange","_activeProvider","getStringCellWidth","_addonManager","_publicOptions","_checkReadonlyOptions","_checkProposedApi","parser","unicode","applicationCursorKeysMode","applicationKeypadMode","mouseTrackingMode","originMode","reverseWraparoundMode","sendFocusMode","wraparoundMode","_verifyIntegers","_verifyPositiveIntegers","writeln","possibleNames","_inheritsLoose","Axios","AxiosError","CanceledError","isCancel","CancelToken","VERSION","isAxiosError","spread","toFormData","AxiosHeaders","HttpStatusCode","formToJSON","getAdapter","mergeConfig","kindOf","kindOfTest","typeOfTest","isFile","isBlob","isFileList","isURLSearchParams","allOwnKeys","findKey","_global","global","isContextDefined","isHTMLForm","reduceDescriptors","reducedDescriptors","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","isFormData","kind","FormData","isStream","caseless","targetKey","stripBOM","superConstructor","toFlatObject","sourceObj","destObj","propFilter","searchString","forEachEntry","matchAll","regExp","freezeMethods","toObjectSet","arrayOrString","toCamelCase","toFiniteNumber","generateString","isSpecCompliantForm","toJSONObject","visit","reducedValue","isThenable","response","description","lineNumber","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","formData","metaTokens","indexes","visitor","defaultVisitor","useBlob","Blob","convertValue","isFlatArray","exposedHelpers","build","AxiosURLSearchParams","_pairs","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isStandardBrowserEnv","isStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","toURLEncodedForm","formSerializer","_FormData","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","valueOrRewrite","rewrite","_header","_rewrite","lHeader","setHeaders","rawHeaders","parseHeaders","tokensRE","parseTokens","deleted","deleteHeader","normalized","formatHeader","asStrings","accessors","defineAccessor","accessorName","buildAccessors","accessor","mapped","headerValue","transformData","fns","__CANCEL__","ERR_CANCELED","toGMTString","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","msie","urlParsingNode","originURL","resolveURL","requestURL","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","samplesCount","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","lengthComputable","progressBytes","rate","estimated","knownAdapters","xhr","XMLHttpRequest","requestData","requestHeaders","onCanceled","cancelToken","signal","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","settle","responseText","paramsSerializer","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","isURLSameOrigin","setRequestHeader","withCredentials","onDownloadProgress","onUploadProgress","upload","aborted","parseProtocol","send","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","headersToObject","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","deprecatedWarnings","formatMessage","ERR_DEPRECATED","assertOptions","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","instanceConfig","interceptors","configOrUrl","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","executor","onfulfilled","_resolve","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","defaultConfig","promises","commonErrorFallback","commonErrorHandler","errorContext","mightBeAuthRelated","errMsg","setSnackbar","getComparisonCompatibleVersion","featureFlags","parseEnvironmentInfo","onboardingComplete","onboarding","getItem","demoArtifactPort","environmentData","environmentFeatures","versionInfo","mender_environment","disableOnboarding","hostAddress","hostedAnnouncement","integrationVersion","isDemoMode","menderVersion","menderArtifactVersion","metaMenderVersion","recaptchaSiteKey","services","stripeAPIKey","trackerCode","isEnterprise","app","accu","flag","isHosted","docs","Integration","Deployments","deploymentsVersion","Deviceauth","deviceauthVersion","Inventory","inventoryVersion","GUI","guiVersion","docsVersion","getLatestReleaseInfo","initializeAppData","tasks","DEPLOYMENT_STATES","inprogress","DEVICE_STATES","accepted","preauth","setFirstLoginAfterSignup","hasMultitenancy","columnSelection","trackingConsentGiven","hasTrackingEnabled","tooltips","selectedAttributes","scope","devicesByStatus","onboardingState","showTips","welcomeTip","ONBOARDING_START","refreshDefault","deviceIds","maybeAddOnboardingTasks","devices","byStatus","identityOptions","filteringAttributes","identityAttributes","id_attribute","users","globalSettings","autoHideDuration","firstLoginAfterSignup","dateFunctionMap","getDays","setDays","setOfflineThreshold","intervalUnit","today","intervalName","setVersionInfo","versionInformation","versionRegex","getLatestRelease","repoKeyMap","integration","mender","guiTags","releases","saas","latestRelease","latestRepos","latestVersions","repos","saasReleases","latestGuiTag","latestSaasRelease","replaceAll","release_date","release","deductSaasState","releaseDate","setSearchState","searchState","isSearching","currentSearching","currentDevices","searchTotal","currentTotal","currentRequestState","nextSearching","nextDevices","nextTotal","nextRequestState","searchTerm","results","searchResult","deploymentsApiUrl","deploymentsApiUrlV2","CREATE_DEPLOYMENT","DEPLOYMENT_ROUTES","DEPLOYMENT_TYPES","deploymentPrototype","RECEIVE_DEPLOYMENT_DEVICE_LOG","RECEIVE_DEPLOYMENT_DEVICES","RECEIVE_DEPLOYMENT","RECEIVE_DEPLOYMENTS","REMOVE_DEPLOYMENT","SET_DEPLOYMENTS_STATE","defaultPage","perPage","defaultPerPage","DEVICE_LIST_DEFAULTS","deriveDeploymentGroup","groups","transformDeployments","deployments","deploymentsById","deployment","terms","deploymentIds","getDeploymentsByStatus","per_page","startDate","endDate","shouldSelect","created_after","created_before","typeFilter","byId","deploymentId","configuration","getSingleDeployment","createDeployment","newDeployment","hasNewRetryDefault","filter_id","totalDeploymentCount","hasDeployments","trial_expiration","organization","lastslashindex","statistics","fiveSeconds","expirationDate","endOfFirstMonth","isWithinFirstMonth","trackDeploymentCreation","phases","retries","previousPhases","previousRetries","newSettings","standardPhases","prevPhases","previousPhaseList","oldPhase","getDeploymentDevices","deploymentDevices","selectedDeviceIds","totalDeviceCount","devicesById","deviceId","identity_data","parseDeviceDeployment","artifact_name","deploymentDevice","deploymentStatus","created","getDeviceDeployments","filterSelection","RECEIVE_DEVICE","deviceDeployments","deploymentsCount","resetDeviceDeployments","getDeviceLog","stateDeployment","abortDeployment","updateDeploymentControlMap","update_control_map","patch","setDeploymentsState","selectionState","selectedId","deltaAttributeMappings","here","there","mapExternalDeltaConfig","getDeploymentsConfig","oldConfig","binary_delta","binary_delta_limits","xdelta_args","timeoutConfig","binaryDelta","xdelta_args_limits","timeoutLimit","binaryDeltaLimits","hasDelta","deepClean","cleanedValue","saveDeltaDeploymentsConfig","configChange","DEVICE_FILTERING_OPTIONS","UNGROUPED_GROUP","emptyFilter","deviceAuthV2","deviceConnect","inventoryApiUrl","inventoryApiUrlV2","deviceConfig","reportingApiUrl","iotManagerBaseURL","defaultAttributes","getSearchEndpoint","hasReporting","getGroups","dynamicGroups","$nin","getDevicesByStatus","ungroupedDevices","groupName","removeDevicesFromGroup","getGroupNotification","newGroup","selectedGroup","successMessage","addStaticGroup","isCreation","finally","addDevicesToGroup","setDeviceListState","setOnly","removeStaticGroup","removal","selectGroup","filterProcessors","$gt","$gte","$lt","$lte","$in","$exists","$nexists","filterAliases","mapFiltersToTerms","mapTermsToFilters","aliasedFilter","aliasDefinition","getDynamicGroups","staticGroups","addDynamicGroup","filterPredicates","cleanedFilters","getGroupFilters","setDeviceFilters","updateDynamicGroup","filterId","removeDynamicGroup","groupsState","groupFilterLength","getGroupDevices","shouldIncludeAllStates","selectedGroupName","getEarliestTs","dateA","dateB","reduceReceivedDevices","ids","stateDevice","storedAttributes","storedIdentity","monitor","storedMonitor","storedTags","storedGroup","inventory","system","check_in_time","created_ts","updated_ts","newThreshold","isOffline","offlineThreshold","deviceAccu","stateGroup","getDeviceById","etag","getDeviceInfo","hasDeviceConfig","hasDeviceConnect","hasMonitor","canConfigure","integrations","getDeviceAuth","getDeviceTwin","getDeviceConfig","getDeviceConnect","getDeviceCount","$eq","getAllDeviceCounts","getDeviceLimit","shouldSelectDevices","forceRefresh","deviceList","refreshTrigger","currentLoading","currentSelection","nextLoading","nextSelection","sortDown","sortCol","sortScope","sortBy","applicableSelectedState","allDevices","sortOptions","devicesState","convertDeviceListStateToFilters","selectedIssues","applicableFilters","nonMonitorFilters","filterRule","deviceIssueFilters","issuesSelection","filtersState","convertIssueOptionsToFilters","effectiveFilters","filterTerms","receivedDevices","getDevicesWithAuth","searchDevices","passedOptions","attributeReducer","getDeviceAttributes","inventoryAttributes","systemAttributes","tagAttributes","getReportingLimits","groupedAttributes","ensureVersionString","software","defaultReportType","defaultReports","getReportsData","reports","currentUser","report","reportConfig","staticGroupFilter","groupFilters","aggregationAttribute","aggregations","getSingleReportData","newReports","other_count","dataCount","otherCount","deriveReportsData","dynamic","prepareSearchArguments","getAllDevices","getAllGroupDevices","getAllDynamicGroupDevices","groupsById","effectiveAttribute","distributionByAttribute","pairA","pairB","initializeDistributionData","connect_status","connect_updated_ts","getSessionDetails","sessionId","createdAfter","createdBefore","objectSearch","auditLogEntries","session_id","getDeviceFileDownloadLink","deviceFileUpload","uploadId","cancelSource","AbortController","uploads","uploadProgress","uploadPut","maybeUpdateDevicesByStatus","authId","auth_sets","authset","updateDeviceAuth","updateDevicesAuth","deviceIdsWithoutAuth","deviceAuthUpdates","allSettled","deleteAuthset","preauthDevice","decommissionDevice","status_code","setDeviceConfig","applyDeviceConfig","configDeploymentConfiguration","isDefault","deployment_id","oneSecond","defaultDeviceConfig","setDeviceTags","providerResult","twinError","twinTitle","twinsByIntegration","setDeviceTwin","desired","getSystemDevices","deviceAttributes","mender_gateway_system_id","hasFullFiltering","$ne","systemDeviceIds","systemDeviceTotal","getGatewayDevices","attributeSelection","gatewayIds","geoAttributes","getDevicesInBounds","geo_bounding_box_filter","geo_bounding_box","top_left","bottom_right","monitorApiUrlv1","sanitizeDeviceAlerts","alerts","alert","fullName","cutoffLength","setAlertListState","alertList","getDeviceAlerts","issuedBefore","issuedAfter","sortAscending","issued_after","issued_before","getLatestDeviceAlerts","getIssueCountsByType","issueCounts","byType","counts","issueType","getDeviceMonitorConfig","monitors","changeNotificationSetting","channel","getOnboardingState","pastDeployments","userCapabilities","canDeploy","canManageDevices","canReadDeployments","canReadDevices","canReadReleases","canUploadReleases","userCookie","acceptedDevices","pendingDevices","deviceType","device_type","determineProgress","approach","deductOnboardingState","DASHBOARD_ONBOARDING_START","demoDeviceAddress","address","setOnboardingState","setShowOnboardingHelp","setOnboardingDeviceType","setOnboardingApproach","setShowDismissOnboardingTipsDialog","setDemoArtifactPort","setOnboardingComplete","advanceOnboarding","DEPLOYMENTS_PAST_COMPLETED","setOnboardingCanceled","DEPLOYMENTS_PAST_COMPLETED_FAILURE","ONBOARDING_CANCELED","stepId","steps","stepIndex","madeProgress","DEVICES_PENDING_ACCEPTING_ONBOARDING","DEVICES_ACCEPTED_ONBOARDING","InvalidTokenError","auditLogsApiUrl","tenantadmApiUrlv1","tenantadmApiUrlv2","samlIdpApiUrlv1","cancelRequest","tenantId","devLocations","createOrganizationTrial","targetLocation","subdomainSections","us","getTargetLocation","postUnauthorized","startCardUpdate","intentId","intent_id","confirmCardUpdate","getCurrentCard","last4","exp_month","exp_year","expiration","startUpgrade","cancelUpgrade","completeUpgrade","plan","getUserOrganization","prepareAuditlogQuery","userFilter","detailFilter","typeSearch","userSearch","queryParameter","getAuditLogs","hasAuditlogs","getAuditLogsCsvLink","auditlog","setAuditlogsState","selectedIssue","currentIssue","selectionLoading","selectionIssue","selectionRequestState","tenantDataDivergedMessage","addons","trial","jwt","decoded","atob","b64DecodeUnicode","base64UrlDecode","jwtDecode","jwtData","announcement","requestPlanChange","downloadLicenseReport","createIntegration","credentials","getIntegrations","changeIntegration","deleteIntegration","externalDeviceIntegrations","existingIntegrations","existingIntegration","getWebhookEvents","isFollowUp","webhooks","samlConfigActions","edit","samlConfigActionErrorHandler","samlConfigActionSuccessHandler","storeSamlConfig","Accept","getSamlConfigs","changeSamlConfig","deleteSamlConfig","configs","samlConfigs","getSamlConfigById","flattenRelease","stateRelease","updatedArtifacts","artifacts","deviceTypes","modified","device_types_compatible","stateArtifact","releaseArtifact","findArtifactIndexInRelease","getArtifactInstallCount","artifact","artifact_provides","installCount","releaseArtifacts","getArtifactUrl","getReleases","cleanUpUpload","uploadsById","createArtifact","SINGLE_FILE","selectRelease","uploadArtifact","cancelFileUpload","editArtifact","getRelease","removeArtifact","releasesList","releaseIds","setReleasesListState","removeRelease","passedConfig","selectedTags","filterQuery","pageState","updateType","sorting","releaseListRetrieval","receivedReleases","flatReleases","stateReleasesById","combinedReleases","releaseListState","searchOnly","isFiltering","searchedIds","deductSearchState","updateReleaseInfo","setReleaseTags","getExistingReleaseTags","getUpdateTypes","userData","token2fa","Authorization","defaultPermissionSets","emptyRole","emptyUiPermissions","itemUiPermissionsReducer","OWN_USER_ID","PermissionTypes","rolesById","defaultRolesById","scopedPermissionAreas","twoFAStates","uiPermissionsByArea","uiPermissionsById","useradmApiUrl","useradmApiUrlv2","loginUser","stayLoggedIn","no_expiry","has2FA","is2FABackend","twoFAError","errorMessage","handleLoginError","setSeconds","expiresAt","getUser","sessionStorage","removeItem","logoutUser","passwordResetStart","passwordResetComplete","secretHash","newPassword","secret_hash","verifyEmailStart","setAccountActivationCode","verifyEmailComplete","verify2FA","tfaData","getUserList","setHideAnnouncement","updateUserColumnSettings","initializeSelf","currentUserId","storageKey","customColumns","setItem","userActionErrorHandler","createUser","removeUser","editUser","enableUser2fa","disableUser2fa","mergePermissions","existingPermissions","addedPermissions","mapHttpPermission","permission","endpointMatches","endpoints","endpoint","Any","collector","endpointAccu","uiPermissions","permissionsAccu","uiPermission","verbs","verb","excessiveAccessSelector","permissionActionTypes","DeviceGroup","deploy","REMOTE_TERMINAL","connect","VIEW_DEVICE","customPermissionHandler","isCustom","tryParseCustomPermission","mapPermissionSet","permissionSetName","existingGroupsPermissions","permissionSets","scopedPermissions","additionalPermissions","permissions","maybeExistingPermissions","combinePermissions","deriveImpliedAreaPermissions","mapUserRolesToUiPermissions","userRoles","roles","roleId","getRoles","permissionSet","permissionSetState","permissionSetObject","scopes","scopeType","supported_scope_types","permissionSetsById","permissionSetTasks","normalizedPermissions","permission_sets_with_scope","preliminaryResult","isEmptyPermissionSet","parseRolePermissions","roleState","editable","normalizeRbacRoles","areaPermissions","highestAreaPermissionLevelSelected","highest","permissionLevel","transformRoleDataToRole","roleData","maybeUiPermissions","remainderKeys","emptyPermissions","permissionSetsWithScope","roleUiPermissions","impliedPermissions","mappedPermissions","Basic","scopedPermissionSets","itemPermissionAccu","impliedPermission","transformAreaRoleDataToScopedPermissionsSets","roleActions","roleActionErrorHandler","createRole","editRole","removeRole","toBeRemoved","getGlobalSettings","initialized","saveGlobalSettings","beOptimistic","updatedSettings","verified","getUserSettings","saveUserSettings","userSettings","tooltipState","get2FAQRCode","qr","setShowConnectingDialog","shouldHide","announceCookie","getTokens","updatedUser","generateToken","expiresIn","expires_in","revokeToken","setTooltipReadState","readState","setAllTooltipsReadState","updatedTips","headerNames","apiRoot","apiUrl","MAX_PAGE_SIZE","commonRequestConfig","authenticatedRequest","cancelSignal","emptySession","exiresAt","tokenCache","getSessionInfo","sessionInfo","cleanUp","jwtTokenFromCookie","setSessionInfo","getToken","maxSessionAge","updateMaxAge","oAuthExpiration","updateWithOAuth","ValueColumn","tooltipVisible","setTooltipVisible","isComponent","shownValue","copyable","onMouseEnter","KeyColumn","chipLikeKey","TwoColumns","KeyComponent","KeyProps","ValueComponent","ValueProps","TwoColumnData","TwoColumnDataMultiple","iconAura","chip","DOCSTIPS","phasedDeployments","pausedDeployments","retryDeployments","DocsTooltip","isHovering","setIsHovering","debouncedHovering","debounceDefault","fetch","hoverClass","Description","onMouseOut","DocsLink","rel","PlansTooltip","tierTipBackground","PlanChip","DefaultUpgradeNotification","setIsOpen","tenantCapabilities","currentPlan","benefit","requiredAddon","requiredPlan","os","hasAddon","needs","currentPlanIndex","requiredPlanIndex","shouldShow","onOpenChange","tooltipComponent","InfoHintContainer","waiting","hideClass","showClass","MenderTooltip","MenderTooltipClickable","startOpen","remainingProps","setOpen","OnboardingTooltip","extraProps","iconWidth","tooltipStateStyleMap","TooltipWrapper","onReadAll","HelpTooltip","contentProps","debouncedIsOpen","threeSeconds","SpecialComponent","isRelevant","defaultDateFormat","defaultTimeFormat","valueFormat","titleFormat","machineReadable","humanReadable","dateTime","MaybeTime","RelativeTime","shouldCount","updateTime","updatedTime","setUpdatedTime","timeDisplay","diffSeconds","ApproximateRelativeDate","Box","defaultClassName","generateClassName","BoxRoot","_extendSxProp","createBox","ClassNameGenerator","statusTypes","severity","notification","authRequests","offline","updateFailed","NumberIcon","warningIcon","WarningIcon","ReportProblemOutlined","pendingAuthSetsCount","propertyNameMap","defaultTextRender","accessorTarget","attributeValue","alternative","getDeviceIdentityText","idAttribute","remainingIds","nonIdKey","AttributeRenderer","DefaultAttributeRenderer","textRender","getDeviceSoftwareText","getDeviceArtifactText","getDeviceTypeText","defaultHeaders","currentSoftware","sortable","currentArtifact","deviceCreationTime","lastCheckIn","baseDevicesRoute","acceptedDevicesRoute","groupRestricted","emptyState","allCount","limitMaxed","sortingAlternatives","textFieldStyle","FilterOption","optionsFilter","onSelect","setKey","setReset","setScope","attributesClean","attr","localeCompare","sensitivity","removeFilter","changedValue","selectedScope","fallbackScope","updateFilterKey","filterOptionsByPlan","professional","enterprise","filterNotifications","nameFilterTip","setOperator","operatorHelpMessage","help","showValue","changedOperator","opValue","optionKey","MenuItem","TextField","HighlightOff","FormHelperText","getFilterLabelByKey","filtersFilter","firstIndex","filterCompare","onGroupClick","newFilter","setNewFilter","previousFilters","saveUpdatedFilter","updatedFilter","changedPreviousFilters","handleFilterChange","activeFilters","updateFilter","resetIdFilter","isFilterDefined","currentFilters","shortform","$regex","removedFilter","changedFilters","Add","fullFiltering","HELPTOOLTIPS","addGroup","artifactUpload","attributeLimit","auditlogExplanation","authButton","authExplainButton","configureAddOnTip","configureRaspberryLedTip","mmc0","heartbeat","configureTimezoneTip","dashboardWidget","deviceSupportTip","deviceTypeTip","expandArtifact","forceDeployment","groupDeployment","menderArtifactUpload","nameTagTip","phasedPausedDeployments","releaseName","resetHistory","samlMetadata","scheduleDeployment","singleFileUpload","tenantToken","twoFactorNote","MenderHelpTooltip","tooltipsById","unread","onSetTooltipReadState","_defs","startingDeviceCount","chartTypes","BarChart","pie","emptyChartSelection","chartType","SET_ANNOUNCEMENT","SET_ENVIRONMENT_DATA","SET_FEATURES","SET_FIRST_LOGIN_AFTER_SIGNUP","SET_SEARCH_STATE","SET_SNACKBAR","SET_VERSION_INFORMATION","SET_OFFLINE_THRESHOLD","UPLOAD_PROGRESS","SORTING_OPTIONS","asc","BEGINNING_OF_TIME","TIMEOUTS","debounceShort","halfASecond","twoSeconds","refreshLong","locations","eu","xmlns","clipPath","PLANS","offer","price","deviceCount","offerprice","price2","ADDONS","eligible","troubleshoot","BENEFITS","dashboard","deltaGeneration","deviceConfiguration","deviceMonitor","deviceTroubleshoot","gateway","requiredPlans","rbac","scheduledDeployments","yes","canAccess","DARK_MODE","LIGHT_MODE","deploymentSubstates","alreadyInstalled","decommissioned","downloading","failure","installing","noartifact","pause_before_committing","pause_before_installing","pause_before_rebooting","rebooting","deploymentStatesToSubstates","failures","successes","deploymentStatesToSubstatesWithSkipped","installationSubstatesMap","download","successIndicators","failureIndicators","pauseConfigurationIndicator","install","reboot","commit","scheduled","listDefaultsByState","RECEIVE_PENDING_DEPLOYMENTS","RECEIVE_INPROGRESS_DEPLOYMENTS","RECEIVE_SCHEDULED_DEPLOYMENTS","RECEIVE_FINISHED_DEPLOYMENTS","SELECT_INPROGRESS_DEPLOYMENTS","SELECT_PENDING_DEPLOYMENTS","SELECT_SCHEDULED_DEPLOYMENTS","SELECT_FINISHED_DEPLOYMENTS","SELECT_DEPLOYMENT","SET_DEPLOYMENTS_CONFIG","DEFAULT_PENDING_INPROGRESS_COUNT","defaultStats","deploymentDisplayStates","pauseMap","followUp","limitDefault","offlineThresholds","SELECT_GROUP","ADD_TO_GROUP","ADD_DYNAMIC_GROUP","ADD_STATIC_GROUP","REMOVE_DYNAMIC_GROUP","REMOVE_STATIC_GROUP","REMOVE_FROM_GROUP","RECEIVE_GROUPS","RECEIVE_DYNAMIC_GROUPS","RECEIVE_DEVICES","RECEIVE_DEVICE_CONFIG","RECEIVE_DEVICE_CONNECT","RECEIVE_GROUP_DEVICES","SET_TOTAL_DEVICES","SET_ACCEPTED_DEVICES_COUNT","SET_PENDING_DEVICES_COUNT","SET_REJECTED_DEVICES_COUNT","SET_PREAUTHORIZED_DEVICES_COUNT","SET_FILTER_ATTRIBUTES","SET_FILTERABLES_CONFIG","SET_DEVICE_FILTERS","SET_ACCEPTED_DEVICES","SET_PENDING_DEVICES","SET_REJECTED_DEVICES","SET_PREAUTHORIZED_DEVICES","SET_INACTIVE_DEVICES","SET_DEVICE_LIST_STATE","SET_DEVICE_LIMIT","SET_DEVICE_REPORTS","EXTERNAL_PROVIDER","credentialsType","deviceTwin","configHint","webhook","DEVICE_MESSAGE_PROTOCOLS","Shell","DEVICE_MESSAGE_TYPES","Delay","New","Ping","Pong","Resize","Stop","DEVICE_LIST_MAXIMUM_LENGTH","DEVICE_ISSUE_OPTIONS","issues","isCategory","issueCategory","needsFullFiltering","needsMonitor","needsReporting","failedLastUpdate","monitoring","gatewayDevices","DEVICE_DISMISSAL_STATE","DEVICE_CONNECT_STATES","connected","disconnected","unknown","DEVICE_ONLINE_CUTOFF","ATTRIBUTE_SCOPES","ALL_DEVICES","CHANGE_ALERT_CHANNEL","RECEIVE_DEVICE_ALERTS","RECEIVE_DEVICE_MONITOR_CONFIG","RECEIVE_DEVICE_ISSUE_COUNTS","RECEIVE_LATEST_DEVICE_ALERTS","SET_ALERT_LIST_STATE","alertChannels","onboardingSteps","DEVICES_PENDING_ONBOARDING_START","DASHBOARD_ONBOARDING_PENDINGS","DEVICES_DELAYED_ONBOARDING","DEVICES_PENDING_ONBOARDING","DEVICES_DEPLOY_RELEASE_ONBOARDING","SCHEDULING_ARTIFACT_SELECTION","SCHEDULING_ALL_DEVICES_SELECTION","SCHEDULING_GROUP_SELECTION","SCHEDULING_RELEASE_TO_DEVICES","DEPLOYMENTS_INPROGRESS","DEPLOYMENTS_PAST","SET_DEMO_ARTIFACT_PORT","SET_ONBOARDING_COMPLETE","SET_ONBOARDING_PROGRESS","SET_ONBOARDING_DEVICE_TYPE","SET_ONBOARDING_APPROACH","SET_SHOW_ONBOARDING_HELP","SET_SHOW_ONBOARDING_HELP_DIALOG","SET_ONBOARDING_STATE","AUDIT_LOGS_TYPES","RECEIVE_AUDIT_LOGS","RECEIVE_CURRENT_CARD","RECEIVE_SETUP_INTENT","SET_AUDITLOG_STATE","SET_ORGANIZATION","RECEIVE_EXTERNAL_DEVICE_INTEGRATIONS","RECEIVE_SAML_CONFIGS","RECEIVE_WEBHOOK_EVENTS","emptyWebhook","ARTIFACT_GENERATION_TYPE","ARTIFACTS_REMOVED_ARTIFACT","ARTIFACTS_SET_ARTIFACT_URL","UPDATED_ARTIFACT","RECEIVE_RELEASE","RECEIVE_RELEASE_TAGS","RECEIVE_RELEASE_TYPES","RECEIVE_RELEASES","RELEASE_REMOVED","SELECTED_RELEASE","SET_RELEASES_LIST_STATE","rootfsImageVersion","softwareTitleMap","ALL_RELEASES","useradmApiUrlv1","staticRolesByName","admin","deploymentsManager","terminalAccess","Get","Post","Put","Delete","Patch","DeviceId","permissionSetIds","explanations","manage","userManagement","unscopedOnly","explanation","permissionMapper","checkSinglePermission","requiredPermission","checkPermissionsObject","scopedAccess","superAccess","RECEIVED_QR_CODE","SUCCESSFULLY_LOGGED_IN","USER_LOGOUT","RECEIVED_ACTIVATION_CODE","RECEIVED_USER_LIST","RECEIVED_USER","CREATED_USER","REMOVED_USER","UPDATED_USER","RECEIVED_PERMISSION_SETS","RECEIVED_ROLES","CREATED_ROLE","UPDATED_ROLE","REMOVED_ROLE","SET_CUSTOM_COLUMNS","SET_GLOBAL_SETTINGS","SET_USER_SETTINGS","SET_SHOW_CONNECT_DEVICE","SET_TOOLTIP_STATE","SET_TOOLTIPS_STATE","rolesByName","deploymentCreation","groupAccess","unverified","settingsKeys","READ_STATES","isEncoded","fullyDecodeURI","groupDeploymentDevicesStats","deviceStatCollector","deploymentStates","statCollector","groupDeploymentStats","withSkipped","stats","groupStates","max_devices","device_count","getDeploymentState","currentProgressCount","extractErrorMessage","preformatWithRequestID","failMsg","versionCompare","partsV1","partsV2","numberV1","numberV2","deepCompare","leftChain","rightChain","compare2Objects","stringToBoolean","formatTime","customSort","duplicateFilter","attributeDuplicateFilter","filterableArray","unionizeStrings","someStrings","someOtherStrings","startingPoint","mapDeviceAttributes","getFormattedSize","FileSize","fileSize","getDemoDeviceAddress","onboardingApproach","addresses","ips","texts","collectAddressesFrom","appVersion","detectOsIdentifier","getRemainderPercent","batch_size","validatePhases","deploymentDeviceCount","hasFilter","getPhaseDeviceCount","numberDevices","batchSize","isLastPhase","startTimeSort","standardizePhases","standardizedPhase","start_ts","delayUnit","getDebConfigurationCode","isPreRelease","envVars","installScriptArgs","getInstallScriptArgs","scriptUrl","menderSetupArgs","ipAddress","isOnboarding","getSetupArgs","getSnackbarMessage","skipText","extractSoftware","softwareKeys","nonSoftware","extractSoftwareItem","artifactProvides","infoItems","nestingLevel","createDownload","filename","createFileDownload","getISOStringBoundaries","isDarkMode","NOT_FOUND","defaultEqualityCheck","defaultMemoize","equalityCheckOrOptions","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","maxSize","resultEqualityCheck","createCacheKeyComparator","getEntries","cacheIndex","createLruCache","matchingEntry","clearCache","createSelectorCreator","memoizeOptionsFromArgs","_lastResult","_recomputations","directlyPassedOptions","memoizeOptions","resultFunc","_directlyPassedOption2","finalMemoizeOptions","dependencyTypes","getDependencies","memoizedResultFunc","lastResult","recomputations","resetRecomputations","createSelector","getFeatures","getTooltipsById","getRolesById","getOrganization","getAcceptedDevices","getCurrentSession","currentSession","getDevicesById","getDeviceReports","getGroupsById","getFilteringAttributes","getDeviceFilters","getSortedFilteringAttributes","getOnboarding","getReleasesById","getReleaseTags","getReleaseListState","updateTypes","getExternalIntegrations","getDeploymentsById","getDeploymentsSelectionState","getFullVersionInformation","getCurrentUserId","getCurrentUser","usersById","getVersionInformation","getIsPreview","getShowHelptips","getMappedDeploymentSelection","deploymentsState","getDeploymentRelease","releasesById","getSelectedDeploymentData","selectedDevices","getHas2FA","tfa_status","getDeviceReportsForUser","listItemMapper","defaultObject","cutOffSize","listTypeDeviceIdMap","getMappedDevicesList","listType","getDeviceCountsByStatus","getDeviceConfigDeployment","configDeploymentId","deviceConfigDeployment","getSelectedGroupInfo","acceptedDeviceTotal","groupCount","defaultIdAttribute","getIdAttribute","getLimitMaxed","deviceLimit","getFilterAttributes","deviceNameAttribute","deviceIdAttribute","checkInAttribute","updateAttribute","firstRequestAttribute","getDeviceIdentityAttributes","filteringAttributesLimit","getGroupsByIdWithoutUngrouped","ungrouped","groupNames","groupedGroups","groupname","groupItem","groupId","getDeviceTwinIntegrations","getOfflineThresholdSettings","getTooltipsState","getDocsVersion","appDocsVersion","getIsEnterprise","getAttributesList","filteringAttributesConfig","getRolesList","getUserRoles","isAdmin","hasPermission","getUserCapabilities","canManageReleases","canAuditlog","canReadUsers","canManageUsers","canWriteDevices","groupPermissions","canTroubleshoot","groupsPermissions","releasesPermissions","getTenantCapabilities","isAuditlogEnabled","isDeviceConfigEnabled","isDeviceConnectEnabled","isMonitorEnabled","canDelta","canRetry","canSchedule","addon","getAvailableIssueOptionsByType","getDeviceTypes","deviceTypeAccu","getGroupNames","staticOnly","getReleasesList","getReleaseTagsById","releaseTags","getHasReleases","getSelectedRelease","selectedRelease","relevantDeploymentStates","DEPLOYMENT_CUTOFF","getRecentDeployments","deploymentsByStatus","secondaryText","terminal","northernTech","generatedColors","qualitative","grp","chartColorPalette","MuiFormControl","MuiTextField","MuiSelect","overrides","MuiSnackbarContent","MuiTab","MuiAccordion","accordionClasses","MuiAccordionSummary","accordionSummaryClasses","MuiAccordionDetails","MuiInput","MuiFormControlLabel","MuiIconButton","MuiButton","MuiSvgIcon","iconButton","MuiListItem","MuiListItemText","MuiTableCell","paddingCheckbox","MuiDrawer","lighter","lightgrey","buttonClasses","darkBlue","entryLink","MuiCheckbox","MuiFormLabel","MuiTooltip","ReactGA","trackingEnabled","currentPageView","currentOrganizationUser","cookieconsent","initialise","autoOpen","revokable","law","regionalLaw","onStatusChange","exception","trackingCode","pageview","setOrganizationUser","dimension1","dimension2","dimension3","setTrackingEnabled","useDebounce","debouncedValue","setDebouncedValue","SEPARATOR","defaultSelector","commonFields","commonProcessor","sortAccu","scopedQuery","parseDeviceQuery","pageStateExtension","scopedFilters","scopeValues","scopedValue","innerAccu","foundScope","currentScope","legacyDeviceQueryParse","scopedFilterParse","groupFilterIndex","detailsTab","formatSorting","sortDefault","formatPageState","formatDeviceSearch","isUngroupedGroup","formattedFilters","stripFilterOperator","filterSet","formatFilters","generateDevicePath","formatDates","tonight","paramReducer","formatAuditlogs","objectId","parseDateParams","parseAuditlogsQuery","typeObject","formatDeployments","deploymentObject","showCreationDialog","pageStateQuery","stateDefaults","keyAccu","formatActiveDeployments","deploymentFields","parseDeploymentsQuery","remainingPageState","deploymentsTab","parseDeploymentsPath","showReportDialog","stateAccu","parseActiveDeployments","generateDeploymentsPath","formatReleases","generateReleasesPath","parseReleasesQuery","releasesRoot","orientations","ArrowUpward","offsetStyle","ArrowBack","ArrowDownward","ArrowForward","BaseOnboardingTooltip","showDismissHelptipsDialog","showTipsDialog","showDeviceConnectionDialog","showConnectDeviceDialog","delayTimer","others","CompletionButton","CheckCircle","DevicePendingTip","GetStartedTip","DevicesAcceptedOnboarding","specialComponent","fallbackStep","extra","deviceConnection","setMinutes","createdGroup","selectedDevice","getOnboardingComponentFor","previousComponent","progressIndex","getOnboardingStepCompleted","applyOnboardingFallbacks","timers","setRetryTimer","timeLeft","clearRetryTimer","clearAllRetryTimers","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","amdO","ns","chunkId","miniCssF","needAttach","scripts","onScriptComplete","doneFns","nmd","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","Et","bt","yt","wt","fastUniqueNumbers","MAX_SAFE_INTEGER","addUniqueNumber","generateUniqueNumber","Pt","St","createObjectURL","Worker","timerId","timerType","revokeObjectURL","st","BroadcastChannel","onStorage","storageArea","onmessageerror","at","promptTimeout","promptBeforeIdle","immediateEvents","onPresenceChange","onPrompt","onIdle","onActive","onAction","onMessage","eventsThrottle","startOnMount","startManually","stopOnIdle","crossTab","syncTimers","leaderElection","ct","prompted","idle","ut","isLeader","isLastActive","Ge","ht","vt","Tt","It","elector","registry","allIdle","channelName","fallbackInterval","responseTime","isDead","isApplying","reApply","intervals","deferred","awaitLeadership","sendAction","ot","assumeLead","waitForLeadership","isIdle","isPrompted","isLastActiveTab","getTabId","getRemainingTime","getElapsedTime","getTotalElapsedTime","getLastIdleTime","getLastActiveTime","getIdleTime","getTotalIdleTime","getActiveTime","getTotalActiveTime","setOnPresenceChange","setOnPrompt","setOnIdle","setOnActive","setOnAction","setOnMessage","enableColorScheme","WebkitFontSmoothing","MozOsxFontSmoothing","WebkitTextSizeAdjust","colorScheme","localTheme","outerTheme","mergeOuterLocalTheme","EMPTY_THEME","useThemeScoping","isPrivate","resolvedTheme","mergedTheme","useThemeWithoutDefault","upperPrivateTheme","engineTheme","privateTheme","scopedTheme","toPropertyKey","plainObjectConstrurctor","cloneStyle","newStyle","createRule","decl","jss","declCopy","plugins","onCreateRule","by","toCssValue","cssValue","getWhitespaceSymbols","linebreak","space","indentStr","indent","_options$indent","fallbacks","_getWhitespaceSymbols","_prop","_prop2","_value2","allowEmpty","escapeRegex","nativeEscape","CSS","BaseStyleRule","isProcessed","force","onChangeValue","isDefined","renderable","attached","StyleRule","_BaseStyleRule","scoped","generateId","selectorText","_proto2","applyTo","setSelector","replaceRule","pluginStyleRule","defaultToStringOptions","atRegExp","ConditionalRule","atMatch","RuleList","getRule","addRule","onProcessRule","newRule","keyRegExp","pluginConditionalRule","defaultToStringOptions$1","nameRegExp","KeyframesRule","frames","nameMatch","keyRegExp$1","refRegExp","findReferencedKeyframe","replaceRef","refKeyframe","pluginKeyframesRule","onProcessStyle","KeyframeRule","pluginKeyframeRule","FontFaceRule","keyRegExp$2","pluginFontFaceRule","ViewportRule","pluginViewportRule","SimpleRule","keysMap","pluginSimpleRule","defaultUpdateOptions","forceUpdateOptions","ruleOptions","_this$options","oldRule","oldIndex","nameOrSelector","updateOne","_this$options2","onUpdate","nextValue","_nextValue","_prevValue","deployed","attach","detach","deleteRule","addRules","added","_this$rules","PluginsRegistry","external","onProcessSheet","processedValue","newPlugin","plugin","SheetsRegistry","sheets","globalThis$1","createGenerateId","ruleCounter","jssId","classNamePrefix","minify","cssRule","attributeStyleMap","indexOfImportantFlag","cssValueWithoutImportantFlag","getHead","getNonce","_insertRule","appendRule","getValidRuleInsertionIndex","hasInsertedRules","media","createStyle","nextNode","findHigherSheet","findHighestSheet","childNodes","findCommentNode","findPrevNode","insertionPointElement","insertStyle","insertRules","nativeParent","latestNativeParent","_insertionIndex","refCssRule","ruleStr","insertionIndex","nativeRule","instanceCounter","Jss","setup","createStyleSheet","removeStyleSheet","createJss","hasCSSTOMSupport","getDynamicStyles","extracted","baseClasses","newClasses","nextClasses","multiKeyStore","subCache","_privateTheme$$$mater","$$material","stateClasses","fnValuesNs","fnRuleNs","GlobalContainerRule","GlobalPrefixedRule","atPrefix","separatorRegExp","addScope","parentRegExp","uppercasePattern","msPattern","toHyphenLower","hName","convertCase","converted","percent","addCamelCasedVersion","motion","iterate","innerProp","_innerProp","js","vendor","jsCssMap","Moz","Webkit","appearence","noPrefill","supportedProperty","toUpper","camelize","pascalize","longhand","textOrientation","writingMode","breakPropsOld","inlineLogicalOld","newProp","unprefixed","prefixed","pascalized","scrollSnap","overscrollBehavior","propMap","flex2012","propMap$1","propKeys","prefixCss","flex2009","propertyDetectors","key$1","el$1","cache$1","transitionProperties","transPropsRegExp","prefixTransitionCallback","supportedValue","prefixedValue","defaultJSS","fnValues","styleRule","fnRule","handleNestedGlobalContainerRule","handlePrefixedGlobalRule","getReplaceRef","replaceParentRefs","nestedProp","parentProp","parentSelectors","nestedSelectors","getOptions","isNested","isNestedConditional","hyphenatedProp","camelCasedOptions","prefixStyle","changeProp","supportedProp","changeValue","supportedValue$1","atRule","supportedKeyframes","prop0","prop1","defaultGenerateClassName","disableGlobal","productionPrefix","seedPrefix","getNextCounterId","styleSheet","createGenerateClassName","disableGeneration","sheetsCache","sheetsManager","sheetsRegistry","StylesContext","indexCounter","stylesOptions","stylesCreator","sheetManager","staticSheet","dynamicStyles","serverGenerateClassName","dynamicSheet","stylesOrCreator","classNamePrefixOption","stylesOptions2","themingEnabled","stylesWithOverrides","getStylesCreator","shouldUpdate","currentKey","useSynchronousEffect","cacheClasses","lastProp","lastJSS","withTheme","WithStyles","MuiPickersAdapterContext","LocalizationProvider","_React$useContext","localeText","inLocaleText","otherInProps","parentUtils","parentLocaleText","dateAdapter","DateAdapter","dateFormats","dateLibInstance","adapterLocale","themeLocaleText","isMUIAdapter","defaultDates","minDate","maxDate","formatTokenMap","YY","YYYY","sectionType","MMM","MMMM","DD","Do","ddd","dddd","defaultFormats","monthShort","weekdayShort","hours24h","hours12h","fullDateWithWeekday","keyboardDate","shortDate","normalDate","normalDateWithWeekday","monthAndYear","monthAndDate","fullTime12h","fullTime24h","fullDateTime","fullDateTime12h","fullDateTime24h","keyboardDateTime","keyboardDateTime12h","keyboardDateTime24h","MISSING_TIMEZONE_PLUGIN","AdapterMoment","isTimezoneCompatible","lib","escapedCharacters","setLocaleToValue","expectedLocale","getCurrentLocaleCode","syncMomentLocale","runner","_this$locale","momentLocale","hasTimezonePlugin","tz","createSystemDate","parsedValue","createTZDate","timezone","dateWithTimezone","getTimezone","_value$_z","_this$moment$defaultZ","_z","defaultZone","setTimezone","_this$moment$defaultZ2","_this$moment$defaultZ3","cleanZone","toJsDate","parseISO","isoString","toISO","is12HourCycleInCurrentLocale","firstCharacter","getFormatHelperText","formatKey","formatByString","formatString","clonedDate","numberToFormat","getDiff","comparing","isSameYear","isSameMonth","isSameDay","isSameHour","isAfterYear","isAfterDay","isBeforeYear","isBeforeDay","isWithinRange","startOfYear","startOfMonth","startOfWeek","startOfDay","endOfYear","endOfMonth","endOfWeek","endOfDay","addYears","addMonths","addWeeks","addDays","addHours","addMinutes","addSeconds","getYear","getMilliseconds","setYear","setDate","setHours","setMilliseconds","getDaysInMonth","getNextMonth","getPreviousMonth","getMonthArray","monthArray","prevMonth","mergeDateAndTime","dateParam","timeParam","getWeekdays","getWeekArray","nestedWeeks","weekNumber","getWeekNumber","getYearRange","getMeridiemText","ampm","getSnackbarContentUtilityClass","SnackbarContentRoot","emphasis","SnackbarContent","SnackbarContentMessage","SnackbarContentAction","getSnackbarUtilityClass","SnackbarRoot","defaultTransitionDuration","ClickAwayListenerProps","ContentProps","disableWindowBlurListener","resumeHideDuration","timerAutoHide","setAutoHideTimer","autoHideDurationParam","handlePause","handleResume","createHandleFocus","onFocusCallback","createMouseEnter","onMouseEnterCallback","createMouseLeave","onMouseLeaveCallback","externalProps","onBlurCallback","useSnackbar","handleActionClick","snackProps","processors","auditlogs","useLocationParams","extras","extendedExtras","searchQuery","isCheckBoxInput","isDateObject","isObjectType","getEventValue","isNameInFieldArray","getNodeParentName","tempObject","prototypeCopy","isWeb","cloneObject","FileList","EVENTS","BLUR","FOCUS_OUT","CHANGE","VALIDATION_MODE","onSubmit","onTouched","INPUT_VALIDATION_RULES","HookFormContext","useFormContext","FormProvider","getProxyFormState","formState","localProxyFormState","isRoot","defaultValues","_defaultValues","_proxyFormState","isEmptyObject","shouldRenderFormState","formStateData","updateFormState","convertToArrayPayload","shouldSubscribeByName","signalName","currentName","useSubscribe","subject","useFormState","_formState","_mounted","_localProxyFormState","isDirty","dirtyFields","touchedFields","isValidating","_name","_updateFormState","_subjects","_updateValid","generateWatchOutput","_names","formValues","isGlobal","fieldName","watchAll","useWatch","updateValue","_formValues","_getWatch","_removeUnmounted","tempPath","Controller","shouldUnregister","isArrayField","_registerProps","_shouldUnregisterField","updateMounted","_fields","_updateDisabledField","fields","elm","setCustomValidity","reportValidity","fieldState","isTouched","useController","appendErrors","validateAllFieldCriteria","focusFieldBy","fieldsNames","currentField","getValidationModes","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isWatched","isBlurEvent","watchName","updateFieldArrayRootError","fieldArrayErrors","isFileInput","owner","isMessage","isRadioInput","isRegex","defaultResult","validResult","getCheckboxValue","defaultReturn","getRadioValue","getValidateError","getValueAndMessage","validationData","validateField","shouldUseNativeValidation","isFieldArray","valueAsNumber","isRadio","isCheckBox","isRadioOrCheckbox","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueDate","valueAsDate","convertTimeToDate","toDateString","isWeek","valueNumber","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","unset","childObject","updatePath","isEmptyArray","createSubject","_observers","observers","object1","object2","isMultipleSelect","live","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","getFieldValueAs","setValueAs","getFieldValue","files","selectedOptions","getResolverOptions","criteriaMode","getRuleValue","hasValidation","schemaErrorLookup","foundError","skipValidation","isSubmitted","reValidateMode","unsetEmptyArray","shouldFocusError","createFormControl","flushRootRender","delayErrorCallback","submitCount","isSubmitting","isSubmitSuccessful","unMount","shouldCaptureDirtyFields","resetOptions","keepDirtyValues","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","shouldUpdateValid","_executeSchema","executeBuiltInValidation","_updateIsValidating","updateValidAndValue","shouldSkipSetValueAs","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","_getDirty","isCurrentFieldPristine","isPreviousFieldTouched","shouldOnlyCheckValid","valid","isFieldArrayRoot","fieldError","getValues","fieldReference","optionRef","checkboxRef","radioRef","shouldTouch","shouldValidate","trigger","fieldKey","cloneValue","isFieldValueUpdated","shouldSkipValidation","watched","previousErrorLookupResult","errorLookupResult","previousFieldError","delayError","updateErrors","updatedFormState","shouldRenderByError","fieldNames","executeSchemaAndUpdateState","shouldFocus","getFieldState","setError","keepValue","keepError","keepDirty","keepTouched","keepDefaultValue","keepIsValid","disabledIsDefined","progressive","fieldRef","radioOrCheckbox","_focusError","handleSubmit","onValid","onInvalid","fieldValues","keepStateOptions","updatedValues","cloneUpdatedValues","keepDefaultValues","keepValues","keepSubmitCount","keepIsSubmitted","keepErrors","keepIsSubmitSuccessful","_updateFieldArray","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","_getFieldArray","_resetDefaultValues","resetField","clearErrors","inputName","setFocus","useForm","_formControl","_values","ControlledAutoComplete","formOnChange","onChangeHandler","Autocomplete","filterReset","Filters","initialValues","fieldResetTrigger","dirtyField","clearDirty","debouncedValues","noValidate","useMediaQueryOld","defaultMatches","ssrMatchMedia","noSsr","setMatch","queryList","updateMatch","maybeReactUseSyncExternalStore","useMediaQueryNew","getDefaultSnapshot","getServerSnapshot","mediaQueryList","useMediaQuery","queryInput","supportMatchMedia","areViewsEqual","views","expectedViews","expectedView","applyDefaultViewProps","openTo","defaultOpenTo","defaultViews","viewsWithDefault","openToWithDefault","findClosestEnabledDate","disableFuture","disablePast","isDateDisabled","forward","backward","applyDefaultDate","getMonthsInYear","mergedDate","getTodayDate","valueType","formatMeridiem","dateViews","isDatePickerView","resolveDateFormat","isInToolbar","timeViews","isTimeView","isInternalTimeView","getMeridiem","convertValueToMeridiem","convertToMeridiem","newHoursAmount","getSecondsInDay","createIsAfterIgnoreDatePart","disableIgnoringDatePartForTimeValidation","dateLeft","dateRight","resolveTimeFormat","SECTION_TYPE_GRANULARITY","roundDate","granularity","roundedDate","getDateSectionConfigFromFormatToken","formatToken","getDaysInWeekStr","weekDay","getLetterEditingOptions","cleanLeadingZeros","valueStr","cleanValueStr","cleanDigitSectionValue","sectionBoundaries","longestMonth","hasLeadingZerosInInput","getSectionVisibleValue","hasLeadingZeros","hasLeadingZerosInFormat","cleanString","dirtyString","addPositionPropertiesToSections","sections","isRTL","positionInInput","newSections","renderedValue","sectionStr","startSeparator","endSeparator","sectionLength","sectionLengthInInput","startInInput","endInInput","getSectionPlaceholder","sectionConfig","currentTokenValue","fieldYearPlaceholder","digitAmount","fieldMonthPlaceholder","fieldDayPlaceholder","fieldWeekDayPlaceholder","fieldHoursPlaceholder","fieldMinutesPlaceholder","fieldSecondsPlaceholder","fieldMeridiemPlaceholder","changeSectionValueFormat","currentFormat","newFormat","isFourDigitYearFormat","doesSectionFormatHaveLeadingZeros","splitFormatIntoSections","formatDensity","shouldRespectLeadingZeros","commitToken","sectionValue","formatExpansionOverflow","prevFormat","nextFormat","expandedFormat","escapedParts","startChar","endChar","getEscapedPartsFromFormat","isTokenStartRegExp","escapedPartOfCurrentChar","escapeIndex","isEscapedChar","potentialToken","regExpMatch","cleanSeparator","cleanedSeparator","reliableSectionModificationOrder","mergeDateIntoReferenceDate","dateToTransferFrom","referenceDate","shouldLimitToEditedSections","dateToTransferTo","formattedDaysInWeek","dayInWeekStrOfActiveDate","dayInWeekOfActiveDate","isAM","mergedDateHours","transferDateSectionValue","singleItemValueManager","emptyValue","getTodayValue","getInitialReferenceValue","inGetTodayDate","_props$disableIgnorin","minTime","maxTime","getDefaultReferenceDate","areValuesEqual","isSameError","hasError","defaultErrorState","singleItemFieldValueManager","updateReferenceValue","prevReferenceValue","getSectionsFromValue","prevSections","getSectionsFromDate","getValueStrFromSections","dateStr","dateValue","getActiveDateManager","referenceValue","getSections","getNewValuesFromNewActiveDate","newActiveDate","parseValueStr","parseDate","enUSPickers","previousMonth","nextMonth","openPreviousView","openNextView","calendarViewSwitchingButtonAriaLabel","cancelButtonLabel","clearButtonLabel","okButtonLabel","todayButtonLabel","datePickerToolbarTitle","dateTimePickerToolbarTitle","timePickerToolbarTitle","dateRangePickerToolbarTitle","clockLabelText","hoursClockNumberText","minutesClockNumberText","secondsClockNumberText","selectViewText","calendarWeekNumberHeaderLabel","calendarWeekNumberHeaderText","calendarWeekNumberAriaLabelText","calendarWeekNumberText","openDatePickerDialogue","openTimePickerDialogue","fieldClearLabel","timeTableLabel","dateTableLabel","DEFAULT_LOCALE","pickersTranslations","useLocalizationContext","localization","useUtils","useDefaultDates","useLocaleText","useNow","getTypographyUtilityClass","TypographyRoot","align","gutterBottom","paragraph","defaultVariantMapping","colorTransformations","textPrimary","textSecondary","themeProps","transformDeprecatedColors","variantMapping","getPickersToolbarUtilityClass","PickersToolbarRoot","isLandscape","PickersToolbarContent","_ownerState$landscape","landscapeDirection","PickersToolbar","toolbarTitle","titleId","penIconButton","getDatePickerToolbarUtilityClass","DatePickerToolbarRoot","DatePickerToolbarTitle","DatePickerToolbar","toolbarFormat","toolbarPlaceholder","dateText","formatFromViews","uncapitalizeObjectKeys","capitalizedObject","useDatePickerDefaultizedProps","_themeProps$slots","_themeProps$disableFu","_themeProps$disablePa","_themeProps$slotProps","_themeProps$localeTex","validateDate","shouldDisableDate","shouldDisableMonth","shouldDisableYear","getInputAdornmentUtilityClass","InputAdornmentRoot","disablePointerEvents","positionStart","InputAdornment","disableTypography","getPickersPopperUtilityClass","getActiveElement","activeEl","shadowRoot","DEFAULT_DESKTOP_MODE_MEDIA_QUERY","mobileVersionMatches","androidVersion","iOSVersion","slowAnimationDevices","useDefaultReduceAnimations","PickersPopperRoot","PickersPopperPaper","PickersPopperPaperWrapper","popperPlacement","inOwnerState","paperClasses","onPaperClick","onPaperTouchStart","_paperProps$onClick","_paperProps$onTouchSt","PickersPopper","_slots$desktopTransit","_slots$desktopTrapFoc","_slots$desktopPaper","containerRef","shouldRestoreFocus","onDismiss","reduceAnimations","inReduceAnimations","lastFocusedElementRef","clickAwayRef","armClickAwayListener","handleSynthetic","useClickAwayListener","defaultReduceAnimations","desktopTransition","desktopTrapFocus","desktopPaper","useValidation","previousValidationErrorRef","validationError","useValueWithTimezone","timezoneProp","valueManager","firstDefaultValue","inputTimezone","setInputTimezone","timezoneToRender","handleValueChange","otherParams","newValueWithInputTimezone","useControlledValueWithTimezone","onChangeProp","valueWithInputTimezone","useViews","onViewChange","inView","focusedView","inFocusedView","onFocusedViewChange","_views","_views2","previousOpenTo","previousViews","defaultFocusedView","setFocusedView","previousView","viewIndex","nextView","handleFocusedViewChange","viewToFocus","prevFocusedView","handleChangeView","newView","goToNextView","setValueAndGoToNextView","currentViewSelectionState","selectedView","isSelectionFinishedOnCurrentView","hasMoreViews","setValueAndGoToView","getOrientation","usePicker","wrapperVariant","additionalViewProps","autoFocusView","pickerValueResponse","onAccept","inValue","inDefaultValue","closeOnSelect","selectedSections","selectedSectionsProp","onSelectedSectionsChange","setSelectedSections","isControllingOpenProp","setIsOpenState","newIsOpen","useOpenState","dateState","setDateState","draft","lastPublishedValue","lastCommittedValue","lastControlledValue","hasBeenModifiedSinceMount","updateDate","updaterParams","shouldPublish","isCurrentValueTheDefaultValue","pickerAction","shouldPublishValue","shouldCommit","changeImportance","shouldCommitValue","shouldClose","shouldClosePicker","shortcut","isUpdateComingFromPicker","handleAccept","handleDismiss","handleCancel","handleSetToday","handleChange","handleSelectShortcut","handleChangeFromField","handleFieldSelectedSectionsChange","newSelectedSections","onClear","onSetToday","fieldResponse","viewValue","fieldProps","viewProps","layoutProps","onSelectShortcut","testedValue","usePickerValue","pickerViewsResponse","propsFromPickerValue","disableOpenPicker","viewRenderers","propsToForwardToView","hasUIView","viewModeLookup","viewForReduce","viewMode","timeViewsCount","currentViewMode","popperView","setPopperView","renderCurrentView","showViewSwitcher","usePickerViews","pickerLayoutResponse","propsFromPickerViews","customOrientation","setOrientation","itemOrItems","useIsLandscape","usePickerLayoutProps","getPickersLayoutUtilityClass","pickersLayoutClasses","getDialogActionsUtilityClass","DialogActionsRoot","disableSpacing","PickersActionBar","actionType","DIALOG_WIDTH","VIEW_HEIGHT","MULTI_SECTION_CLOCK_SECTION_WIDTH","PickersShortcuts","resolvedItems","ListItem","PickersLayoutRoot","shortcuts","actionBar","PickersLayoutContentWrapper","contentWrapper","PickersLayout","_slots$actionBar","_slots$shortcuts","innerSlots","innerSlotProps","landscape","ActionBar","actionBarProps","Toolbar","toolbarProps","toolbarHasView","Tabs","Shortcuts","shortcutsProps","useDesktopPicker","_innerSlotProps$toolb","_innerSlotProps$toolb2","_slots$inputAdornment","_slots$openPickerButt","_slots$layout","getOpenDialogAriaText","pickerParams","internalInputRef","isToolbarHidden","pickerFieldProps","inputAdornment","inputAdornmentProps","OpenPickerButton","openPickerButton","_useSlotProps2","openPickerButtonProps","OpenPickerIcon","openPickerIcon","Field","slotsForField","textField","clearButton","Layout","labelledById","renderPicker","ArrowDropDownIcon","ArrowLeftIcon","ArrowRightIcon","CalendarIcon","DateRangeIcon","TimeIcon","ClearIcon","isQueryResponseWithoutValue","saveQuery","useField","selectedSectionIndexes","clearValue","clearActiveSection","updateSectionValue","updateValueFromValueStr","setTempAndroidValueStr","sectionsValueBoundaries","fieldValueManager","internalProps","referenceDateProp","valueFromTheOutside","maxDaysInMonth","minimum","maximum","daysInWeek","lastHourInDay","getSectionsBoundaries","fallbackSections","stateWithoutReferenceDate","tempValueStrAndroid","_SECTION_TYPE_GRANULA","getSectionTypeGranularity","innerSetSelectedSections","selectedSectionQuery","shouldSelectBoundarySelectors","selectedSectionIndex","publishValue","setSectionValue","sectionIndex","newSectionValue","activeSection","activeDateManager","hasNoOtherNonEmptySections","newValues","shouldGoToNextSection","newActiveDateSections","shouldSkipWeekDays","sectionFormats","sectionValues","formatWithoutSeparator","dateWithoutSeparatorStr","getDateFromDateSections","newReferenceValue","useFieldState","unstableFieldRef","minutesStep","forwardedProps","onPaste","clearable","otherForwardedProps","applyCharacterEditing","resetCharacterQuery","setQuery","resetQuery","_sections$query$secti","applyQuery","keyPressed","getFirstSectionValueMatchingWithQuery","isValidQueryValue","cleanKeyPressed","concatenatedQueryValue","queryResponse","findMatchingOptions","queryValue","matchingValues","testQueryOnFormatAndFallbackFormat","fallbackFormat","formatFallbackValue","fallbackOptions","fallbackValue","applyLetterEditing","getNewSectionValue","queryValueNumber","applyNumericEditing","useFieldCharacterEditing","focusTimeoutRef","sectionOrder","neighbors","leftIndex","rightIndex","rtl2ltr","ltr2rtl","groupedSectionsStart","groupedSectionsEnd","RTLIndex","_section$endSeparator","rtlIndex","getSectionOrder","syncSelectionFromDOM","browserStartIndex","nextSectionIndex","handleInputClick","handleInputMouseUp","handleInputFocus","handleInputBlur","handleInputPaste","pastedValue","lettersOnly","digitsOnly","digitsAndLetterOnly","targetValue","eventData","shouldUseEventData","prevValueStr","startOfDiffIndex","endOfDiffIndex","activeSectionEndRelativeToNewValue","handleInputKeyDown","activeDate","stepsAttributes","getDeltaFromKeyCode","isStart","isEnd","shouldSetAbsolute","getCleanValue","newSectionValueNumber","adjustDigitSection","currentOptionIndex","adjustLetterSection","adjustSectionValue","firstSelectedSection","lastSelectedSection","currentScrollTop","inputError","_state$tempValueStrAn","inputMode","inputHasFocus","areAllSectionsEmpty","shouldShowPlaceholder","getActiveSectionIndex","_selectionStart2","browserEndIndex","activeSectionIndex","handleClearValue","_inputRef$current","DATE_VALIDATION_PROP_NAMES","TIME_VALIDATION_PROP_NAMES","DATE_TIME_VALIDATION_PROP_NAMES","VALIDATION_PROP_NAMES","extractValidationProps","extractedProps","SHARED_FIELD_INTERNAL_PROP_NAMES","splitFieldInternalAndForwardedProps","extractProp","useClearableField","forwardedFieldProps","ForwardedInputProps","_slots$clearButton","_slotProps$clearButto","_slots$clearIcon","_slotProps$clearIcon","ClearButton","iconButtonProps","EndClearIcon","endClearIconProps","DateField","_slots$textField","_slotProps$textField","externalInputRef","textFieldProps","_useDateField","_props$disablePast","_props$disableFuture","_props$format","useDefaultizedDateField","useDateField","ProcessedInputProps","processedFieldProps","useIsDateDisabled","getPickersFadeTransitionGroupUtilityClass","PickersFadeTransitionGroupRoot","PickersFadeTransitionGroup","transKey","getPickersDayUtilityClass","pickersDayClasses","disableMargin","outsideCurrentMonth","showDaysOutsideCurrentMonth","disableHighlightToday","dayWithMargin","dayOutsideMonth","hiddenDaySpacingFiller","PickersDayRoot","PickersDayFiller","PickersDayRaw","isAnimating","onDaySelect","isToday","isHiddenDaySpacingFiller","PickersDay","replaceClassName","origClass","classToRemove","CSSTransition","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","activeClassName","doneClassName","_addClass","_this$appliedClasses$","getPickersSlideTransitionUtilityClass","pickersSlideTransitionClasses","PickersSlideTransitionRoot","slideEnterActive","slideExit","slideTransition","getDayCalendarUtilityClass","PickersCalendarDayRoot","PickersCalendarDayHeader","PickersCalendarWeekDayLabel","weekDayLabel","PickersCalendarWeekNumberLabel","weekNumberLabel","PickersCalendarWeekNumber","PickersCalendarLoadingContainer","loadingContainer","PickersCalendarSlideTransition","slideDirection","enterActive","exitActive","transitionClasses","PickersCalendarWeekContainer","monthContainer","PickersCalendarWeek","weekContainer","WrappedDay","_slots$day","_slotProps$day","parentProps","focusableDay","selectedDays","currentMonthNumber","isViewFocused","isMonthSwitchingAnimating","isFocusableDay","isSelected","selectedDay","Day","dayProps","isFirstVisibleCell","isLastVisibleCell","DayCalendar","onFocusedDayChange","currentMonth","focusedDay","onSelectedDaysChange","onMonthSwitchingAnimationEnd","renderLoading","dayOfWeekFormatter","dayOfWeekFormatterFromProps","gridLabelId","displayWeekNumber","fixedWeekNumber","_day","internalHasFocus","setInternalHasFocus","internalFocusedDay","setInternalFocusedDay","handleDaySelect","focusDay","newFocusedDayDefault","nextAvailableMonth","closestDayToFocus","validSelectedDays","transitionKey","slideNodeRef","startOfCurrentWeek","weeksToDisplay","currentMonthWithTimezone","toDisplay","additionalWeeks","hasCommonWeek","_dayOfWeekFormatter","dayIndex","getPickersMonthUtilityClass","pickersMonthClasses","PickersMonthRoot","monthsPerRow","PickersMonthButton","monthButton","PickersMonth","_ref$current","getMonthCalendarUtilityClass","MonthCalendarRoot","MonthCalendar","useMonthCalendarDefaultizedProps","onMonthFocus","todayMonth","selectedMonth","focusedMonth","setFocusedMonth","changeHasFocus","newHasFocus","isMonthDisabled","dateToValidate","firstEnabledMonth","lastEnabledMonth","monthToValidate","handleMonthSelection","newDate","focusMonth","prevFocusedMonth","monthsInYear","handleMonthFocus","handleMonthBlur","monthNumber","monthText","monthLabel","getPickersYearUtilityClass","pickersYearClasses","PickersYearRoot","yearsPerRow","PickersYearButton","yearButton","PickersYear","getYearCalendarUtilityClass","YearCalendarRoot","YearCalendar","_themeProps$yearsPerR","useYearCalendarDefaultizedProps","onYearFocus","todayYear","selectedYear","focusedYear","setFocusedYear","isYearDisabled","yearToValidate","handleYearSelection","focusYear","prevFocusedYear","handleYearFocus","handleYearBlur","scrollerRef","tabbableButton","yearNumber","getPickersArrowSwitcherUtilityClass","PickersArrowSwitcherRoot","PickersArrowSwitcherSpacer","spacer","PickersArrowSwitcherButton","PickersArrowSwitcher","_slots$previousIconBu","_slots$nextIconButton","_slots$leftArrowIcon","_slots$rightArrowIcon","isNextDisabled","isNextHidden","onGoToNext","nextLabel","isPreviousDisabled","isPreviousHidden","onGoToPrevious","previousLabel","isHidden","goTo","PreviousIconButton","previousIconButton","previousIconButtonProps","NextIconButton","nextIconButton","nextIconButtonProps","LeftArrowIcon","leftArrowIcon","leftArrowIconProps","RightArrowIcon","rightArrowIcon","rightArrowIconProps","useMeridiemMode","meridiemMode","handleMeridiemChange","timeWithMeridiem","getPickersCalendarHeaderUtilityClass","pickersCalendarHeaderClasses","PickersCalendarHeaderRoot","PickersCalendarHeaderLabelContainer","labelContainer","PickersCalendarHeaderLabel","PickersCalendarHeaderSwitchViewButton","switchViewButton","switchViewIcon","PickersCalendarHeaderSwitchViewIcon","PickersCalendarHeader","_slots$switchViewButt","_slots$switchViewIcon","onMonthChange","SwitchViewButton","switchViewButtonProps","SwitchViewIcon","switchViewIconProps","isNextMonthDisabled","useNextMonthDisabled","isPreviousMonthDisabled","usePreviousMonthDisabled","nextIndexToOpen","PickerViewRoot","getDateCalendarUtilityClass","DateCalendarRoot","DateCalendarViewTransitionContainer","viewTransitionContainer","DateCalendar","_slots$calendarHeader","_slotProps$calendarHe","_themeProps$loading","_themeProps$openTo","_themeProps$views","_themeProps$reduceAni","_themeProps$renderLoa","useDateCalendarDefaultizedProps","defaultCalendarMonth","onYearChange","calendarState","changeFocusedDay","changeMonth","handleChangeMonth","disableSwitchToMonthOnDayFocus","reducerFn","newMonth","needMonthSwitch","withoutMonthSwitchingAnimation","createCalendarStateReducer","externalReferenceDate","newDateRequested","newFocusedDate","useCalendarState","minDateWithDisabled","maxDateWithDisabled","CalendarHeader","calendarHeader","calendarHeaderProps","handleDateMonthChange","closestEnabledDate","handleDateYearChange","handleSelectedDayChange","baseDateValidationProps","commonViewProps","prevOpenViewRef","renderDateViewCalendar","DesktopDatePicker","_defaultizedProps$yea","_defaultizedProps$slo2","_props$localeText$ope","_props$localeText","defaultizedProps","_defaultizedProps$slo","getDialogUtilityClass","DialogBackdrop","DialogRoot","DialogContainer","DialogPaper","paperFullWidth","fullScreen","paperFullScreen","paperScrollBody","ariaLabelledbyProp","backdropClick","ariaLabelledby","dialogContextValue","PickersModalDialogRoot","PickersModalDialogContent","DialogContent","PickersModalDialog","_slots$dialog","_slots$mobileTransiti","Dialog","dialog","mobileTransition","mobilePaper","useMobilePicker","innerFn","MobileDatePicker","DatePicker","desktopModeMediaQuery","ensureStartOfDay","ensureEndOfDay","propsTonight","maxStartDate","setMaxStartDate","minEndDate","setMinEndDate","currentEndDate","currentStartDate","handleChangeStartDate","handleChangeEndDate","_path2","_path3","clipRule","defaultRemoving","confirmationType","retry","chartRemoval","decommissioning","deploymentContinuation","deploymentAbort","integrationRemoval","webhooksRemoval","EditButton","Edit","ConfirmationButtons","Check","Close","setClassName","setLoading","isEditing","setIsEditing","gatewayIcon","attributeComponentMap","adornments","isApplicable","mender_is_gateway","isEditable","hasAdornment","idValue","EndAdornment","getTableCellUtilityClass","TableCellRoot","stickyHeader","TableCell","paddingProp","scopeProp","sizeProp","sortDirection","tablelvl2","isHeadCell","ariaSort","getToolbarUtilityClass","ToolbarRoot","_LastPageIcon","_FirstPageIcon","_KeyboardArrowRight","_KeyboardArrowLeft","_KeyboardArrowLeft2","_KeyboardArrowRight2","_FirstPageIcon2","_LastPageIcon2","backIconButtonProps","getItemAriaLabel","onPageChange","rowsPerPage","showFirstButton","showLastButton","LastPage","FirstPage","getTablePaginationUtilityClass","_InputBase","TablePaginationRoot","TablePaginationToolbar","TablePaginationSpacer","TablePaginationSelectLabel","selectLabel","TablePaginationSelect","selectIcon","selectRoot","textAlignLast","TablePaginationMenuItem","menuItem","TablePaginationDisplayedRows","displayedRows","defaultLabelDisplayedRows","defaultGetAriaLabel","ActionsComponent","colSpan","colSpanProp","labelDisplayedRows","labelRowsPerPage","onRowsPerPageChange","rowsPerPageOptions","MenuItemComponent","selectId","rowsPerPageOption","defaultRowsPerPageOptions","MaybeWrapper","showCountInfo","pageNo","setPageNo","debouncedPage","newPage","pages","isAtPaginationLimit","KeyboardArrowLeft","KeyboardArrowRight","onChangeRowsPerPage","onChangePage","propsPage","actionProps","setTranslateValue","containerPropProp","containerRect","fakeTransform","offsetX","offsetY","transformValues","getTranslateValue","webkitTransform","Slide","defaultEasing","easingProp","childrenRef","getDrawerUtilityClass","docked","DrawerRoot","DrawerDockedRoot","DrawerPaper","oppositeDirection","anchorProp","ModalProps","BackdropPropsProp","SlideProps","anchorInvariant","getAnchor","slidingDrawer","DividerRoot","absolute","flexItem","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","dividerChannel","borderRightWidth","DividerWrapper","wrapperVertical","Divider","buttonStyle","Code","withDescription","copied","setCopied","_text","wordBreak","eventDetails","deviceLink","DetailInformation","deviceAuditlogType","usesId","deviceDetails","Launch","actor","change","User","sessionMeta","sessionDetails","setSessionDetails","MessagePack","msgpack5","byteArrayToString","blobToString","blob","fr","FileReader","readAsArrayBuffer","searchAddon","fitAddon","customKeyEventHandler","triggerResize","xtermRef","terminalRef","socket","playArrow","sessionInitialized","socketInitialized","setSocketInitialized","bufferIndex","setBufferIndex","isPlaying","setIsPlaying","wasStarted","setWasStarted","setIsPaused","isLoadingSession","setIsLoadingSession","fitTrigger","setFitTrigger","WebSocket","onopen","hdr","typ","delay_value","resetPlayer","onTogglePlayClick","PlayArrow","Pause","Refresh","xterm","generateHtml","CloudDownload","getDiffLineStyle","FallbackComponent","changeTypes","configChangeDescriptor","set_configuration","deploy_configuration","eventItem","mapChangeToContent","HelpOutline","DeviceFormatter","defaultAccess","changeMap","actionFormatter","accessCheck","deviceDecommissioned","deviceRejected","deviceGeneral","deviceTerminalSession","formatChange","actorMap","auditLogColumns","FormatterComponent","Comp","onChangeSorting","onIssueSelection","Sort","allowsExpansion","ArrowRightAlt","detailsMap","Deployment","gridColumnGap","gridRowGap","timeframe","typeDetails","upgradeNote","placeSelf","isUserOptionEqualToValue","autoSelectProps","locationDefaults","csvLoading","setCsvLoading","locationParams","setLocationParams","detailsReset","setDetailsReset","setDirtyField","initAuditlogState","resultList","newStartDate","onChangePagination","currentPerPage","onFiltersChange","selectedUser","detailOptions","object_type","newPerPage","currentSorting","setSize","useDeploymentDevice","deploymentName","hasDeviceInfo","mdi","statusMap","queued","RotateLeftOutlined","borderRightStyle","dualPanel","defaultDelimiter","phaseDelimiter","placeItems","ProgressChartComponent","Footer","footerProps","Header","headerProps","minimal","PhaseDelimiter","PhaseLabel","showDelimiter","Side","sideProps","commonProps","progressWidth","successWidth","failureWidth","getDisplayablePhases","currentPhase","totalFailureCount","totalSuccessCount","displayablePhase","expectedDeviceCountInPhase","leftoverDevices","possiblePhaseSuccesses","countedSuccesses","possiblePhaseFailures","countedFailures","possiblePhaseProgress","countedProgress","countedBatch","remainingWidth","displayablePhases","DeploymentStatusNotification","currentPhaseIndex","nextPhaseStart","phasesCount","Warning","getDeploymentPhasesInfo","deploymentPhases","reversedPhases","momentaryTime","borderLeftStyle","borderLeftWidth","continueButton","failureIcon","inactive","phaseInfo","phaseIndex","shortCircuitIndicators","substateIconMap","failed","ErrorRounded","pendingPause","stepTotalWidth","localClasses","substate","phaseSubstate","showDetails","PhaseProgressDisplay","stepWidth","substatesMap","currentPauseState","shortCutSuccesses","hasPauseDefined","pauseIndicator","determineSubstateStatus","confirmationStyle","progressStepNumber","onAbort","onUpdateControlChange","shouldContinue","setShouldContinue","shouldAbort","setShouldAbort","setIsLoading","totalPausedCount","canContinue","disableContinuationButtons","selectionAttribute","labelAttribute","onChangeSelection","setInputValue","infoStyle","hardCodedStyle","getDevicesLink","devicesLink","getDeploymentTargetText","ReleasesWarning","lacksReleases","ErrorOutline","Devices","groupRef","hasDevices","hasDynamicGroups","hasPending","setDeploymentSettings","deviceText","targetDeviceCount","targetDevicesText","Software","commonClasses","releaseRef","isLoadingReleases","setIsLoadingReleases","deploymentRelease","releaseSelectionLocked","releaseItems","onReleaseSelectionChange","onReleaseInputChange","releaseDeviceTypes","devicetypesInfo","resultsStatus","phaseStats","deploymentTypeClasses","DeploymentDeviceCount","DeploymentDeviceGroup","wrappingClass","DeploymentEndTime","DeploymentProgress","DeploymentStartTime","detailsButton","textWrapping","columnHeaders","openReport","setAbort","toggleConfirm","confirmation","ColumnComponent","class","CancelOutlined","KeyInfo","deploymentStateComponentMap","BaseDeploymentWidget","BaseDeploymentsWidget","stateMap","clickHandle","setSnackbarDispatched","deploymentsRef","getDeployments","onboardingComponent","BaseWidget","innerRef","targetLabel","devicesCount","widgetMain","issueTypes","alwaysShown","issueContainer","issueCounter","placeContent","issueWrapper","widget","relevantIssues","counterStyle","getFabUtilityClass","FabRoot","Fab","pendingDevicesCount","pendingNotification","pendingsRef","acceptedDevicesCount","availableIssueOptions","refreshDevices","issueRequests","showsDialog","deviceConnectionAnchor","pendingsAnchor","shouldShowActionableDevices","addOnPill","isAddOn","Info","paddingOnly","nestingBorders","topLevelBorder","mapLayerInformation","itemKey","contents","sortAndHoist","layerTitle","extractSoftwareInformation","softwareLayers","SoftwareLayer","overviewOnly","getLinearProgressUtilityClass","_t5","_t6","indeterminate1Keyframe","indeterminate2Keyframe","bufferKeyframe","getColorShade","LinearProgress","LinearProgressRoot","LinearProgressDashed","dashed","backgroundSize","LinearProgressBar1","bar1Indeterminate","bar1Determinate","bar1Buffer","LinearProgressBar2","bar2Indeterminate","bar2Buffer","valueBuffer","bar1","bar2","inlineStyles","containsDates","isArrayOfArrays","isNonEmptyArray","removeUndefined","getMaxValue","getMinValue","getDatumKey","datum","getKeyedData","keyedData","getKeyedDataDifference","hasDifference","_difference","getChildData","getInitialTransitionState","oldChildren","nextChildren","nodesWillExit","nodesWillEnter","getTransitionsFromChildren","oldChild","newChild","oldData","nextData","oldDataKeyed","nextDataKeyed","exiting","getTransition","childrenTransitions","nodesShouldEnter","getTransitionPropsFactory","nodesShouldLoad","nodesDoneLoad","transitionDurations","load","onLoad","onEnd","after","getChildOnLoad","clipWidth","getChildBeforeLoad","exitingNodes","getChildPropsOnExit","enteringNodes","getChildPropsOnEnter","getChildPropsBeforeEnter","getChildTransitionDuration","defaultTransitions","polar","defaultPolarTransitions","childTransitions","_animation","_animation2","getInitialChildProps","INITIAL_STATE","omit","originalObject","ks","newObject","getPoint","exists","_x1","_x0","_voronoiX","_y","_y1","_y0","_voronoiY","defaultX","defaultY","x0","y0","scalePoint","getPadding","paddingVal","paddingObj","isTooltip","getDefaultStyles","labelComponent","defaultStyles","tooltipStyle","labelStyle","getStyles","defaultParent","defaultLabels","defaultData","evaluateProp","evaluateStyle","disableInlineStyles","curr","degreesToRadians","degrees","radiansToDegrees","radians","_getPadding","getRange","startAngle","endAngle","innerRadius","getPolarRange","getCartesianRange","modifyProps","fallbackProps","traverseChildren","childArray","reduceChildren","initialMemo","combine","sharedProps","childRole","childName","nestedChildren","nestedChildProps","_childNames","nestedResults","childNames","USER_PROPS_SAFELIST","exactMatch","getSafeUserProps","propsToFilter","starterString","doesPropStartWith","isExactMatch","testIfSafeProp","withSafeUserProps","toTransformString","currentObj","transforms","getColorScale","scales","grayscale","heatmap","warm","cool","initRange","initInterpolator","interpolator","InternMap","keyof","_intern","intern_get","intern_set","intern_delete","band","bandwidth","ordinalRange","r1","paddingInner","paddingOuter","rescale","rangeRound","pointish","e10","e5","e2","tickSpec","log10","i1","i2","inc","ticks","tickIncrement","tickStep","ascending","descending","bisector","compare1","compare2","ascendingBisect","bisectRight","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","hsla","rgbConvert","rgb_formatHex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","v0","v3","displayable","formatHex8","formatHsl","nogamma","linear","rgbGamma","exponential","rgbSpline","spline","genericArray","reA","reB","am","bm","bs","bimap","interpolate","d0","polymap","bisect","piecewise","clamper","continuous","prefixExponent","formatSpecifier","specifier","FormatSpecifier","comma","formatDecimalParts","toExponential","formatRounded","formatPrefix","tickFormat","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","i0","maxIter","transformLog","transformExp","transformLogn","transformExpn","reflect","loggish","logs","pows","log2","logp","powp","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","radial","squared","unsquare","valueof","compareDefined","quantileSorted","value0","invertExtent","quantiles","quantize","thousands","currencyPrefix","currency","currencySuffix","numerals","formatNumerals","minus","nan","formatTypes","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","timeInterval","floori","offseti","utcMinute","setUTCSeconds","utcHour","timeDay","utcDay","setUTCHours","setUTCDate","unixDay","timeWeekday","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","utcMonth","setUTCMonth","timeYear","utcYear","ticker","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","utcDate","utcFormat","pads","numberRe","percentRe","requoteRe","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekNumberMonday","parseFullYear","parseYear","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","quantile","k21","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","locale_dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","locale_shortWeekdays","shortDays","locale_months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","utcFormats","parses","parseSpecifier","newParse","utcParse","formatLocale","supportedScaleStrings","validScale","isScaleDefined","getScaleTypeFromData","processedData","getScaleFromName","toNewName","getBaseScale","getScaleFromProps","defaultScale","getScaleFromDomain","getScaleType","getType","getScaleTypeFromProps","DUCK_TYPES","scaleType","IMMUTABLE_ITERABLE","IMMUTABLE_RECORD","IMMUTABLE_LIST","isIterable","shallowToJS","isList","parseDatum","isRecord","errorX","errorY","generateDataArray","samples","domainMax","domainMin","sortData","dataset","sortKey","sortOrder","createStringMap","stringsFromAxes","getStringsFromAxes","stringsFromCategories","getStringsFromCategories","stringsFromData","dataArr","getStringsFromData","allStrings","formatData","expectedKeys","stringMap","defaultKeys","preformattedData","fallbackValues","processedValues","formattedDatum","cleanedData","smallNumber","sanitize","cleanData","hasEventKeyAccessor","eventKey","eventKeyAccessor","getEventKey","addEventKeys","getCategories","categories","xValues","yValues","generateData","tickValues","categoryStrings","isDataComponent","getRole","getExtremeFromData","getExtreme","containsDate","current0","current1","createDomainFunction","getDomainFromDataFunction","formatDomainFunction","formatDomain","propsDomain","getDomainFromProps","_props$startAngle","_props$endAngle","minDomain","getMinFromProps","maxDomain","getMaxFromProps","stringArray","categoryValues","categoryDomain","getDomainFromMinMax","getSymmetricDomain","getDomainFromCategories","almostZero","dom","cleanDomain","domainPadding","formatPadding","getDomainPadding","currentAxis","rangeExtent","paddedRangeExtent","paddedDomainExtent","simplePadding","paddedDomain","singleQuadrantDomainPadding","adjust","initialPadding","adjustedDomain","finalPadding","finalDomain","padDomain","_props$startAngle2","_props$endAngle2","axisKey","getFlatData","verySmallNumber","minVal","maxVal","getDomainWithZero","y0Min","defaultMin","maxDomainProp","minDomainProp","ensureZero","isDomainComponent","GLOBAL_EVENT_REGEX","getScopedEvents","_this$componentEvents","getEventsByTarget","targetEvents","selectedEvents","targetKeys","useKey","allEvents","componentEvents","ownEvents","sharedEvents","getSharedEvents","namespace","childType","baseProps","getTargetProps","baseType","parseEvent","eventReturn","getMutationObject","mutationTargetProps","mutationTargetState","mutatedProps","childState","extendState","filterState","getReturnByChild","mutationKeys","getKeys","allChildNames","onEvent","evt","eventName","callbacks","getCallback","callbackArray","evtObj","compileCallbacks","parseEventReturn","getPartialEvents","getEventState","mutations","keyState","keyProps","getExternalMutation","filterMutations","scopedMutations","targetMutations","keyMutations","currentMutation","getComponentEvents","_memo","defaultEvents","getGlobalEventNameFromKey","getGlobalEvents","omitGlobalEvents","emulateReactEvent","groupLength","seriesLength","datasets","extent","bars","childComponents","groupComponent","_groupComponent$0$pro","barWidth","nestedChild","getDefaultDomainPadding","dataDomain","childDomain","parentData","baseParentProps","childDomains","getDomain","getDomainFromChildren","childScale","getCategoryAndAxisStringsFromChildren","axisComponent","findAxes","findAxisComponents","getAxis","axisStrings","makeChainable","createChainable","nullConstructor","undefinedConstructor","getConstructor","getConstructorName","allOfType","nonNegative","integer","CommonProps","comparisonConstructor","typeMismatchedValue","constructorName","otherConstructorName","dataProps","dataComponent","containerComponent","externalEventMutations","primitiveProps","shapeRendering","portalRegister","portalUpdate","portalDeregister","PortalContext","taskHead","taskTail","pokeDelay","clockLast","clockNow","clockSkew","clock","setFrame","clearNow","Timer","_call","_time","_next","restart","wake","timerFlush","sleep","nap","poke","shouldAnimate","subscribers","activeSubscriptions","subscriptionID","TimerContext","transitionTimer","animationTimer","VictoryContainer","containerId","shouldHandleWheel","savePortalRef","portal","saveContainerRef","onWheel","elementName","ouiaId","ouiaSafe","ouiaType","svgProps","portalComponent","portalZIndex","responsive","divStyle","touchAction","portalDivStyle","svgStyle","portalSvgStyle","portalProps","preserveAspectRatio","getOUIAProps","getIdForElement","userProps","renderContainer","charcoal","colorScale","baseLabelStyles","centeredLabelStyles","textAnchor","strokeLinecap","strokeLinejoin","axisLabel","tickLabels","boxplot","maxLabels","median","medianLabels","minLabels","q1Labels","q3","q3Labels","boxWidth","candlestick","candleColors","chart","errorbar","histogram","legend","gutter","titleOrientation","scatter","flyoutStyle","flyoutPadding","cornerRadius","pointerLength","voronoi","flyout","blueGrey50","blueGrey300","blueGrey700","grey900","VictoryTheme","material","polarDependentAxis","VictorySharedEvents","getBaseProps","sharedEventsCache","globalEvents","prevGlobalEventKeys","boundGlobalEvents","externalMutations","getExternalMutations","applyExternalMutations","globalEventKeys","addGlobalListener","removeGlobalListener","_this5","boundListener","compiledCallbacks","cacheValues","prevCacheValues","childBaseProps","getBasePropsFromChildren","parentBaseProps","_baseProps","_this6","alterChildren","newChildren","childEvents","sharedEventsCacheValues","getCachedSharedEvents","evts","cacheSharedEvents","_this7","getNewChildren","parents","containerProps","boundGetEvents","parentEvents","containerEvents","localEvents","getAllEvents","stackData","filterNullChildData","childBins","bins","xAccessor","getFormattedHistogramData","getFormattedData","addBinsToParentPropsIfHistogram","childData","fillInMissingData","xMap","xKeys","xArr","indexOffset","filledInData","fillData","xOffset","yOffset","firstDatasetBaseline","previousPoints","previousDatum","getY0","addLayoutData","getCalculatedProps","xPropCategories","yPropCategories","xStrings","yStrings","dataStrings","xName","yName","getStringsFromChildren","xCategories","yCategories","baseScale","useMemoizedProps","initialProps","modifiedProps","modifiedChildren","_child","withoutSharedEvents","setProps","colorScaleOptions","calculatedProps","getChildProps","parentName","childStyle","defaultFill","defaultColor","dataWidth","dataStyle","labelsStyle","getLabels","VictoryStackBase","VictoryStack","_Hooks$useAnimationSt","_setState","oldState","getAnimationProps","getTransitions","filteredState","parentState","childComponent","setAnimationState","oldProps","isContinuous","_Transitions$getIniti","_nodesWillExit","getProps","defaultContainerProps","componentConfig","expectedComponents","getLabelPlacement","labelPlacement","defaultLabelPlacement","getText","getDegrees","getPolarTextAnchor","verticalAnchor","getTextAnchor","getPolarOrientation","getPolarVerticalAnchor","getVerticalAnchor","getAngle","_getPosition","_Helpers$scalePoint","polarPadding","getPolarPadding","_getOffset","defaultPadding","getOffset","labelProps","tooltipTheme","_getPadding2","defaultBaseline","minDomainX","maxDomainX","minDomainY","maxDomainY","underMin","overMax","isUnderMinX","isUnderMinY","isOverMaxX","isOverMaxY","baseline","getCalculatedValues","alignment","barRatio","initialChildProps","_getBarPosition","getDefaultMin","minY","maxY","getBarPosition","epsilon","halfPi","tau","asin","tauEpsilon","_append","appendRound","moveTo","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","ccw","cw","arcInnerRadius","arcOuterRadius","outerRadius","arcStartAngle","arcEndAngle","arcPadAngle","padAngle","cornerTangents","ox","oy","x11","y11","x10","y10","x00","y00","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cy","padRadius","withPath","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","x3","y3","x32","y32","intersect","bx","scalarMult","scalarDivide","hasIntersection","circle1","P0","P1","P2","P3s","Point1","Point2","solveX","solveY","transformAngle","mapPointsToPath","topLeftPath","topRightPath","topRight","bottomLeftPath","bottomLeft","bottomRightPath","bottomRight","getBarPath","getCustomBarPath","getHalfPoints","isTop","signL","leftPoint","leftMiddlePoint","rightMiddlePoint","rightPoint","leftCenter","leftCircle","rightCenter","rightCircle","circleIntersection","arcIntersection","newY","_newY","topPoints","bottomPoints","getHorizontalBarPoints","getHorizontalBarPath","isLeft","bottomPoint","bottomMiddlePoint","topMiddlePoint","topPoint","topCenter","topCircle","bottomCenter","bottomCircle","_newX","getVerticalBarPoints","getVerticalBarPath","evaluateProps","baseStyle","defaultBarWidth","defaultWidth","getBarWidth","realCornerRadius","updateCornerRadius","getCornerRadiusFromObject","getCornerRadius","Bar","currentAngle","angularRange","getAngularWidth","previousAngle","getStartAngle","lastAngle","nextAngle","getEndAngle","pathFunction","getPathData","rightPath","rightMoves","rightCoords","rightMiddle","leftPath","leftMoves","leftCoords","leftMiddle","topPath","moves","arcLength","_getPathData","leftOffset","isShort","middle","rightOffset","defaultOffset","_defaultOffset","subMoves","subCoords","getTopPath","bottomPath","_getPathData2","getBottomPath","getVerticalPolarBarPath","getPolarBarPath","defaultTransform","pathComponent","VictoryPortal","checkedContext","renderInPlace","portalKey","standardProps","renderPortal","Rect","vectorEffect","Text","TSpan","fonts","widths","avg","Arial","Baskerville","Courier","cursive","fantasy","Geneva","Georgia","Helvetica","monospace","Overpass","Palatino","Seravek","serif","Tahoma","Verdana","absoluteMeasurementUnitsToPixels","relativeMeasurementUnitsCoef","em","ex","defaultStyle","_splitToLines","_getSizeWithRotate","axisSize","dependentSize","angleInRadian","_degreeToRadian","convertLengthToPixels","_length$match","_prepareParams","inputStyle","lineStyle","_approximateTextWidthInternal","possibleFonts","fontMatch","_prepareParams2","fontData","_getMeasurementContainer","styleToKeyComponent","_measureDimensionsInternal","heightAcc","textElement","totalText","totalStyle","_approximateTextSizeInternal","__debugForceApproximate","_approximateTextHeightInternal","_approximateDimensionsInternal","approximateTextSize","dimension","getFontSize","baseSize","getSingleValue","shouldUseMultilineBackgrounds","backgroundStyle","backgroundPadding","getXCoordinate","labelSizeWidth","getYCoordinate","textHeight","_calculatedProps$orig","originalDy","getBackgroundElement","tspanValues","backgroundComponent","inline","textElements","labelSize","textSize","totalLineHeight","prevPadding","childDy","capHeight","heightWithPadding","widthWithPadding","xCoordinate","yCoordinate","xCoord","getInlineXOffset","yCoord","backgroundProps","getChildBackgrounds","_calculatedProps$dx","textSizes","tspan","capHeightAdjustment","getFullBackground","getTSpanDy","previousHeight","currentHeight","previousCaps","currentCaps","calculateSpanDy","getLineHeight","fontSizes","lineHeights","allHeights","getDy","defaultAngle","baseAngle","transformPart","rotate","getTransform","VictoryLabel","baseStyles","getSingleStyle","getBackgroundStyles","getBackgroundPadding","capHeightPx","currentLineHeight","tspanComponent","textComponent","textProps","tspans","tspanProps","renderLabel","backgroundWithLabel","renderInPortal","quadIn","quadOut","quadInOut","cubicIn","cubicOut","cubicInOut","polyIn","polyOut","polyInOut","sinIn","sinOut","sinInOut","tpmt","expIn","expOut","expInOut","circleIn","circleOut","circleInOut","bounceIn","bounceOut","bounceInOut","overshoot","backIn","backOut","backInOut","elasticIn","amplitude","elasticOut","elasticInOut","isInterpolatable","POSITIVE_INFINITY","NEGATIVE_INFINITY","interpolateImmediate","when","interpolateFunction","interpolateObject","interpolateTypes","keyData","VictoryAnimation","loopID","functionToBeRunEachFrame","animationInfo","terminating","traverseQueue","_this$queue","interpolateString","victoryInterpolator","VictoryTransition","bypassAnimation","getTransitionState","resumeAnimation","getChildDomains","_props$animate","getDefaultClipWidth","_this$props$animate","pickProps","pickDomainProps","getClipWidth","combinedProps","animationWhitelist","propsToAnimate","datumHasXandY","defaultComponents","addEvents","WrappedComponent","AddEventsMixin","_WrappedComponent","calculatedState","getStateChanges","newMutation","hasEvents","getSharedEventState","stateChanges","dataKeys","sharedParentState","parentPropsList","parentControlledProps","baseEvents","getComponentProps","defaultAnimationWhitelist","_this8","labelComponents","_this9","shouldRenderDatum","dataComponents","validDataComponents","_dataKey","VictoryBar","animateComponent","renderData","sliceStartAngle","sliceEndAngle","Slice","styleObject","defaultRadius","slices","sortValues","arcs","layoutFunction","getSlices","getSliceStyle","calculatedValues","labelPosition","VictoryPie","y_","disableInlineStyes","labelRadius","getLabelText","evaluatedText","labelArc","arcRadius","getLabelArc","clonedArc","getLabelPosition","getBaseLabelAngle","labelAngle","getLabelAngle","degree","getLabelOrientation","getLabelProps","seriesOther","createColorClassName","hexColor","svgIconClasses","legendItem","barColorPrimary","ChartLegend","showIndicators","tip","Square","VictoryBarChart","totals","chartData","setChartData","ChartContainer","PieChart","chartTypeComponentMap","chartProps","additionButton","buttonWrapper","iconButtonClasses","formWrapper","getIndentation","chartOptions","Selector","FormControl","InputLabel","ChartEditWidget","onSave","selectionProp","addCurrentSelection","changedSelection","RemovalWidget","onAdditionClick","adding","setAdding","LeafletContext","LeafletProvider","useLeafletContext","MapContainer","whenCreated","mapRef","setMap","boundsOptions","useMapElement","createdRef","__version","createContainerComponent","useElement","createLeafComponent","LeafComponent","createElementHook","updateElement","propsRef","useAttribution","attributionRef","useEventHandlers","eventHandlersRef","withPane","useLayerLifecycle","layerContainer","_context$layerContain","createLayerHook","createControlComponent","positionRef","AttributionControl","ZoomControl","overlayContainer","useLifecycle","useOverlay","createDivOverlayHook","onTooltipOpen","onTooltipClose","tooltipopen","tooltipclose","OverlayComponent","contentNode","createDivOverlayComponent","createOverlayComponent","getAvatarUtilityClass","AvatarRoot","colorDefault","Avatar","defaultBg","AvatarImg","objectFit","textIndent","AvatarFallback","Person","imgProps","srcSet","setLoaded","Image","srcset","useLoaded","hasImg","hasImgNotFailing","sharedStyle","new","DeviceClusterIcon","clusterState","needsContext","getMarkerClass","WifiOffOutlined","clusterEvents","clusterProps","clusterEvent","createPathComponent","optionsRef","pathOptions","usePathOptions","MarkerContext","EventsLayer","onMapMoved","debouncedBounds","useMapEvent","pinIcon","tooltipOffset","mapProps","getClusterIcon","markerClass","fallbackCenter","setGroup","setItems","boundaries","reportTypes","distribution","softwareTree","groupSelection","chartTypeSelection","softwareSelection","editing","setEditing","removing","setRemoving","setChartType","setSoftware","numberOfItems","initDistribution","onSliceClick","toggleRemoving","onToggleEditClick","Chart","couldHaveDevices","Settings","Clear","getLayerKey","generateLayer","softwareLayer","parentKey","layerKey","headerItems","childLayer","layerData","reportsData","onGetGroupDevices","onGetDevicesInBounds","enhancedAttributes","rootFs","flatMap","listSoftware","removeReport","removedReport","onSaveChangedReport","board","redirect","cachedType","detectScrollType","dummy","getNormalizedScrollLeft","easeInOutSin","getTabScrollButtonUtilityClass","TabScrollButtonRoot","_slots$StartScrollBut","_slots$EndScrollButto","StartButtonIcon","StartScrollButtonIcon","EndButtonIcon","EndScrollButtonIcon","startButtonIconProps","startScrollButtonIcon","endButtonIconProps","endScrollButtonIcon","getTabsUtilityClass","TabsRoot","scrollButtons","scrollButtonsHideMobile","TabsScroller","scroller","fixed","hideScrollbar","scrollableX","scrollableY","scrollbarWidth","FlexContainer","flexContainer","flexContainerVertical","centered","TabsIndicator","indicatorColor","TabsScrollbarSize","scrollbarHeight","setMeasurements","prevHeight","defaultIndicatorStyle","ariaLabelledBy","allowScrollButtonsMobile","ScrollButtonComponent","selectionFollowsFocus","TabIndicatorProps","TabScrollButtonProps","visibleScrollbar","scrollable","scrollStart","startScrollButtonIconProps","endScrollButtonIconProps","setMounted","indicatorStyle","setIndicatorStyle","displayStartScroll","setDisplayStartScroll","displayEndScroll","setDisplayEndScroll","updateScrollObserver","setUpdateScrollObserver","scrollerStyle","setScrollerStyle","valueToIndex","tabsRef","tabListRef","getTabsMeta","tabsNode","tabsMeta","tabMeta","scrollLeftNormalized","updateIndicatorState","startIndicator","startValue","correction","newIndicatorStyle","dStart","dSize","scrollValue","cancelled","moveTabsScroll","getScrollSize","containerSize","totalSize","handleStartScrollClick","handleEndScrollClick","handleScrollbarSizeChange","scrollSelectedIntoView","nextScrollStart","updateScrollButtonState","mutationObserver","MutationObserver","records","record","removedNodes","_resizeObserver","unobserve","addedNodes","_resizeObserver2","childList","_mutationObserver","_resizeObserver3","tabListChildren","firstTab","lastTab","observerOptions","firstObserver","lastObserver","updateIndicator","updateScrollButtons","childValue","conditionalElements","scrollbarSizeListener","showScrollButtons","scrollButtonStart","scrollButtonEnd","getConditionalElements","previousItemKey","nextItemKey","getTabUtilityClass","TabRoot","labelIcon","iconPosition","iconWrapper","Tab","getFormGroupUtilityClass","FormGroupRoot","AccordionRoot","region","overflowAnchor","borderBottomLeftRadius","borderBottomRightRadius","Accordion","defaultExpanded","expandedProp","setExpandedState","summary","AccordionSummaryRoot","AccordionSummaryContent","AccordionSummaryExpandIconWrapper","expandIconWrapper","expandIcon","getAccordionDetailsUtilityClass","AccordionDetailsRoot","defaultCreateStyledComponent","useThemePropsDefault","joinChildren","directionValues","spacingValues","previousDirectionValue","useFlexGap","createStyledComponent","StackRoot","createStack","getFormControlLabelUtilityClasses","FormControlLabelRoot","FormControlLabel","_slotProps$typography","labelProp","requiredProp","controlProps","typographySlotProps","getSwitchBaseUtilityClass","SwitchBaseRoot","SwitchBaseInput","SwitchBase","checkedProp","checkedIcon","setCheckedState","hasLabelFor","newChecked","getCheckboxUtilityClass","CheckboxRoot","indeterminate","defaultCheckedIcon","CheckBox","defaultIcon","CheckBoxOutlineBlank","defaultIndeterminateIcon","IndeterminateCheckBox","Checkbox","_icon$props$fontSize","_indeterminateIcon$pr","indeterminateIcon","indeterminateIconProp","getTableRowUtilityClass","TableRowRoot","defaultComponent","TableRow","getTableUtilityClass","TableRoot","borderCollapse","borderSpacing","captionSide","Table","getTableHeadUtilityClass","TableHeadRoot","getTableBodyUtilityClass","TableBodyRoot","delayInputWrapper","patternSelection","timeframes","tableHeaders","PhaseSettings","disableAdd","mappedPhases","newPhases","updateBatchSize","getPhaseStartTime","updateDelay","handleDelayToggle","removePhase","RolloutPatternSelection","disableSchedule","deploymentDeviceIds","usesPattern","setUsesPattern","onUsesPatternClick","customPattern","previousPhaseOptions","previousPhaseSetting","updatedPhases","phaseStart","minBatch","connector","connectorArrowWrapper","connectorWrapper","pauseConnector","stepChip","stepActions","defaultStep","defaultSteps","ArtifactDownload","ArtifactInstall_Enter","ArtifactReboot_Enter","ArtifactCommit_Enter","RolloutStepConnector","onStepChange","onTogglePauseClick","stepModifier","toggleButton","pauseChip","stepPauseChip","ArrowRight","RolloutSteps","mappableSteps","defaultBox","heading","retryInput","ForceDeploy","forceDeploy","setForceDeploy","RolloutOptions","Retries","onSaveRetriesSetting","currentAttempts","setCurrentAttempts","debouncedAttempts","validateDateTime","dateValidationResult","shouldDisableClock","shouldDisableTime","validateTime","DateTimeField","_useDateTimeField","_props$ampm","_props$minDateTime","_props$maxDateTime","_props$minDateTime2","_props$maxDateTime2","minDateTime","maxDateTime","useDefaultizedDateTimeField","useDateTimeField","getDateTimePickerTabsUtilityClass","viewToTab","DateTimePickerTabsRoot","DateTimePickerTabs","dateIcon","timeIcon","getPickersToolbarTextUtilityClass","pickersToolbarTextClasses","PickersToolbarTextRoot","PickersToolbarText","PickersToolbarButtonRoot","PickersToolbarButton","typographyClassName","getDateTimePickerToolbarUtilityClass","dateTimePickerToolbarClasses","dateContainer","timeContainer","timeDigitsContainer","ampmSelection","ampmLabel","DateTimePickerToolbarRoot","toolbarVariant","isMobileKeyboardViewOpen","toggleMobileKeyboardView","viewType","DateTimePickerToolbarDateContainer","DateTimePickerToolbarTimeContainer","DateTimePickerToolbarTimeDigitsContainer","DateTimePickerToolbarSeparator","DateTimePickerToolbarAmPmSelection","ampmLandscape","DateTimePickerToolbar","ampmInClock","showAmPmControl","isDesktop","formatHours","useDateTimePickerDefaultizedProps","_themeProps$ampm","_themeProps$orientati","_themeProps$disableIg","_themeProps$minDateTi","_themeProps$maxDateTi","_themeProps$minDateTi2","_themeProps$maxDateTi2","getMultiSectionDigitalClockSectionUtilityClass","multiSectionDigitalClockSectionClasses","DateTimeViewWrapper","getTimeClockUtilityClass","CLOCK_WIDTH","CLOCK_HOUR_WIDTH","clockCenter","getAngleValue","deg","getClockPointerUtilityClass","thumb","ClockPointerRoot","ClockPointerThumb","hasSelected","ClockPointer","isInner","previousType","getAngleStyle","getClockUtilityClass","ClockRoot","ClockClock","ClockWrapper","ClockSquareMask","squareMask","ClockPin","pin","ClockAmButton","amButton","ClockPmButton","pmButton","ClockMeridiemText","meridiemText","Clock","isTimeDisabled","isMoving","isSelectedTimeDisabled","isPointerInner","isFinish","newSelectedValue","keyboardControlStep","getClockNumberUtilityClass","clockNumberClasses","ClockNumberRoot","ClockNumber","getHourNumbers","getClockNumberText","currentHours","hourNumbers","endHour","getMinutesNumbers","useClockReferenceDate","TimeClockRoot","TimeClockArrowSwitcher","arrowSwitcher","TIME_CLOCK_DEFAULT_VIEWS","TimeClock","valueOrReferenceDate","shouldCheckPastEnd","containsValidTime","isValidValue","timeValue","valueWithMeridiem","dateWithNewHours","dateWithNewMinutes","dateWithNewSeconds","handleHoursChange","hourValue","minutesValue","handleMinutesChange","minuteValue","secondsValue","handleSecondsChange","secondValue","getDigitalClockUtilityClass","digitalClockClasses","DigitalClockRoot","scrollBehavior","alreadyRendered","DigitalClockList","DigitalClockItem","DigitalClock","_slots$digitalClockIt","_slotProps$digitalClo","timeStep","skipDisabled","handleRawValueChange","ClockItem","digitalClockItem","clockItemProps","handleItemSelect","selectedItem","valueToCheck","timeOptions","getMultiSectionDigitalClockUtilityClass","MultiSectionDigitalClockSectionRoot","MultiSectionDigitalClockSectionItem","MultiSectionDigitalClockSection","_slots$digitalClockSe","previousSelected","DigitalClockSectionItem","digitalClockSectionItem","_option$isDisabled","_option$isDisabled2","getHourSectionOptions","resolveAriaLabel","getTimeSectionOptions","resolveLabel","MultiSectionDigitalClockRoot","MultiSectionDigitalClock","timeSteps","inTimeSteps","inViews","handleMeridiemValueChange","handleSectionChange","sectionView","buildViewProps","viewToBuild","amLabel","pmLabel","viewTimeOptions","currentView","timeView","viewOptions","renderTimeViewClock","renderDigitalClockTimeView","renderMultiSectionDigitalClockTimeView","renderDesktopDateTimeView","shouldRenderTimeInASingleColumn","_resolveComponentProp","_slotProps$actionBar","isActionBarVisible","commonTimeProps","resolveDateTimeFormat","resolveViews","shouldUseSingleColumn","DesktopDateTimePicker","_defaultizedProps$amp","_defaultizedProps$slo3","_defaultizedProps$slo4","thresholdToRenderTimeInASingleColumn","inThreshold","_timeSteps$hours","_timeSteps$minutes","resolveShouldRenderTimeInASingleColumn","resolveTimeViewsResponse","shouldUseNewRenderer","actionBarActions","MobileDateTimePicker","DateTimePicker","pickerStyle","ScheduleRollout","isPickerOpen","setIsPickerOpen","handleStartTimeChange","start_time","accordion","heightAdjustment","onScheduleSubmit","hasDeltaEnabled","acceptedDeviceCount","needsDeploymentConfirmation","needsCheck","isOnboardingComplete","isCreating","setHasNewRetryDefault","isChecking","setIsChecking","isExpanded","setIsExpanded","deploymentAnchor","nextDeploymentObject","cleanUpDeploymentsStatus","closeWizard","onScheduleSubmitClick","retrySetting","autogenerate_delta","all_devices","origPhases","force_installation","deploymentSettings","hasReleases","ExpandMore","OnboardingComponent","groupAnchor","buttonAnchor","span","groupBorder","groupHeading","innerStyle","componentClass","listClass","showPagination","deploymentsPending","total_size","DialogTitleRoot","wrapperStyle","dialogTypes","logData","uriContent","progressStatus","DeploymentPhaseNotification","onReviewClick","statusDescription","statsBasedDeviceCount","finishedDeployment","phasesWithStats","defaultColumnDataProps","onItemClick","tableRef","renderTitle","stateTitleMap","determinedStateMap","statusColorMap","undefinedStates","deviceListColumns","canShow","softwareName","encodedArtifactName","isDelta","attempts","statusTitle","progressColor","devicePercentage","viewLog","ValueFileSize","currentPage","setCurrentPage","setPerPage","totalDevices","scheduleLink","statusWrapper","defaultLinkProps","creator","onScheduleClick","creationTime","isDeviceDeployment","isSoftwareDeployment","targetDevices","deploymentInfo","deploymentInfo2","currentPhaseInfo","maxPhaseWidth","phasesOverviewArrow","headerClass","currentPhaseStartTime","currentPhaseTime","endTime","deviceCountText","phaseObject","phaseTitle","isCurrentPhase","DeploymentAbortButton","aborting","setAborting","toggleAborting","Block","setDeviceId","rolloutSchedule","deploymentType","refreshDeployment","progressCount","scrollIntoView","isConfigurationDeployment","CheckCircleOutline","updatedMap","updatedStates","objectWithoutPropertiesLoose","assertThisInitialized","isProp","defaultKey","__reactInternalSnapshotFlag","__reactInternalSnapshot","__suppressDeprecationWarning","MILI","SECONDS","MINUTES","HOURS","DAY","DECADE","CENTURY","multiplierMilli","multiplierMonth","daysInFeb","nextDate","currentOffset","nextOffset","solveDST","addMillis","totalMonths","nextYear","daysOf","firstOfWeek","firstDay","createComparer","neq","inRange","createAccessor","hourLength","dateOut","rUpper","hyphenate","supportedTransforms","psuedoElement","isTransform","cssText","isWindow","DOCUMENT_NODE","getscrollAccessor","box","docElem","parentOffset","cancelMethod","rafImpl","canUseDOM","rafMethod","useCallbackRef","toFnRef","initialPopperStyles","disabledApplyStylesModifier","ariaDescribedByModifier","_popper$getAttribute","_state$elements2","EMPTY_MODIFIERS","referenceElement","popperElement","_ref3$enabled","_ref3$placement","_ref3$strategy","_ref3$modifiers","popperInstanceRef","_popperInstanceRef$cu","_popperInstanceRef$cu2","_useSafeState","useMounted","popperState","updateModifier","optionsSupported","onceSupported","wrappedHandler","__once","onceHandler","getRefTarget","onRootClose","_ref$clickTrigger","clickTrigger","preventMouseRootCloseRef","handleMouseCapture","_e$composedPath$","isLeftClickEvent","handleMouse","currentEvent","componentOrElement","safeFindDOMNode","removeMouseCaptureListener","removeMouseListener","removeKeyupListener","mobileSafariHackListeners","resolveContainerRef","useWaitForDOMRef","onResolved","_useState","resolvedRef","earlyRef","nextRef","toModifierArray","Overlay","outerRef","refA","refB","_props$containerPaddi","containerPadding","_props$popperConfig","popperConfig","_useCallbackRef","attachRef","_useCallbackRef2","attachArrowRef","mergedRef","mergeRefs","_usePopper","_modifiers$preventOve","_modifiers$preventOve2","_modifiers$offset","_modifiers$arrow","enableEvents","_ref$popperConfig","toModifierMap","mergeOptionsWithPopperConfig","mountOverlay","onHide","rootClose","rootCloseDisabled","rootCloseEvent","arrowProps","_PropTypes$func","client","matchesImpl","nativeMatch","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","stopAt","ELEMENT_NODE","safeIsNaN","areInputsEqual","newInputs","lastInputs","memoizeOne","resultFn","newArgs","lastThis","lastArgs","recalc","scrollDiv","_toArray","arrayBuffer","reFlags","isDeep","dataView","objectCreate","baseCreate","nodeIsMap","nodeIsSet","cloneableTags","baseClone","isFunc","subValue","NoopWrapper","WORK_WEEK","AGENDA","viewNames$1","MILLI","firstVisibleDay","localizer","firstOfMonth","lastVisibleDay","visibleDays","isJustDate","localePropType","culture","getSlotDate","minutesFromMidnight","getDstOffset","getTotalMin","getMinutesFromMidnight","daystart","continuesPrior","continuesAfter","sortEvents$1","_ref$evtA","evtA","aStart","aEnd","aAllDay","allDay","_ref$evtB","evtB","bStart","bEnd","bAllDay","startSort","durA","durB","inEventRange","_ref2$event","_ref2$range","rangeStart","rangeEnd","eStart","startsBeforeEnd","endsAfterStart","isSameDate","date1","date2","startAndEndAreDateOnly","DateLocalizer","spec","propType","sortEvents","segmentOffset","browserTZOffset","mergeWithDefaults","formatOverrides","messages","_format2","defaultMessages","work_week","yesterday","tomorrow","agenda","noEventsInRange","showMore","_excluded$7","EventCell","isAllDay","onDoubleClick","onKeyPress","_this$props$component","Event","EventWrapper","eventWrapper","slotStart","slotEnd","resizable","showAsAllDay","slotWidth","rowBox","getSlotAtX","rtl","cellWidth","handleDragStart","handleClickOutside","_getOffset2","cTop","cLeft","cWidth","cHeight","_getOffset3","bWidth","bHeight","viewBottom","viewRight","topOffset","onDragStart","onDragEnd","CalOverlay","_ref$popupOffset","popupOffset","handleSelectEvent","handleDoubleClickEvent","handleKeyPressEvent","overlayDisplay","PopOverlay","isEvent","elementFromPoint","getEventNodeFromPoint","getEventCoordinates","Selection","_ref3$global","_ref3$longPressThresh","longPressThreshold","_ref3$validContainers","validContainers","isDetached","globalMouse","_handleInitialEvent","_handleMoveEvent","_handleTerminatingEvent","_keyListener","_dropFromOutsideListener","_dragOverFromOutsideListener","_removeTouchMoveWindowListener","_removeKeyDownListener","_removeKeyUpListener","_removeDropFromOutsideListener","_removeDragOverFromOutsideListener","_addInitialEventListener","_removeInitialEventListener","_removeEndListener","_onEscListener","_removeMoveListener","_selectRect","selecting","objectsCollide","getBoundsForNode","initialEvent","removeTouchMoveListener","removeTouchEndListener","removeTouchStartListener","removeMouseDownListener","_addLongPressListener","_getEventCoordinates","_getEventCoordinates2","_getEventCoordinates3","isOverContainer","_normalizeDistance","normalizeDistance","_initialEventData","eventTarget","_getEventCoordinates4","inRoot","isWithinValidContainer","_isWithinValidContainer","isClick","_handleClickEvent","_getEventCoordinates5","_lastClickData","_this$_initialEventDa","_getEventCoordinates6","_this$_initialEventDa2","nodeA","nodeB","_getBoundsForNode","aTop","aLeft","_getBoundsForNode$rig","aRight","_getBoundsForNode$bot","aBottom","_getBoundsForNode2","bTop","bLeft","_getBoundsForNode2$ri","bRight","_getBoundsForNode2$bo","pageOffset","BackgroundCells","selectable","_selectable","_teardownSelectable","getNow","dateCellWrapper","_this$state","startIdx","_getters$dayProp","dayProp","_selector","selectorClicksHandler","getShowMoreNodeFromPoint","isShowMore","_this2$props","pointInBox","currentCell","_selectSlot","_initial","_this2$props2","onSelectStart","nodeBox","_dateCellSelection","lastSlotIdx","currentSlot","isCurrentRow","isStartRow","isAboveStart","isBelowStart","dateCellSelection","onSelectEnd","teardown","onSelectSlot","resourceId","EventRowMixin","slotMetrics","per","WebkitFlexBasis","EventRow","lastEnd","endOfRange","dateRange","_ref$unit","eventLevels","rowSegments","seg","levels","segsOverlap","otherSegs","otherSeg","eventA","eventB","isSegmentInSlot$1","eventsInSlot","EventEndingRow","canRenderSlotEvent","renderShowMore","onShowMore","ScrollableWeekWrapper","getSlotMetrics$1","_endOfRange","eventSegments","_eventLevels","minEventRows","metrics","getDateForSlot","slotNumber","getSlotForDate","getEventsForSlot","isSegmentInSlot","DateContentRow","handleSelectSlot","handleShowMore","renderHeadingCell","_this$props3","renderHeader","renderDummy","_this$props4","showAllEvents","headingRowRef","eventRowRef","_this$headingRowRef","eventHeight","headingHeight","eventSpace","_this$props5","renderForMeasure","ScrollableWeekComponent","WeekWrapper","weekWrapper","eventRowProps","segs","DateHeader","drilldownView","onDrillDown","_excluded$6","MonthView","_args","renderWeek","weekIdx","needLimitMeasure","rowLimit","weeksEvents","eventsForWeek","slotRowRef","readerDateHeading","getDrilldownView","isOffRange","isCurrent","DateHeaderComponent","dateHeader","handleHeadingClick","slotInfo","_pendingSelection","_selectTimer","selectDates","onSelectEvent","onDoubleClickEvent","onKeyPressEvent","doShowMoreDrillDown","_bgRows","running","measureRowLimit","_weekCount","renderHeaders","renderOverlay","HeaderComponent","_this$state$overlay","_this$state2","_this$props6","getRowLimit","getSlotMetrics","timeslots","totalMin","numGroups","numSlots","slotIdx","minFromStart","lastSlotMinFromStart","positionFromDate","dateIsInGroup","groupIndex","nextGroup","nextSlot","closestSlotToPosition","closestSlotFromPoint","boundaryRect","closestSlotFromDate","diffMins","startsBeforeDay","startsAfterDay","startsBefore","startsAfter","ignoreMin","ignoreMax","rangeStartMin","rangeEndMin","getCurrentTimePosition","_slotMetrics$getRange","startMs","endMs","leaves","noOverlap","overlap","_this$row","onSameRow","minimumStartDifference","getStyledEvents$1","eventsInRenderOrder","sortedByTime","sortByRender","getMaxIdxDFS","maxIdx","friends","newIdx","DefaultAlgorithms","styledEvents","se1","se2","y4","bitmap","_j2","_j4","allFriends","_j6","_maxIdx","_j8","TimeSlotGroup","_Component","renderSlot","resource","_this$props$component3","timeSlotWrapper","groupProps","slotGroupProp","slotProp","stringifyPercent","TimeGridEvent","isBackgroundEvent","_props$components","eventStyle","DayColumnWrapper","DayColumnWrapper$1","_excluded$5","_excluded2$1","DayColumn","timeIndicatorPosition","intervalTriggered","renderEvents","dayLayoutAlgorithm","getStyledEvents","_select","sourceResource","_doubleClick","maybeSelect","onSelecting","_initialSlot","initialSlot","selectRange","isNow","setTimeIndicatorPositionUpdateInterval","clearTimeIndicatorInterval","getNowChanged","positionTimeIndicator","_timeIndicatorTimeout","_this$props5$getters","_this$props5$componen","EventContainer","eventContainerWrapper","_dayProp","DayColumnWrapperComponent","dayColumnWrapper","backgroundEvents","dragThroughEvents","TimeGutter","gutterRef","TimeGutterWrapper","timeGutterWrapper","_useMemo","adjustForDST","_useState2","setSlotMetrics","TimeGutter$1","ResourceHeader","TimeGridHeader","handleHeaderClick","renderRow","eventsToDisplay","allDayMaxRows","_this$props2$componen","resources","scrollRef","_this$props3$componen","TimeGutterHeader","timeGutterHeader","_this$props3$componen2","resourceHeader","ResourceHeaderComponent","groupedEvents","groupEvents","resourceTitle","renderHeaderCells","TimeGrid","handleScroll","rafHandle","handleSelectAllDaySlot","_updatingOverflow","contentRef","memoizedResources","eventsByResource","resourceEvents","Resources","gutterWidth","_scrollRatio","measureGutter","calculateScroll","applyScroll","measureGutterAnimationFrameRequest","groupedBackgroundEvents","daysEvents","daysBackgroundEvents","_this$props$allDayMax","showMultiDayTimes","allDayEvents","rangeEvents","rangeBackgroundEvents","eEnd","_this4$gutterRef","enableAutoScroll","scrollToTime","diffMillis","totalMillis","_excluded$4","_this$props$min","_this$props$max","_this$props$scrollToT","_this$props$enableAut","eventOffset","_excluded$3","Week","_Week$range2","_excluded$2","workWeekRange","_VIEWS","WorkWeek","Agenda","headerRef","dateColRef","timeColRef","tbodyRef","_adjustHeader","firstRow","_widths","dayKey","AgendaDate","dateLabel","rowSpan","labelClass","TimeComponent","timeRangeLabel","renderDay","_workWeekRange2","_ref2$length","_ref3$length","_ref4$length","VIEWS","_excluded$1","onNavigate","onView","viewNamesGroup","viewNames","wrapAccessor","_Object$entries","_Object$entries$_i","Calendar","getViews","isArrLike","getView","handleRangeChange","viewComponent","onRangeChange","handleNavigate","ViewComponent","View","moveDate","handleViewChange","isValidView","handleDrillDown","elementProps","_this$state$context","CalToolbar","msgs","startAccessor","endAccessor","allDayAccessor","tooltipAccessor","titleAccessor","resourceAccessor","resourceIdAccessor","resourceTitleAccessor","eventPropGetter","backgroundEventPropGetter","slotPropGetter","slotGroupPropGetter","dayPropGetter","_ref2$messages","messages$1","_ref2$components","_ref2$formats","backgroundEventProp","backgroundEventWrapper","Calendar$1","uncontrollable","controlledValues","canAcceptRef","controlledProps","PROPS_TO_OMIT","UncontrolledComponent","_notifying","unmounted","_extends2","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","maybeSnapshot","snapshot","_this$inner","ControlledComponent","deferControlTo","newComponent","additions","nextMethods","timeRangeFormat$5","formats$5","dayFormat","weekdayFormat","selectRangeFormat","eventTimeRangeFormat","eventTimeRangeStartFormat","eventTimeRangeEndFormat","timeGutterFormat","monthHeaderFormat","dayHeaderFormat","dayRangeHeaderFormat","agendaHeaderFormat","agendaDateFormat","agendaTimeFormat","agendaTimeRangeFormat","fixUnit$2","datePart","refreshIcon","tabSelect","_st$_z$name","_st$_z","tzName","guess","defineComparators","_defineComparators2","dtA","dtB","_defineComparators10","adder","_defineComparators6","_defineComparators4","_defineComparators8","tm","mDay","mMin","mMax","dayStart","getDayStartDstOffset","mStart","mFirst","mEnd","mLast","_ref6$evtA","_ref6$evtB","_ref7$event","_ref7$range","rEnd","dt2","dtOffset","CalendarToday","createClick","pastDeploymentsCount","pendingCount","dispatchedSetSnackbar","progressPage","progressPerPage","pendingPage","pendingPerPage","doneLoading","setDoneLoading","currentRefreshDeploymentLength","inprogressRef","dynamicTimer","refreshDeployments","deploymentsAction","setupDeploymentsRefresh","refreshLength","calendarEvents","setCalendarEvents","setTabIndex","scheduledState","end_ts","currentIndex","calendarEvent","isShowingDetails","pastSelectionState","deviceGroup","refreshPast","currentDeviceGroup","currentType","roundedStartDate","roundedEndDate","deploymentsList","pastDeploymentsFailed","onboardingStep","detailsButtons","autoCompleteProps","defaultRefreshDeploymentsLength","pastCount","setDeploymentObject","reportType","createDialog","reportDialog","onAbortDeployment","changeTab","onCreationShow","finishedTab","ComponentToShow","enterpriseSettings","targetDevicesConfig","getSwitchUtilityClass","SwitchRoot","switchBase","SwitchSwitchBase","Switch","defaultDisabledColor","switchTrackDisabled","SwitchTrack","onBackground","switchTrack","SwitchThumb","deviceLimitBar","textFieldClasses","numberFields","NumberInputLimited","propsValue","allowedValue","deltaConfig","deltaLimits","deltaEnabled","timeoutValue","setTimeoutValue","disableChecksum","setDisableChecksum","disableDecompression","setDisableDecompression","compressionLevel","setCompressionLevel","sourceWindow","setSourceWindow","inputWindow","setInputWindow","duplicatesWindow","setDuplicatesWindow","instructionBuffer","setInstructionBuffer","debouncedConfig","numberInputs","InfoOutlined","ListItemTextRoot","primaryProp","primaryTypographyProps","secondaryProp","secondaryTypographyProps","ul","attributesList","listSubheaderClasses","limitBar","ArrowDropUp","textInput","IdAttributeSelection","onCloseClick","onSaveClick","selectedAttribute","setAttributeSelection","changed","GlobalSettingsDialog","notificationChannelSettings","offlineThresholdSettings","onChangeNotificationSetting","channelSettings","setChannelSettings","currentInterval","setCurrentInterval","currentIntervalUnit","setCurrentIntervalUnit","intervalErrorText","setIntervalErrorText","debouncedOfflineThreshold","initTimer","onNotificationSettingsClick","validity","closeDialog","setUpdatedSettings","saveAttributeSetting","onSaveGlobalSettings","deviceListState","onRowSelect","handleOnClick","sortingNotes","resizer","resizeHandle","HeaderItem","onSort","onResizeChange","onResizeFinish","shouldRemoveListeners","setShouldRemoveListeners","resizeRef","mouseMove","mouseUp","resizeHandleClassName","customize","getRelevantColumns","columnElements","calculateResizeChange","isShrinkage","columnDelta","relevantColumns","canModifyNextColumn","columnIndex","currentWidth","getColumnsStyle","defaultSize","getTemplateColumns","customColumnSizes","PaginationProps","onExpandClick","onResizeColumns","pageLoading","pageTotal","pageLength","selectedRows","deviceListRef","selectedRowsRef","initRef","resizeTrigger","setResizeTrigger","onRowSelection","selectedRow","updatedSelection","selectedIndex","handleResizeChange","changedColumns","handleResizeFinish","numSelected","newSelectedRows","Content","setSelectedAttributes","emptyInput","helptip","errortext","initialInput","inputHelpTipsMap","setInputs","updateInputs","changedInputs","normalizedKey","reducePairs","listOfPairs","hasRemovalDisabled","Helptip","removeInput","RadioGroup","nameProp","RadioButtonIconRoot","RadioButtonIconBackground","RadioButtonUnchecked","RadioButtonIconDot","RadioButtonChecked","getRadioUtilityClass","RadioRoot","Radio","_defaultIcon$props$fo","_defaultCheckedIcon$p","radioGroup","__awaiter","_arguments","adopt","__generator","sent","trys","ops","op","__read","__spreadArray","pack","SuppressedError","COMMON_MIME_TYPES","toFileWithPath","withMimeType","webkitRelativePath","FILES_TO_IGNORE","getInputFiles","getFsHandleFiles","handles","getFile","getDataTransferFiles","toFilePromises","noIgnoredFiles","webkitGetAsEntry","fromDataTransferItem","isDirectory","fromDirEntry","getAsFile","fwp","fromEntry","fromFileEntry","reader","createReader","readEntries","err_1","getInvalidTypeRejectionErr","accept","messageSuffix","getTooLargeRejectionErr","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","isAcceptable","fileMatchSize","isEvtWithFiles","onDocumentDragOver","composeEventHandlers","isMIMEType","isExt","_excluded4","Dropzone","_useDropzone","_defaultProps$props","getFilesFromEvent","maxFiles","onDragEnter","onDragOver","onDrop","onDropAccepted","onDropRejected","onFileDialogCancel","onFileDialogOpen","useFsAccessApi","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","acceptAttr","acceptPropAsAcceptAttr","pickerTypes","agg","pickerOptionsFromAccept","onFileDialogOpenCb","onFileDialogCancelCb","_useReducer2","isFileDialogActive","fsAccessApiWorksRef","isSecureContext","onWindowFocus","dragTargetsRef","onDocumentDrop","onErrCb","onDragEnterCb","fileCount","isDragAccept","sizeMatch","customErrors","allFilesAccepted","isDragReject","isDragActive","onDragOverCb","hasFiles","dropEffect","_unused","onDragLeaveCb","targetIdx","setFiles","fileRejections","_fileAccepted2","acceptError","_fileMatchSize2","sizeError","onDropCb","openFileDialog","showOpenFilePicker","ABORT_ERR","isAbort","SECURITY_ERR","isSecurityError","onKeyDownCb","isEqualNode","onFocusCb","onBlurCb","onClickCb","isIe","isEdge","isIeOrEdge","composeHandler","composeKeyboardHandler","composeDragHandler","_ref2$refKey","refKey","onInputElementClick","_ref3$refKey","useDropzone","isDataTransfer","isChangeEvt","enableContentReading","fileNameSelection","onFileChange","onFileSelect","setFilename","rejectClassName","rejectedFiles","readAsBinaryString","setConfig","setErrortext","importType","setImportType","isSubmitDisabled","setIsSubmitDisabled","importedConfig","iconStyle","textStyle","configHelpTipsMap","ConfigUpToDateNote","ConfigEmptyNote","ConfigEditingActions","isSetAsDefault","onSetAsDefaultChange","ConfigUpdateNote","isUpdatingConfig","isAccepted","ConfigUpdateFailureActions","hasLog","setShowLog","inputWrapper","CopyPasteButton","unixPathRegex","onDownloadClick","sendMessage","xtermProps","setDimensions","isVisible","setIsVisible","webLinksAddon","newDimensions","terminal_height","terminal_width","connectionActions","connectionButton","terminalContent","SessionInfo","setElapsed","connectionIcon","troubleshootButton","PortForwardLink","DeviceConnectionNote","DeviceConnectionMissingNote","DeviceDisconnectedNote","lastConnectionTs","onDownload","setSocketClosed","setUploadPath","setFile","terminalInput","setTerminalInput","setStartTime","snackbarAlreadySet","setSnackbarAlreadySet","snackTimer","termRef","canPreview","onMessageReceived","onNotify","onHealthCheckFailed","onSocketClose","wasClean","setSessionId","healthcheckTimeout","socketRef","proto_header","sid","encodedData","OPEN","healthcheckFailed","onSocketMessage","CLOSING","onSocketError","onSocketOpen","CLOSED","useSession","onConnectionToggle","commandHandlers","visibilityToggle","transfer","downloadPath","setDownloadPath","uploadPath","currentTab","setCurrentTab","isValidDestination","setIsValidDestination","availableTabs","setAvailableTabs","destination","onUploadClick","fileInputProps","selectedFile","clipboard","readText","deletion","EmptyState","isFiltered","deviceDeployment","History","setPage","wasReset","Title","gatewayIp","DeviceSystem","onConnectToGatewayClick","openSettingsDialog","setColumnHeaders","headerKeys","setHeaderKeys","deviceIp","setSortOptions","getHeaders","changedOrder","curry","curried","nextArgs","errorHandler","errorMessages","initialIsRequired","initialType","initialContent","handlerType","handlersType","selectorType","changeType","changeField","changes","extractChanges","causedChanges","didStateUpdate","_handler$field","didUpdate","getChanges","configIsRequired","configType","deprecation","urls","vs","monacoBase","CANCELATION_MESSAGE","hasCanceled_","wrappedPromise","_state$create2","monaco","injectScripts","getMonacoLoaderScript","configureLoader","loaderScript","storeMonacoInstance","wrapperPromise","globalConfig","_validators$config","editor","__getMonacoInstance","isEditorReady","wrapperProps","getModel","createModel","Uri","originalLanguage","modifiedLanguage","originalModelPath","modifiedModelPath","keepCurrentOriginalModel","keepCurrentModifiedModel","beforeMount","onMount","getOriginalEditor","setModel","getModifiedEditor","getOption","EditorOption","executeEdits","getFullModelRange","forceMoveMarkers","pushUndoStop","setModelLanguage","setTheme","updateOptions","createDiffEditor","automaticLayout","defaultLanguage","defaultPath","overrideServices","saveViewState","keepCurrentModel","onValidate","restoreViewState","revealLine","onDidChangeModelContent","onDidChangeMarkers","getModelMarkers","buttonSpacer","titleContainer","diffStatus","LastSyncNote","NoDiffStatus","CheckCircleOutlined","TwinError","providerTitle","TwinSyncStatus","diffCount","editorProps","autoClosingOvertype","codeLens","enableSplitViewResizing","formatOnPaste","lightbulb","minimap","lineNumbersMinChars","quickSuggestions","renderOverviewRuler","scrollBeyondLastLine","stringifyTwin","twin","DeviceTwin","configured","setConfigured","setDiffCount","isRefreshing","setIsRefreshing","setErrorMessage","setInitialized","reported","setReported","updated","setUpdated","isSync","setIsSync","editorRef","externalProvider","configuredTwin","reportedTwin","onDidUpdateDiff","getLineChanges","widthStyle","modifiedEditor","getAction","getIconUtilityClass","IconRoot","DeviceLimitContact","DeviceLimitWarning","hasContactInfo","jsonIdentity","setJsonIdentity","onHandleSubmit","getAccordionActionsUtilityClass","AccordionActionsRoot","padder","AuthSetStatus","ActionButtons","confirmMessage","newStatus","onAcceptClick","onDismissClick","onRequestConfirm","onExpand","showKey","setShowKey","setConfirmMessage","setNewStatus","keyHash","setKeyHash","endKey","setEndKey","TextEncoder","hashBuffer","hashHex","padStart","onShowKey","onCancelConfirm","getDismissalConfirmation","getConfirmationMessage","confirmedState","fourColumns","authsets","defaultColumns","expandRow","setExpandRow","availableColumns","groupedAuthsets","orderedAuthsets","headerName","decommission","confirmDecommission","setConfirmDecomission","device_id","auth_id","preauthorized","statusRef","statusIcon","requestNotification","changedTags","setChangedTags","editableTags","setEditableTags","isEditDisabled","setIsEditDisabled","shouldUpdateEditor","setShouldUpdateEditor","hasTags","helpTipsMap","previewStyle","DeviceIdentity","remainingIdentity","createdTime","CopyButton","LogLine","beExplicit","hovering","setHovering","line_number","CustomAccordion","LogSection","setExpanded","detailTypes","lines_before","lines_after","line_matching","paddedLineNumber","exportLog","errorIcon","successIcon","questionIcon","Help","monitoringSeverities","severityMap","deviceDetailNotification","textSpacing","downButton","BaseNotification","bordered","mappedSeverity","UNKNOWN","LastConnection","ServiceNotification","NoAlertsHeaderNotification","DeviceOfflineHeaderNotification","DeviceMonitorsMissingNote","MonitoringAlert","onDetailsClick","paginationCutoff","DeviceMonitoring","latest","latestAlerts","byDeviceId","alertListState","alertCount","hasMonitorsDefined","getSpeedDialUtilityClass","SpeedDialRoot","spacingActions","SpeedDialFab","SpeedDialActions","actionsClosed","SpeedDial","FabProps","origDialButtonRef","eventTimer","focusedAction","nextItemArrowKey","handleOwnFabRef","fabFef","handleFabRef","createHandleSpeedDialActionButtonRef","dialActionIndex","origButtonRef","allItems","_child$props","tooltipPlacement","tooltipPlacementProp","ChildFabProps","nextItemArrowKeyCurrent","actionStep","nextAction","getSpeedDialIconUtilityClass","SpeedDialIconRoot","openIcon","iconWithOpenIconOpen","openIconOpen","SpeedDialIcon","openIconProp","formatIcon","newClassName","getSpeedDialActionUtilityClass","SpeedDialActionFab","fabClosed","SpeedDialAction","fabHoverBg","SpeedDialActionStaticTooltip","staticTooltip","staticTooltipClosed","staticTooltipLabel","SpeedDialActionStaticTooltipLabel","TooltipClasses","tooltipOpen","tooltipOpenProp","tooltipTitle","setTooltipOpen","transitionStyle","defaultActions","pluralized","onAuthorizationChange","checkRelevance","dismiss","RemoveCircleOutline","onDeviceDismiss","HighlightOffOutlined","addToGroup","AddCircle","onAddDevicesToGroup","moveToGroup","HeightOutlined","removeFromGroup","onRemoveDevicesFromGroup","promoteToGateway","onPromoteGateway","Replay","onCreateDeployment","innerContainer","actionCallbacks","showActions","setShowActions","singleDevice","deployActionRef","setIsInitialized","firstElementChild","gatewayChip","dividerTop","refreshDeviceLength","GatewayConnectionNotification","GatewayNotification","deviceStatusCheck","onDecommissionDevice","remainingAttributes","keyAttributeCount","deviceInventory","keyContent","softwareInformation","setFilters","DeviceStateSelection","reported_ts","isRelevantDeployment","changedConfig","setChangedConfig","editableConfig","setEditableConfig","isAborting","setIsAborting","isEditingConfig","setIsEditingConfig","setIsSetAsDefault","setIsUpdatingConfig","showConfigImport","setShowConfigImport","showLog","setUpdateFailed","updateLog","setUpdateLog","deploymentTimer","deviceStats","onSetSnackbar","onShowLog","requests","onAbortClick","hasDeviceConfiguration","nextEditableConfig","SaveAlt","updatedConfig","monitorDetails","setMonitorDetails","socketClosed","connectionStatus","setConnectionStatus","allowedTabs","tenant_token","toggleDialog","setDetailsTab","tabSelection","isGateway","selectedStaticGroup","scrollToDeviceSystem","SelectedTab","selectedTab","dispatchedSaveGlobalSettings","gatewayId","menuProps","things","nestedValue","categoryItem","existingItems","groupOptions","newSelection","clickedItem","issue","categoryItems","titles","getSelectionDisplayValue","deviceRefreshTimes","idAttributeTitleMap","headersReducer","filterCommon","currentStateHeaders","onGroupRemoval","onMakeGatewayClick","onPreauthClick","acceptedCount","rejectedCount","settingsInitialized","currentSelectedState","devicesInitialized","setDevicesInitialized","showFilters","setShowFilters","showCustomization","setShowCustomization","onDeviceStateSelectionChange","devicesToIds","handlePageChange","onToggleCustomizationClick","onChangeColumns","columnSizes","calculateColumnSelectionSize","onCloseExpandedDevice","changedState","deleteRequests","listOptionHandlers","openedDevice","Autorenew","LockOutlined","FilterList","changedSortCol","changedSortDown","availableStates","stateActionMap","GroupOption","isCreationDynamic","setErrorText","filteredGroups","encodedName","isModification","validateGroupName","validateName","addListOfDevices","fromFilters","setInvalid","setIsModification","setNewGroup","invalidName","isInvalid","newGroupName","onNameChange","groupType","ListItemIconRoot","GroupsSubheader","GroupItem","changeGroup","openGroupDialog","getButtonGroupUtilityClass","ButtonGroupRoot","grouped","firstButton","lastButton","middleButton","ButtonGroup","validChildren","getValidReactChildren","childrenCount","getButtonPositionClassName","isFirstButton","isLastButton","ButtonGroupContext","ButtonGroupButtonContext","onConnectClick","setSelectedIndex","handleToggle","handleSelection","createGroupExplanation","setCreateGroupExplanation","setFromFilters","modifyGroupDialog","setModifyGroupDialog","openIdDialog","setOpenIdDialog","openPreauth","setOpenPreauth","showMakeGateway","setShowMakeGateway","removeGroup","setRemoveGroup","tmpDevices","setTmpDevices","deviceConnectionRef","statusParam","groupsByType","authRequestCount","listState","toggleGroupRemoval","toggleMakeGatewayClick","isGroupRemoval","addMore","listItem","itemClass","osMap","MacOs","Unix","Linux","architectures","defaultArchitectures","defaultOSVersions","getVersion","downloadLocations","public","private","defaultLocationFormatter","tool","osList","supportedOs","isUserOs","osArchLocationReducer","archList","packageName","packageId","osArchitectureLocations","arch","multiArchLocationFormatter","packageExtras","extraLocations","getAuthHeader","headerFlag","personalAccessTokens","defaultCurlDownload","tools","getLocations","copyOptions","DownloadableComponents","onMenuClick","onLocationClick","DownloadSection","InlineLaunchIcon","downloads","setCurrentLocation","availableTools","hosted","support","documentation","LinkIcon","eachRecursive","bag","this_path","helpPath","links","setLinks","breadcrumbs","routeParams","splitsplat","copyOfComponents","getErrorMsg","validateMethod","tryApplyValidations","validations","initialValidationResult","validation","tmpArgs","runValidations","runPasswordValidations","autocomplete","buttonColor","showButtons","submitLabel","PasswordGenerateButtons","clearPass","generatePass","PasswordGenerationControls","feedback","high","optimum","low","setScore","visible","setVisible","setFeedback","confirmationId","errorKey","clearPassClick","generatePassClick","zxcvbn","strength","suggestions","Visibility","VisibilityOff","controlRef","passedValue","genericProvider","OAuth2Providers","locationMap","ntBranding","tfaNote","tfaTip","entryText","signup","linkText","question","login","EntryLink","ChevronRight","LocationWarning","OAuthHeader","noExpiry","setNoExpiry","setHas2FA","twoFARef","loginError","onLoginClick","loginData","providerId","oauthTimeout","PasswordScreenContainer","setConfirm","_path4","_path5","_path6","_path7","_path8","_path9","_path10","_path11","_path12","_path13","_path14","_path15","_path16","_path17","_path18","_path19","_path20","_path21","_path22","_path23","_path24","_path25","_path26","_circle","_circle2","_circle3","_circle4","_rect","_rect2","_rect3","_rect4","_rect5","_rect6","_rect7","_rect8","_rect9","_rect10","_rect11","_rect12","_rect13","_rect14","_rect15","_rect16","_rect17","_rect18","_rect19","_rect20","_rect21","_rect22","_rect23","_rect24","_rect25","_rect26","_rect27","_rect28","_rect29","_rect30","_rect31","_rect32","_rect33","_rect34","_rect35","_rect36","_rect37","_rect38","_rect39","_rect40","_rect41","_rect42","_rect43","_rect44","_rect45","_rect46","_rect47","_rect48","_rect49","_rect50","_rect51","_rect52","_rect53","_rect54","_rect55","_rect56","_rect57","_rect58","_rect59","_rect60","_rect61","_rect62","_rect63","_rect64","_rect65","_rect66","_rect67","_rect68","_rect69","_rect70","_rect71","_rect72","_rect73","_rect74","_rect75","_rect76","_rect77","_rect78","_rect79","_rect80","_rect81","_rect82","_rect83","_rect84","_rect85","_rect86","_rect87","_path27","_rect88","_rect89","_path28","_path29","_path30","_path31","_path32","_circle5","_circle6","_circle7","_path33","_circle8","_circle9","_circle10","_circle11","_circle12","_circle13","_path34","_circle14","_path35","_path36","_path37","_path38","_path39","_path40","_path41","_path42","_path43","_path44","_path45","_path46","_path47","_path48","_path49","_path50","_path51","_path52","_path53","_path54","_path55","_path56","_path57","_path58","_path59","_path60","_path61","_path62","_path63","_path64","_path65","_path66","_path67","_path68","_path69","_path70","_path71","_path72","_path73","_path74","_path75","_path76","_path77","_path78","_path79","_path80","_path81","_path82","_path83","_path84","_path85","_path86","_path87","_path88","_path89","_path90","_path91","_path92","_path93","_path94","_path95","_path96","_path97","_path98","_path99","_path100","_path101","_path102","_path103","_path104","_path105","_path106","_path107","_path108","_path109","_path110","_path111","_path112","_path113","_path114","_path115","_path116","_path117","_path118","_path119","_path120","_path121","_path122","_path123","_path124","_path125","_path126","_path127","_path128","_path129","_path130","_path131","_path132","_path133","_path134","_path135","_path136","_path137","_path138","_path139","_path140","_path141","_path142","_path143","_path144","_path145","_path146","_path147","_path148","_path149","_path150","_path151","_path152","_path153","_path154","_path155","_path156","_path157","_path158","_path159","_path160","_path161","_path162","_path163","_path164","_path165","_path166","_path167","_path168","_path169","_path170","_path171","_path172","_path173","_path174","_g2","_path175","_g3","_path176","_g4","_path177","_g5","_path178","_g6","_path179","_g7","_path180","_g8","_path181","_g9","_path182","_g10","_path183","_path184","_path185","_path186","_path187","_path188","_path189","_path190","_path191","_path192","_path193","_path194","_path195","_path196","_path197","_path198","_path199","_path200","_path201","_path202","_path203","_path204","_path205","_path206","_path207","_path208","_path209","_path210","_path211","_path212","_path213","_path214","_path215","_path216","_g11","_path217","_g12","_path218","_g13","_path219","_g14","_path220","_g15","_path221","_g16","_path222","_g17","_path223","_g18","_path224","_g19","_path225","_g20","_path226","_path227","_path228","_path229","_path230","_path231","_path232","_path233","_path234","_path235","_path236","_path237","_path238","_path239","_path240","_path241","_path242","_path243","_path244","_path245","_path246","_path247","_path248","_path249","_path250","_path251","_path252","_path253","_path254","_path255","_path256","_path257","_path258","_path259","_path260","_path261","_path262","_path263","_path264","_path265","_path266","_path267","_path268","_path269","_path270","_path271","_path272","_path273","_path274","_path275","_path276","_path277","_path278","_path279","_path280","_path281","_path282","_path283","_path284","_path285","_path286","_path287","_path288","_path289","_path290","_path291","_path292","_path293","_path294","_path295","_path296","_path297","_path298","_path299","_path300","_path301","_path302","_path303","_path304","_path305","_path306","_path307","_path308","_path309","_path310","_path311","_path312","_path313","_path314","_path315","_path316","_path317","_path318","_path319","_path320","_path321","_path322","_path323","_path324","_path325","_path326","_path327","_path328","_path329","_path330","_path331","_path332","_path333","_path334","_path335","_path336","_path337","_path338","_path339","_path340","_path341","_path342","_path343","_path344","mixBlendMode","maskUnits","maskType","gradientUnits","stopColor","gradientTransform","ReCAPTCHA","handleExpired","handleErrored","handleRecaptchaRef","getCaptchaFunction","grecaptcha","getResponse","_widgetId","getWidgetId","execute","_executeRequested","executeAsync","executionResolve","executionReject","resetter","forceReset","onExpired","onErrored","explicitRender","sitekey","tabindex","stoken","badge","isolated","captcha","SCRIPT_MAP","idCount","callbackName","recaptchaOptions","getScriptURL","wrappedComponentName","AsyncScriptLoader","__scriptURL","asyncScriptLoaderGetScriptLoaderID","__scriptLoaderID","setupScriptURL","asyncScriptLoaderHandleLoad","asyncScriptOnLoad","asyncScriptLoaderTriggerOnScriptLoaded","mapEntry","obsKey","scriptURL","globalName","scriptId","errored","callObserverFuncAndRemoveObserver","observersMap","removeOnUnmount","allScripts","ForwardedComponent","makeAsyncScript","dynamicOptions","useRecaptchaNet","emailVerified","setCaptchaTimestamp","setLocation","setRecaptcha","captchaFieldName","orgData","locationSelect","locationIcon","onProgessClick","formControlClasses","promo","logo","setStep","setEmail","setEmailVerified","oauthProvider","setOauthProvider","oauthId","setOauthId","marketing","setMarketing","setOrganization","tos","setTos","redirectOnLogin","setRedirectOnLogin","captchaTimestamp","recaptcha","campaign","usedOauthProvider","isStarting","actualEmail","onTextInputChange","setCurrentSelection","possibleSelection","currentValue","onTextInputLeave","Search","ControlledSearch","onSearch","searchValue","debouncedSearchTerm","onTriggerSearch","checkDestinationValidity","creation","updateCreation","selectedDeviceTypes","formDeviceTypes","finalStep","FileInformation","fileSystem","propFs","softwareVersion","setFileSystem","setSoftwareName","setSoftwareVersion","reFilename","dropzone","fileInfo","fileSizeWrapper","uploadTypes","singleFile","activeStep","fileInformationContent","InsertDriveFile","infoId","commonExtensions","shortenFileName","dotIndex","ArtifactUpload","onboardingAnchor","emptyFileInfo","CloudUpload","onUploadStarted","setActiveStep","setCreation","customDeviceTypes","onCreateArtifact","onUploadArtifact","addArtifact","onUpload","otherDeviceTypes","dest_dir","software_filesystem","software_name","software_version","onUpdateCreation","onNextClick","defaultClasses","copyToClipboard","dividerDisabled","onExpansion","textClasses","overflowActive","setOverflowActive","overflowActiveCurrently","currentTextClasses","cssClasses","metadataList","metadataListItem","payloadHeader","payloadFiles","meta_data","type_info","summedSize","metaDataObject","metaData","metaInfo","listItemStyle","paddingOverride","accordPanel1","accordSummary","transformArtifactCapabilities","capabilities","dependency","dependencyKey","transformArtifactMetadata","metadata","DevicesLink","softwareItem","showRemoveArtifactDialog","showPayloads","setShowPayloads","showProvidesDepends","setShowProvidesDepends","softwareVersions","onDescriptionChanged","artifactMetaInfo","artifact_depends","artifact_clears","hasMetaInfo","itemProps","EditableLongText","signed","Remove","ExitToApp","compatible","onDeleteRelease","tagSelect","notes","notesWrapper","ReleaseQuickActions","contentFallback","onToggleEditing","fullWidthClass","ReleaseNotes","ReleaseTags","existingTags","onToggleEdit","ArtifactsList","selectedArtifact","setSelectedArtifact","setShowRemoveArtifactDialog","setSortCol","setSortDown","showRemoveDialog","confirmReleaseDeletion","setConfirmReleaseDeletion","creationRef","drawerRef","onToggleReleaseDeletion","onReleaseNotesChanged","onTagSelectionChanged","onRemoveArtifact","defaultSortDirection","canUpload","dropzoneRef","uploading","onFileUploadClick","repoRef","releasesListState","applicableColumns","potentialTotal","searchNote","tabContainer","uploadButton","searchUpdated","setSelectedFile","showAddArtifactDialog","setShowAddArtifactDialog","artifactTimer","debouncedTypeFilter","onHideAddArtifactDialog","onSetReleasesListState","ContentComponent","accessTokens","creationDialog","formEntries","creationTimeAttribute","columnData","expiration_date","hasLastUsedInfo","last_used","onRevokeTokenClick","AccessTokenCreationDialog","setName","setExpirationTime","setExpirationDate","setHint","onGenerateClick","generationHandler","generationLabel","tokenRoles","AccessTokenRevocationDialog","showGeneration","setShowGeneration","showRevocation","setShowRevocation","setCurrentToken","toggleGenerateClick","toggleRevocationClick","defaultCancelSubscriptionReasons","cancelSubscriptionReason","setCancelSubscriptionReason","cancelSubscriptionReasonOther","setCancelSubscriptionReasonOther","cancelSubscriptionSuggestions","setCancelSubscriptionSuggestions","cancelSubscriptionReasons","isSignUp","setErrors","setEmpty","confirmCard","cardElement","confirmCardSetup","payment_method","onReset","stripeElementChange","defaultItemProps","sideBarContent","secondaryContent","isUpdatingPaymentDetails","setIsUpdatingPaymentDetails","hasUnpaid","billing","TrialExpirationNote","DeviceLimitExpansionNotification","isTrial","CancelSubscriptionAlert","CancelSubscriptionButton","handleCancelSubscription","cancelSubscription","setCancelSubscription","cancelSubscriptionConfirmation","setCancelSubscriptionConfirmation","planName","enabledAddOns","addonPrice","OpenInNew","lineNumbers","fileContent","hasSSOConfig","setFileContent","isMetadataValid","setIsMetadataValid","theDom","DOMParser","parseFromString","onCancelClick","languages","registerHTMLLanguageService","documentFormattingEdits","configDetail","uploadIcon","tinyMargin","defaultDetails","SAMLConfig","configDetails","setConfigDetails","setHasSSOConfig","configContent","onCancelSSOSettings","onSaveSSOSettings","onOpenEditorClick","copyNotification","ssoToggle","tenantInfo","tokenTitle","tokenExplanation","OrgHeader","CopyTextToClipboard","handle2FAState","qrImage","current2FA","validated2fa","setValidated2fa","validating2fa","setValidating2fa","onUnload","activationCode","isVerifying","setIsVerifying","emailVerification","qrCode","qrExpanded","setQrExpanded","is2FAEnabled","setIs2FAEnabled","showEmailVerification","setShowEmailVerification","onToggle2FAClick","UserRolesSelect","selectedRoleIds","setSelectedRoleIds","editableRoles","showRoleUsageNotification","newlySelectedRoles","hadRoleChanges","currentRoleId","PasswordLabel","submit","setHadRoleChanges","selectedRoles","setSelectedRoles","shouldResetPassword","setShouldResetPassword","actionButtons","leftButton","oauthIcon","widthLimit","getUserSSOState","sso","isOAuth2","mapPermissions","UserDefinition","nameError","setNameError","currentEmail","setCurrentEmail","areas","emptySelection","groupsAccu","rolesClasses","changedRoles","submissionData","formField","changeButton","infoText","enterpriseOnly","DeleteUserDialog","WebhookConfiguration","setDescription","setSecret","secretFormatError","setSecretFormatError","hookDescription","hookSecret","hookUrl","onSubmitClick","webhookConfig","secretInputTip","descriptionInput","urlInput","WebhookCreation","activityList","triggerMap","iconStyles","dropDown","DeliveryStatus","delivery_statuses","integration_id","Column","eventTotal","selectedWebhook","setSelectedWebhook","mappedWebhooks","dispatchedGetWebhookEvents","providerConfigMap","connectionConfig","setConnectionConfig","access_key_id","secret_access_key","device_policy_name","aws","keyId","setKeyId","keySecret","setKeySecret","awsRegion","setRegion","policy","setPolicy","debouncedId","debouncedSecret","debouncedRegion","connection_string","IntegrationConfiguration","isDeleting","setIsDeleting","ConfigInput","roleDeletion","permissionSelect","permissionsTitle","PermissionsSelect","permissionsArea","unscoped","editablePermissions","selectedValues","permissionValue","permissionEnabledDisabled","PermissionsAreaTitle","PermissionsItem","stateGroups","groupInfo","excessiveAccessConfig","stateReleaseTags","maybeExtendPermissionSelection","changedGroupSelection","currentGroup","selectionItem","emptyItemSelection","ItemSelection","disableEdit","itemsSelection","excessiveAccessWarning","itemSelection","onItemSelect","selectedPermissions","onItemPermissionSelect","deriveItemsAndPermissions","stateItems","roleItems","filteredStateItems","itemSelections","selections","permissionCompatibilityReducer","DeleteRoleDialog","selectedRole","setGroups","setReleases","auditlogPermissions","setAuditlogPermissions","groupSelections","setGroupSelections","setReleasesPermissions","releaseTagSelections","setReleaseTagSelections","removeDialog","setRemoveDialog","userManagementPermissions","setUserManagementPermissions","hasReleaseTags","roleName","roleDescription","roleGroups","roleReleases","filteredStateGroups","filteredReleases","onToggleRemoveDialog","changedPermissions","hasPartiallyDefinedAreas","hasAreaPermissions","uiPermissionCompare","allowUserManagement","planNote","planPanel","offerValid","offerTag","setUpdatedPlan","updatedPlan","canUpgrade","onPlanSelect","isUpgrade","relevantAddons","addOnName","addOn","orgAddOn","isEligible","changedAddOns","onAddOnClick","quoteRequest","note","addOns","onSendMessage","setMessage","isEnterpriseUpgrade","LocalOffer","PostUpgradeNote","newPlan","PricingContactNote","upgradeNotes","sectionMap","editEmail","setEditEmail","editPass","setEditPass","canHave2FA","hasTracking","hasTrackingConsent","editSubmit","password_confirmation","handleEmail","handlePass","newMode","hasSingleSignOn","setHasSingleSignOn","isConfiguringSSO","setIsConfiguringSSO","isResettingSSO","setIsResettingSSO","showTokenWarning","setShowTokenWarning","org","onTokenExpansion","onTenantInfoClick","showCreate","setShowCreate","setUser","dialogDismiss","passwordResetEmail","setRole","editedRole","submittedRole","availableIntegrations","setAvailableIntegrations","configuredIntegrations","setConfiguredIntegrations","isConfiguringWebhook","setIsConfiguringWebhook","available","hasIntegrationConfigured","determineAvailableIntegrations","configuredWebhook","upgrade","setAddOns","upgraded","setUpgraded","orgAddOns","currentAddOns","addOnsToString","current_plan","requested_plan","current_addons","requested_addons","user_message","Payment","loadingFinished","setLoadingFinished","sectionParam","notStripePromise","loadStripe","checkDenyAccess","getCurrentSection","PrivateRoutes","PublicRoutes","nn","rn","tn","revocable","revoke","deleteProperty","un","produce","produceWithPatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","an","createThunkMiddleware","extraArgument","thunk","withExtraArgument","extendStatics","__","il","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","createAction","prepareAction","prepared","__REDUX_DEVTOOLS_EXTENSION__","MiddlewareArray","species","EnhancerArray","commonProperties","RejectWithValue","FulfillWithMeta","miniSerializeError","simpleError","commonProperties_1","unwrapResult","rejectedWithValue","createAsyncThunk2","typePrefix","payloadCreator","requestId","requestStatus","serializeError","AC","class_1","throwIfAborted","abortReason","idGenerator","nanoid","abortController","promise2","__this","__arguments","finalAction","conditionResult","abortedPromise","getPendingMeta","rejectWithValue","fulfillWithValue","dispatchConditionRejection","throw","withTypes","alm","getYesterday","hasDeltaProgress","deploymentDeviceLimit","eventsTotal","testDate","defaultCreationDate","defaultMacAddress","permissionSetObjectTypes","commonEndpoints","defaultState","ipv4_wlan0","testGroup","testGroupDynamic","list_of_fancy","clears_artifact_provides","something","ManageReleases","ReadUsers","ManageUsers","ReadAuditLogs","DeployToDevices","ConfigureDevices","ConnectToDevices","SuperUser","UploadArtifacts","ReadDevices","ManageDevices","ReadReleases","rbacRoles","expectedParsedRoles","bestgroup","asdasd","dyn","kljlkk","yyyyy","dockerclient","almostAdmin","almostAdminNew","roleRemainder","rootReducer","maybeExistingGroup","activeDeviceTotal","inactiveDeviceTotal","statusDeviceInfo","removedDeployment","removedUser","userSettingsInitialized","sessionReducer","curriedGetDefaultMiddleware","middlewareArray","immutableCheck","serializableCheck","actionCreatorCheck","getDefaultMiddleware","devTools","enhancers","baseProto","finalMiddleware","middlewareEnhancer","finalCompose","defaultEnhancers","storeEnhancers","composedEnhancer","configureStore","ignoredPaths","ignoredActions","ignoredActionPaths","ConvertedImageNote","IntegrationsLink","ExternalProviderTip","hasExternalIntegration","integrationProvider","hasConvertedImage","shouldShowOnboardingTip","hasExternalIntegrationSupport","codeToCopy","credentialsAttribute","azureConnectionString","getDemoDeviceCreationCommand","rpiQuickstart","virtualLogo","DeviceConnectionExplainer","setOnDevice","setVirtualDevice","onDevice","setProgress","virtualDevice","hasMoreDevices","setHasMoreDevices","onboardingDeviceType","updatedProgress","companySite","errorIconClassName","iconClassName","sectionClassName","approaching","DeveloperBoard","TrialInformation","daysLeft","currentOffer","banner","exitIcon","demoTrialAnnouncement","demoAnnouncementIcon","redAnnouncementIcon","gettingUser","setGettingUser","hasOfferCookie","setHasOfferCookie","demo","multitenancy","userSettingInitialized","deviceTimer","showHelptips","showOfferCookie","showOffer","headerLogo","AccountCircle","listItems","licenseLink","infoList","navLink","linkables","VersionInfo","clicks","setClicks","releasesRef","drawerOffset","ResultTitle","onToggleSearchResult","progressBarContainer","zIindex","progressContainer","UploadProgressBar","isUploading","trackingBlacklist","reducePalette","WrappedBaseline","muiVariables","colorSchemeStyles","colorSchemes","scheme","_scheme$palette","themeOverrides","MuiCssBaseline","AppRoot","showSearchResult","setShowSearchResult","storedToken","trackLocationChange","splitter","keyOnlyFilters","activationPath","updateExpiryDate","AppProviders"],"sourceRoot":""}