Submit
Path:
~
/
/
opt
/
psa
/
admin
/
cp
/
public
/
javascript
/
views
/
admin
/
domain
/
File Content:
list.js.map
{"version":3,"file":"javascript/views/admin/domain/list.js?1406e909ae89aeec60f1","mappings":"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","sources":["webpack:///./components/common/ApplicationWizard/ApplicationWizard.js","webpack:///./components/common/ApplicationWizard/ChooseApplicationStep.js","webpack:///./components/common/ApplicationWizard/MultistepForm.js","webpack:///./components/common/ApplicationWizard/SelectedApplicationInfo.js","webpack:///./components/common/IpSelectDropdowns/IpSelectDropdown.js","webpack:///./components/common/IpSelectDropdowns/IpSelectDropdowns.js","webpack:///./components/common/IpSelectDropdowns/index.js","webpack:///./components/common/TechDomainName.js","webpack:///./components/formFields/FormFieldDomainName.js","webpack:///./components/formFields/FormFieldLookUp.js","webpack:///./components/forms/AddDomainForm.js","webpack:///./components/jsw/JswLookUp.js","webpack:///./components/lists/DomainsList/DomainListFilter.js","webpack:///./components/lists/DomainsList/DomainListToolbar.js","webpack:///./components/lists/DomainsList/DomainsList.js","webpack:///./components/lists/DomainsList/SiteDescription.js","webpack:///./components/pages/DomainsPage.js","webpack:///./helpers/changeDomainStatus.js","webpack:///./helpers/description.js","webpack:///./helpers/escapeStringRegexp.ts","webpack:///./helpers/generateUserName.ts","webpack:///./helpers/graphql/cache/evictUserStatisticsCache.js","webpack:///./views/smb/web/common/ItemActions/ItemActions.js","webpack:///./views/smb/web/common/ItemActions/handleDelete.js","webpack:///./views/smb/web/common/ItemStatus/ItemStatus.js","webpack:///./views/smb/web/common/ItemStatus/StatusMenu.js","webpack:///./views/smb/web/common/MoveDomain/MoveDomainDrawer.js","webpack:///./views/smb/web/common/MoveDomain/useMoveDomainDrawer.js","webpack:///./views/smb/web/common/getExtensionName.js","webpack:///./views/smb/web/rename/RenameDomain.js","webpack:///./views/smb/web/view/DynamicListItemTitleActions.js","webpack:///./views/smb/web/view/Favicon.js","webpack:///./images/code.svg","webpack:///./images/mail.svg","webpack:///./images/upload-files.svg","webpack:///./queries/GetWebspaceIpAddress.graphql"],"sourcesContent":["// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Locale } from 'jsw';\nimport { useLocation } from 'react-router-dom';\nimport ChooseApplicationStep from './ChooseApplicationStep';\nimport MultistepForm from './MultistepForm';\nimport SelectedApplicationInfo from './SelectedApplicationInfo';\n\nimport './ApplicationWizard.less';\n\nconst ApplicationsTranslate = Locale.getTranslate('components.domain-applications.applications');\n\nconst getExtensionAppName = extensionId => `ext-${extensionId}`;\n\nconst ApplicationWizard = ({\n onFieldChange,\n onStepChange = undefined,\n formPrefix = '',\n wizardConfig = {\n enabled: true,\n blankSite: true,\n uploadFiles: true,\n mailHosting: true,\n },\n isMailServiceSupported,\n embeddedForms = [],\n extensionButtons = [],\n values,\n children = null,\n entity = undefined,\n className = undefined,\n ...props\n}) => {\n const location = useLocation();\n const [preselectedAppName, setPreselectedAppName] = useState(() => new URLSearchParams(location.search).get('appName'));\n const handleApplicationChange = applicationName => {\n onFieldChange('applicationName', applicationName);\n };\n\n const handleStepChange = (prev, step) => {\n if (step === 0 && steps.length > 1) {\n onFieldChange('applicationName', null);\n if (preselectedAppName) {\n setPreselectedAppName(null);\n window.history.replaceState(null, '', location.pathname);\n }\n return prev;\n }\n return step;\n };\n\n const applicationsList = [\n wizardConfig.blankSite && {\n name: 'blank-site',\n icon: require('images/code.svg'),\n title: <ApplicationsTranslate content=\"blank-site.title\" />,\n description: <ApplicationsTranslate content=\"blank-site.description\" />,\n },\n wizardConfig.uploadFiles && {\n name: 'upload-files',\n icon: require('images/upload-files.svg'),\n title: <ApplicationsTranslate content=\"upload-files.title\" />,\n description: <ApplicationsTranslate content=\"upload-files.description\" />,\n },\n ...extensionButtons.map(({ id, extensionId, title, icon, description }) => ({\n name: getExtensionAppName(extensionId),\n id,\n icon,\n title,\n description,\n })),\n (wizardConfig.mailHosting && isMailServiceSupported) && {\n name: 'mail-hosting',\n icon: require('images/mail.svg'),\n title: <ApplicationsTranslate content=\"mail-hosting.title\" />,\n description: <ApplicationsTranslate content=\"mail-hosting.description\" />,\n },\n ].filter(Boolean);\n\n const selectedApplication = values.applicationName\n ? applicationsList.find(({ name }) => name === values.applicationName)\n : null;\n\n const showSelectedApplicationInfo = selectedApplication && applicationsList.length > 1;\n\n const steps = [\n applicationsList.length > 1 && {\n key: 'chooseApplicationStep',\n children: (\n <ChooseApplicationStep\n onApplicationSelect={handleApplicationChange}\n applicationsList={applicationsList}\n />\n ),\n nextButton: false,\n },\n {\n key: 'addDomainStep',\n formPrefix,\n children: (\n <>\n {showSelectedApplicationInfo && (\n <SelectedApplicationInfo\n icon={selectedApplication.icon}\n applicationTitle={selectedApplication.title}\n entity={entity}\n />\n )}\n {children}\n </>\n ),\n embeddedForms,\n },\n ].filter(Boolean);\n\n useEffect(() => {\n if (applicationsList.length === 0) {\n handleApplicationChange('blank-site');\n }\n if (applicationsList.length === 1) {\n const [{ name }] = applicationsList;\n handleApplicationChange(name);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (preselectedAppName && !values.applicationName && applicationsList.length > 1) {\n const preselectedApplication = applicationsList.find(\n ({ name }) => name === preselectedAppName || name === getExtensionAppName(preselectedAppName),\n );\n preselectedApplication && handleApplicationChange(preselectedApplication.name);\n }\n\n const step = !values.applicationName || steps.length === 1 ? 0 : 1;\n useEffect(() => {\n onStepChange?.(steps[step].key);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [step]);\n\n return (\n <MultistepForm\n {...props}\n className={classNames(className, {\n 'application-wizard-form__with-selected-info': showSelectedApplicationInfo,\n })}\n values={values}\n onFieldChange={onFieldChange}\n onStepChange={handleStepChange}\n step={step}\n steps={steps}\n />\n );\n};\n\nApplicationWizard.propTypes = {\n values: PropTypes.object.isRequired,\n className: PropTypes.string,\n onFieldChange: PropTypes.func.isRequired,\n onStepChange: PropTypes.func,\n children: PropTypes.node,\n formPrefix: PropTypes.string,\n wizardConfig: PropTypes.shape({\n enabled: PropTypes.bool,\n blankSite: PropTypes.bool,\n uploadFiles: PropTypes.bool,\n }),\n isMailServiceSupported: PropTypes.bool.isRequired,\n embeddedForms: PropTypes.array,\n extensionButtons: PropTypes.array,\n entity: PropTypes.oneOf(['domain', 'subscription']),\n};\n\nexport default ApplicationWizard;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Heading, Item, ItemList, Paragraph, Icon } from '@plesk/ui-library';\nimport PropTypes from 'prop-types';\nimport { Locale } from 'jsw';\n\nimport './ChooseApplicationStep.less';\n\nconst ApplicationsListTranslate = Locale.getTranslate('components.domain-applications');\n\nconst ChooseApplicationStep = ({ onApplicationSelect, applicationsList = [] }) => (\n <>\n <Heading level=\"3\">\n <ApplicationsListTranslate content=\"title\" />\n </Heading>\n <ItemList\n minColumnWidth={220}\n gap=\"xs\"\n selectable\n stretchable\n >\n {applicationsList.map(({ id, name, icon, title, description }) => (\n <Item\n data-action={name}\n key={name}\n role=\"button\"\n icon={(\n <Icon\n src={icon}\n intent=\"info\"\n size=\"48\"\n className=\"choose-application-step__icon\"\n />\n )}\n data-testid=\"listItem\"\n data-cy={id ?? name}\n title={<Heading level=\"4\">{title}</Heading>}\n onClick={() => onApplicationSelect(name)}\n >\n <Paragraph>{description}</Paragraph>\n </Item>\n ))}\n </ItemList>\n </>\n);\n\nChooseApplicationStep.propTypes = {\n onApplicationSelect: PropTypes.func.isRequired,\n applicationsList: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n icon: PropTypes.string.isRequired,\n title: PropTypes.node,\n description: PropTypes.node,\n })),\n};\n\nexport default ChooseApplicationStep;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Button } from '@plesk/ui-library';\nimport { cloneElement, isValidElement, useRef, useState } from 'react';\nimport Form from 'components/Form';\nimport { Locale } from 'jsw';\nimport PropTypes from 'prop-types';\n\nconst ButtonsTranslate = Locale.getTranslate('components.buttons');\n\nconst MultistepForm = ({\n step = 0,\n steps = [],\n onStepChange = (prev, step) => step,\n onSubmit = undefined,\n submitButton = {},\n cancelButton = {},\n ...props\n}) => {\n const formRef = useRef();\n const [stateStep, setStep] = useState(0);\n const currentStep = stateStep + step;\n const { children, formPrefix, embeddedForms, backButton, nextButton } = {\n backButton: {},\n nextButton: {},\n ...steps[currentStep],\n };\n\n const isLastStep = currentStep === steps.length - 1;\n const isFirstStep = currentStep === 0;\n const stepKey = steps[currentStep]?.key ?? currentStep;\n\n const handleErrors = errors => {\n const baseFormStep = steps.findIndex(({ formPrefix }) => formPrefix === '');\n\n const errorSteps = Object.keys(errors).map(errorSection => {\n const errorStep = steps.findIndex(({ formPrefix, embeddedForms = [] }) => (\n formPrefix === errorSection || embeddedForms.some(({ name }) => name === errorSection)\n ));\n return errorStep >= 0 ? errorStep : baseFormStep;\n });\n\n setStep(onStepChange(currentStep, errorSteps.length > 0 ? Math.min(...errorSteps) : step) - step);\n };\n\n const handleBack = () => {\n formRef.current.handleEmbeddedFormValues();\n setStep(prevState => onStepChange(prevState + step, prevState + step - 1) - step);\n };\n\n const handleNext = () => {\n formRef.current.handleEmbeddedFormValues();\n setStep(prevState => onStepChange(prevState + step, prevState + step + 1) - step);\n };\n\n const handleSubmit = () => formRef.current.submit();\n\n const getAdditionalButtons = () => {\n const additionalButtons = [\n isFirstStep && cancelButton && (\n <Button\n key=\"cancel\"\n id=\"btn-cancel\"\n data-type={stepKey}\n // eslint-disable-next-line react/no-children-prop\n children={<ButtonsTranslate content=\"cancel\" />}\n {...cancelButton}\n />\n ),\n !isFirstStep && backButton && (\n <Button\n key=\"back\"\n id=\"btn-back\"\n data-type={stepKey}\n arrow=\"backward\"\n onClick={handleBack}\n // eslint-disable-next-line react/no-children-prop\n children={<ButtonsTranslate content=\"back\" />}\n {...backButton}\n />\n ),\n !isLastStep && nextButton && (\n <Button\n key=\"next\"\n id=\"btn-next\"\n data-type={stepKey}\n intent=\"primary\"\n onClick={handleNext}\n arrow=\"forward\"\n // eslint-disable-next-line react/no-children-prop\n children={<ButtonsTranslate content=\"nextWithoutArrow\" />}\n {...nextButton}\n />\n ),\n ];\n\n if (isLastStep && submitButton) {\n additionalButtons.push(isValidElement(submitButton) ?\n cloneElement(submitButton, { handleSubmit })\n :\n <Button\n key=\"submit\"\n id=\"btn-submit\"\n data-type={stepKey}\n intent=\"primary\"\n arrow=\"forward\"\n onClick={handleSubmit}\n // eslint-disable-next-line react/no-children-prop\n children={<ButtonsTranslate content=\"ok\" />}\n {...submitButton}\n />,\n );\n }\n\n return additionalButtons;\n };\n\n return (\n <Form\n {...props}\n ref={formRef}\n additionalButtons={getAdditionalButtons()}\n submitButton={false}\n onSubmit={isLastStep ? onSubmit : handleNext}\n onError={handleErrors}\n applyButton={false}\n cancelButton={false}\n formPrefix={formPrefix}\n embeddedForms={embeddedForms}\n >\n {children}\n </Form>\n );\n};\n\nMultistepForm.propTypes = {\n step: PropTypes.number,\n steps: PropTypes.arrayOf(PropTypes.shape({\n formPrefix: PropTypes.string,\n embeddedForms: PropTypes.array,\n children: PropTypes.node,\n nextButton: PropTypes.bool,\n backButton: PropTypes.bool,\n key: PropTypes.string,\n })),\n onStepChange: PropTypes.func,\n onSubmit: PropTypes.func,\n submitButton: PropTypes.object,\n cancelButton: PropTypes.object,\n};\n\nexport default MultistepForm;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\nimport { Locale } from 'jsw';\nimport { Icon, Text } from '@plesk/ui-library';\n\nimport './SelectedApplicationInfo.less';\n\nconst Translate = Locale.getTranslate('components.domain-applications.applications');\nconst locale = Locale.getSection('components.domain-applications.applications');\n\nconst SelectedApplicationInfo = ({ icon, entity = 'domain', applicationTitle }) => (\n <div className=\"application-wizard-selected-application-info\">\n <Icon src={icon} size=\"32\" alt={locale.lmsg('selectedOptionIcon')} />\n <Translate\n component=\"div\"\n content=\"selectedOption\"\n params={{\n optionName: <Text bold>{applicationTitle}</Text>,\n entity: locale.lmsg(`${entity}Entity`),\n }}\n />\n </div>\n);\n\nSelectedApplicationInfo.propTypes = {\n icon: PropTypes.string.isRequired,\n applicationTitle: PropTypes.node.isRequired,\n entity: PropTypes.oneOf(['domain', 'subscription']),\n};\n\nexport default SelectedApplicationInfo;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { FormFieldSelect, SelectOption, useTranslate } from '@plesk/ui-library';\nimport PropTypes from 'prop-types';\nimport { Locale } from 'jsw';\n\nconst IpAddressTranslate = Locale.getTranslate('components.forms.ip-addresses-selector');\n\nconst IpSelectDropdown = ({ ipAddresses, namePrefix, type, isOtherTypeAvailable, getIpAddressType, ...props }) => {\n const translate = useTranslate('components.forms.ip-addresses-selector');\n\n return !!ipAddresses.length && (\n <FormFieldSelect\n key={type}\n label={<IpAddressTranslate content={isOtherTypeAvailable ? `${type}Address` : 'ipAddress'} />}\n name={`${namePrefix}[${type}]`}\n {...props}\n >\n {ipAddresses.map(({ id, ipAddress, publicIpAddress, type }) => (\n <SelectOption key={id} value={id}>{`${publicIpAddress || ipAddress}${getIpAddressType(type)}`}</SelectOption>\n ))}\n {isOtherTypeAvailable && (\n <SelectOption value=\"none\">{translate('noIpAddressHint')}</SelectOption>\n )}\n </FormFieldSelect>\n );\n};\n\nIpSelectDropdown.propTypes = {\n ipAddresses: PropTypes.array.isRequired,\n namePrefix: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n isOtherTypeAvailable: PropTypes.bool.isRequired,\n getIpAddressType: PropTypes.func.isRequired,\n};\nexport default IpSelectDropdown;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useTranslate } from '@plesk/ui-library';\nimport PropTypes from 'prop-types';\nimport { useMemo, useCallback } from 'react';\nimport IpSelectDropdown from './IpSelectDropdown';\n\nexport const TYPE_IPV4 = 'ipv4';\nexport const TYPE_IPV6 = 'ipv6';\n\nexport const TYPE_SHARED = 'SHARED';\nexport const TYPE_EXCLUSIVE = 'EXCLUSIVE';\n\nconst IpSelectDropdowns = ({ ipAddresses, namePrefix, isIPv6Supported = true, ...props }) => {\n const translate = useTranslate('components.forms.ip-addresses-selector');\n\n const ipv4Addresses = useMemo(() => ipAddresses.filter(({ isIPv6, isBroken }) => !isIPv6 && !isBroken), [ipAddresses]);\n const ipv6Addresses = useMemo(() => ipAddresses.filter(({ isIPv6, isBroken }) => isIPv6 && !isBroken), [ipAddresses]);\n\n const getIpAddressType = useCallback(type => {\n switch (type) {\n case TYPE_SHARED: return ` (${translate('shared')})`;\n case TYPE_EXCLUSIVE: return ` (${translate('exclusive')})`;\n default: return '';\n }\n }, [translate]);\n\n return (\n <>\n <IpSelectDropdown\n ipAddresses={ipv4Addresses}\n namePrefix={namePrefix}\n type={TYPE_IPV4}\n isOtherTypeAvailable={isIPv6Supported && !!ipv6Addresses.length}\n getIpAddressType={getIpAddressType}\n {...props}\n />\n {isIPv6Supported && (\n <IpSelectDropdown\n ipAddresses={ipv6Addresses}\n namePrefix={namePrefix}\n type={TYPE_IPV6}\n isOtherTypeAvailable={!!ipv4Addresses.length}\n getIpAddressType={getIpAddressType}\n {...props}\n />\n )}\n </>\n );\n};\n\nIpSelectDropdowns.propTypes = {\n ipAddresses: PropTypes.array.isRequired,\n namePrefix: PropTypes.string.isRequired,\n isIPv6Supported: PropTypes.bool,\n};\n\nexport default IpSelectDropdowns;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { TYPE_IPV6 } from './IpSelectDropdowns';\n\nexport const prepareBackendData = ipAddresses => {\n const ips = [];\n Object.keys(ipAddresses).forEach(type => {\n Object.keys(ipAddresses[type]).forEach(id => {\n if (id !== 'none') {\n ips.push({\n id,\n ipAddress: ipAddresses[type][id],\n isIPv6: type === TYPE_IPV6,\n });\n }\n });\n });\n return ips;\n};\n\nexport { default, TYPE_SHARED, TYPE_EXCLUSIVE } from './IpSelectDropdowns';\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport {\n Alert,\n Section,\n ItemList,\n Item,\n Icon,\n Text,\n FormField,\n Cuttable,\n Status,\n Heading,\n Paragraph,\n} from '@plesk/ui-library';\nimport { useState, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { Locale } from 'jsw';\nimport FormFieldDomainName from 'components/formFields/FormFieldDomainName';\n\nexport const TYPE_TECH = 'tech';\nexport const TYPE_CUSTOM = 'custom';\n\nconst Translate = Locale.getTranslate('components.forms.domain.tech-domain-name');\n\nconst TechDomainName = ({\n isEnabled,\n isDefault,\n url,\n vendor,\n maxDomainLength,\n typeName,\n name,\n ipAddress = null,\n onDomainNameChange,\n onTypeChange,\n}) => {\n const [type, setType] = useState(isEnabled && isDefault ? TYPE_TECH : TYPE_CUSTOM);\n\n const handleTypeChange = value => {\n setType(value);\n onTypeChange(value);\n onDomainNameChange('');\n };\n\n if (!isEnabled) {\n return (\n <DomainNameSection\n name={name}\n isEnabled={false}\n onDomainNameChange={onDomainNameChange}\n />\n );\n }\n\n const types = [\n { key: TYPE_CUSTOM, icon: <Icon name=\"ribbon\" intent=\"success\" /> },\n { key: TYPE_TECH, icon: <Icon name=\"rocket\" intent=\"info\" /> },\n ];\n\n return (\n <>\n <Section title={<Translate content=\"title\" />} vertical>\n <FormField name={typeName} onChange={value => handleTypeChange(value)}>\n {({ getId, getName, getValue, setValue, isDisabled }) => (\n <>\n <ItemList\n stretchable\n selectable\n minColumnWidth={270}\n gap=\"sm\"\n value={getValue()}\n onSelect={value => {\n if (value !== type) {\n setValue(value);\n }\n }}\n >\n {types.map(({ key, icon }) => (\n <Item\n icon={icon}\n key={key}\n role=\"button\"\n value={key}\n data-action={`use-${key}-domain`}\n title={(\n <Heading level=\"4\">\n <Paragraph>\n <Translate content={`${key}DomainTitle`} />\n </Paragraph>\n </Heading>\n )}\n disabled={isDisabled()}\n >\n <Text fontSize=\"md\">\n <Translate content={`${key}DomainText`} />\n </Text>\n </Item>\n ))}\n </ItemList>\n <input\n hidden\n id={getId()}\n name={getName()}\n value={getValue()}\n readOnly\n />\n </>\n )}\n </FormField>\n </Section>\n {type === TYPE_TECH ? (\n <TechDomainSection\n name={name}\n ipAddress={ipAddress}\n url={url}\n vendor={vendor}\n maxDomainLength={maxDomainLength}\n onDomainNameChange={onDomainNameChange}\n />\n ) : (\n <DomainNameSection\n name={name}\n isEnabled\n onDomainNameChange={onDomainNameChange}\n />\n )}\n </>\n );\n};\n\nconst DomainNameSection = ({ name, isEnabled, onDomainNameChange }) => (\n <Section vertical>\n <FormFieldDomainName\n name={name}\n label={isEnabled ? <Translate content=\"customDomain\" /> : <Translate content=\"domainName\" />}\n onChange={onDomainNameChange}\n required\n />\n </Section>\n);\nDomainNameSection.propTypes = {\n name: PropTypes.string.isRequired,\n isEnabled: PropTypes.bool.isRequired,\n onDomainNameChange: PropTypes.func.isRequired,\n};\n\nconst TechDomainSection = ({ name, onDomainNameChange, ...props }) => (\n <Section vertical>\n <>\n <FormField\n label={<Translate content=\"techDomain\" />}\n name={name}\n onChange={value => onDomainNameChange(value)}\n >\n {({ getId, getName, ...fieldApi }) => (\n <TechDomainSelector\n id={getId()}\n name={getName()}\n {...fieldApi}\n {...props}\n />\n )}\n </FormField>\n <Cuttable maxHeight={24}>\n <Paragraph>\n <Translate content=\"techDomainDesc\" />\n </Paragraph>\n <ul>\n <li><Translate content=\"techDomainRandom\" /></li>\n <li><Translate content=\"techDomainDns\" /></li>\n </ul>\n <Paragraph>\n <Translate content=\"techDomainSwitch\" />\n </Paragraph>\n </Cuttable>\n </>\n </Section>\n);\n\nTechDomainSection.propTypes = {\n name: PropTypes.string.isRequired,\n onDomainNameChange: PropTypes.func.isRequired,\n};\n\nconst getSubdomainName = async ({ url, ipAddress, vendor, maxDomainLength }) => {\n const response = await fetch(url, {\n method: 'POST',\n body: JSON.stringify({ ip_address: ipAddress, vendor, max_length: maxDomainLength }),\n });\n\n const { subdomain } = await response.json();\n if (!subdomain) {\n throw new Error('subdomain is empty');\n }\n\n return subdomain;\n};\n\nconst TechDomainSelector = ({ id, name, ipAddress = null, url, vendor, getValue, setValue, maxDomainLength }) => {\n const [loading, setLoading] = useState(false);\n const [requestedIpAddress, setRequestedIpAddress] = useState(ipAddress);\n const [errors, setErrors] = useState({});\n\n const requestDomainName = useCallback(async () => {\n setErrors({});\n\n if (getValue() && ipAddress === requestedIpAddress) {\n return;\n }\n if (!ipAddress) {\n setErrors({ noIpAddress: <Translate content=\"errorNoIpAddress\" /> });\n return;\n }\n\n setLoading(true);\n try {\n const subdomain = await getSubdomainName({ url, ipAddress, vendor, maxDomainLength });\n setValue(subdomain);\n setRequestedIpAddress(ipAddress);\n } catch {\n setErrors({ error: <Translate content=\"error\" /> });\n } finally {\n setLoading(false);\n }\n }, [getValue, setValue, ipAddress, requestedIpAddress, url, vendor, maxDomainLength]);\n\n useEffect(() => {\n requestDomainName();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ipAddress]);\n\n return (\n <>\n {loading ? (\n <Status progress><Translate content=\"generating\" /></Status>\n ) : (\n <Text bold>{getValue()}</Text>\n )}\n <input\n hidden\n id={id}\n name={name}\n value={getValue()}\n readOnly\n />\n {Object.keys(errors).map(key => (\n <Alert key={key} intent=\"danger\">\n <Icon name=\"exclamation-mark-circle-filled\" intent=\"danger\" />\n {' '}\n {errors[key]}\n </Alert>\n ))}\n </>\n );\n};\n\nTechDomainSelector.propTypes = {\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n ipAddress: PropTypes.string,\n url: PropTypes.string.isRequired,\n vendor: PropTypes.string.isRequired,\n maxDomainLength: PropTypes.number.isRequired,\n getValue: PropTypes.func.isRequired,\n setValue: PropTypes.func.isRequired,\n};\n\nTechDomainName.propTypes = {\n isEnabled: PropTypes.bool.isRequired,\n isDefault: PropTypes.bool.isRequired,\n url: PropTypes.string.isRequired,\n vendor: PropTypes.string.isRequired,\n maxDomainLength: PropTypes.number.isRequired,\n typeName: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n ipAddress: PropTypes.string,\n onDomainNameChange: PropTypes.func.isRequired,\n onTypeChange: PropTypes.func.isRequired,\n};\n\nexport default TechDomainName;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { FormField, Input, Text } from '@plesk/ui-library';\nimport PropTypes from 'prop-types';\n\nconst FormFieldDomainName = ({ size = 'lg', ...props }) => (\n <FormField {...props}>\n {({ getId, getName, getValue, setValue, isDisabled }) => (\n <div className=\"composite-field\">\n <Text className=\"composite-field__prefix\">\n {'www. '}\n </Text>\n <Input\n id={getId()}\n name={getName()}\n value={getValue()}\n placeholder=\"domain.name\"\n size={size}\n onChange={e => setValue(e.target.value)}\n disabled={isDisabled()}\n />\n </div>\n )}\n </FormField>\n);\n\nFormFieldDomainName.propTypes = {\n size: PropTypes.string,\n};\n\nexport default FormFieldDomainName;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\nimport { FormField } from '@plesk/ui-library';\nimport JswLookUp from '../jsw/JswLookUp';\nimport { Locale } from 'jsw';\n\nconst lookupLocale = Locale.getSection('components.elements.lookup');\n\nconst FormFieldLookUp = ({\n data = undefined,\n dataUrl = undefined,\n lookUpParams = undefined,\n newItemValue = undefined,\n locale = undefined,\n placeholder = undefined,\n ...props\n}) => (\n <FormField {...props}>\n {({ getId, getName, getValue, setValue, isDisabled }) => (\n <JswLookUp\n id={getId()}\n name={getName()}\n value={getValue()}\n onChange={value => setValue(value)}\n data={data}\n dataUrl={dataUrl}\n lookUpParams={lookUpParams}\n newItemValue={newItemValue}\n locale={{\n ...lookupLocale.messages,\n ...locale,\n }}\n disabled={isDisabled()}\n placeholder={placeholder}\n />\n )}\n </FormField>\n);\n\nFormFieldLookUp.propTypes = {\n locale: PropTypes.object,\n data: PropTypes.array,\n dataUrl: PropTypes.string,\n lookUpParams: PropTypes.object,\n newItemValue: PropTypes.object,\n placeholder: PropTypes.string,\n};\n\nexport default FormFieldLookUp;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useState, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useApolloClient } from '@apollo/client';\nimport { useNavigate } from 'react-router-dom';\nimport { Locale, UAT, toPunycode } from 'jsw';\nimport {\n Section,\n FormField,\n FormFieldText,\n FormFieldPassword,\n FormFieldRadioButtons,\n FormFieldSelect,\n FormFieldCheckbox,\n SelectOption,\n Input,\n Icon,\n Heading,\n Text,\n setIn,\n StatusMessage,\n} from '@plesk/ui-library';\nimport { useCreateFormInDrawer } from 'hooks';\nimport { addToast } from 'helpers/toasts';\nimport TechDomainName, { TYPE_TECH } from '../common/TechDomainName';\nimport Form from 'components/Form';\nimport FormFieldLookUp from '../formFields/FormFieldLookUp';\nimport ApplicationWizard from '../common/ApplicationWizard';\n\nimport GET_WEBSPACE_IP_ADDRESS from 'queries/GetWebspaceIpAddress.graphql';\nimport { generateUserName } from 'helpers/generateUserName';\nimport IpSelectDropdowns, { prepareBackendData } from '../common/IpSelectDropdowns';\n\nconst locale = Locale.getSection('smb.components.forms.web.add-domain');\nconst Translate = Locale.getTranslate('smb.components.forms.web.add-domain');\nconst DomainInfoSectionTranslate = Locale.getTranslate('smb.components.forms.domain-info-section');\nconst SharedTranslate = Locale.getTranslate('smb.components.forms.web._shared');\nconst ContactInfoTranslate = Locale.getTranslate('admin.components.forms.admin-panel.form.contact-info');\nconst ButtonsTranslate = Locale.getTranslate('components.buttons');\nconst LoginInfoTranslate = Locale.getTranslate('admin.components.forms.admin-panel.form.login-info');\n\nconst AddDomainForm = ({\n id,\n webspaceIpAddress: defaultWebspaceIpAddress = null,\n webspaceIpAddresses,\n allowCustomerCreation = false,\n allowWebspaceCreation = false,\n subscriptionsLookUpParams = null,\n canManageMailSettings = false,\n maxSysnameSize,\n isWindows,\n techDomain,\n settingsEnabled = false,\n settingsCollapsed = false,\n applicationWizardConfig = {},\n isMailServiceSupported = false,\n embeddedForms = undefined,\n extensionButtons = [],\n cancelLink = null,\n className = undefined,\n render = undefined,\n onProcess = undefined,\n onToggleDomainSettings = undefined,\n status = undefined,\n ...props\n}) => {\n const apolloClient = useApolloClient();\n const navigate = useNavigate();\n const [values, setValues] = useState(props.values);\n const [docrootChanged, setDocrootChanged] = useState(Boolean(props.values.hostingSettings.root));\n const [userNameChanged, setUserNameChanged] = useState(!props.values.domainInfo);\n const [webspaceIpAddress, setWebspaceIpAddress] = useState(defaultWebspaceIpAddress);\n const [ipAddresses, setIpAddresses] = useState(webspaceIpAddresses);\n const defaultIpAddresses = webspaceIpAddresses;\n const isMailOnly = useMemo(() => values.applicationName === 'mail-hosting', [values.applicationName]);\n\n useEffect(() => {\n if (isMailOnly) {\n setValues(setIn(values, 'hostingType[hosting]', 'none'));\n setUserNameChanged(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isMailOnly]);\n\n useEffect(() => {\n if (docrootChanged) {\n return;\n }\n\n let docroot = values.domainName.name.replace(/\\*/g, '_');\n if (-1 !== values.hostingSettings.rootPattern.indexOf('<domain>')) {\n docroot = values.hostingSettings.rootPattern.replace('<domain>', docroot);\n }\n\n setValues(setIn(values, 'hostingSettings[root]', toPunycode(docroot)));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [values.domainName.name]);\n\n useEffect(() => {\n if (!values.domainName.webspace || values.domainName.webspace.id === 'new') {\n return;\n }\n\n apolloClient.query({\n query: GET_WEBSPACE_IP_ADDRESS,\n variables: { id: btoa(`Domain:${values.domainName.webspace.id}`) },\n }).then(({ data: { domain: { ipAddresses } } }) => {\n const { publicIpAddress, ipAddress } = ipAddresses[0];\n setWebspaceIpAddress(publicIpAddress || ipAddress);\n }).catch(({ message }) => {\n if (cancelLink) {\n navigate(cancelLink);\n }\n addToast({ intent: 'danger', message });\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [values.domainName.webspace]);\n\n const handleFieldChange = (name, value) => {\n setValues(values => {\n values = setIn(values, name, value);\n\n if (name === 'domainName[name]' && !userNameChanged) {\n const userName = generateUserName({\n domainName: value,\n maxUserNameSize: maxSysnameSize,\n isTechDomain: values.domainName.type === TYPE_TECH,\n isWindows,\n });\n\n values = setIn(values, 'domainInfo[userName]', userName || props.values.domainInfo.userName);\n }\n\n return values;\n });\n\n if ([\n 'domainInfo[ipSelector][ipv4]', 'domainInfo[ipSelector][ipv6]',\n 'domainInfo[userName]', 'domainInfo[password]',\n ].includes(name)) {\n UAT.dispatchAction('CUSTOM-VALUE', { name });\n }\n\n switch (name) {\n case 'hostingSettings[root]':\n setDocrootChanged(true);\n break;\n case 'domainInfo[userName]':\n setUserNameChanged(true);\n break;\n case 'domainName[customer]':\n setIpAddresses(value.ipAddresses ? value.ipAddresses : defaultIpAddresses);\n break;\n }\n };\n\n const handleSubmit = values => {\n if (values.domainName.customer) {\n values = setIn(values, 'domainName[customer]', values.domainName.customer.id);\n }\n if (values.domainName.webspace) {\n values = setIn(values, 'domainName[webspace]', values.domainName.webspace.id);\n }\n\n return values;\n };\n\n const isWebspaceCreation = values.domainName.assignToCustomer === '1'\n || values.domainName.targetWebspace !== undefined\n || (values.domainName.webspace && values.domainName.webspace.id === 'new');\n\n const ipAddress = isWebspaceCreation || !webspaceIpAddress ? Object.keys(ipAddresses).map(type => {\n const id = values.domainInfo.ipSelector[type];\n return id === 'none' ? null : ipAddresses[type][id]?.split(' ')[0];\n }).filter(Boolean)[0] : webspaceIpAddress;\n\n const RenderComponent = applicationWizardConfig.enabled ? ApplicationWizard : Form;\n\n return (\n <RenderComponent\n vertical\n id={id}\n className={className}\n render={render}\n values={values}\n onFieldChange={handleFieldChange}\n onSubmit={handleSubmit}\n onLongTask={onProcess}\n wizardConfig={applicationWizardConfig}\n isMailServiceSupported={isMailServiceSupported}\n embeddedForms={embeddedForms}\n extensionButtons={extensionButtons}\n submitButton={{\n id: 'btn-send',\n children: <Translate content=\"buttonAddDomain\" />,\n }}\n applyButton={false}\n cancelButton={cancelLink ? {\n id: 'btn-cancel',\n children: <ButtonsTranslate content=\"cancel\" />,\n onClick: () => {\n navigate(cancelLink);\n },\n } : false}\n entity=\"domain\"\n >\n {(status || []).filter(({ status }) => 'warning' === status).map(({ content }) => (\n <StatusMessage\n intent=\"warning\"\n key={content}\n >\n <div\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{ __html: content }}\n />\n </StatusMessage>\n ))}\n <TechDomainName\n isEnabled={values.domainName.type !== undefined}\n isDefault={values.domainName.type === TYPE_TECH}\n typeName=\"domainName[type]\"\n name=\"domainName[name]\"\n ipAddress={ipAddress}\n onTypeChange={value => handleFieldChange('domainName[type]', value)}\n onDomainNameChange={value => handleFieldChange('domainName[name]', value)}\n {...techDomain}\n />\n {values.domainName.assignToCustomer === undefined ? null : (\n <Section>\n <FormFieldCheckbox\n name=\"domainName[assignToCustomer]\"\n label={<Translate content=\"assignToCustomer\" />}\n checkedValue=\"1\"\n uncheckedValue=\"0\"\n />\n {values.domainName.assignToCustomer === '1' ? (\n <Section collapsible>\n {values.domainName.customer === undefined ? null : (\n <FormFieldLookUp\n name=\"domainName[customer]\"\n label={<Translate content=\"customer\" />}\n dataUrl=\"/admin/customer/look-up\"\n newItemValue={allowCustomerCreation ? {\n id: 'new',\n title: locale.lmsg('createNewCustomer'),\n } : null}\n locale={{\n label: locale.lmsg('selectExistingCustomer'),\n }}\n required\n />\n )}\n {values.domainName.customer === undefined || values.domainName.customer?.id === 'new' ? (\n <>\n <FormFieldText\n name=\"customerInfo[customerContactInfo][contactName]\"\n label={<ContactInfoTranslate content=\"contactName\" />}\n required\n />\n <FormFieldText\n name=\"customerInfo[customerContactInfo][email]\"\n label={<ContactInfoTranslate content=\"email\" />}\n required\n />\n <br />\n <Heading level=\"4\">\n <Translate content=\"customerLoginInfoHint\" />\n </Heading>\n <FormFieldText\n name=\"customerInfo[customerLoginInfo][userName]\"\n label={<LoginInfoTranslate content=\"userName\" />}\n required\n autoComplete=\"off\"\n />\n <FormFieldPassword\n name=\"customerInfo[customerLoginInfo][password]\"\n label={<LoginInfoTranslate content=\"password\" />}\n required\n autoComplete=\"new-password\"\n />\n <FormFieldCheckbox\n name=\"customerInfo[customerLoginInfo][isActivationRequired]\"\n label={<LoginInfoTranslate content=\"emailActivation\" />}\n description={<LoginInfoTranslate content=\"emailActivationHint\" />}\n checkedValue=\"1\"\n uncheckedValue=\"0\"\n />\n </>\n ) : null}\n </Section>\n ) : null}\n </Section>\n )}\n {values.domainName.webspace === undefined || values.domainName.assignToCustomer === '1' ? null : (\n <Section>\n <FormFieldLookUp\n name=\"domainName[webspace]\"\n label={<Translate content=\"target\" />}\n dataUrl=\"/smb/web/subscription-look-up\"\n newItemValue={allowWebspaceCreation ? {\n id: 'new',\n title: locale.lmsg('createNewTarget'),\n } : null}\n locale={{\n label: locale.lmsg('selectExistingTarget'),\n }}\n lookUpParams={subscriptionsLookUpParams}\n required\n />\n </Section>\n )}\n {isWebspaceCreation ? (settingsEnabled ? (\n <Section\n id=\"domainInfo\"\n title={<Translate content=\"webspaceLegend\" />}\n collapsible\n collapsed={settingsCollapsed}\n onToggle={onToggleDomainSettings}\n >\n\n <IpSelectDropdowns ipAddresses={prepareBackendData(ipAddresses)} namePrefix={'domainInfo[ipSelector]'} />\n <br />\n {!isMailOnly && (\n <>\n <Heading level=\"4\">\n <Translate content=\"credentials\" />\n </Heading>\n <Text component=\"p\" intent=\"muted\">\n <Translate content={isWindows ? 'credentialsHintWin' : 'credentialsHint'} />\n </Text>\n <FormFieldText\n name=\"domainInfo[userName]\"\n label={<DomainInfoSectionTranslate content=\"userName\" />}\n required\n />\n <FormFieldPassword\n name=\"domainInfo[password]\"\n label={<DomainInfoSectionTranslate content=\"password\" />}\n required\n />\n </>\n )}\n </Section>\n ) : null) : (\n <Section>\n <FormFieldSelect\n name=\"hostingType[hosting]\"\n label={<Translate content=\"hostingManagementOptions\" />}\n >\n <SelectOption value=\"hosting\" label=\"hosting\">\n <Translate content=\"websiteHosting\" />\n </SelectOption>\n <SelectOption value=\"forwarding\" label=\"forwarding\">\n <Translate content=\"websiteForwarding\" />\n </SelectOption>\n <SelectOption value=\"none\" label=\"none\">\n <Translate content=\"websiteNoHosting\" />\n </SelectOption>\n </FormFieldSelect>\n {values.dnsSettings === undefined ? null : (\n <FormFieldCheckbox\n name=\"dnsSettings[dns]\"\n label={<Translate content=\"dns\" />}\n description={<Translate content=\"dnsHint\" />}\n disabled={values.domainName.type === TYPE_TECH}\n checkedValue={values.domainName.type === TYPE_TECH ? false : 'master'}\n uncheckedValue=\"none\"\n />\n )}\n {values.mailSettings === undefined ? null : (\n <FormFieldCheckbox\n name=\"mailSettings[mail]\"\n label={<Translate content=\"mail\" />}\n description={canManageMailSettings ? <Translate content=\"mailHint\" /> : <Translate content=\"mailHintNoPermission\" />}\n checkedValue=\"1\"\n uncheckedValue=\"0\"\n />\n )}\n {values.hostingType.hosting === 'hosting' ? (\n <Section\n id=\"hostingSettings\"\n title={<Translate content=\"hostingSettingsSectionLegend\" />}\n collapsible\n collapsed\n >\n <FormField\n name=\"hostingSettings[root]\"\n label={<SharedTranslate content=\"documentRoot\" />}\n description={<SharedTranslate content=\"documentRootHint\" />}\n required\n >\n {({ getId, getName, getValue, setValue }) => (\n <>\n <Icon name=\"home\" />\n {' / '}\n <Input\n id={getId()}\n name={getName()}\n value={getValue()}\n onChange={({ target }) => setValue(target.value)}\n />\n </>\n )}\n </FormField>\n <FormFieldRadioButtons\n name=\"hostingSettings[seoRedirectDirection]\"\n label={<SharedTranslate content=\"seoRedirectDirection\" />}\n description={<SharedTranslate content=\"seoRedirectDirectionHint\" />}\n required\n options={[{\n value: 'www',\n label: `www.${values.domainName.name || '<your_domain>'}`,\n }, {\n value: 'non-www',\n label: values.domainName.name || '<your_domain>',\n }, {\n value: 'none',\n label: <SharedTranslate content=\"seoRedirectDirectionNone\" />,\n }]}\n />\n </Section>\n ) : null}\n {values.hostingType.hosting === 'forwarding' ? (\n <Section\n id=\"forwardingSettings\"\n title={<SharedTranslate content=\"forwardingSettingsSectionLegend\" />}\n collapsible\n collapsed\n >\n <FormFieldText\n name=\"forwardingSettings[forwardTo]\"\n label={<SharedTranslate content=\"forwardDestination\" />}\n description={<SharedTranslate content=\"forwardDestinationHint\" />}\n required\n />\n <FormFieldRadioButtons\n name=\"forwardingSettings[forwardingType]\"\n label={<SharedTranslate content=\"forwardingTypeOptions\" />}\n options={[{\n value: 'std_fwd301',\n label: <SharedTranslate content=\"forwardingHttpCode301\" />,\n description: <SharedTranslate content=\"forwardingHttpCode301Hint\" />,\n }, {\n value: 'std_fwd302',\n label: <SharedTranslate content=\"forwardingHttpCode302\" />,\n description: <SharedTranslate content=\"forwardingHttpCode302Hint\" />,\n }, {\n value: 'frm_fwd',\n label: <SharedTranslate content=\"forwardingFrame\" />,\n description: <SharedTranslate content=\"forwardingFrameHint\" />,\n }]}\n />\n </Section>\n ) : null}\n </Section>\n )}\n </RenderComponent>\n );\n};\n\nAddDomainForm.propTypes = {\n id: PropTypes.string.isRequired,\n values: PropTypes.object.isRequired,\n webspaceIpAddresses: PropTypes.shape({\n ipv4: PropTypes.object,\n ipv6: PropTypes.object,\n }).isRequired,\n allowCustomerCreation: PropTypes.bool,\n allowWebspaceCreation: PropTypes.bool,\n subscriptionsLookUpParams: PropTypes.object,\n webspaceIpAddress: PropTypes.string,\n canManageMailSettings: PropTypes.bool,\n maxSysnameSize: PropTypes.number.isRequired,\n isWindows: PropTypes.bool.isRequired,\n techDomain: PropTypes.object.isRequired,\n settingsEnabled: PropTypes.bool,\n settingsCollapsed: PropTypes.bool,\n applicationWizardConfig: PropTypes.object,\n isMailServiceSupported: PropTypes.bool,\n embeddedForms: PropTypes.array,\n extensionButtons: PropTypes.array,\n cancelLink: PropTypes.string,\n className: PropTypes.string,\n render: PropTypes.func,\n onProcess: PropTypes.func,\n onToggleDomainSettings: PropTypes.func,\n status: PropTypes.array,\n};\n\nexport const useAddDomainFormInDrawer = (pageUrl, drawerUrl) => useCreateFormInDrawer(AddDomainForm, 'add-domain', pageUrl, drawerUrl);\n\nexport default AddDomainForm;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useState, useEffect } from 'react';\nimport { LookUp } from 'jsw';\nimport JswComponent from './JswComponent';\nimport PropTypes from 'prop-types';\n\nconst JswLookUp = ({ disabled = false, ...props }) => {\n const [component, setComponent] = useState(null);\n\n useEffect(() => {\n const newComponent = new LookUp({ disabled, ...props });\n setComponent(newComponent);\n\n return () => {\n newComponent.remove();\n setComponent(null);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!component) {\n return;\n }\n\n if (disabled) {\n component.disable();\n } else {\n component.enable();\n }\n }, [component, disabled]);\n\n return component ? (\n <JswComponent>\n {component}\n </JswComponent>\n ) : null;\n};\n\nJswLookUp.propTypes = {\n disabled: PropTypes.bool,\n};\n\nexport default JswLookUp;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\nimport { PropTypes } from 'prop-types';\nimport {\n Button,\n Form,\n FormFieldSelect,\n FormFieldText,\n Panel,\n SelectOption,\n Media,\n Icon,\n} from '@plesk/ui-library';\n\nimport { Locale } from 'jsw';\n\nconst STATUS_INTENTS = {\n active: 'success',\n suspended: 'warning',\n disabled: 'inactive',\n};\n\nconst locale = Locale.getSection('admin.components.lists.domains');\nconst Translate = Locale.getTranslate('admin.components.lists.domains');\n\nconst DomainListFilter = ({\n searchFilters,\n onSearch,\n onReset,\n values = {},\n}) => (\n <Panel\n title={locale.lmsg('filterTitle')}\n extra={[\n <Button ghost icon=\"cross-mark\" key=\"button\" onClick={onReset}>\n <Translate content=\"filterClear\" />\n </Button>,\n ]}\n >\n <Form\n values={values}\n onSubmit={onSearch}\n applyButton={false}\n cancelButton={false}\n submitButton={{\n children: <Translate content=\"filterApply\" />,\n fill: true,\n }}\n >\n <FormFieldSelect size=\"fill\" name=\"status\" label={<Translate content=\"filterStatus\" />}>\n {searchFilters.status.options.map(\n ({ value, label }) => (\n <SelectOption key={value} value={value} label={label}>\n <Media image={STATUS_INTENTS[value] && <Icon name=\"dot-big\" size=\"16\" intent={STATUS_INTENTS[value]} />}>\n {label}\n </Media>\n </SelectOption>\n ),\n )}\n </FormFieldSelect>\n <FormFieldSelect size=\"fill\" name=\"hostingType\" label={<Translate content=\"filterHostingType\" />}>\n {searchFilters.hostingType.options.map(\n ({ value, label }) => <SelectOption key={value} value={value}>{label}</SelectOption>,\n )}\n </FormFieldSelect>\n {searchFilters.phpHandlerId ? (\n <FormFieldSelect size=\"fill\" name=\"phpHandlerId\" label={<Translate content=\"filterPhpHandler\" />}>\n {searchFilters.phpHandlerId.options.map(\n ({ value, label }) => <SelectOption key={value} value={value}>{label}</SelectOption>,\n )}\n </FormFieldSelect>\n ) : null}\n {searchFilters.subscriberName ? (\n <FormFieldText size=\"fill\" name=\"subscriberName\" placeholder={locale.lmsg('filterSubscriberName')} label={<Translate content=\"filterSubscriberName\" />} />\n ) : null}\n <FormFieldText size=\"fill\" name=\"description\" placeholder={locale.lmsg('filterDescription')} label={<Translate content=\"filterDescription\" />} />\n </Form>\n </Panel>\n);\n\nDomainListFilter.propTypes = {\n onSearch: PropTypes.func.isRequired,\n onReset: PropTypes.func.isRequired,\n searchFilters: PropTypes.objectOf(PropTypes.shape({\n title: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n })),\n })).isRequired,\n values: PropTypes.object,\n};\nexport default DomainListFilter;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Fragment, useMemo } from 'react';\nimport { PropTypes } from 'prop-types';\nimport {\n Button,\n Dropdown,\n ListOperation,\n MenuItem,\n Toolbar,\n ToolbarGroup,\n ToolbarExpander,\n SearchBar,\n Badge,\n} from '@plesk/ui-library';\nimport Link from 'components/common/Link';\nimport StatusMenu from 'views/smb/web/common/ItemStatus/StatusMenu';\nimport { Locale } from 'jsw';\n\nconst locale = Locale.getSection('admin.components.lists.domains');\nconst Translate = Locale.getTranslate('admin.components.lists.domains');\nconst ButtonsTranslate = Locale.getTranslate('components.buttons');\n\nconst DomainListToolbar = ({\n onDelete = undefined,\n onChangeStatus,\n onSearch,\n addDomainUrl = undefined,\n addSubdomainUrl = undefined,\n addDomainAliasUrl = undefined,\n selectedRows = [],\n onToggleSidebar = undefined,\n hasSidebar = false,\n hasFilter = false,\n searchTerm = undefined,\n}) => {\n const relatedDomains = useMemo(() => {\n const domains = new Set();\n selectedRows.forEach(({ relatedDomains }) => relatedDomains.map(d => domains.add(d)));\n return [...domains];\n }, [selectedRows]);\n\n return (\n <Toolbar>\n <ToolbarGroup title=\"\">\n {addDomainUrl ? (\n <Button\n intent=\"primary\"\n id=\"buttonAddDomain\"\n component={Link}\n tooltip={locale.lmsg('hintAddDomain')}\n to={addDomainUrl}\n >\n <Translate content=\"buttonAddDomain\" />\n </Button>\n ) : null}\n {addSubdomainUrl ? (\n <Button\n id=\"buttonAddSubDomain\"\n component={Link}\n tooltip={locale.lmsg('hintAddSubdomain')}\n to={addSubdomainUrl}\n >\n <Translate content=\"buttonAddSubdomain\" />\n </Button>\n ) : null}\n {addDomainAliasUrl ? (\n <Button\n id=\"buttonAddDomainAlias\"\n component={Link}\n tooltip={locale.lmsg('hintAddDomainAlias')}\n to={addDomainAliasUrl}\n >\n <Translate content=\"buttonAddDomainAlias\" />\n </Button>\n ) : null}\n </ToolbarGroup>\n <ToolbarGroup title=\"\">\n <ListOperation noSelectionText={locale.lmsg('changeStatusNoItems')}>\n <Dropdown\n data-cy=\"domains-status-change\"\n menu={selectedRows.length ? (\n <StatusMenu\n renderItems={({ renderIcon }) => ['activate', 'suspend', 'disable'].map(action => (\n <MenuItem\n key={action}\n data-cy={`domain-${action}`}\n onClick={() => onChangeStatus(action)}\n icon={renderIcon(action)}\n >\n <Translate content={`${action}ActionStatus`} />\n </MenuItem>\n ))}\n />\n // eslint-disable-next-line react/jsx-no-useless-fragment\n ) : <Fragment />}\n >\n <Button caret tooltip={locale.lmsg('hintSetStatus')}>\n {locale.lmsg('buttonSetStatus')}\n </Button>\n </Dropdown>\n </ListOperation>\n </ToolbarGroup>\n {onDelete && (\n <ToolbarGroup title=\"\">\n <ListOperation\n critical\n tooltip={locale.lmsg('hintRemove')}\n noSelectionText={<Translate content=\"removeNoItems\" />}\n confirmationText={(\n <>\n {locale.formatMessage('removeConfirmation', {\n name: <b>{selectedRows[0]?.domainName}</b>,\n count: selectedRows.length,\n })}\n {relatedDomains.length > 0 && (\n <Translate\n component=\"div\"\n style={{ marginTop: '1rem' }}\n content=\"removeConfirmationSubscription\"\n params={{ domains: relatedDomains.join(', ') }}\n />\n )}\n </>)}\n actionButtonText={<ButtonsTranslate content=\"yesRemove\" />}\n cancelButtonText={<ButtonsTranslate content=\"cancel\" />}\n >\n\n <Button data-cy=\"domain-remove\" onClick={onDelete}>\n <ButtonsTranslate content=\"remove\" />\n </Button>\n </ListOperation>\n </ToolbarGroup>\n )}\n <ToolbarExpander />\n <ToolbarGroup title=\"\" groupable={false}>\n <Badge intent=\"info\" hidden={!hasFilter}>\n <Button\n icon=\"filter\"\n tooltip={<Translate content=\"filterHint\" />}\n onClick={onToggleSidebar}\n state={hasSidebar ? 'active' : undefined}\n />\n </Badge>\n <SearchBar data-cy=\"domain-search\" onSearch={onSearch} inputProps={{ value: searchTerm }} />\n </ToolbarGroup>\n </Toolbar>\n );\n};\n\nDomainListToolbar.propTypes = {\n onDelete: PropTypes.func,\n onChangeStatus: PropTypes.func.isRequired,\n onSearch: PropTypes.func.isRequired,\n addDomainUrl: PropTypes.string,\n addSubdomainUrl: PropTypes.string,\n addDomainAliasUrl: PropTypes.string,\n selectedRows: PropTypes.arrayOf(PropTypes.object),\n onToggleSidebar: PropTypes.func,\n searchTerm: PropTypes.string,\n hasSidebar: PropTypes.bool,\n hasFilter: PropTypes.bool,\n};\n\nexport default DomainListToolbar;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Fragment, useCallback, useMemo, useState } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { Hint, List, ListEmptyView, Status, Text } from '@plesk/ui-library';\nimport { Outlet } from 'react-router-dom';\nimport { useApolloClient } from '@apollo/client';\nimport { addStatusMessage, api, getComponent, Locale, redirect } from 'jsw';\nimport { escapeStringRegexp } from 'helpers/escapeStringRegexp';\n\nimport './DomainList.less';\n\nimport Link from 'components/common/Link';\nimport { addToast } from 'helpers/toasts';\nimport { buildUrl as addSearchParams } from 'helpers/buildUrl';\n\nimport DynamicListItemTitleActions from 'views/smb/web/view/DynamicListItemTitleActions';\nimport ItemStatus from 'views/smb/web/common/ItemStatus';\nimport ItemActions from 'views/smb/web/common/ItemActions';\nimport RenameDomain from 'views/smb/web/rename';\nimport Favicon from 'views/smb/web/view/Favicon';\n\nimport { useAddDomainFormInDrawer } from 'components/forms/AddDomainForm';\nimport { useMoveDomainDrawer } from 'views/smb/web/common/MoveDomain';\nimport { evictUserStatisticsCache } from 'helpers/graphql/cache/evictUserStatisticsCache';\n\nimport DomainListToolbar from './DomainListToolbar';\nimport DomainListFilter from './DomainListFilter';\nimport { ALL_ITEMS, ALL_ITEMS_COUNT, ITEM_PER_PAGE_OPTIONS_DEFAULT, useList } from 'hooks';\nimport { SiteDescription } from './SiteDescription';\nimport handleChangeStatus from 'helpers/changeDomainStatus';\n\nconst locale = Locale.getSection('admin.components.lists.domains');\nconst Translate = Locale.getTranslate('admin.components.lists.domains');\nconst IcpPermitTranslate = Locale.getTranslate('components.icp-permit');\n\nconst MANY_DOMAINS_COUNT = 500;\nconst MAX_ITEMS_PER_PAGE = 100;\n\nconst DomainsList = ({\n pageUrl = '',\n data: initialData,\n searchFilters = {},\n dataAction = '',\n allowCreateDomain = false,\n allowManageSubdomain = false,\n allowManageDomainAliases = false,\n showDeleteButton = true,\n showOwnerName = false,\n userId = undefined,\n icpPermitSupported = false,\n icpPermitLink = undefined,\n showFavicons = false,\n showSetupDate = false,\n showExpirationDate = false,\n showExtensionsColumns = false,\n}) => {\n const buildUrl = useCallback(({ action } = {}) => {\n const parts = pageUrl.split('/');\n if (action) {\n parts[3] = action;\n }\n return parts.join('/');\n }, [pageUrl]);\n\n const apolloClient = useApolloClient();\n const { cache } = apolloClient;\n\n const [addDomainDrawer] = useAddDomainFormInDrawer(pageUrl, buildUrl({ action: 'add-domain' }));\n const [moveDomainDrawer, onMoveDomain] = useMoveDomainDrawer();\n\n const [data, setData] = useState(initialData);\n const [hasSidebar, setSidebar] = useState(false);\n\n const limitPagination = data.pager.totalItemCount > MANY_DOMAINS_COUNT;\n const itemsPerPage = limitPagination && data.pager.itemCountPerPage === ALL_ITEMS_COUNT ? MAX_ITEMS_PER_PAGE : data.pager.itemCountPerPage;\n\n const handleRequest = async url => {\n const responseData = await api.get(url);\n if (responseData?.redirect) {\n return redirect(responseData.redirect);\n }\n setData(responseData);\n };\n\n const {\n renderPagination,\n sortParams,\n loading,\n filter,\n handleReload,\n handleFilter,\n selection,\n setSelection,\n loadingRows,\n wrapListOperation,\n } = useList({\n initialFilter: Object.entries(data.state.searchFilters ?? {})\n .reduce((acc, [key, { searchText }]) => ({ ...acc, [key]: searchText }), {}),\n pagination: {\n current: data.pager.current,\n totalPage: data.pager.pageCount,\n itemsPerPageOptions: limitPagination ? ITEM_PER_PAGE_OPTIONS_DEFAULT.filter(item => item !== ALL_ITEMS) : null,\n itemsPerPage,\n async onSort() {},\n async onPageChange(page) {\n await handleRequest(addSearchParams(buildUrl({ action: dataAction }), { page }));\n },\n async onChangeItemsPerPage(itemPerPage) {\n await handleRequest(addSearchParams(buildUrl({ action: dataAction }), { 'items-per-page': itemPerPage }));\n },\n },\n sort: {\n direction: data.state.sortDirection === 'up' ? 'ASC' : 'DESC',\n column: data.state.sortField,\n async onChange({ sortColumn, sortDirection }) {\n const action = `${dataAction}/sort-field/${sortColumn}/sort-dir/${sortDirection === 'ASC' ? 'up' : 'down'}`;\n await handleRequest(buildUrl({ action }));\n },\n },\n async onFilter(params) {\n await handleRequest(addSearchParams(\n buildUrl({ action: dataAction }),\n Object.entries(params).reduce((acc, [key, value]) => ({ ...acc, [`searchFilter[${key}][searchText]`]: value }), {}),\n ));\n },\n async onReload() {\n await handleRequest(buildUrl({ action: dataAction }));\n },\n });\n\n const hasFilter = useMemo(() => Object.entries(filter).some(([k, v]) => k !== 'domainName' && v), [filter]);\n const isListFiltered = useMemo(() => hasFilter || filter?.domainName, [hasFilter, filter]);\n\n const selectedRows = useMemo(() => data.data.filter(({ id }) => selection.includes(id)), [data, selection]);\n\n const handleSelectionChange = selection => setSelection(selection);\n\n const handleStatusChange = status => {\n handleChangeStatus(status, async () => {\n await execGroupOperation(selection, status);\n\n const messages = {\n suspend: 'suspended',\n disable: 'disabled',\n activate: 'activated',\n };\n\n addToast({\n intent: 'success',\n message: <Translate content={messages[status]} />,\n });\n });\n };\n\n const handleDelete = async () => {\n const { task, error } = await execGroupOperation(selection, 'delete-async', false);\n if (error) {\n addStatusMessage('error', error);\n } else if (task && task.componentType === 'Jsw.Task.ProgressBar.Item') {\n const progress = getComponent('asyncProgressBarWrapper');\n progress.progressDialog({ ...task, redirect: null }, {\n onComplete: () => {\n handleReload();\n evictUserStatisticsCache(cache);\n },\n });\n }\n };\n\n const execGroupOperation = wrapListOperation(async (ids, action, reload = true) => {\n if (ids.length) {\n try {\n return await api.post(buildUrl({ action }), { ids, forceSkipRedirect: true });\n } finally {\n reload && handleReload();\n setSelection([]);\n }\n }\n });\n\n const renderDescription = ({ adminDescription, resellerDescription, ownerDescription, hideResellerTitleDescription, hideOwnerTitleDescription }) => (\n <div className=\"domain-list__item-description\">\n {adminDescription && <SiteDescription description={adminDescription} />}\n {\n resellerDescription &&\n <SiteDescription\n prefix={hideResellerTitleDescription ? '' : `${locale.lmsg('resellerDescription')}: `}\n description={resellerDescription}\n />\n }\n {\n ownerDescription &&\n <SiteDescription\n prefix={hideOwnerTitleDescription ? '' : `${locale.lmsg('resellerDescription')}: `}\n description={ownerDescription}\n />\n }\n </div>);\n\n const renderTitleDescription = ({ hostingType, forwardingDisplayUrl, domainDisplayName }) => {\n let description;\n\n switch (hostingType) {\n case 'alias':\n description = <Translate content=\"aliasForDomain\" params={{ domain: domainDisplayName }} />;\n break;\n case 'std_fwd':\n case 'frm_fwd':\n description = <Translate content=\"forwardingToDomain\" params={{ domain: forwardingDisplayUrl }} />;\n break;\n case 'none':\n description = <Translate content=\"noHosting\" />;\n break;\n }\n\n if (description) {\n return <Hint className=\"smb-web-view-dynamic-list-item-description\">{description}</Hint>;\n }\n return null;\n };\n\n const renderSize = val => {\n const result = val.split(' ');\n return (\n <Text>\n {result.slice(0, -1).join(' ')} <Hint>{result.at(-1)}</Hint>\n </Text>\n );\n };\n\n const renderItemTitle = item => {\n const {\n virtual,\n domainId,\n aliasId,\n hostingType,\n forwardingDisplayUrl,\n displayName,\n domainDisplayName,\n siteUrl,\n isWildcard,\n overviewUrl,\n } = item;\n\n const searchValue = filter.domainName;\n const titleParts = searchValue ? displayName.split(new RegExp(`(${escapeStringRegexp(searchValue)})`, 'ig')) : [displayName];\n\n return (\n <div className=\"smb-web-view-dynamic-list-item-name\">\n {showFavicons ? <Favicon hostingType={hostingType} aliasId={aliasId} domainId={domainId} /> : null}\n <div>\n <Text\n bold={!virtual}\n intent={virtual ? 'muted' : undefined}\n className=\"smb-web-view-dynamic-list-item-title\"\n component={Link}\n to={overviewUrl}\n >\n {titleParts.map((part, index) => {\n if (part.toLowerCase() === searchValue.toLowerCase()) {\n // eslint-disable-next-line react/no-array-index-key\n return <Text key={index} mark>{part}</Text>;\n }\n // eslint-disable-next-line react/no-array-index-key\n return <Fragment key={index}>{part}</Fragment>;\n })}\n </Text>\n {renderTitleDescription({ hostingType, aliasId, forwardingDisplayUrl, domainDisplayName })}\n <DynamicListItemTitleActions\n domainName={displayName}\n siteUrl={siteUrl}\n isShowUrlInToast={!isWildcard}\n isShowGoToOverview={false}\n overviewUrl={overviewUrl}\n />\n {renderDescription(item)}\n </div>\n </div>\n );\n };\n\n const renderItemStatus = ({ changeStatusLinks, isActive, isSuspended, id }) => {\n const newLinks = {};\n for (const action in changeStatusLinks) {\n newLinks[action] = `${buildUrl({ action })}/id/${id}`;\n }\n\n return (\n <ItemStatus\n changeStatusLinks={newLinks}\n isActive={isActive}\n isSuspended={isSuspended}\n onChangeStatus={async url => {\n await api.post(url);\n handleReload();\n }}\n />\n );\n };\n\n const renderItemActions = item => (\n <ItemActions\n {...item}\n className=\"domain-list__item-actions\"\n onMoveDomain={onMoveDomain}\n listCustomButtons={[\n {\n id: `open-web-${item.id}`,\n title: locale.lmsg('openSite'),\n uri: item.siteUrl,\n icon: 'web',\n target: '_blank',\n },\n item.previewUrl ? {\n id: `preview-web-${item.id}`,\n title: locale.lmsg('previewSite'),\n uri: item.previewUrl,\n icon: 'panel-eye',\n target: '_blank',\n } : null,\n // preview as\n item.managerUrl || parseInt(item.ownerId) !== userId ? {\n id: `open-as-${item.id}`,\n title: locale.lmsg(item.ownerType === 'reseller' ? 'manageInResellerPanel' : 'manageInCustomerPanel'),\n uri: `/admin${item.ownerType === 'reseller' ? '/reseller' : '/customer'}/login/id/${item.ownerId}?pageUrl=${encodeURIComponent(item.manageUrl)}`,\n icon: 'panel-key',\n } : null,\n ].filter(Boolean)}\n />\n );\n\n const renderIcpPermit = ({ icpStatus, icpPermit }) => (\n <Status intent={icpStatus ? 'success' : 'warning'}>\n <a target=\"_blank\" href={icpPermitLink} rel=\"noopener noreferrer\">\n {icpPermit || (!icpStatus && <IcpPermitTranslate content=\"icpStatusNotAllowed\" />)}\n </a>\n </Status>\n );\n\n const modifyColumnsByExtensions = (columns, extensions) => {\n const modifiedColumns = [...columns];\n\n for (const [, ext] of Object.entries(extensions)) {\n if (ext.columns) {\n for (const [columnName, column] of Object.entries(ext.columns)) {\n const fixInsertIndex = index => {\n if (index < 0) {\n return index >= -3 ? 0 : index + 3;\n }\n return index;\n };\n\n let insertIndex;\n\n if (column.insertBefore && columns.at(fixInsertIndex(column.insertBefore))) {\n insertIndex = fixInsertIndex(column.insertBefore) - 1;\n } else if (column.insertAfter && columns.at(fixInsertIndex(column.insertAfter))) {\n insertIndex = fixInsertIndex(column.insertAfter);\n } else {\n insertIndex = modifiedColumns.length - 1;\n }\n\n const newColumn = {\n key: columnName,\n dataIndex: insertIndex,\n className: 'domain-list__extension-column',\n title: column.title,\n render: item => column.renderer || column.noEscape ?\n // eslint-disable-next-line react/no-danger\n <span dangerouslySetInnerHTML={{\n __html:\n typeof column.renderer == 'function' ?\n column.renderer(item) :\n item[columnName],\n }}\n />\n : item[columnName],\n };\n modifiedColumns.splice(insertIndex, 0, newColumn);\n }\n }\n }\n return modifiedColumns;\n };\n\n const columns = useMemo(() => {\n const columns = [\n {\n key: 'domainDisplayName',\n title: locale.lmsg('domainName'),\n type: 'title',\n sortable: true,\n render: renderItemTitle,\n },\n icpPermitSupported ? {\n key: 'icpStatus',\n title: <IcpPermitTranslate content=\"icpPermit\" />,\n sortable: true,\n render: renderIcpPermit,\n } : null,\n showOwnerName ? {\n key: 'ownerName',\n title: locale.lmsg('ownerName'),\n sortable: true,\n render: ({ ownerId, ownerType, ownerName, ownerCompanyName }) => {\n let href;\n if (parseInt(ownerId) !== userId) {\n if ('client' === ownerType) {\n href = `/admin/customer/overview/id/${ownerId}`;\n } else if ('reseller' === ownerType) {\n href = `/admin/reseller/overview/id/${ownerId}`;\n }\n }\n\n return [\n href ? <Link to={href}>{ownerName}</Link> : ownerName,\n ownerCompanyName ? `, ${ownerCompanyName}` : null,\n ];\n },\n } : null,\n {\n key: 'realSize',\n sortable: true,\n title: locale.lmsg('diskUsage'),\n render: ({ diskUsage }) => renderSize(diskUsage),\n },\n {\n key: 'traffic',\n title: locale.lmsg('traffic'),\n sortable: true,\n render: ({ traffic }) => renderSize(traffic),\n },\n {\n key: 'domainStatus',\n title: locale.lmsg('status'),\n type: 'controls',\n render: renderItemStatus,\n },\n showSetupDate ? {\n key: 'setupDate',\n title: locale.lmsg('setupDate'),\n sortable: true,\n render: ({ setupDate }) => new Date(setupDate).toLocaleDateString(document.documentElement.lang ?? 'en', { month: 'short', day: 'numeric', year: 'numeric' }),\n } : null,\n showExpirationDate ? {\n key: 'expirationDate',\n title: locale.lmsg('expirationDate'),\n sortable: true,\n render: ({ expirationDateString }) => expirationDateString || '--',\n } : null,\n {\n key: 'actions',\n width: '1%',\n render: renderItemActions,\n type: 'actions',\n },\n ].filter(Boolean);\n\n if (showExtensionsColumns && Object.keys(data.additional.extensions ?? {}).length) {\n return modifyColumnsByExtensions(columns, data.additional.extensions);\n }\n return columns;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [icpPermitLink, icpPermitSupported, showExpirationDate, showOwnerName, userId, showSetupDate, filter]);\n\n return (\n <>\n <List\n rowKey=\"id\"\n className=\"domain-list\"\n loading={loading}\n columns={columns}\n data={data.data}\n selection={selection}\n loadingRows={loadingRows}\n onSelectionChange={handleSelectionChange}\n filtered\n totalRows={data.pager.totalItemCount}\n {...sortParams}\n pagination={renderPagination()}\n toolbar={(\n <DomainListToolbar\n onDelete={showDeleteButton ? handleDelete : null}\n onChangeStatus={handleStatusChange}\n addDomainUrl={allowCreateDomain ? buildUrl({ action: 'add-domain' }) : null}\n addSubdomainUrl={allowManageSubdomain ? buildUrl({ action: 'add-subdomain' }) : null}\n addDomainAliasUrl={allowManageDomainAliases ? buildUrl({ action: 'add-domain-alias' }) : null}\n selectedRows={selectedRows}\n hasSidebar={hasSidebar}\n hasFilter={hasFilter}\n searchTerm={filter?.domainName}\n onSearch={domainName => handleFilter({ ...filter, domainName })}\n onToggleSidebar={() => setSidebar(!hasSidebar)}\n />\n )}\n sidebar={hasSidebar && (\n <DomainListFilter\n values={filter}\n searchFilters={searchFilters}\n onSearch={params => handleFilter({ ...filter, ...params })}\n onReset={() => handleFilter({\n ...Object.entries(filter).reduce((acc, [key]) => ({ ...acc, [key]: '' }), {}),\n domainName: filter.domainName ?? '',\n })}\n />\n )}\n emptyView={\n <ListEmptyView\n reason={isListFiltered ? 'filtered' : undefined}\n />\n }\n />\n {addDomainDrawer}\n {moveDomainDrawer}\n <RenameDomain\n onRenameComplete={handleReload}\n />\n <Outlet context={{ handleReload }} />\n </>\n );\n};\n\nDomainsList.propTypes = {\n dataAction: PropTypes.string,\n pageUrl: PropTypes.string,\n showFavicons: PropTypes.bool,\n showDeleteButton: PropTypes.bool,\n allowCreateDomain: PropTypes.bool,\n allowManageSubdomain: PropTypes.bool,\n allowManageDomainAliases: PropTypes.bool,\n showOwnerName: PropTypes.bool,\n showSetupDate: PropTypes.bool,\n showExpirationDate: PropTypes.bool,\n showExtensionsColumns: PropTypes.bool,\n userId: PropTypes.number,\n icpPermitSupported: PropTypes.bool,\n icpPermitLink: PropTypes.string,\n searchFilters: PropTypes.objectOf(PropTypes.shape({\n title: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n })),\n })),\n data: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string,\n })).isRequired,\n state: PropTypes.object.isRequired,\n pager: PropTypes.object.isRequired,\n additional: PropTypes.object.isRequired,\n }).isRequired,\n};\n\nexport default DomainsList;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Hint, Text, Tooltip } from '@plesk/ui-library';\nimport { truncate } from 'helpers/description';\nimport { PropTypes } from 'prop-types';\n\nexport const SiteDescription = ({ description, prefix = '' }) => {\n const text = `${prefix}${description}`;\n\n return (\n <Tooltip title={text}>\n <Hint component={Text}>{truncate(text)}</Hint>\n </Tooltip>\n );\n};\n\nSiteDescription.propTypes = {\n description: PropTypes.string.isRequired,\n prefix: PropTypes.string,\n};\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Locale } from 'jsw';\nimport { withPageLayout } from '../layouts/PageLayout';\nimport DomainsList from '../lists/DomainsList';\n\nconst Translate = Locale.getTranslate('components.pages.domains');\n\nconst DomainsPage = props => (\n <>\n <p><Translate content=\"hint\" /></p>\n <DomainsList\n dataAction=\"list-data\"\n deleteAction=\"delete\"\n showOwnerName\n pageUrl=\"/admin/domain/list\"\n {...props}\n />\n </>\n);\n\nexport default withPageLayout(DomainsPage);\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { messageBox, Locale } from 'jsw';\n\nconst locale = Locale.getSection('components.sites.Card');\nconst buttonsLocale = Locale.getSection('components.buttons');\n\nexport default (action, onChangeStatus) => {\n if ('activate' === action) {\n onChangeStatus();\n return;\n }\n\n messageBox.show({\n type: messageBox.TYPE_YESNO,\n buttonTitles: {\n yes: buttonsLocale.lmsg('yes'),\n no: buttonsLocale.lmsg('no'),\n },\n text: locale.lmsg(`${action}Hint`),\n subtype: 'confirm',\n onYesClick() {\n onChangeStatus();\n },\n });\n};\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { createElement as ce, escapeHtml } from 'jsw';\n\nexport const truncate = (str, count = 50) => str.length < count ? str : `${str.slice(0, count - 3)}...`;\n\nexport const createDescription = (selector, description, prefix) => ce(selector, [\n (prefix ? `${prefix}: ` : '') + escapeHtml(truncate(description, 50)),\n ce('span.tooltipData', escapeHtml(description)),\n]);\n\nexport const createSiteDescription = (\n { adminDescription, resellerDescription, ownerDescription, hideResellerTitleDescription, hideOwnerTitleDescription },\n locale,\n className = 'hint',\n) => [\n adminDescription ? createDescription(`.${className}`, adminDescription) : '',\n resellerDescription ? createDescription(\n `.${className}`,\n resellerDescription,\n !hideResellerTitleDescription && locale.lmsg('resellerDescription'),\n ) : '',\n ownerDescription ? createDescription(\n `.${className}`,\n ownerDescription,\n !hideOwnerTitleDescription && locale.lmsg('ownerDescription'),\n ) : '',\n];\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\n/**\n * More info: npm escape-string-regexp\n */\nexport const escapeStringRegexp = (string: string): string => {\n if (typeof string !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n return string\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n .replace(/-/g, '\\\\x2d');\n};\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nexport const randomString = (): string => Math.random().toString(36).slice(2);\n\nconst defaultPostfix = (): string => `_${randomString()}`;\n\ntype GenerateUserNameParams = {\n domainName: string;\n maxUserNameSize?: number;\n isTechDomain: boolean;\n isWindows: boolean;\n postfix?: string;\n};\n\nexport const generateUserName = ({\n domainName,\n maxUserNameSize,\n isTechDomain,\n isWindows,\n postfix = defaultPostfix(),\n}: GenerateUserNameParams): string => {\n let userName = domainName;\n\n const isUnix = !isWindows;\n const hasNotAllowedSymbols = !/^[a-zA-Z0-9_.\\-]+$/.test(domainName);\n const startsWithDigit = /^[0-9]+/.test(domainName);\n\n if (typeof domainName !== 'string' || typeof postfix !== 'string') {\n return '';\n }\n\n if (hasNotAllowedSymbols) {\n return '';\n }\n\n if (isUnix && startsWithDigit) {\n return '';\n }\n\n if (typeof maxUserNameSize !== 'number' && maxUserNameSize !== undefined) {\n return '';\n }\n\n if (maxUserNameSize) {\n if (postfix.length > maxUserNameSize) {\n return '';\n }\n\n maxUserNameSize = maxUserNameSize - postfix.length;\n }\n\n if (isTechDomain) {\n userName = userName.split('.')[0];\n }\n\n userName = userName.toLowerCase().substr(0, maxUserNameSize) + postfix;\n\n if (isWindows) {\n userName = userName.replace(/\\.+$/, '');\n }\n\n return userName;\n};\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nexport const evictUserStatisticsCache = cache => {\n Object.values(cache.extract())\n .filter(({ __typename }) => __typename === 'User')\n .map(user => cache.evict({\n id: cache.identify(user),\n fieldName: 'statistics',\n }));\n};\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\nimport { ListActions, ListAction, ListActionsDivider, Icon } from '@plesk/ui-library';\nimport { prepareUrl, Locale } from 'jsw';\nimport Link from 'components/common/Link';\nimport handleDelete from './handleDelete';\nimport React, { useMemo } from 'react';\n\nimport { getExtensionName } from '../getExtensionName';\n\nconst renderCustomButton = ({ id, icon, image, uri, description, title, primary = true, target }) => (\n <ListAction\n key={id}\n primary={primary}\n icon={<Icon name={icon} src={image} size=\"16\" intent=\"inactive\" />}\n component={Link}\n to={uri}\n tooltip={description}\n data-cy={getExtensionName(id)}\n target={target}\n >\n {title}\n </ListAction>\n);\n\nconst getAdditionalGroups = (groups, btn) => btn.isAdditional && btn.group && !groups.includes(btn.group)\n ? groups.push(btn.group) && groups\n : groups;\n\nconst Translate = Locale.getTranslate('components.sites.Card');\nconst locale = Locale.getSection('components.sites.Card');\n\nconst ItemActions = ({\n hidePrimary = false,\n className = undefined,\n ...item\n}) => useMemo(() => {\n const {\n mainDomain,\n isMovable,\n movingError,\n allowRename,\n isRemovable,\n isSuspended,\n isDomainAlias,\n isSubdomain,\n filemanagerUrl,\n emailAddressesUrl,\n databasesUrl,\n databasesIsAvailable,\n hostingSettingsUrl,\n error503PageUrl,\n id,\n aliasId,\n domainId,\n displayName,\n parentDomain,\n headerCustomButtons = [],\n listCustomButtons = [],\n onMoveDomain,\n webrootDir,\n } = item;\n\n let removeTitle = 'buttonDeleteDomain';\n if (isDomainAlias) {\n removeTitle = 'buttonDeleteAlias';\n } else if (isSubdomain) {\n removeTitle = 'buttonDeleteSubdomain';\n }\n\n const additionalWithoutGroup = headerCustomButtons.filter(btn => btn.isAdditional && !btn.group);\n const additionalGroups = headerCustomButtons.reduce(getAdditionalGroups, []);\n\n return (\n <ListActions className={className} data-type=\"listActions\" data-id={id}>\n {hidePrimary ? null : headerCustomButtons.filter(btn => !btn.isAdditional).map(renderCustomButton)}\n {hidePrimary ? null : (\n <ListAction\n primary\n key=\"buttonDomainFileManager\"\n data-type=\"buttonDomainFileManager\"\n icon=\"folder-closed\"\n hidden={!filemanagerUrl}\n component={Link}\n to={filemanagerUrl}\n tooltipAsLabel\n >\n {locale.lmsg(webrootDir ? 'buttonFileManagerDir' : 'buttonFileManager', { webrootDir })}\n </ListAction>\n )}\n {hidePrimary ? null : (\n <ListAction\n primary\n key=\"buttonDomainEmailSettings\"\n data-type=\"buttonDomainEmailSettings\"\n icon=\"mail\"\n hidden={!emailAddressesUrl}\n component={Link}\n to={emailAddressesUrl}\n tooltipAsLabel\n >\n {locale.lmsg('buttonEmailAddresses')}\n </ListAction>\n )}\n {hidePrimary || !databasesIsAvailable ? null : (\n <ListAction\n primary\n key=\"buttonDomainDbSettings\"\n data-type=\"buttonDomainDbSettings\"\n icon=\"database\"\n hidden={!databasesUrl}\n component={Link}\n to={databasesUrl}\n tooltipAsLabel\n >\n {locale.lmsg('buttonDatabases')}\n </ListAction>\n )}\n {hidePrimary ? null : (\n <ListAction\n primary\n key=\"buttonDomainHostingSettings\"\n data-type=\"buttonDomainHostingSettings\"\n icon=\"sliders\"\n hidden={!hostingSettingsUrl}\n component={Link}\n to={prepareUrl(hostingSettingsUrl)}\n tooltipAsLabel\n >\n {locale.lmsg('buttonWebScripting')}\n </ListAction>\n )}\n {additionalWithoutGroup.map(item => renderCustomButton({\n ...item,\n primary: false,\n }))}\n {additionalWithoutGroup.length > 0 && <ListActionsDivider />}\n {additionalGroups.map(group => (\n <React.Fragment key={`additionalGroup_${group}`}>\n {headerCustomButtons.filter(btn => btn.group === group).map(item => renderCustomButton({\n ...item,\n primary: false,\n }))}\n <ListActionsDivider />\n </React.Fragment>\n ))}\n {listCustomButtons.map(item => renderCustomButton({\n ...item,\n primary: false,\n }))}\n {listCustomButtons.length > 0 && [\n isMovable, allowRename, (isSuspended && error503PageUrl), isRemovable].some(res => res)\n && <ListActionsDivider />}\n <ListAction\n key=\"buttonMoveDomain\"\n data-type=\"buttonMoveDomain\"\n data-cy=\"move-domain\"\n icon=\"transfer\"\n onClick={() => onMoveDomain(item)}\n disabled={!!movingError}\n tooltip={movingError ? movingError : <Translate content={mainDomain ? 'buttonMoveMainHint' : 'buttonMoveHint'} />}\n hidden={!isMovable}\n >\n <Translate content=\"buttonMove\" />\n </ListAction>\n <ListAction\n key=\"buttonRenameDomain\"\n data-type=\"buttonRenameDomain\"\n icon=\"pencil\"\n component={Link}\n to={`?modals[rename-domain]=${btoa(encodeURIComponent(JSON.stringify({\n id: aliasId || domainId,\n domainName: displayName,\n isDomainAlias,\n parentDomain,\n })))}`}\n tooltip={<Translate content={isDomainAlias ? 'buttonRenameDomainAliasHint' : 'buttonRenameDomainHint'} />}\n hidden={!allowRename}\n >\n <Translate content={isDomainAlias ? 'buttonRenameAlias' : 'buttonRename'} />\n </ListAction>\n <ListAction\n key=\"buttonOpenErrorPage\"\n data-type=\"buttonOpenErrorPage\"\n icon=\"pencil\"\n component=\"a\"\n href={prepareUrl(error503PageUrl)}\n hidden={!(isSuspended && error503PageUrl)}\n >\n <Translate content=\"error503PageLink\" />\n </ListAction>\n <ListAction\n key=\"buttonDeleteDomain\"\n data-type=\"buttonDeleteDomain\"\n icon=\"recycle\"\n onClick={() => handleDelete(item)}\n tooltip={<Translate content={`${removeTitle}Hint`} />}\n hidden={!isRemovable}\n >\n <Translate content={removeTitle} />\n </ListAction>\n </ListActions>\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n}, [...Object.values(item), hidePrimary, className]);\n\nItemActions.propTypes = {\n hidePrimary: PropTypes.bool,\n className: PropTypes.string,\n listCustomButtons: PropTypes.arrayOf(PropTypes.object),\n};\n\nexport default ItemActions;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { escapeHtml, messageBox, Locale, api, prepareUrl, getComponent, addStatusMessage } from 'jsw';\n\nconst locale = Locale.getSection('components.sites.Card');\n\nexport default ({ id, title, displayName, isDomainAlias, isSubdomain, relatedDomains }) => {\n let text;\n let description;\n if (isDomainAlias) {\n text = locale.lmsg('buttonDeleteAliasConfirmationText', { name: `<b>${escapeHtml(title || displayName)}</b>` });\n description = '';\n } else if (isSubdomain) {\n text = locale.lmsg('buttonDeleteSubdomainConfirmationText', { name: `<b>${escapeHtml(title || displayName)}</b>` });\n description = locale.lmsg('buttonDeleteSubdomainConfirmationDescription');\n } else {\n text = locale.lmsg('buttonDeleteDomainConfirmationText', { name: `<b>${escapeHtml(title || displayName)}</b>` });\n description = locale.lmsg('buttonDeleteDomainConfirmationDescription');\n }\n\n if (relatedDomains.length !== 0) {\n const removalList = locale.lmsg('removingRelatedDomainsList', {\n domains: relatedDomains.join(', '),\n });\n description = `${description}\\n${removalList}`;\n }\n\n description = description.replace(/\\n/g, '<br>');\n\n return messageBox.show({\n type: messageBox.TYPE_YESNO,\n subtype: messageBox.SUBTYPE_DELETE,\n text,\n description,\n async onYesClick() {\n const { task, error } = await api.post(prepareUrl('/smb/web/domain-delete-async/'), { ids: [id] });\n if (error) {\n addStatusMessage('error', error);\n } else if (task && task.componentType === 'Jsw.Task.ProgressBar.Item') {\n getComponent('asyncProgressBarWrapper').progressDialog(task);\n }\n },\n });\n};\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\nimport {\n Dropdown,\n MenuItem,\n Button,\n Status,\n Text,\n} from '@plesk/ui-library';\nimport { Locale, redirectPost } from 'jsw';\nimport StatusMenu from './StatusMenu';\nimport handleChangeStatus from 'helpers/changeDomainStatus';\n\nconst Translate = Locale.getTranslate('components.sites.Card');\n\nconst ACTION_STATUS_MAP = {\n activate: 'active',\n suspend: 'suspended',\n disable: 'disabled',\n};\n\nconst ItemStatus = ({\n changeStatusLinks = null,\n isActive = false,\n isSuspended = false,\n className = undefined,\n onChangeStatus = redirectPost,\n}) => {\n const status = (\n <Status intent={isActive ? 'success' : (isSuspended ? 'warning' : 'inactive')} compact>\n <Translate content={isActive ? 'active' : (isSuspended ? 'suspended' : 'disabled')} />\n </Status>\n );\n\n if (!Object.keys(changeStatusLinks ?? {}).length) {\n return <Text bold style={{ margin: '8px' }}>{status}</Text>;\n }\n\n return (\n <Dropdown\n className={className}\n menu={\n <StatusMenu\n renderItems={({ renderIcon }) => Object.keys(changeStatusLinks).map(action => (\n <MenuItem\n key={action}\n icon={renderIcon(action)}\n onClick={() => handleChangeStatus(action, () => onChangeStatus(changeStatusLinks[action]))}\n data-action={`domain-${action}`}\n >\n <Translate content={ACTION_STATUS_MAP[action]} />\n </MenuItem>\n ))}\n />\n }\n >\n <Button ghost caret data-type=\"changeStatus\">{status}</Button>\n </Dropdown>\n );\n};\n\nItemStatus.propTypes = {\n changeStatusLinks: PropTypes.object,\n isActive: PropTypes.bool,\n isSuspended: PropTypes.bool,\n className: PropTypes.string,\n onChangeStatus: PropTypes.func,\n};\n\nexport default ItemStatus;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Icon,\n Menu,\n MenuDivider,\n MenuItem,\n} from '@plesk/ui-library';\nimport { Locale } from 'jsw';\n\nconst Translate = Locale.getTranslate('components.sites.Card');\n\nconst ACTION_INTENT_MAP = {\n activate: 'success',\n suspend: 'warning',\n disable: 'inactive',\n};\n\nconst StatusMenu = forwardRef(function StatusMenu({ renderItems, ...props }, ref) {\n const renderIcon = action => (\n ACTION_INTENT_MAP[action] && <Icon name=\"dot-big\" intent={ACTION_INTENT_MAP[action]} />\n );\n\n return (\n <Menu {...props} ref={ref}>\n {renderItems({ renderIcon })}\n <MenuDivider />\n <MenuItem\n icon=\"info-circle\"\n component=\"a\"\n href=\"/smb/help/redirect/controller-name/web/action-name/change-status\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <Translate content=\"statusLearnMore\" />\n </MenuItem>\n </Menu>\n );\n});\n\nStatusMenu.propTypes = {\n renderItems: PropTypes.func.isRequired,\n};\n\nexport default StatusMenu;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useEffect, useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Alert,\n FormFieldRadioButtons,\n FormFieldText,\n FormFieldPassword,\n FormFieldCheckbox,\n Icon, Section, ContentLoader,\n} from '@plesk/ui-library';\nimport { api, Locale } from 'jsw';\nimport FormFieldLookUp from 'components/formFields/FormFieldLookUp';\nimport DrawerWithProgress from 'components/common/DrawerWithProgress';\nimport { addToast } from 'helpers/toasts';\nimport { useApolloClient } from '@apollo/client';\n\nconst locale = Locale.getSection('components.forms.domain.move');\nconst Translate = Locale.getTranslate('components.forms.domain.move');\n\nconst MoveTargets = {\n NEW: 'new',\n EXISTING: 'existing',\n};\n\nexport const MoveDomainDrawer = ({\n isOpen = false,\n domainId = undefined,\n displayName = undefined,\n isMainDomain = false,\n onClose,\n}) => {\n const [isNew, setIsNew] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n const [data, setData] = useState({});\n const [values, setValues] = useState({ target: null, moveto: MoveTargets.EXISTING });\n const [formState, setFormState] = useState(null);\n const [errors, setErrors] = useState({});\n const [task, setTask] = useState(null);\n const apolloClient = useApolloClient();\n\n useEffect(\n () => {\n const loadData = async function () {\n if (!domainId) {\n return;\n }\n\n setIsLoading(true);\n\n let data;\n try {\n data = await api.get('/smb/web/move-data', { domainId });\n if (data.status === 'error') {\n throw data;\n }\n } catch (error) {\n (error.statusMessages || [{ content: error.message }]).forEach(\n ({ content }) => addToast({ intent: 'danger', message: content }),\n );\n onClose();\n return;\n }\n\n setData(data);\n setValues(values => ({\n ...values,\n moveto: data.targets.length ? MoveTargets.EXISTING : MoveTargets.NEW,\n }));\n setIsNew(!data.targets.length);\n\n setIsLoading(false);\n };\n\n loadData();\n },\n [domainId], // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n const moveDomain = useCallback(async data => {\n const { status, task, errors } = await api.post('/smb/web/move', data);\n\n if (status !== 'ok') {\n setErrors(errors);\n setFormState(null);\n } else {\n setTask(task);\n\n const { cache } = apolloClient;\n\n cache.evict({\n id: cache.identify({ __typename: 'Domain', id: btoa(`Domain:${data.domainId}`) }),\n });\n }\n }, [apolloClient]);\n\n const handleSubmit = useCallback(\n ({ target, username, password, moveDatabases }) => {\n const errors = {};\n const withHosting = data.moveToNewData?.withHosting;\n\n if (isNew) {\n if (!username && withHosting) {\n errors.username = {\n isEmpty: <Translate content=\"usernameIsRequred\" />,\n };\n }\n\n if (!password && withHosting) {\n errors.password = {\n isEmpty: <Translate content=\"passwordIsRequred\" />,\n };\n }\n } else if (!target) {\n errors.target = {\n isEmpty: <Translate content=\"targetIsRequred\" />,\n };\n }\n\n setErrors(errors);\n\n if (Object.keys(errors).length) {\n return;\n }\n\n const sendData = isNew\n ? { moveto: MoveTargets.NEW, domainId, username, password, moveDatabases }\n : { moveto: MoveTargets.EXISTING, domainId, webspaceId: target.id, moveDatabases };\n\n setFormState('submit');\n moveDomain(sendData);\n },\n [isNew, data, domainId, moveDomain],\n );\n\n const renderNewSubscriptionFields = () => {\n const { available, withHosting } = data.moveToNewData;\n\n if (isNew && available) {\n return withHosting ? [\n <FormFieldText\n key=\"username\"\n name=\"username\"\n label={<Translate content=\"username\" />}\n description={<Translate content=\"usernameHint\" />}\n size=\"md\"\n required\n />,\n <FormFieldPassword\n key=\"password\"\n name=\"password\"\n data-cy=\"password\"\n label={<Translate content=\"password\" />}\n size=\"md\"\n required\n />,\n ] : [\n <Alert intent=\"info\" key=\"alert\" data-cy=\"no-web-hosting\">\n <Icon name=\"info-circle\" /> <Translate content=\"noWebHosting\" />\n </Alert>,\n ];\n }\n\n return [];\n };\n\n const renderChildrenHint = () => {\n const subdomains = data.subdomains.join(', ');\n const aliases = data.aliases.join(', ');\n\n if (subdomains && aliases) {\n return (\n <Alert intent=\"info\">\n <Translate\n content=\"hintSubdomainsAndAliases\"\n params={{ subdomains, aliases }}\n />\n </Alert>\n );\n }\n\n if (subdomains) {\n return (\n <Alert intent=\"info\">\n <Translate\n content=\"hintSubdomains\"\n params={{ subdomains }}\n />\n </Alert>\n );\n }\n\n if (aliases) {\n return (\n <Alert intent=\"info\">\n <Translate\n content=\"hintAliases\"\n params={{ aliases }}\n />\n </Alert>\n );\n }\n\n return null;\n };\n\n const renderContent = () => {\n const { targets, moveToNewData } = data;\n const isMoveToExistingDisabled = !targets.length;\n\n return (\n <>\n {renderChildrenHint()}\n {moveToNewData ? (\n <FormFieldRadioButtons\n name=\"moveto\"\n onChange={value => setIsNew(value === MoveTargets.NEW)}\n options={[\n {\n disabled: isMoveToExistingDisabled,\n value: MoveTargets.EXISTING,\n label: <Translate content=\"selectTarget\" />,\n indentFields: [\n <FormFieldLookUp\n key=\"target\"\n name=\"target\"\n data={targets}\n locale={locale}\n disabled={isMoveToExistingDisabled}\n placeholder={isMoveToExistingDisabled ? locale.lmsg('noAvailableSubscriptions') : null}\n />,\n ],\n },\n {\n disabled: !moveToNewData.available,\n value: MoveTargets.NEW,\n label: <Translate content=\"selectNewSubscription\" />,\n indentFields: renderNewSubscriptionFields(),\n },\n ]}\n />\n ) : (\n <FormFieldLookUp\n name=\"target\"\n label={<Translate content=\"selectTarget\" />}\n data={targets}\n locale={locale}\n />\n )}\n </>\n );\n };\n\n const renderDatabaseSection = () => (\n <Section>\n <Alert intent=\"info\">\n <Translate content=\"hintDatabases\" />\n </Alert>\n <FormFieldCheckbox\n data-cy=\"move-databases\"\n name=\"moveDatabases\"\n value=\"1\"\n label={<Translate content=\"labelDatabases\" />}\n />\n </Section>\n );\n\n return (\n <DrawerWithProgress\n title={<Translate content=\"title\" params={{ name: displayName }} />}\n isOpen={isOpen}\n onClose={onClose}\n size=\"sm\"\n form={{\n values,\n state: formState,\n vertical: true,\n submitButton: {\n 'data-cy': 'submit-move-domain',\n disabled: isLoading,\n },\n applyButton: false,\n hideRequiredLegend: true,\n onSubmit: handleSubmit,\n errors,\n }}\n dataType=\"move-domain\"\n task={task}\n >\n {isLoading ? (\n <ContentLoader />\n ) : (\n <>\n <p>\n <Translate content={isMainDomain ? 'hintMain' : 'hint'} />\n </p>\n {renderContent()}\n {data.moveDatabases && renderDatabaseSection()}\n </>\n )}\n </DrawerWithProgress>\n );\n};\n\nMoveDomainDrawer.propTypes = {\n isOpen: PropTypes.bool,\n domainId: PropTypes.number,\n displayName: PropTypes.string,\n isMainDomain: PropTypes.bool,\n onClose: PropTypes.func.isRequired,\n};\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useMemo, useCallback, useState } from 'react';\nimport { MoveDomainDrawer } from './MoveDomainDrawer';\n\nexport const useMoveDomainDrawer = () => {\n const [isOpen, setIsOpen] = useState(false);\n const [data, setData] = useState({});\n\n const onOpen = useCallback(item => {\n setIsOpen(true);\n setData(item);\n }, []);\n\n const onClose = useCallback(() => setIsOpen(false), []);\n\n const drawer = useMemo(\n () => (\n <MoveDomainDrawer\n {...data}\n isOpen={isOpen}\n onClose={onClose}\n />\n ),\n [data, isOpen, onClose],\n );\n\n return [drawer, onOpen];\n};\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nexport const getExtensionName = id => {\n const { extName, extBtnId } = getExtensionNameAndId(id);\n\n return extBtnId && isNaN(+extBtnId) ?\n `${extBtnId}_${extName}` :\n extName;\n};\n\nexport const getExtensionNameAndId = id => {\n const splittedId = id.split(/_/g);\n const extName = splittedId.pop();\n const extBtnId = splittedId.pop();\n\n return { extName, extBtnId };\n};\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router-dom';\nimport { gql, useMutation } from '@apollo/client';\nimport { Dialog, Text, Paragraph, FormField, Input, StatusMessage } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport { addToast } from 'helpers/toasts';\nimport { useModal } from 'hooks';\nimport Link from 'components/common/Link';\n\nconst Translate = Locale.getTranslate('components.forms.domain.rename');\n\nconst RENAME_DOMAIN = gql`\n mutation RenameDomain($id: ID!, $name: String!) {\n renameDomain(input: { id: $id, name: $name }) {\n domain {\n name\n }\n }\n }\n`;\n\nconst RENAME_DOMAIN_ALIAS = gql`\n mutation RenameDomainAlias($id: ID!, $name: String!) {\n renameDomainAlias(input: { id: $id, name: $name }) {\n domainAlias {\n name\n }\n }\n }\n`;\n\nconst RenameDomain = ({ onRenameComplete = () => {} }) => {\n const navigate = useNavigate();\n const [args, setArgs] = useModal('rename-domain');\n const [formState, setFormState] = useState(null);\n const [formErrors, setFormErrors] = useState(null);\n const [statusMessages, setStatusMessages] = useState([]);\n\n const { id, domainName, isDomainAlias, parentDomain } = args ? JSON.parse(decodeURIComponent(atob(args))) : {};\n const isSubdomain = parentDomain && !isDomainAlias;\n\n const [renameDomain] = useMutation(isDomainAlias ? RENAME_DOMAIN_ALIAS : RENAME_DOMAIN);\n\n const handleClose = () => setArgs(null);\n\n const handleSubmit = async ({ name }) => {\n setFormState(null);\n setFormErrors(null);\n setStatusMessages([]);\n\n name = name?.trim();\n if (!name) {\n setFormErrors({\n name: {\n isEmpty: <Translate content=\"domainNameIsRequired\" />,\n },\n });\n return;\n }\n\n try {\n setFormState('submit');\n await renameDomain({\n variables: {\n id: btoa(`${isDomainAlias ? 'DomainAlias' : 'Domain'}:${id}`),\n name,\n },\n });\n onRenameComplete();\n addToast({\n intent: 'success',\n message: (\n <Translate\n content={isDomainAlias ? 'successMessageAlias' : 'successMessage'}\n params={{\n oldName: <b>{domainName}</b>,\n newName: (\n <Link to={`/smb/web/overview/id/${id}/type/${isDomainAlias ? 'alias' : 'domain'}`}>\n {isSubdomain ? `${name}.${parentDomain.displayName}` : name}\n </Link>\n ),\n }}\n />\n ),\n });\n navigate(window.location.pathname, { state: { reload: true } });\n } catch (error) {\n const { graphQLErrors } = error;\n if (!graphQLErrors?.length) {\n setStatusMessages([error.message]);\n } else if (graphQLErrors[0].extensions?.category === 'validate') {\n setFormErrors(graphQLErrors[0].extensions.messages);\n } else {\n setStatusMessages(graphQLErrors.map(({ message }) => message));\n }\n } finally {\n setFormState(null);\n }\n };\n\n return (\n <Dialog\n isOpen={args !== null}\n closable={'submit' !== formState}\n title={<Translate content={isDomainAlias ? 'titleAlias' : 'title'} />}\n size=\"xs\"\n onClose={handleClose}\n form={{\n vertical: true,\n state: formState,\n errors: formErrors,\n onSubmit: handleSubmit,\n submitButton: { children: <Translate content={'submit' === formState ? 'submitButtonProgress' : 'submitButton'} /> },\n }}\n >\n {statusMessages.map(message => (\n <StatusMessage intent=\"danger\" key={message}>{message}</StatusMessage>\n ))}\n <Paragraph>\n <Translate\n content={isDomainAlias ? 'hintAlias' : 'hint'}\n params={{ domainName: <Text bold>{domainName}</Text> }}\n />\n </Paragraph>\n <FormField\n name=\"name\"\n label={<Translate content={isDomainAlias ? 'nameAlias' : 'name'} />}\n >\n {({ getValue, setValue, isDisabled }) => (\n <div>\n <Input\n disabled={isDisabled()}\n value={getValue()}\n onChange={e => setValue(e.target.value)}\n size={isSubdomain ? 'lg' : 'fill'}\n />\n {isSubdomain ? (\n <Text bold>{` . ${parentDomain.displayName}`}</Text>\n ) : null}\n </div>\n )}\n </FormField>\n </Dialog>\n );\n};\n\nRenameDomain.propTypes = {\n onRenameComplete: PropTypes.func,\n};\n\nexport default RenameDomain;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\n\nimport {\n Action,\n Text,\n Tooltip,\n useTranslate,\n copyToClipboard,\n} from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport Link from 'components/common/Link';\nimport { addToast } from 'helpers/toasts';\n\nconst locale = Locale.getSection('components.sites.List');\n\nconst DynamicListItemTitleActions = ({\n domainName,\n siteUrl,\n isShowUrlInToast,\n overviewUrl,\n isShowGoToOverview,\n}) => {\n const translate = useTranslate('components.sites.List');\n\n return (\n <div className=\"smb-web-view-dynamic-list-item-title-actions\">\n <Tooltip asLabel title={locale.lmsg('copyDomainName')}>\n <Action\n icon={{ name: 'copy', size: 12 }}\n className=\"smb-web-view-dynamic-list-item-title-actions__action\"\n onClick={() => {\n copyToClipboard(domainName);\n addToast({\n intent: 'success',\n message: translate('domainNameCopied', {\n domainName: (\n <Text bold>\n {isShowUrlInToast ? (\n <a href={siteUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n {domainName}\n </a>\n ) : domainName}\n </Text>\n ),\n }),\n });\n }}\n data-action=\"dynamicListCopyDomainName\"\n />\n </Tooltip>\n {isShowGoToOverview && (\n <Tooltip asLabel title={locale.lmsg('goToOverview')}>\n <Action\n icon={{ name: 'box-diagonal-top-in', size: 12 }}\n className=\"smb-web-view-dynamic-list-item-title-actions__action\"\n component={Link}\n to={overviewUrl}\n data-action=\"dynamicListGoToOverview\"\n />\n </Tooltip>\n )}\n </div>\n );\n};\n\nDynamicListItemTitleActions.propTypes = {\n domainName: PropTypes.string.isRequired,\n siteUrl: PropTypes.string.isRequired,\n isShowUrlInToast: PropTypes.bool.isRequired,\n isShowGoToOverview: PropTypes.bool.isRequired,\n overviewUrl: PropTypes.string.isRequired,\n};\n\nexport default DynamicListItemTitleActions;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useEffect, useState } from 'react';\nimport { Icon } from '@plesk/ui-library';\nimport PropTypes from 'prop-types';\n\nlet active = 0;\nlet pending = [];\nconst rateLimit = 5;\n\nconst useRateLimiter = (url, limit) => {\n const next = () => {\n if (active < limit && pending.length) {\n active++;\n pending.shift().resolve();\n }\n };\n const acquire = () => new Promise(resolve => {\n pending.push({ url, resolve });\n next();\n });\n const release = () => {\n active--;\n next();\n };\n const cleanup = () => {\n pending = pending.filter(ref => ref.url === url);\n };\n\n return [acquire, release, cleanup];\n};\n\nconst LoadFavicon = ({ url }) => {\n const [loading, setLoading] = useState(true);\n const [acquire, release, cleanup] = useRateLimiter(url, rateLimit);\n\n useEffect(() => {\n (async () => {\n await acquire();\n const image = new Image();\n image.onload = () => {\n release();\n setLoading(false);\n };\n image.onerror = () => {\n release();\n };\n image.src = url;\n })();\n return () => cleanup();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url]);\n\n if (loading) {\n return '';\n }\n return <img data-testid=\"favicon\" alt=\"\" src={url} />;\n};\n\nLoadFavicon.propTypes = {\n url: PropTypes.string.isRequired,\n};\n\nconst Favicon = ({ hostingType = 'vrt_hst', aliasId = undefined, domainId }) => {\n const iconProps = {\n className: 'smb-web-view-dynamic-list-item-favicon',\n };\n\n if (aliasId) {\n return <Icon {...iconProps} name=\"redirect-circle-filled\" />;\n }\n\n switch (hostingType) {\n case 'std_fwd':\n case 'frm_fwd':\n iconProps.name = 'forward-circle-filled';\n break;\n case 'none':\n iconProps.name = 'mail-circle-filled';\n break;\n default:\n iconProps.children = <LoadFavicon url={`/cp/domain/${domainId}/favicon`} />;\n }\n\n return <Icon {...iconProps} />;\n};\n\nFavicon.propTypes = {\n hostingType: PropTypes.string,\n aliasId: PropTypes.number,\n domainId: PropTypes.number.isRequired,\n};\n\nexport default Favicon;\n","module.exports = Jsw.skinUrl + \"/images/code.svg?d9dcc332aeb03168d77f5fbcc97e7bcb\";","module.exports = Jsw.skinUrl + \"/images/mail.svg?e19a5f99ea85bc24608c0601bfe29fcc\";","module.exports = Jsw.skinUrl + \"/images/upload-files.svg?3659f9de736ae2576023d51cbfb48963\";","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetWebspaceIpAddress\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"domain\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Domain\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddresses\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publicIpAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":207}};\n doc.loc.source = {\"body\":\"query GetWebspaceIpAddress($id: ID!) {\\n domain: node(id: $id) {\\n ... on Domain {\\n ipAddresses {\\n publicIpAddress\\n ipAddress\\n }\\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[\"GetWebspaceIpAddress\"] = oneQuery(doc, \"GetWebspaceIpAddress\");\n \n"],"names":["ApplicationsTranslate","Locale","getTranslate","getExtensionAppName","extensionId","ApplicationWizard","onFieldChange","onStepChange","formPrefix","wizardConfig","enabled","blankSite","uploadFiles","mailHosting","isMailServiceSupported","embeddedForms","extensionButtons","values","children","entity","className","props","location","useLocation","preselectedAppName","setPreselectedAppName","useState","URLSearchParams","search","get","handleApplicationChange","applicationName","applicationsList","name","icon","require","title","_jsx","content","description","map","id","filter","Boolean","selectedApplication","find","showSelectedApplicationInfo","length","steps","key","ChooseApplicationStep","onApplicationSelect","nextButton","_jsxs","_Fragment","SelectedApplicationInfo","applicationTitle","useEffect","preselectedApplication","step","MultistepForm","classNames","handleStepChange","prev","window","history","replaceState","pathname","propTypes","PropTypes","isRequired","ApplicationsListTranslate","Heading","level","ItemList","minColumnWidth","gap","selectable","stretchable","Item","role","Icon","src","intent","size","onClick","Paragraph","ButtonsTranslate","onSubmit","submitButton","cancelButton","formRef","useRef","stateStep","setStep","currentStep","backButton","isLastStep","isFirstStep","stepKey","handleBack","current","handleEmbeddedFormValues","prevState","handleNext","handleSubmit","submit","Form","ref","additionalButtons","getAdditionalButtons","Button","arrow","push","isValidElement","cloneElement","onError","errors","baseFormStep","findIndex","errorSteps","Object","keys","errorSection","errorStep","some","Math","min","applyButton","Translate","locale","getSection","alt","lmsg","component","params","optionName","Text","bold","IpAddressTranslate","IpSelectDropdown","ipAddresses","namePrefix","type","isOtherTypeAvailable","getIpAddressType","translate","useTranslate","FormFieldSelect","label","ipAddress","publicIpAddress","SelectOption","value","TYPE_IPV4","TYPE_IPV6","TYPE_SHARED","TYPE_EXCLUSIVE","IpSelectDropdowns","isIPv6Supported","ipv4Addresses","useMemo","isIPv6","isBroken","ipv6Addresses","useCallback","prepareBackendData","ips","forEach","TYPE_TECH","TYPE_CUSTOM","TechDomainName","isEnabled","isDefault","url","vendor","maxDomainLength","typeName","onDomainNameChange","onTypeChange","setType","DomainNameSection","types","Section","vertical","FormField","onChange","handleTypeChange","getId","getName","getValue","setValue","isDisabled","onSelect","disabled","fontSize","hidden","readOnly","TechDomainSection","FormFieldDomainName","required","fieldApi","TechDomainSelector","Cuttable","maxHeight","loading","setLoading","requestedIpAddress","setRequestedIpAddress","setErrors","requestDomainName","async","subdomain","response","fetch","method","body","JSON","stringify","ip_address","max_length","json","Error","getSubdomainName","error","noIpAddress","Status","progress","Alert","Input","placeholder","e","target","lookupLocale","FormFieldLookUp","data","dataUrl","lookUpParams","newItemValue","JswLookUp","messages","DomainInfoSectionTranslate","SharedTranslate","ContactInfoTranslate","LoginInfoTranslate","AddDomainForm","webspaceIpAddress","defaultWebspaceIpAddress","webspaceIpAddresses","allowCustomerCreation","allowWebspaceCreation","subscriptionsLookUpParams","canManageMailSettings","maxSysnameSize","isWindows","techDomain","settingsEnabled","settingsCollapsed","applicationWizardConfig","cancelLink","render","onProcess","onToggleDomainSettings","status","apolloClient","useApolloClient","navigate","useNavigate","setValues","docrootChanged","setDocrootChanged","hostingSettings","root","userNameChanged","setUserNameChanged","domainInfo","setWebspaceIpAddress","setIpAddresses","defaultIpAddresses","isMailOnly","setIn","docroot","domainName","replace","rootPattern","indexOf","toPunycode","webspace","query","GET_WEBSPACE_IP_ADDRESS","variables","btoa","then","domain","catch","message","addToast","handleFieldChange","userName","generateUserName","maxUserNameSize","isTechDomain","includes","UAT","dispatchAction","isWebspaceCreation","assignToCustomer","undefined","targetWebspace","ipSelector","split","RenderComponent","customer","onLongTask","StatusMessage","dangerouslySetInnerHTML","__html","FormFieldCheckbox","checkedValue","uncheckedValue","collapsible","FormFieldText","autoComplete","FormFieldPassword","collapsed","onToggle","dnsSettings","mailSettings","hostingType","hosting","FormFieldRadioButtons","options","ipv4","ipv6","useAddDomainFormInDrawer","pageUrl","drawerUrl","useCreateFormInDrawer","setComponent","newComponent","LookUp","remove","disable","enable","JswComponent","STATUS_INTENTS","active","suspended","DomainListFilter","searchFilters","onSearch","onReset","Panel","extra","ghost","fill","Media","image","phpHandlerId","subscriberName","func","objectOf","shape","string","arrayOf","object","DomainListToolbar","onDelete","onChangeStatus","addDomainUrl","addSubdomainUrl","addDomainAliasUrl","selectedRows","onToggleSidebar","hasSidebar","hasFilter","searchTerm","relatedDomains","domains","Set","d","add","Toolbar","ToolbarGroup","Link","tooltip","to","ListOperation","noSelectionText","Dropdown","menu","StatusMenu","renderItems","renderIcon","action","MenuItem","Fragment","caret","critical","confirmationText","formatMessage","count","style","marginTop","join","actionButtonText","cancelButtonText","ToolbarExpander","groupable","Badge","state","SearchBar","inputProps","bool","IcpPermitTranslate","DomainsList","initialData","dataAction","allowCreateDomain","allowManageSubdomain","allowManageDomainAliases","showDeleteButton","showOwnerName","userId","icpPermitSupported","icpPermitLink","showFavicons","showSetupDate","showExpirationDate","showExtensionsColumns","buildUrl","parts","cache","addDomainDrawer","moveDomainDrawer","onMoveDomain","useMoveDomainDrawer","setData","setSidebar","limitPagination","pager","totalItemCount","itemsPerPage","itemCountPerPage","ALL_ITEMS_COUNT","handleRequest","responseData","api","redirect","renderPagination","sortParams","handleReload","handleFilter","selection","setSelection","loadingRows","wrapListOperation","useList","initialFilter","entries","reduce","acc","searchText","pagination","totalPage","pageCount","itemsPerPageOptions","ITEM_PER_PAGE_OPTIONS_DEFAULT","item","ALL_ITEMS","onSort","onPageChange","page","addSearchParams","onChangeItemsPerPage","itemPerPage","sort","direction","sortDirection","column","sortField","sortColumn","onFilter","onReload","k","v","isListFiltered","execGroupOperation","ids","reload","post","forceSkipRedirect","renderDescription","adminDescription","resellerDescription","ownerDescription","hideResellerTitleDescription","hideOwnerTitleDescription","SiteDescription","prefix","renderTitleDescription","forwardingDisplayUrl","domainDisplayName","Hint","renderSize","val","result","slice","at","renderItemTitle","virtual","domainId","aliasId","displayName","siteUrl","isWildcard","overviewUrl","searchValue","titleParts","RegExp","escapeStringRegexp","Favicon","part","index","toLowerCase","mark","DynamicListItemTitleActions","isShowUrlInToast","isShowGoToOverview","renderItemStatus","changeStatusLinks","isActive","isSuspended","newLinks","ItemStatus","renderItemActions","ItemActions","listCustomButtons","uri","previewUrl","managerUrl","parseInt","ownerId","ownerType","encodeURIComponent","manageUrl","renderIcpPermit","icpStatus","icpPermit","href","rel","columns","sortable","ownerName","ownerCompanyName","diskUsage","traffic","setupDate","Date","toLocaleDateString","document","documentElement","lang","month","day","year","expirationDateString","width","additional","extensions","modifyColumnsByExtensions","modifiedColumns","ext","columnName","fixInsertIndex","insertIndex","insertBefore","insertAfter","newColumn","dataIndex","renderer","noEscape","splice","List","rowKey","onSelectionChange","filtered","totalRows","toolbar","task","addStatusMessage","componentType","getComponent","progressDialog","onComplete","evictUserStatisticsCache","handleChangeStatus","suspend","activate","sidebar","emptyView","ListEmptyView","reason","RenameDomain","onRenameComplete","Outlet","context","number","text","Tooltip","truncate","withPageLayout","deleteAction","buttonsLocale","messageBox","show","TYPE_YESNO","buttonTitles","yes","no","subtype","onYesClick","str","createDescription","selector","ce","escapeHtml","createSiteDescription","TypeError","randomString","random","toString","defaultPostfix","postfix","isUnix","hasNotAllowedSymbols","test","startsWithDigit","substr","extract","__typename","user","evict","identify","fieldName","renderCustomButton","primary","ListAction","getExtensionName","getAdditionalGroups","groups","btn","isAdditional","group","hidePrimary","mainDomain","isMovable","movingError","allowRename","isRemovable","isDomainAlias","isSubdomain","filemanagerUrl","emailAddressesUrl","databasesUrl","databasesIsAvailable","hostingSettingsUrl","error503PageUrl","parentDomain","headerCustomButtons","webrootDir","removeTitle","additionalWithoutGroup","additionalGroups","ListActions","tooltipAsLabel","prepareUrl","ListActionsDivider","React","res","handleDelete","SUBTYPE_DELETE","ACTION_STATUS_MAP","redirectPost","compact","margin","ACTION_INTENT_MAP","forwardRef","Menu","MenuDivider","MoveTargets","MoveDomainDrawer","isOpen","isMainDomain","onClose","isNew","setIsNew","isLoading","setIsLoading","moveto","formState","setFormState","setTask","statusMessages","targets","loadData","moveDomain","username","password","moveDatabases","withHosting","moveToNewData","isEmpty","sendData","webspaceId","renderNewSubscriptionFields","available","renderChildrenHint","subdomains","aliases","DrawerWithProgress","form","hideRequiredLegend","dataType","ContentLoader","renderContent","isMoveToExistingDisabled","indentFields","setIsOpen","onOpen","extName","extBtnId","getExtensionNameAndId","isNaN","splittedId","pop","RENAME_DOMAIN","gql","RENAME_DOMAIN_ALIAS","args","setArgs","useModal","formErrors","setFormErrors","setStatusMessages","parse","decodeURIComponent","atob","renameDomain","useMutation","Dialog","closable","handleClose","trim","oldName","newName","graphQLErrors","category","asLabel","Action","copyToClipboard","pending","LoadFavicon","acquire","release","cleanup","useRateLimiter","limit","next","shift","resolve","Promise","Image","onload","onerror","iconProps","module","exports","Jsw","skinUrl","doc","loc","source","collectFragmentReferences","node","refs","kind","selectionSet","selections","variableDefinitions","def","definitions","definitionRefs","findOperation","i","element","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","prevRefs","has","childRef","op","oneQuery"],"sourceRoot":""}
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
list.js
62637 bytes
0644
list.js.map
208799 bytes
0644
N4ST4R_ID | Naxtarrr