Submit
Path:
~
/
/
usr
/
local
/
psa
/
admin
/
cp
/
public
/
javascript
/
views
/
license
/
File Content:
additional.js.map
{"version":3,"file":"javascript/views/license/additional.js?e1070613c6e6346a18ca","mappings":"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","sources":["webpack:///./components/List.js","webpack:///./components/common/LicenseKeyProperties.js","webpack:///./components/dialogs/AdditionalKeyUpdateDialog.js","webpack:///./components/forms/LicenseKeyRevertForm.js","webpack:///./components/forms/LicenseKeyUploadForm.js","webpack:///./components/lists/AdditionalKeysList.js","webpack:///./components/pages/AdditionalKeyInfoPage.js","webpack:///./components/pages/AdditionalKeyRevertPage.js","webpack:///./components/pages/AdditionalKeyUploadPage.js","webpack:///./components/pages/AdditionalKeysPage.js","webpack:///./components/tabs/LicenseTabs.js","webpack:///./helpers/graphql/cache/deleteServerMailAntivirusCache.ts","webpack:///./queries/DeleteAdditionalKey.graphql","webpack:///./queries/InstallAdditionalKey.graphql","webpack:///./queries/RevertAdditionalKey.graphql","webpack:///./queries/UploadAdditionalKey.graphql"],"sourcesContent":["// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { List as BaseList, Pagination, SearchBar, Toolbar, ToolbarGroup, ToolbarExpander, ListEmptyView } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\n\nconst listLocale = Locale.getSection('components.list');\n\nexport const SORT_ASC = 'ASC';\nexport const SORT_DESC = 'DESC';\nconst ALL_ITEMS_PER_PAGE = 'all';\n\nconst getRowKey = (row, key) => {\n if (typeof key === 'function') {\n return key(row);\n }\n return row[key];\n};\n\nconst storage = {\n set(key, data) {\n localStorage.setItem(key, JSON.stringify(data));\n },\n get(key) {\n const data = localStorage.getItem(key);\n return JSON.parse(data);\n },\n};\n\nconst getSortListName = id => `list-sort_${id}`;\nconst getPageListName = id => `list-page_${id}`;\n\nconst useSortState = (id, {\n sortColumn: defaultColumn,\n sortDirection: defaultDirection,\n}) => {\n const [{\n sortColumn,\n sortDirection,\n }, setState] = useState({\n sortColumn: storage.get(getSortListName(id))?.sortColumn ?? defaultColumn,\n sortDirection: storage.get(getSortListName(id))?.sortDirection ?? defaultDirection,\n });\n\n const setSortState = props => {\n setState(state => ({\n ...state,\n ...props,\n }));\n\n storage.set(getSortListName(id), {\n ...storage.get(getSortListName(id)),\n ...props,\n });\n };\n\n return { sortColumn, sortDirection, setSortState };\n};\n\nconst usePageState = (id, {\n itemsPerPage: defaultItemsPerPage,\n}, useStorage = true) => {\n const state = useStorage ? {\n page: storage.get(getPageListName(id))?.page,\n itemsPerPage: storage.get(getPageListName(id))?.itemsPerPage,\n searchPattern: storage.get(getPageListName(id))?.searchPattern,\n } : {};\n\n const [{\n page,\n itemsPerPage,\n searchPattern,\n }, setState] = useState({\n page: state.page ?? 1,\n itemsPerPage: state.itemsPerPage ?? defaultItemsPerPage,\n searchPattern: state.searchPattern ?? '',\n });\n\n const setPageState = props => {\n setState(state => ({\n ...state,\n ...props,\n }));\n\n if (useStorage) {\n storage.set(getPageListName(id), {\n ...storage.get(getPageListName(id)),\n ...props,\n });\n }\n };\n\n return { page, itemsPerPage, searchPattern, setPageState };\n};\n\nconst List = ({\n id,\n data,\n columns,\n itemsPerPage: defaultItemsPerPage = 25,\n itemsPerPageOptions = [10, 25, 100, ALL_ITEMS_PER_PAGE],\n sortColumn: defaultSortColumn = undefined,\n sortDirection: defaultSortDirection = SORT_ASC,\n searchField = undefined,\n locale = {},\n emptyView = undefined,\n emptyFilteredView = undefined,\n toolbar = undefined,\n selection = [],\n onSelectionChange = undefined,\n searchBarInputProps = undefined,\n rowKey = 'key',\n useStorage = true,\n ...props\n}) => {\n const { sortColumn, sortDirection, setSortState } = useSortState(id, {\n sortColumn: defaultSortColumn ?? columns.find(({ sortable }) => sortable)?.key,\n sortDirection: defaultSortDirection,\n });\n const { page, itemsPerPage, searchPattern, setPageState } = usePageState(id, {\n itemsPerPage: itemsPerPageOptions.includes(defaultItemsPerPage) ? defaultItemsPerPage : itemsPerPageOptions[0],\n }, useStorage);\n\n const listEmptyView = useMemo(() => {\n if (searchPattern) {\n return emptyFilteredView ?? (\n <ListEmptyView\n reason=\"filtered\"\n data-testid=\"list-empty-view-filtered\"\n />\n );\n }\n\n return emptyView ?? (\n <ListEmptyView />\n );\n }, [searchPattern, emptyView, emptyFilteredView]);\n\n const columnsData = useMemo(() => columns.map(({ sortDataField, ...column }) => column), [columns]);\n\n const filteredData = useMemo(() => {\n if (!searchField || !searchPattern) {\n return data;\n }\n\n return data.filter(row => (Array.isArray(searchField) ? searchField : [searchField])\n .some(field => row[field] && String(row[field]).toLowerCase().includes(searchPattern.toLowerCase())));\n }, [data, searchPattern, searchField]);\n\n const sortedData = useMemo(() => {\n if (!sortColumn) {\n return filteredData;\n }\n\n const sortDataField = columns.find(({ key }) => key === sortColumn)?.sortDataField ?? sortColumn;\n const defaultCompare = (a, b) => {\n if (a[sortDataField] < b[sortDataField]) {\n return -1;\n }\n if (a[sortDataField] > b[sortDataField]) {\n return 1;\n }\n return 0;\n };\n const compare = columns.find(({ key }) => key === sortColumn)?.sort ?? defaultCompare;\n return [...filteredData].sort((a, b) => SORT_ASC === sortDirection ? compare(a, b) : compare(b, a));\n }, [filteredData, sortColumn, sortDirection, columns]);\n\n const displayData = useMemo(() => {\n if (itemsPerPage === ALL_ITEMS_PER_PAGE) {\n return sortedData;\n }\n\n const from = itemsPerPage * (page - 1);\n const to = from + itemsPerPage;\n return sortedData.slice(from, to);\n }, [page, sortedData, itemsPerPage]);\n\n const handleSearchPatternChange = useCallback(term => {\n setPageState({ searchPattern: term });\n if (term !== searchPattern) {\n setPageState({ page: 1 });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchPattern]);\n\n const handleItemsPerPageChange = useCallback(itemsPerPage => {\n setPageState({ itemsPerPage });\n const countPages = itemsPerPage === ALL_ITEMS_PER_PAGE ? 1 : Math.ceil(filteredData.length / itemsPerPage);\n if (countPages < page) {\n setPageState({ page: 1 });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [filteredData.length, page]);\n\n useEffect(() => {\n if (typeof onSelectionChange === 'function' && selection.length) {\n const newSelection = filteredData\n .map(item => getRowKey(item, rowKey))\n .filter(key => selection.includes(key));\n onSelectionChange(newSelection);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [filteredData]);\n\n return (\n <BaseList\n pagination={\n <Pagination\n current={page}\n total={itemsPerPage === ALL_ITEMS_PER_PAGE ? 1 : Math.ceil(filteredData.length / itemsPerPage)}\n onSelect={page => setPageState({ page })}\n itemsPerPage={itemsPerPage}\n itemsPerPageOptions={itemsPerPageOptions}\n onItemsPerPageChange={handleItemsPerPageChange}\n />\n }\n toolbar={(toolbar || searchField) && (\n <Toolbar>\n {toolbar}\n {searchField && (\n <>\n <ToolbarExpander />\n <ToolbarGroup title=\"\">\n <SearchBar\n inputProps={{\n placeholder: listLocale.lmsg('searchPlaceholder'),\n 'data-testid': 'list-searchbar',\n value: searchPattern,\n ...(searchBarInputProps ?? {}),\n }}\n onTyping={handleSearchPatternChange}\n />\n </ToolbarGroup>\n </>\n )}\n </Toolbar>\n )}\n totalRows={filteredData.length}\n sortColumn={sortColumn}\n sortDirection={sortDirection}\n onSortChange={setSortState}\n columns={columnsData}\n data={displayData}\n filtered={!!searchPattern}\n locale={{\n totalRows: ({ totalRows: total }) => listLocale.formatMessage('recordsTotal', { total }),\n ...locale,\n }}\n emptyView={listEmptyView}\n onSelectionChange={onSelectionChange}\n selection={selection}\n rowKey={rowKey}\n {...props}\n />\n );\n};\n\nList.propTypes = {\n id: PropTypes.string.isRequired,\n data: PropTypes.array.isRequired,\n columns: PropTypes.array.isRequired,\n itemsPerPage: PropTypes.number,\n itemsPerPageOptions: PropTypes.array,\n sortColumn: PropTypes.string,\n sortDirection: PropTypes.string,\n searchField: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string.isRequired),\n ]),\n locale: PropTypes.object,\n emptyView: PropTypes.node,\n emptyFilteredView: PropTypes.node,\n toolbar: PropTypes.node,\n onSelectionChange: PropTypes.func,\n selection: PropTypes.array,\n rowKey: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n searchBarInputProps: PropTypes.object,\n useStorage: PropTypes.bool,\n};\n\nexport default List;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Section, SectionItem, Status } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport { useEventListener } from 'common/hooks';\n\nconst Translate = Locale.getTranslate('smb.components.license.properties');\n\nconst LicenseKeyProperties = ({ properties = undefined, ...props }) => {\n const [keysPressed, setKeysPressed] = useState([]);\n const [godMode, setGodMode] = useState(false);\n\n const handleKeyUp = useCallback(({ keyCode }) => {\n const keys = [...keysPressed, keyCode].slice(-5);\n setKeysPressed(keys);\n if (keys.join(';') === '73;68;68;81;68') {\n setGodMode(true);\n }\n }, [keysPressed, setKeysPressed, setGodMode]);\n\n useEventListener('keyup', handleKeyUp, document.body);\n\n if (!properties) {\n return null;\n }\n\n return (\n <Section {...props}>\n {properties.map(({ name, description, value }) => (\n <SectionItem key={name} title={description}>\n {godMode ? <Status intent=\"danger\"><Translate content=\"unlimited\" /></Status> : value}\n </SectionItem>\n ))}\n </Section>\n );\n};\n\nLicenseKeyProperties.propTypes = {\n properties: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n })),\n};\n\nexport default LicenseKeyProperties;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useState, useLayoutEffect, useCallback, useMemo, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router-dom';\nimport { gql, useMutation } from '@apollo/client';\nimport { Dialog, Button, Plaintext, ContentLoader, Section, StatusMessage } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport LicenseKeyProperties from '../common/LicenseKeyProperties';\n\nimport ADDITIONAL_KEY_INFO_PAGE_QUERY from 'queries/AdditionalKeyInfoPage.graphql';\n\nconst Translate = Locale.getTranslate('components.dialogs.additional-key-update');\nconst ButtonsTranslate = Locale.getTranslate('components.buttons');\n\nconst UPDATE_ADDITIONAL_KEY = gql`\n mutation UpdateAdditionalKey($input: UpdateAdditionalKeyInput!, $id: ID!) {\n updateAdditionalKey(input: $input) {\n description\n newKey {\n keyNumber\n properties {\n name\n description\n value\n }\n }\n query {\n additionalKey(id: $id) {\n keyNumber\n }\n }\n }\n }\n`;\n\nconst checkKeyExistInMutationResult = data => !!data.updateAdditionalKey.query.additionalKey;\n\nconst AdditionalKeyUpdateDialog = ({ keyNumber, isOpen, onClose, onKeyTerminationReveal }) => {\n const [updateAdditionalKey, {\n called,\n loading,\n data: { updateAdditionalKey: result } = {},\n error,\n }] = useMutation(UPDATE_ADDITIONAL_KEY, {\n variables: { input: { keyNumber }, id: keyNumber },\n errorPolicy: 'all',\n fetchPolicy: 'no-cache',\n update(cache, { data }) {\n const isKeyExist = checkKeyExistInMutationResult(data);\n\n if (!isKeyExist) {\n onKeyTerminationReveal();\n cache.evict({ fieldName: 'additionalKeys' });\n }\n },\n refetchQueries: ({ data }) => {\n const isKeyExist = checkKeyExistInMutationResult(data);\n if (isKeyExist) {\n return [{\n query: ADDITIONAL_KEY_INFO_PAGE_QUERY,\n variables: { id: keyNumber },\n }];\n }\n },\n awaitRefetchQueries: true,\n });\n\n useLayoutEffect(() => {\n if (isOpen) {\n updateAdditionalKey();\n }\n }, [isOpen, updateAdditionalKey]);\n\n return (\n <Dialog\n title={<Translate content=\"title\" />}\n isOpen={isOpen}\n onClose={onClose}\n canClose={called && !loading}\n cancelButton={false}\n buttons={!called || loading ? null : [(\n <Button\n key=\"ok\"\n intent=\"primary\"\n onClick={onClose}\n >\n <ButtonsTranslate content=\"ok\" />\n </Button>\n )]}\n >\n {!called || loading ? (\n <ContentLoader loader={{ type: 'icons', icons: ['key', 'key'] }} />\n ) : error ? (\n <StatusMessage intent=\"danger\" >\n <span\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{ __html: error.message }}\n />\n </StatusMessage>\n ) : (\n <>\n <Section\n data-id=\"resultDescription\"\n title={<Translate content=\"resultDescription\" />}\n >\n <Plaintext>\n {result.description}\n </Plaintext>\n </Section>\n {result.newKey ? (\n <LicenseKeyProperties\n title={<Translate content=\"newKey\" />}\n properties={result.newKey.properties}\n />\n ) : null}\n </>\n )}\n </Dialog>\n );\n};\n\nAdditionalKeyUpdateDialog.propTypes = {\n keyNumber: PropTypes.string.isRequired,\n isOpen: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n onKeyTerminationReveal: PropTypes.func.isRequired,\n};\n\nexport const useAdditionalKeyUpdateDialog = keyNumber => {\n const navigate = useNavigate();\n const [isOpen, setIsOpen] = useState(false);\n const isKeyTerminationRevealed = useRef(false);\n\n const handleOpen = useCallback(() => {\n setIsOpen(true);\n }, []);\n\n const handleClose = useCallback(() => {\n setIsOpen(false);\n if (isKeyTerminationRevealed.current) {\n navigate('/cp/license/additional', { replace: true });\n }\n }, [navigate]);\n\n const dialog = useMemo(() => (\n <AdditionalKeyUpdateDialog\n keyNumber={keyNumber}\n isOpen={isOpen}\n onClose={handleClose}\n onKeyTerminationReveal={() => (isKeyTerminationRevealed.current = true)}\n />\n ), [keyNumber, isOpen, handleClose]);\n\n return [dialog, handleOpen];\n};\n\nexport default AdditionalKeyUpdateDialog;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { setIn } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport Form from 'components/Form';\nimport LicenseKeyProperties from '../common/LicenseKeyProperties';\n\nconst Translate = Locale.getTranslate('components.forms.license-key-revert');\n\nconst LicenseKeyRevertForm = ({ values: initialValues = {}, revertKey, ...props }) => {\n const [values, setValues] = useState(initialValues);\n\n const handleFieldChange = (name, value) => {\n setValues(values => setIn(values, name, value));\n };\n\n return (\n <Form\n values={values}\n onFieldChange={handleFieldChange}\n submitButton={{\n id: 'btn-send',\n children: <Translate content=\"submitButton\" />,\n }}\n applyButton={false}\n {...props}\n >\n <p>\n <Translate content=\"description\" />\n </p>\n <LicenseKeyProperties\n properties={revertKey.properties}\n />\n </Form>\n );\n};\n\nLicenseKeyRevertForm.propTypes = {\n revertKey: PropTypes.object.isRequired,\n values: PropTypes.object,\n};\n\nexport default LicenseKeyRevertForm;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormField, FormFieldRadioButtons, FormFieldText, InputFile, setIn } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport Form from 'components/Form';\n\nconst Translate = Locale.getTranslate('components.forms.license-key-upload');\n\nconst LicenseKeyUploadForm = ({ fileUploadAllowed = false, ...props }) => {\n const [values, setValues] = useState({\n type: 'CODE',\n code: '',\n file: undefined,\n });\n\n const handleFieldChange = (name, value) => {\n setValues(values => setIn(values, name, value));\n };\n\n return (\n <Form\n values={values}\n onFieldChange={handleFieldChange}\n submitButton={{\n id: 'btn-send',\n children: <Translate content=\"submitButton\" />,\n }}\n applyButton={false}\n {...props}\n >\n <p>\n {fileUploadAllowed ? (\n <Translate content=\"descriptionWithFileUpload\" />\n ) : (\n <Translate content=\"description\" />\n )}\n </p>\n {fileUploadAllowed ? (\n <FormFieldRadioButtons\n name=\"type\"\n label={<Translate content=\"type\" />}\n options={[{\n value: 'CODE',\n label: <Translate content=\"code\" />,\n indentFields: [(\n <FormFieldText\n key=\"code\"\n name=\"code\"\n label={null}\n description={<Translate content=\"codeDescription\" />}\n size=\"lg\"\n />\n )],\n }, {\n value: 'FILE',\n label: <Translate content=\"file\" />,\n indentFields: [(\n <FormField\n key=\"file\"\n name=\"file\"\n label={null}\n description={<Translate content=\"fileDescription\" />}\n >\n {({ getId, getName, setValue, isDisabled }) => (\n <InputFile\n id={getId()}\n name={getName()}\n disabled={isDisabled()}\n onChange={file => setValue(file)}\n />\n )}\n </FormField>\n )],\n }]}\n />\n ) : (\n <FormFieldText\n name=\"code\"\n label={<Translate content=\"code\" />}\n description={<Translate content=\"codeDescription\" />}\n size=\"lg\"\n />\n )}\n </Form>\n );\n};\n\nLicenseKeyUploadForm.propTypes = {\n fileUploadAllowed: PropTypes.bool,\n};\n\nexport default LicenseKeyUploadForm;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useCallback, useMemo, useState } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { useMutation } from '@apollo/client';\nimport { Button, ListAction, ListActions, ListEmptyView, ListOperation, ToolbarGroup, Tooltip, Status } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport Link from 'components/common/Link';\nimport { addToast } from 'helpers/toasts';\nimport { deleteServerMailAntivirusCache } from 'helpers/graphql/cache/deleteServerMailAntivirusCache';\nimport List from '../List';\n\nconst Translate = Locale.getTranslate('components.lists.additional-keys');\nconst locale = Locale.getSection('components.lists.additional-keys');\nconst ButtonsTranslate = Locale.getTranslate('components.buttons');\n\nimport ADDITIONAL_KEYS_PAGE_QUERY from 'queries/AdditionalKeysPage.graphql';\nimport INSTALL_ADDITIONAL_KEY_MUTATION from 'queries/InstallAdditionalKey.graphql';\nimport DELETE_ADDITIONAL_KEY_MUTATION from 'queries/DeleteAdditionalKey.graphql';\n\nconst AdditionalKeysList = ({ data, isDemo = false }) => {\n const [selection, setSelection] = useState([]);\n const [loadingRows, setLoadingRows] = useState([]);\n const [installAdditionalKey] = useMutation(INSTALL_ADDITIONAL_KEY_MUTATION, {\n refetchQueries: [{\n query: ADDITIONAL_KEYS_PAGE_QUERY,\n }],\n update: cache => deleteServerMailAntivirusCache(cache),\n awaitRefetchQueries: true,\n });\n const [deleteAdditionalKey] = useMutation(DELETE_ADDITIONAL_KEY_MUTATION, {\n refetchQueries: [{\n query: ADDITIONAL_KEYS_PAGE_QUERY,\n }],\n update: cache => deleteServerMailAntivirusCache(cache),\n awaitRefetchQueries: true,\n });\n const selectedRows = useMemo(() => data.filter(({ keyNumber }) => selection.includes(keyNumber)), [data, selection]);\n\n const handleInstall = async () => {\n const ids = selection.length ? selection : data.map(({ keyNumber }) => keyNumber);\n setLoadingRows(ids);\n\n try {\n await installAdditionalKey({\n variables: {\n input: {\n ids,\n },\n },\n });\n\n addToast({\n intent: 'success',\n message: <Translate content=\"installSuccess\" />,\n });\n } catch (e) {\n addToast({\n intent: 'danger',\n message: e.message,\n });\n } finally {\n setSelection([]);\n setLoadingRows([]);\n }\n };\n\n const handleRemove = async () => {\n setLoadingRows(selection);\n\n try {\n await deleteAdditionalKey({\n variables: {\n input: {\n ids: selection,\n },\n },\n });\n\n addToast({\n intent: 'success',\n message: <Translate content=\"removeSuccess\" />,\n });\n } catch (e) {\n addToast({\n intent: 'danger',\n message: e.message,\n });\n } finally {\n setSelection([]);\n setLoadingRows([]);\n }\n };\n\n const handleSelectionChange = useCallback(selection => {\n setSelection(selection);\n }, []);\n\n const columns = useMemo(() => [\n {\n key: 'keyNumber',\n title: <Translate content=\"keyNumber\" />,\n type: 'title',\n width: '30%',\n sortable: true,\n render: ({ keyNumber, errors }) => (\n <>\n {!!errors.length && (\n <>\n <Tooltip title={errors.map(error => (\n // eslint-disable-next-line react/no-danger\n <div key={error} dangerouslySetInnerHTML={{ __html: error }} />\n ))}\n >\n <Status intent=\"danger\" />\n </Tooltip>\n {' '}\n </>\n )}\n <Link to={`/cp/license/additional/${encodeURIComponent(keyNumber)}/`}>\n {keyNumber}\n </Link>\n </>\n ),\n },\n {\n key: 'keyName',\n title: <Translate content=\"keyName\" />,\n width: '30%',\n sortable: true,\n },\n {\n key: 'keyApp',\n title: <Translate content=\"keyApp\" />,\n width: '30%',\n sortable: true,\n },\n isDemo ? null : {\n key: 'actions',\n type: 'actions',\n render: ({ keyNumber }) => (\n <ListActions>\n <ListAction\n primary\n icon=\"download\"\n component=\"a\"\n href={`/cp/license/additional/${encodeURIComponent(keyNumber)}/download`}\n tooltip={<Translate content=\"downloadDescription\" />}\n >\n <Translate content=\"download\" />\n </ListAction>\n </ListActions>\n ),\n },\n ].filter(Boolean), [isDemo]);\n\n const searchField = useMemo(() => ['keyNumber', 'keyName', 'keyApp'], []);\n\n const uploadButton = (\n <Button\n id=\"update-additional-key\"\n data-id=\"upload\"\n intent=\"primary\"\n component={Link}\n to=\"/cp/license/additional/upload/\"\n disabled={isDemo}\n tooltip={<Translate content=\"uploadDescription\" />}\n >\n <Translate content=\"upload\" />\n </Button>\n );\n\n return (\n <List\n id=\"additional-keys-list\"\n toolbar={(\n <>\n <ToolbarGroup title={locale.lmsg('addGroup')}>\n {uploadButton}\n </ToolbarGroup>\n <ToolbarGroup title={locale.lmsg('actionsGroup')}>\n <ListOperation\n noSelectionText={<Translate content=\"installNoSelection\" />}\n actionButtonText={<Translate content=\"installAll\" />}\n cancelButtonText={<ButtonsTranslate content=\"cancel\" />}\n >\n <Button\n data-id=\"install\"\n onClick={handleInstall}\n disabled={isDemo}\n tooltip={<Translate content=\"installDescription\" />}\n >\n <Translate content=\"install\" />\n </Button>\n </ListOperation>\n </ToolbarGroup>\n <ToolbarGroup title={locale.lmsg('removeGroup')}>\n <ListOperation\n critical\n noSelectionText={<Translate content=\"removeNoSelection\" />}\n actionButtonText={<ButtonsTranslate content=\"yesRemove\" />}\n cancelButtonText={<ButtonsTranslate content=\"cancel\" />}\n confirmationText={locale.formatMessage('removeConfirmation', {\n name: <b>{selectedRows[0]?.keyNumber}{' / '}{selectedRows[0]?.keyName}</b>,\n count: selectedRows.length,\n })}\n >\n <Button\n data-id=\"remove\"\n onClick={handleRemove}\n disabled={isDemo}\n tooltip={<Translate content=\"removeDescription\" />}\n >\n <Translate content=\"remove\" />\n </Button>\n </ListOperation>\n </ToolbarGroup>\n </>\n )}\n columns={columns}\n rowKey=\"keyNumber\"\n data={data}\n searchField={searchField}\n sortColumn=\"keyNumber\"\n selection={selection}\n onSelectionChange={handleSelectionChange}\n loadingRows={loadingRows}\n emptyView={(\n <ListEmptyView\n title={<Translate content=\"emptyViewTitle\" />}\n actions={uploadButton}\n />\n )}\n />\n );\n};\n\nAdditionalKeysList.propTypes = {\n data: PropTypes.array.isRequired,\n isDemo: PropTypes.bool,\n};\n\nexport default AdditionalKeysList;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { Outlet } from 'react-router-dom';\nimport { useMutation, useQuery } from '@apollo/client';\nimport { Button, Toolbar, StatusMessage } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport pageData from 'helpers/pageData';\nimport { addToast } from 'helpers/toasts';\nimport Link from 'components/common/Link';\nimport { withPageLayout } from '../layouts/PageLayout';\nimport LicenseKeyProperties from '../common/LicenseKeyProperties';\nimport { useAdditionalKeyUpdateDialog } from '../dialogs/AdditionalKeyUpdateDialog';\n\nconst Translate = Locale.getTranslate('components.pages.additional-key-info');\n\nimport ADDITIONAL_KEY_INFO_PAGE_QUERY from 'queries/AdditionalKeyInfoPage.graphql';\nimport INSTALL_ADDITIONAL_KEY_MUTATION from 'queries/InstallAdditionalKey.graphql';\n\nconst AdditionalKeyInfoPage = ({ params }) => {\n const { data: { additionalKey, mode: { isDemo } } } = useQuery(ADDITIONAL_KEY_INFO_PAGE_QUERY, {\n variables: { id: params.id },\n });\n const [installAdditionalKey] = useMutation(INSTALL_ADDITIONAL_KEY_MUTATION, {\n refetchQueries: [{\n query: ADDITIONAL_KEY_INFO_PAGE_QUERY,\n variables: { id: params.id },\n }],\n awaitRefetchQueries: true,\n });\n const [additionalKeyUpdateDialog, additionalKeyUpdateDialogOpen] = useAdditionalKeyUpdateDialog(additionalKey.keyNumber);\n\n const handleInstall = useCallback(async () => {\n try {\n await installAdditionalKey({\n variables: {\n input: {\n ids: [additionalKey.keyNumber],\n },\n },\n });\n\n addToast({\n intent: 'success',\n message: <Translate content=\"installSuccess\" />,\n });\n } catch (e) {\n addToast({\n intent: 'danger',\n message: e.message,\n });\n }\n }, [installAdditionalKey, additionalKey.keyNumber]);\n\n const isInvalid = useMemo(() => !!additionalKey.errors.length, [additionalKey.errors.length]);\n\n return (\n <>\n {additionalKey.errors.map(error => (\n <StatusMessage key={error} intent=\"danger\">\n <span\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{ __html: error }}\n />\n </StatusMessage>\n ))}\n <Toolbar>\n <Button\n data-id=\"update\"\n onClick={additionalKeyUpdateDialogOpen}\n tooltip={<Translate content=\"updateDescription\" />}\n disabled={isDemo}\n >\n <Translate content=\"update\" />\n </Button>\n <Button\n data-id=\"download\"\n component=\"a\"\n href={`/cp/license/additional/${encodeURIComponent(additionalKey.keyNumber)}/download`}\n tooltip={<Translate content=\"downloadDescription\" />}\n disabled={isDemo}\n >\n <Translate content=\"download\" />\n </Button>\n <Button\n data-id=\"install\"\n onClick={handleInstall}\n tooltip={<Translate content=\"installDescription\" />}\n disabled={isDemo || isInvalid}\n >\n <Translate content=\"install\" />\n </Button>\n <Button\n data-id=\"revert\"\n component={Link}\n to={`/cp/license/additional/${encodeURIComponent(additionalKey.keyNumber)}/revert/`}\n tooltip={additionalKey.revertKey ? (\n <Translate content=\"revertDescription\" />\n ) : (\n <Translate content=\"revertNotAvailableDescription\" />\n )}\n disabled={isDemo || !additionalKey.revertKey || isInvalid}\n >\n <Translate content=\"revert\" />\n </Button>\n </Toolbar>\n <LicenseKeyProperties properties={additionalKey.properties} />\n {additionalKeyUpdateDialog}\n <Outlet />\n </>\n );\n};\n\nAdditionalKeyInfoPage.propTypes = {\n params: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default withPageLayout(AdditionalKeyInfoPage, ({ params }) => {\n const { showFrames, pageHeader, pageSidebar } = pageData();\n const { data: { additionalKey } } = useQuery(ADDITIONAL_KEY_INFO_PAGE_QUERY, {\n variables: { id: params.id },\n });\n\n const breadcrumbs = [pageSidebar.isPowerUserPanel ? null : {\n title: Locale.getSection('admin.controllers.home.admin').lmsg('title'),\n href: '/admin/home/',\n }, {\n title: Locale.getSection('admin.controllers.server.tools').lmsg('title'),\n href: '/admin/server/tools/',\n }, {\n title: Locale.getSection('components.pages.license').lmsg('title'),\n href: '/cp/license/',\n }, {\n title: Locale.getSection('components.pages.additional-keys').lmsg('title'),\n href: '/cp/license/additional/',\n }, {\n title: Locale.getSection('components.pages.additional-key-info').lmsg('title'),\n href: `/cp/license/additional/${additionalKey.keyNumber}/`,\n }].filter(Boolean);\n\n const pageTitle = breadcrumbs[breadcrumbs.length - 1].title;\n\n return {\n showFrames,\n pageHeader: {\n ...pageHeader,\n helpMenu: {\n ...pageHeader.helpMenu,\n helpContext: 'additional_key_properties',\n },\n },\n pageSidebar,\n pageContentHeader: {\n pageTitle,\n breadcrumbs,\n },\n pageTitle,\n };\n});\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useMatch, useNavigate } from 'react-router-dom';\nimport { useMutation, useQuery } from '@apollo/client';\nimport { Drawer } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport { addToast } from 'helpers/toasts';\nimport LicenseKeyRevertForm from '../forms/LicenseKeyRevertForm';\n\nconst Translate = Locale.getTranslate('components.pages.additional-key-revert');\n\nimport ADDITIONAL_KEY_REVERT_PAGE_QUERY from 'queries/AdditionalKeyRevertPage.graphql';\nimport REVERT_ADDITIONAL_KEY_MUTATION from 'queries/RevertAdditionalKey.graphql';\n\nconst AdditionalKeyRevertPage = () => {\n const navigate = useNavigate();\n const match = useMatch('/cp/license/additional/:id/revert/');\n const { data } = useQuery(ADDITIONAL_KEY_REVERT_PAGE_QUERY, {\n skip: !match,\n variables: { id: match?.params.id },\n });\n const [revertAdditionalKey] = useMutation(REVERT_ADDITIONAL_KEY_MUTATION);\n\n const handleSuccess = ({ revertAdditionalKey: { newKey } }) => {\n addToast({\n intent: 'success',\n message: <Translate content=\"success\" />,\n });\n\n navigate(`/cp/license/additional/${newKey.keyNumber}/`);\n };\n\n const handleClose = () => {\n navigate(`/cp/license/additional/${match?.params.id}/`);\n };\n\n return (\n <Drawer\n data-type=\"additional-key-revert\"\n isOpen={Boolean(match && data)}\n onClose={handleClose}\n title={<Translate content=\"title\" />}\n form={data ? (\n <LicenseKeyRevertForm\n revertKey={data.additionalKey.revertKey}\n values={{\n keyNumber: match?.params.id,\n }}\n mutation={revertAdditionalKey}\n onSuccess={handleSuccess}\n />\n ) : null}\n />\n );\n};\n\nexport default AdditionalKeyRevertPage;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useMatch, useNavigate } from 'react-router-dom';\nimport { useMutation, useQuery } from '@apollo/client';\nimport { Drawer } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport { addToast } from 'helpers/toasts';\nimport { deleteServerMailAntivirusCache } from 'helpers/graphql/cache/deleteServerMailAntivirusCache';\nimport LicenseKeyUploadForm from '../forms/LicenseKeyUploadForm';\n\nconst AdditionalKeyTranslate = Locale.getTranslate('components.pages.additional-key-upload');\nconst PrimaryKeyTranslate = Locale.getTranslate('components.pages.primary-key-upload');\n\nimport ADDITIONAL_KEY_UPLOAD_PAGE_QUERY from 'queries/AdditionalKeyUploadPage.graphql';\nimport UPLOAD_ADDITIONAL_KEY_MUTATION from 'queries/UploadAdditionalKey.graphql';\nimport PRIMARY_KEY_INFO_PAGE_QUERY from 'queries/PrimaryKeyInfoPage.graphql';\nimport ADDITIONAL_KEYS_PAGE_QUERY from 'queries/AdditionalKeysPage.graphql';\n\nconst AdditionalKeyUploadPage = () => {\n const navigate = useNavigate();\n const match = useMatch('/cp/license/additional/upload/');\n const { data } = useQuery(ADDITIONAL_KEY_UPLOAD_PAGE_QUERY, { skip: !match });\n const [additionalKeyUpload] = useMutation(UPLOAD_ADDITIONAL_KEY_MUTATION, {\n refetchQueries: [{\n query: PRIMARY_KEY_INFO_PAGE_QUERY,\n }, {\n query: ADDITIONAL_KEYS_PAGE_QUERY,\n }],\n update: cache => deleteServerMailAntivirusCache(cache),\n awaitRefetchQueries: true,\n });\n\n const handleSuccess = ({ uploadAdditionalKey: { isAdditionalKey } }) => {\n addToast({\n intent: 'success',\n message: isAdditionalKey ? <AdditionalKeyTranslate content=\"success\" /> : <PrimaryKeyTranslate content=\"success\" />,\n });\n\n if (isAdditionalKey) {\n navigate('/cp/license/additional/');\n } else {\n navigate('/cp/license/primary/');\n }\n };\n\n const handleClose = () => {\n navigate('/cp/license/additional/');\n };\n\n return (\n <Drawer\n data-type=\"additional-key-upload\"\n isOpen={Boolean(match && data)}\n onClose={handleClose}\n title={<AdditionalKeyTranslate content=\"title\" />}\n form={data ? (\n <LicenseKeyUploadForm\n fileUploadAllowed={data?.config?.license?.fileUpload}\n mutation={additionalKeyUpload}\n onSuccess={handleSuccess}\n />\n ) : null}\n />\n );\n};\n\nexport default AdditionalKeyUploadPage;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Outlet } from 'react-router-dom';\nimport { useQuery } from '@apollo/client';\nimport { Locale } from 'jsw';\nimport pageData from 'helpers/pageData';\nimport { withPageLayout } from '../layouts/PageLayout';\nimport { withLicenseTabs } from '../tabs/LicenseTabs';\nimport AdditionalKeysList from '../lists/AdditionalKeysList';\n\nimport ADDITIONAL_KEYS_PAGE_QUERY from 'queries/AdditionalKeysPage.graphql';\n\nconst AdditionalKeysPage = () => {\n const { data: { additionalKeys, mode: { isDemo } } } = useQuery(ADDITIONAL_KEYS_PAGE_QUERY);\n\n return (\n <>\n <AdditionalKeysList\n data={additionalKeys}\n isDemo={isDemo}\n />\n <Outlet />\n </>\n );\n};\n\nexport default withPageLayout(withLicenseTabs(AdditionalKeysPage), () => {\n const { showFrames, pageHeader, pageSidebar } = pageData();\n\n return {\n showFrames,\n pageHeader: {\n ...pageHeader,\n helpMenu: {\n ...pageHeader.helpMenu,\n helpContext: 'additional_keys',\n },\n },\n pageSidebar,\n pageContentHeader: {\n breadcrumbs: [pageSidebar.isPowerUserPanel ? null : {\n title: Locale.getSection('components.pages.home').lmsg('title'),\n href: '/admin/home/',\n }, {\n title: Locale.getSection('admin.controllers.server.tools').lmsg('title'),\n href: '/admin/server/tools/',\n }, {\n title: Locale.getSection('components.pages.license').lmsg('title'),\n href: '/cp/license/',\n }, {\n title: Locale.getSection('components.pages.additional-keys').lmsg('title'),\n href: '/cp/license/additional/',\n }].filter(Boolean),\n tabs: [],\n tabsHasRootPage: true,\n },\n };\n});\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useMemo } from 'react';\nimport { matchPath, useLocation } from 'react-router-dom';\nimport { gql, useQuery } from '@apollo/client';\nimport { Tabs, Tab } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport Link from 'components/common/Link';\n\nconst LicenseTabs = () => {\n const { pathname } = useLocation();\n const { data: { mode: { isLicenseLocked } } } = useQuery(gql`\n {\n mode {\n isLicenseLocked\n }\n }\n `);\n const tabs = useMemo(() => [\n {\n 'data-id': 'primaryTab',\n title: Locale.getSection('components.pages.primary-key-info').lmsg('title'),\n url: '/cp/license/primary/',\n },\n {\n 'data-id': 'additionalTab',\n title: Locale.getSection('components.pages.additional-keys').lmsg('title'),\n url: '/cp/license/additional/',\n },\n ], []);\n\n const active = useMemo(() => tabs.findIndex(({ url }) => matchPath(url, pathname)) + 1, [tabs, pathname]);\n\n if (isLicenseLocked) {\n return null;\n }\n\n return (\n <Tabs active={active}>\n {tabs.map(({ url, ...props }) => (\n <Tab\n key={url}\n component={Link}\n to={url}\n {...props}\n />\n ))}\n </Tabs>\n );\n};\n\nexport const withLicenseTabs = Component => {\n const Wrapper = props => (\n <>\n <LicenseTabs />\n <Component {...props} />\n </>\n );\n Wrapper.displayName = `withLicenseTabs(${Component.displayName || Component.name || 'Component'})`;\n Wrapper.WrappedComponent = Component;\n\n return Wrapper;\n};\n\nexport default LicenseTabs;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { ApolloCache, DefaultContext } from '@apollo/client';\n\nexport const deleteServerMailAntivirusCache = (cache: ApolloCache<DefaultContext>) => cache.modify({\n id: cache.identify({ __typename: 'ServerMail' }),\n fields: {\n antivirus: (_, { DELETE }) => DELETE,\n antivirusPolicy: (_, { DELETE }) => DELETE,\n },\n});\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"DeleteAdditionalKey\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DeleteAdditionalKeyInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"deleteAdditionalKey\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":127}};\n doc.loc.source = {\"body\":\"mutation DeleteAdditionalKey($input: DeleteAdditionalKeyInput!) {\\n deleteAdditionalKey(input: $input) {\\n ids\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"DeleteAdditionalKey\"] = oneQuery(doc, \"DeleteAdditionalKey\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"InstallAdditionalKey\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"InstallAdditionalKeyInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"installAdditionalKey\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":130}};\n doc.loc.source = {\"body\":\"mutation InstallAdditionalKey($input: InstallAdditionalKeyInput!) {\\n installAdditionalKey(input: $input) {\\n ids\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"InstallAdditionalKey\"] = oneQuery(doc, \"InstallAdditionalKey\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"RevertAdditionalKey\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"RevertAdditionalKeyInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"revertAdditionalKey\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"newKey\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"keyNumber\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":164}};\n doc.loc.source = {\"body\":\"mutation RevertAdditionalKey($input: RevertAdditionalKeyInput!) {\\n revertAdditionalKey(input: $input) {\\n newKey {\\n keyNumber\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"RevertAdditionalKey\"] = oneQuery(doc, \"RevertAdditionalKey\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"UploadAdditionalKey\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UploadAdditionalKeyInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uploadAdditionalKey\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isAdditionalKey\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":139}};\n doc.loc.source = {\"body\":\"mutation UploadAdditionalKey($input: UploadAdditionalKeyInput!) {\\n uploadAdditionalKey(input: $input) {\\n isAdditionalKey\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"UploadAdditionalKey\"] = oneQuery(doc, \"UploadAdditionalKey\");\n \n"],"names":["listLocale","Locale","getSection","SORT_ASC","SORT_DESC","ALL_ITEMS_PER_PAGE","storage","set","key","data","localStorage","setItem","JSON","stringify","get","getItem","parse","getSortListName","id","getPageListName","List","columns","itemsPerPage","defaultItemsPerPage","itemsPerPageOptions","sortColumn","defaultSortColumn","sortDirection","defaultSortDirection","searchField","locale","emptyView","emptyFilteredView","toolbar","selection","onSelectionChange","searchBarInputProps","rowKey","useStorage","props","setSortState","useSortState","defaultColumn","defaultDirection","setState","useState","state","find","sortable","page","searchPattern","setPageState","usePageState","includes","listEmptyView","useMemo","_jsx","ListEmptyView","reason","columnsData","map","sortDataField","column","filteredData","filter","row","Array","isArray","some","field","String","toLowerCase","sortedData","compare","sort","defaultCompare","a","b","displayData","from","to","slice","handleSearchPatternChange","useCallback","term","handleItemsPerPageChange","Math","ceil","length","useEffect","newSelection","item","getRowKey","BaseList","pagination","Pagination","current","total","onSelect","onItemsPerPageChange","_jsxs","Toolbar","children","_Fragment","ToolbarExpander","ToolbarGroup","title","SearchBar","inputProps","placeholder","lmsg","value","onTyping","totalRows","onSortChange","filtered","formatMessage","propTypes","PropTypes","isRequired","Translate","getTranslate","LicenseKeyProperties","properties","keysPressed","setKeysPressed","godMode","setGodMode","handleKeyUp","keyCode","keys","join","useEventListener","document","body","Section","name","description","SectionItem","Status","intent","content","ButtonsTranslate","UPDATE_ADDITIONAL_KEY","gql","checkKeyExistInMutationResult","updateAdditionalKey","query","additionalKey","AdditionalKeyUpdateDialog","keyNumber","isOpen","onClose","onKeyTerminationReveal","called","loading","result","error","useMutation","variables","input","errorPolicy","fetchPolicy","update","cache","evict","fieldName","refetchQueries","ADDITIONAL_KEY_INFO_PAGE_QUERY","awaitRefetchQueries","useLayoutEffect","Dialog","canClose","cancelButton","buttons","Button","onClick","ContentLoader","loader","type","icons","StatusMessage","dangerouslySetInnerHTML","__html","message","Plaintext","newKey","useAdditionalKeyUpdateDialog","navigate","useNavigate","setIsOpen","isKeyTerminationRevealed","useRef","handleOpen","handleClose","replace","LicenseKeyRevertForm","values","initialValues","revertKey","setValues","Form","onFieldChange","handleFieldChange","setIn","submitButton","applyButton","LicenseKeyUploadForm","fileUploadAllowed","code","file","undefined","FormFieldRadioButtons","label","options","indentFields","FormFieldText","size","FormField","getId","getName","setValue","isDisabled","InputFile","disabled","onChange","AdditionalKeysList","isDemo","setSelection","loadingRows","setLoadingRows","installAdditionalKey","INSTALL_ADDITIONAL_KEY_MUTATION","ADDITIONAL_KEYS_PAGE_QUERY","deleteServerMailAntivirusCache","deleteAdditionalKey","DELETE_ADDITIONAL_KEY_MUTATION","selectedRows","handleSelectionChange","width","render","errors","Tooltip","Link","encodeURIComponent","ListActions","ListAction","primary","icon","component","href","tooltip","Boolean","uploadButton","ListOperation","noSelectionText","actionButtonText","cancelButtonText","async","ids","addToast","e","critical","confirmationText","keyName","count","actions","array","bool","AdditionalKeyInfoPage","params","mode","useQuery","additionalKeyUpdateDialog","additionalKeyUpdateDialogOpen","handleInstall","isInvalid","Outlet","withPageLayout","showFrames","pageHeader","pageSidebar","pageData","breadcrumbs","isPowerUserPanel","pageTitle","helpMenu","helpContext","pageContentHeader","AdditionalKeyRevertPage","match","useMatch","ADDITIONAL_KEY_REVERT_PAGE_QUERY","skip","revertAdditionalKey","REVERT_ADDITIONAL_KEY_MUTATION","Drawer","form","mutation","onSuccess","handleSuccess","AdditionalKeyTranslate","PrimaryKeyTranslate","AdditionalKeyUploadPage","ADDITIONAL_KEY_UPLOAD_PAGE_QUERY","additionalKeyUpload","UPLOAD_ADDITIONAL_KEY_MUTATION","PRIMARY_KEY_INFO_PAGE_QUERY","config","license","fileUpload","uploadAdditionalKey","isAdditionalKey","withLicenseTabs","AdditionalKeysPage","additionalKeys","tabs","tabsHasRootPage","LicenseTabs","pathname","useLocation","isLicenseLocked","url","active","findIndex","matchPath","Tabs","Tab","Component","Wrapper","displayName","WrappedComponent","modify","identify","__typename","fields","antivirus","_","DELETE","antivirusPolicy","doc","loc","source","collectFragmentReferences","node","refs","kind","add","selectionSet","selections","forEach","variableDefinitions","def","definitions","definitionRefs","findOperation","i","element","Set","module","exports","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","prevRefs","has","childRef","op","push","oneQuery"],"sourceRoot":""}
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
additional.js
28953 bytes
0644
additional.js.map
99325 bytes
0644
N4ST4R_ID | Naxtarrr