Submit
Path:
~
/
/
opt
/
psa
/
admin
/
cp
/
public
/
javascript
/
views
/
admin
/
customer
/
File Content:
subscriptions.js.map
{"version":3,"file":"javascript/views/admin/customer/subscriptions.js?49fe974ee6420092bc85","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/SubscriptionSection.js","webpack:///./components/common/TechDomainName.js","webpack:///./components/formFields/FormFieldDomainName.js","webpack:///./components/forms/CreateSubscriptionForm.js","webpack:///./components/jsw/JswList.js","webpack:///./components/jsw/JswTabs.js","webpack:///./components/jsw/convertToReactComponent.js","webpack:///./components/lists/SubscriptionsList.js","webpack:///./components/pages/CustomerSubscriptionsPage.js","webpack:///./components/sidebars/CustomerSidebar.js","webpack:///./components/sidebars/SidePanelDescription.js","webpack:///./helpers/customDescription.js","webpack:///./helpers/description.js","webpack:///./helpers/generateUserName.ts","webpack:///./icons/16/plesk/change-password.png","webpack:///./icons/16/plesk/convert-to-reseller.png","webpack:///./icons/16/plesk/delete.png","webpack:///./icons/16/plesk/edit-contact-info.png","webpack:///./icons/16/plesk/iis-app-pool.png","webpack:///./icons/16/plesk/login-as-customer.png","webpack:///./icons/16/plesk/subscription-status-locked.png","webpack:///./icons/16/plesk/subscription-status-ok.png","webpack:///./icons/16/plesk/subscription-status-suspended.png","webpack:///./icons/16/plesk/subscription-status-unsynchronized.png","webpack:///./icons/16/plesk/webserver-domain-error.png","webpack:///./images/code.svg","webpack:///./images/mail.svg","webpack:///./images/upload-files.svg"],"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 { useEffect, useMemo, useState } from 'react';\nimport {\n FormField, FormFieldCheckbox, FormFieldPassword, FormFieldSelect, FormFieldText, getIn,\n Heading, Section, Select, SelectOption, Text,\n} from '@plesk/ui-library';\nimport TechDomainName, { TYPE_TECH } from './TechDomainName';\nimport { Locale } from 'jsw';\nimport PropTypes from 'prop-types';\nimport IpSelectDropdowns, { prepareBackendData } from './IpSelectDropdowns';\n\nconst DomainTranslate = Locale.getTranslate('admin.components.forms.admin-panel.form.domain-info-section');\nconst SubscriptionTranslate = Locale.getTranslate('admin.components.forms.admin-panel.form.subscription-info-section');\nconst AdminTranslate = Locale.getTranslate('components.forms.admin-info');\n\nconst SubscriptionSection = ({\n values,\n servicePlans,\n ipAddresses,\n addonPlans,\n handleFieldChange,\n techDomainUrl,\n techDomainVendor,\n maxDomainLength,\n settingsEnabled = false,\n settingsCollapsed = false,\n withCustomer = false,\n isWindows = false,\n onToggleDomainSettings = undefined,\n}) => {\n const [selectedAddonPlans, setSelectedAddonPlans] = useState(addonPlans.filter(({ selected }) => selected).map(({ id }) => id));\n const servicePlan = getIn(values, 'subscription[subscriptionInfo][servicePlan]');\n const isCustomServicePlan = () => '0' === servicePlan;\n const isMailOnly = useMemo(() => values.applicationName === 'mail-hosting', [values.applicationName]);\n\n useEffect(() => {\n const addonPlanSelector = {};\n addonPlans.forEach(({ id }) => {\n addonPlanSelector[id] = selectedAddonPlans.includes(id);\n });\n handleFieldChange('subscription[subscriptionInfo][addonPlanSelector]', JSON.stringify(addonPlanSelector));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedAddonPlans]);\n\n useEffect(() => {\n handleFieldChange('subscription[subscriptionInfo][customize]', isCustomServicePlan() ? '1' : '0');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [servicePlan]);\n\n const ipAddress = Object.keys(ipAddresses).map(type => {\n const id = values.subscription.domainInfo.ipSelector[type];\n return id === 'none' ? null : ipAddresses[type][id].split(' ')[0];\n }).filter(Boolean)[0];\n\n return (\n <>\n <TechDomainName\n isEnabled={values.subscription.domainInfo.type !== undefined}\n isDefault={values.subscription.domainInfo.type === TYPE_TECH}\n url={techDomainUrl}\n vendor={techDomainVendor}\n maxDomainLength={maxDomainLength}\n typeName=\"subscription[domainInfo][type]\"\n name=\"subscription[domainInfo][domainName]\"\n ipAddress={ipAddress}\n onTypeChange={value => handleFieldChange('subscription[domainInfo][type]', value)}\n onDomainNameChange={value => handleFieldChange('subscription[domainInfo][domainName]', value)}\n />\n <FormFieldSelect\n label={<SubscriptionTranslate content=\"servicePlan\" />}\n name=\"subscription[subscriptionInfo][servicePlan]\"\n size=\"lg\"\n >\n {Object.keys(servicePlans).filter(id => id !== '0').map(id => (\n <SelectOption key={id} value={id}>{servicePlans[id]}</SelectOption>\n ))}\n <SelectOption key=\"0\" value=\"0\">{servicePlans['0']}</SelectOption>\n </FormFieldSelect>\n {!isCustomServicePlan() && addonPlans.length ? (\n <FormField\n label={<SubscriptionTranslate content=\"addonPlans\" />}\n >\n {({ isDisabled }) => (\n <Select\n multiple\n searchable\n size=\"lg\"\n name=\"subscription[subscriptionInfo][addonPlanSelector]\"\n id=\"subscription-subscriptionInfo-addonPlanSelector\"\n defaultValue={selectedAddonPlans}\n onChange={value => setSelectedAddonPlans(value)}\n disabled={isDisabled()}\n >\n {addonPlans.map(({ id, title }) => (\n <SelectOption key={id} value={id}>{title}</SelectOption>\n ))}\n </Select>\n )}\n </FormField>\n ) : null}\n <FormFieldCheckbox\n label={<SubscriptionTranslate content={withCustomer ? 'customizeSubscriptionForCustomer' : 'customizeSubscriptionOnCreateSubscription'} />}\n name=\"subscription[subscriptionInfo][customize]\"\n description={<SubscriptionTranslate content=\"customizeSubscriptionHint\" />}\n checkedValue=\"1\"\n uncheckedValue=\"0\"\n />\n {settingsEnabled ? (\n <Section\n id=\"subscription-additionalSettings\"\n title={<DomainTranslate content=\"subscriptionSettings\" />}\n collapsible\n collapsed={settingsCollapsed}\n onToggle={onToggleDomainSettings}\n >\n <IpSelectDropdowns ipAddresses={prepareBackendData(ipAddresses)} namePrefix={'subscription[domainInfo][ipSelector]'} />\n {!isMailOnly && (\n <>\n <br />\n <Heading level=\"4\"><DomainTranslate content=\"credentials\" /></Heading>\n <Text component=\"p\" intent=\"muted\">\n <DomainTranslate\n content={isWindows ? 'credentialsHintWin' : 'credentialsHint'}\n />\n </Text>\n <FormFieldText\n label={<DomainTranslate content=\"userName\" />}\n name=\"subscription[domainInfo][userName]\"\n required\n autoComplete=\"off\"\n />\n <FormFieldPassword\n label={<DomainTranslate content=\"password\" />}\n name=\"subscription[domainInfo][password]\"\n required\n autoComplete=\"new-password\"\n />\n </>\n )}\n <FormFieldText\n label={<AdminTranslate content=\"description\" />}\n multiline\n size=\"xl\"\n name=\"subscription[adminInfo][subscriptionDescription]\"\n description={<AdminTranslate content=\"subscriptionDescriptionHint\" />}\n />\n </Section>\n ) : null}\n </>\n );\n};\n\nSubscriptionSection.propTypes = {\n values: PropTypes.object.isRequired,\n servicePlans: PropTypes.object.isRequired,\n addonPlans: PropTypes.array.isRequired,\n ipAddresses: PropTypes.object.isRequired,\n handleFieldChange: PropTypes.func.isRequired,\n techDomainUrl: PropTypes.string.isRequired,\n techDomainVendor: PropTypes.string.isRequired,\n maxDomainLength: PropTypes.number.isRequired,\n settingsEnabled: PropTypes.bool,\n settingsCollapsed: PropTypes.bool,\n withCustomer: PropTypes.bool,\n isWindows: PropTypes.bool,\n onToggleDomainSettings: PropTypes.func,\n};\n\nexport default SubscriptionSection;\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 { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Locale, UAT } from 'jsw';\nimport { Section, Paragraph, setIn, StatusMessage } from '@plesk/ui-library';\nimport { useCreateFormInDrawer } from 'hooks';\nimport { generateUserName } from 'helpers/generateUserName';\nimport { TYPE_TECH } from '../common/TechDomainName';\nimport Form from 'components/Form';\nimport SubscriptionSection from '../common/SubscriptionSection';\nimport ApplicationWizard from '../common/ApplicationWizard';\n\nconst DomainTranslate = Locale.getTranslate('admin.components.forms.admin-panel.form.domain-info-section');\nconst SubscriptionTranslate = Locale.getTranslate('admin.components.forms.admin-panel.form.subscription-info-section');\nconst ButtonsTranslate = Locale.getTranslate('components.buttons');\n\nconst CreateSubscriptionForm = ({\n onCancel,\n onProcess = undefined,\n id,\n values: initialValues,\n action,\n servicePlans,\n ipAddresses,\n addonPlans,\n maxSysnameSize,\n isWindows,\n techDomain: { url: techDomainUrl, vendor: techDomainVendor, maxDomainLength },\n settingsEnabled = false,\n settingsCollapsed = false,\n applicationWizardConfig = {},\n isMailServiceSupported = false,\n embeddedForms = undefined,\n extensionButtons = [],\n className = undefined,\n render = undefined,\n onToggleDomainSettings = undefined,\n status = undefined,\n}) => {\n const [values, setValues] = useState(initialValues);\n const [userNameChanged, setUserNameChanged] = useState(!initialValues.subscription.domainInfo);\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 const handleFieldChange = (name, value) => {\n setValues(values => {\n values = setIn(values, name, value);\n\n if (name === 'subscription[domainInfo][domainName]' && !userNameChanged) {\n const userName = generateUserName({\n domainName: value,\n maxUserNameSize: maxSysnameSize,\n isTechDomain: values.subscription.domainInfo.type === TYPE_TECH,\n isWindows,\n });\n\n values = setIn(values, 'subscription[domainInfo][userName]', userName || initialValues.subscription.domainInfo.userName);\n }\n\n return values;\n });\n\n if ([\n 'subscription[domainInfo][ipSelector][ipv4]', 'subscription[domainInfo][ipSelector][ipv6]',\n 'subscription[domainInfo][userName]', 'subscription[domainInfo][password]',\n ].includes(name)) {\n UAT.dispatchAction('CUSTOM-VALUE', { name });\n }\n\n if (name === 'subscription[domainInfo][userName]') {\n setUserNameChanged(true);\n }\n };\n\n const RenderComponent = applicationWizardConfig.enabled ? ApplicationWizard : Form;\n\n return (\n <RenderComponent\n id={id}\n className={className}\n render={render}\n action={action}\n applyButton={false}\n values={values}\n vertical\n onLongTask={onProcess}\n onFieldChange={handleFieldChange}\n formPrefix=\"subscription\"\n wizardConfig={applicationWizardConfig}\n isMailServiceSupported={isMailServiceSupported}\n embeddedForms={embeddedForms}\n extensionButtons={extensionButtons}\n submitButton={{\n id: 'btn-send',\n children: <SubscriptionTranslate content=\"buttonOk\" />,\n }}\n cancelButton={{\n id: 'btn-cancel',\n children: <ButtonsTranslate content=\"cancel\" />,\n onClick: onCancel,\n }}\n entity=\"subscription\"\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 <Section title={<DomainTranslate content=\"domainInfoSection\" />}>\n <Paragraph>\n <DomainTranslate content=\"domainInfoSectionOwnHint\" />\n </Paragraph>\n </Section>\n <SubscriptionSection\n values={values}\n servicePlans={servicePlans}\n ipAddresses={ipAddresses}\n addonPlans={addonPlans}\n handleFieldChange={handleFieldChange}\n techDomainUrl={techDomainUrl}\n techDomainVendor={techDomainVendor}\n maxDomainLength={maxDomainLength}\n settingsEnabled={settingsEnabled}\n settingsCollapsed={settingsCollapsed}\n isWindows={isWindows}\n onToggleDomainSettings={onToggleDomainSettings}\n />\n </RenderComponent>\n );\n};\n\nCreateSubscriptionForm.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onToggleDomainSettings: PropTypes.func,\n onProcess: PropTypes.func,\n id: PropTypes.string.isRequired,\n values: PropTypes.object.isRequired,\n action: PropTypes.string.isRequired,\n servicePlans: PropTypes.object.isRequired,\n ipAddresses: PropTypes.object.isRequired,\n addonPlans: PropTypes.array.isRequired,\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 className: PropTypes.string,\n render: PropTypes.func,\n status: PropTypes.array,\n};\n\nexport const useCreateSubscriptionFormInDrawer = (pageUrl, drawerUrl) => useCreateFormInDrawer(CreateSubscriptionForm, 'create-subscription', pageUrl, drawerUrl);\n\nexport default CreateSubscriptionForm;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\nimport { List } from 'jsw';\nimport convertToReactComponent from './convertToReactComponent';\n\nconst propTypes = {\n id: PropTypes.string,\n dataUrl: PropTypes.string,\n operations: PropTypes.array,\n itemActions: PropTypes.object,\n columns: PropTypes.array,\n data: PropTypes.shape({\n data: PropTypes.array,\n state: PropTypes.object,\n pager: PropTypes.object,\n locale: PropTypes.object,\n additional: PropTypes.object,\n pathbar: PropTypes.any,\n }),\n searchFilters: PropTypes.object,\n searchOveral: PropTypes.string,\n disabledSelectHint: PropTypes.string,\n isDisabledItem: PropTypes.func,\n onRedraw: PropTypes.func,\n emptyViewMode: PropTypes.oneOf(['all', 'items']),\n emptyView: PropTypes.any,\n};\n\nconst defaultProps = {\n id: undefined,\n dataUrl: undefined,\n operations: undefined,\n itemActions: undefined,\n columns: undefined,\n data: undefined,\n searchFilters: undefined,\n searchOveral: undefined,\n disabledSelectHint: undefined,\n isDisabledItem: undefined,\n onRedraw: undefined,\n emptyViewMode: undefined,\n emptyView: undefined,\n};\n\nconst JswList = convertToReactComponent(List, {\n propsList: Object.keys(propTypes),\n defaultProps,\n});\nJswList.displayName = 'JswList';\nJswList.propTypes = propTypes;\n\nexport default JswList;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\nimport { Tabs, Tab } from '@plesk/ui-library';\nimport { prepareUrl } from 'jsw';\nimport Link from 'components/common/Link';\n\nconst JswTabs = ({ items = undefined }) => items && items.length > 1 ? (\n <Tabs active={items.findIndex(({ containerCls }) => containerCls === 'active') + 1}>\n {items.map(({ title, href }, index) => (\n <Tab\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n title={title}\n component={Link}\n to={prepareUrl(href)}\n />\n ))}\n </Tabs>\n) : null;\n\nJswTabs.propTypes = {\n items: PropTypes.arrayOf(PropTypes.shape({\n title: PropTypes.string.isRequired,\n href: PropTypes.string.isRequired,\n containerCls: PropTypes.string,\n })),\n};\n\nexport default JswTabs;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useRef, useLayoutEffect } from 'react';\nimport { render } from 'jsw';\n\n// eslint-disable-next-line react/display-name\nconst convertToReactComponent = (JswComponent, { propsList = [], setters = {}, defaultProps = {} }) => props => {\n const containerRef = useRef();\n const componentRef = useRef();\n\n const [componentProps, containerProps] = Object.entries({ ...defaultProps, ...props }).reduce((res, [name, value]) => {\n res[propsList.includes(name) ? 0 : 1][name] = value;\n return res;\n }, [{}, {}]);\n\n const deps = propsList.map(name => {\n const value = componentProps[name];\n\n if (setters[name]) {\n componentRef.current?.[setters[name]](value);\n return null;\n }\n\n return value;\n });\n\n useLayoutEffect(() => {\n componentRef.current = new JswComponent(componentProps);\n render(containerRef.current, componentRef.current);\n\n return () => {\n componentRef.current.remove();\n componentRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [containerProps.key, ...deps]);\n\n return <div ref={containerRef} {...containerProps} />;\n};\n\nexport default convertToReactComponent;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router-dom';\nimport {\n createElement as ce,\n prepareUrl,\n escapeHtml,\n getComponent,\n redirectPost,\n list,\n bar,\n messageBox,\n DynamicPopupHint,\n SmallButton,\n Locale,\n api,\n addStatusMessage,\n} from 'jsw';\nimport { useNavigateCallback } from 'components/common/Link';\nimport { createSiteDescription } from 'helpers/description';\nimport JswList from '../jsw/JswList';\n\nconst locale = Locale.getSection('admin.components.lists.subscriptions');\n\nconst getErrorMessage = ({ ipStatus, webserverConfigurationStatus }, isAdmin) => {\n if (ipStatus) {\n return locale.lmsg('unlinkedDomainHint');\n }\n if (!webserverConfigurationStatus) {\n return locale.lmsg(isAdmin ? 'webserverConfigurationDomainHintAdmin' : 'webserverConfigurationDomainHintReseller');\n }\n return '';\n};\n\nconst SubscriptionsList = ({\n data,\n searchFilters,\n allowCreateSubscription = false,\n customersSupport = false,\n isHomonymSearchEnabled = false,\n showSubscriberName = false,\n isAdmin = false,\n currentUserId,\n dataUrl,\n createUrl,\n changeUrl,\n redirectUrl,\n showExpirationDate = false,\n}) => {\n const navigate = useNavigate();\n const navigateHandler = useNavigateCallback();\n\n const operations = useMemo(() => [\n allowCreateSubscription ? {\n componentType: SmallButton,\n id: 'buttonAddNewOwnSubscription',\n title: locale.lmsg('buttonAddNewSubscription'),\n description: locale.lmsg('hintAddNewSubscription'),\n addCls: 'sb-add-new-subscription btn-primary',\n href: createUrl,\n handler: navigateHandler,\n } : null,\n allowCreateSubscription ? {\n componentType: bar.Separator,\n } : null,\n {\n componentType: SmallButton,\n id: 'buttonChangeSubscription',\n title: locale.lmsg('buttonChangeSubscription'),\n description: locale.lmsg('hintChangeSubscription'),\n addCls: 'sb-change-subscription',\n handler() {\n const listControl = getComponent('subscriptions-list');\n if (!listControl.checkNonEmptySelection()) {\n return;\n }\n\n redirectPost(`${changeUrl}?redirect=${redirectUrl}`, {\n ids: listControl.getSelectedItemsIds(),\n });\n },\n },\n customersSupport ? {\n componentType: bar.Separator,\n } : null,\n customersSupport ? {\n componentType: SmallButton,\n id: 'buttonChangeOwner',\n title: locale.lmsg('buttonChangeOwner'),\n description: locale.lmsg('hintChangeOwner'),\n addCls: 'sb-assign-new-owner',\n handler() {\n getComponent('subscriptions-list').execGroupOperation({\n submitHandler: (url, payload) => {\n navigate(`${url}?${Object.entries(payload).map(([key, value]) => `${key}=${value}`).join('&')}`);\n },\n url: 'change-owner',\n skipConfirmation: true,\n });\n },\n } : null,\n {\n componentType: bar.Separator,\n }, {\n componentType: list.AdditionalActions,\n title: locale.lmsg('buttonSetStatus'),\n description: locale.lmsg('hintSetStatus'),\n operations: [\n {\n componentType: SmallButton,\n id: 'buttonSuspendSubscriptions',\n title: locale.lmsg('buttonSuspendSubscriptions'),\n description: locale.lmsg('hintSuspendSubscriptions'),\n addCls: 'sb-suspend',\n cls: 'sb-btn',\n handler() {\n const locale = Locale.getSection('components.sites.Card');\n getComponent('subscriptions-list').execGroupOperation({\n url: `/subscription/suspend/?redirect=${redirectUrl}`,\n subtype: messageBox.SUBTYPE_CONFIRM,\n text: locale.lmsg('suspendHint'),\n });\n },\n }, {\n componentType: SmallButton,\n id: 'buttonActivateSubscriptions',\n title: locale.lmsg('buttonActivateSubscriptions'),\n description: locale.lmsg('hintActivateSubscriptions'),\n addCls: 'sb-activate',\n cls: 'sb-btn',\n handler() {\n getComponent('subscriptions-list').execGroupOperation({\n url: `/subscription/activate/?redirect=${redirectUrl}`,\n skipConfirmation: true,\n });\n },\n },\n ],\n },\n allowCreateSubscription ? {\n componentType: bar.Separator,\n } : null,\n allowCreateSubscription ? {\n componentType: SmallButton,\n id: 'buttonRemoveSubscription',\n title: locale.lmsg('buttonRemove'),\n description: locale.lmsg('hintRemove'),\n addCls: 'sb-remove-selected',\n handler(event) {\n const list = getComponent('subscriptions-list');\n const subscriptions = list.getSelectedItems();\n const relatedDomains = subscriptions\n .reduce((domains, { relatedDomains }) => domains.concat(relatedDomains), []);\n\n list.execGroupOperation({\n url: `/subscription/delete/?redirect=${redirectUrl}`,\n subtype: messageBox.SUBTYPE_DELETE,\n mouseEvent: event,\n text: locale.formatMessage('confirmOnDelete', {\n name: `<b>${escapeHtml(subscriptions[0]?.domainDisplayName)}</b>`,\n count: subscriptions.length,\n }),\n description: relatedDomains.length ? locale.lmsg('removeConfirmationSubscription', {\n domains: relatedDomains.join(', '),\n }).replace(/\\n/gm, '<br>') : '',\n isAjax: !!isHomonymSearchEnabled,\n requestUrl: '/subscription/search-homonym-data/',\n toJsonPayload: true,\n submitHandler: async (url, payload) => {\n const { task, error } = await api.post(prepareUrl('/subscription/delete-async/'), {\n ids: payload.ids,\n redirectUrl,\n });\n\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 } : null,\n ], [allowCreateSubscription, changeUrl, createUrl, customersSupport, isHomonymSearchEnabled, navigate, navigateHandler, redirectUrl]);\n\n const columns = useMemo(() => [\n list.COLUMN_SELECTION,\n {\n header: locale.lmsg('subscriptionName'),\n sortable: true,\n dataIndex: 'domainName',\n renderer(item) {\n if (0 == item.id) {\n return ce('a', { href: prepareUrl(item.link) }, escapeHtml(item.name));\n }\n\n let subscriptionStatus = 'ok';\n let subscriptionStatusIcon = require('icons/16/plesk/subscription-status-ok.png');\n let subscriptionStatusDescription = locale.lmsg('statusOk');\n\n if (!item.subscriptionActive) {\n subscriptionStatus = 'suspended';\n subscriptionStatusIcon = require('icons/16/plesk/subscription-status-suspended.png');\n subscriptionStatusDescription = locale.lmsg(item.subscriptionExpired ? 'statusSuspendedReasonExpired' : 'statusSuspended');\n } else if (item.subscriptionLocked) {\n subscriptionStatus = 'locked';\n subscriptionStatusIcon = require('icons/16/plesk/subscription-status-locked.png');\n subscriptionStatusDescription = locale.lmsg('statusLocked');\n } else if (!item.subscriptionSynchronized) {\n subscriptionStatus = 'unsynchronized';\n subscriptionStatusIcon = require('icons/16/plesk/subscription-status-unsynchronized.png');\n subscriptionStatusDescription = locale.lmsg('statusUnsynchronized');\n }\n\n const subscriptionName = `${escapeHtml(item.domainDisplayName)} (${escapeHtml(item.planName)})`;\n const errorMessage = getErrorMessage(item, isAdmin);\n\n return ce(`${errorMessage ? '.b-indent-x2' : '.b-indent'}${item.subscriptionOveruse ? '.status-overused' : '.status-ok'}`, [\n ce('span.b-indent-icon', [\n ce('span', [\n ce('span.tooltipData', escapeHtml(subscriptionStatusDescription)),\n ce('img', { src: subscriptionStatusIcon, alt: subscriptionStatus, title: '' }),\n ]),\n errorMessage ? ce('span', [\n ce('span.tooltipData', errorMessage),\n ce('img', { src: require('icons/16/plesk/webserver-domain-error.png'), alt: '', title: '' }),\n ]) : '',\n ]),\n item.overviewUrl ? ce('a', { href: prepareUrl(item.overviewUrl), onclick: navigateHandler }, subscriptionName) : subscriptionName,\n ' ',\n ce('span.hint.hint-info', { id: `hint-item-${item.id}` }, locale.lmsg('hintInfo')),\n ...createSiteDescription(item, locale),\n ]);\n },\n },\n showSubscriberName ? {\n header: locale.lmsg('subscriberName'),\n sortable: true,\n dataIndex: 'subscriberName',\n renderer({ subscriberId, subscriberType, subscriberName, subscriberCompanyName }) {\n let href = null;\n switch (subscriberType) {\n case 'client':\n href = `/admin/customer/overview/id/${subscriberId}`;\n break;\n case 'reseller':\n href = isAdmin ? `/admin/reseller/overview/id/${subscriberId}` : '/admin/reseller-self/subscription-overview';\n break;\n }\n\n return [\n href ? ce('a', { href, onclick: navigateHandler }, escapeHtml(subscriberName)) : escapeHtml(subscriberName),\n subscriberCompanyName ? `, ${escapeHtml(subscriberCompanyName)}` : null,\n ];\n },\n } : '',\n {\n header: locale.lmsg('setupDate'),\n sortable: true,\n dataIndex: 'setupDate',\n renderer(item) {\n return (0 == item.id) ? '-' : escapeHtml(item.setupDateString);\n },\n }, showExpirationDate ? {\n header: locale.lmsg('expirationDate'),\n sortable: true,\n dataIndex: 'expirationDate',\n renderer(item) {\n return (item.id === 0) ? '-' : escapeHtml(item.expirationDateString);\n },\n } : null, {\n header: '',\n sortable: false,\n renderer(item) {\n if (!item.manageUrl || parseInt(item.subscriberId) === currentUserId) {\n return '';\n }\n\n const href = `/admin${item.subscriberType === 'reseller' ? '/reseller' : '/customer'}/login/id/${item.subscriberId}` +\n `?pageUrl=${encodeURIComponent(item.manageUrl)}`;\n\n return (\n `<a href=\"${href}\" class=\"s-btn sb-login\"><span>${\n locale.lmsg(item.subscriberType === 'reseller' ? 'manageInResellerPanel' : 'manageInCustomerPanel')\n }</span></a>`\n );\n },\n },\n ], [currentUserId, isAdmin, navigateHandler, showExpirationDate, showSubscriberName]);\n\n const isDisabledItem = useCallback(({ id }) => id == 0, []);\n const onRedraw = useCallback(() => {\n document.querySelectorAll('span.hint.hint-info').forEach(hintElement => {\n new DynamicPopupHint.Instance({\n title: locale.lmsg('hintTitle'),\n waitMsg: locale.lmsg('hintWaitMessage'),\n url: `/subscription/stats-hint/domainId/${hintElement.id.replace('hint-item-', '')}`,\n placement: 'right',\n target: hintElement.id,\n });\n });\n }, []);\n\n return (\n <JswList\n id=\"subscriptions-list\"\n data={data}\n dataUrl={dataUrl}\n searchFilters={searchFilters}\n searchOveral=\"domainName\"\n disabledSelectHint={locale.lmsg('disabledSelectHint')}\n operations={operations}\n columns={columns}\n isDisabledItem={isDisabledItem}\n onRedraw={onRedraw}\n />\n );\n};\n\nSubscriptionsList.propTypes = {\n data: JswList.propTypes.data.isRequired,\n searchFilters: JswList.propTypes.searchFilters.isRequired,\n allowCreateSubscription: PropTypes.bool,\n customersSupport: PropTypes.bool,\n isHomonymSearchEnabled: PropTypes.bool,\n showSubscriberName: PropTypes.bool,\n isAdmin: PropTypes.bool,\n currentUserId: PropTypes.number.isRequired,\n dataUrl: PropTypes.string.isRequired,\n createUrl: PropTypes.string.isRequired,\n changeUrl: PropTypes.string.isRequired,\n redirectUrl: PropTypes.string.isRequired,\n showExpirationDate: PropTypes.bool,\n};\n\nexport default SubscriptionsList;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\nimport { Outlet } from 'react-router-dom';\nimport { Locale } from 'jsw';\nimport JswTabs from '../jsw/JswTabs';\nimport { useCreateSubscriptionFormInDrawer } from '../forms/CreateSubscriptionForm';\nimport { withPageLayout } from '../layouts/PageLayout';\nimport SubscriptionsList from '../lists/SubscriptionsList';\nimport CustomerSidebar from '../sidebars/CustomerSidebar';\n\nconst Translate = Locale.getTranslate('components.pages.customer-subscriptions');\n\nconst CustomerSubscriptionsPage = ({ tabs, id, ...props }) => {\n const [createSubscriptionDrawer] = useCreateSubscriptionFormInDrawer(`/admin/customer/subscriptions/id/${id}`, `/admin/customer/new-subscription/id/${id}`);\n\n return (\n <>\n {createSubscriptionDrawer}\n <JswTabs items={tabs} />\n <p><Translate content=\"hint\" /></p>\n <SubscriptionsList\n dataUrl={`/admin/customer/subscriptions-list-data/id/${id}`}\n createUrl={`/admin/customer/new-subscription/id/${id}`}\n changeUrl={`/admin/customer/change-subscription/id/${id}`}\n redirectUrl={`/admin/customer/subscriptions/id/${id}`}\n customersSupport\n {...props}\n />\n <Outlet />\n </>\n );\n};\n\nCustomerSubscriptionsPage.propTypes = {\n tabs: JswTabs.propTypes.items.isRequired,\n id: PropTypes.number.isRequired,\n};\n\nexport default withPageLayout(CustomerSubscriptionsPage, ({ sidebarProps }) => ({ secondary: <CustomerSidebar {...sidebarProps} /> }));\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\nimport { Action, Text, Tooltip, Status, AuxiliaryActions } from '@plesk/ui-library';\nimport { Locale, messageBox, redirectPost, api, getComponent, prepareUrl } from 'jsw';\nimport Link from 'components/common/Link';\nimport SidePanel from './SidePanel';\nimport SidePanelDescription from './SidePanelDescription';\n\nconst locale = Locale.getSection('admin.components.customer-sidebar');\nconst Translate = Locale.getTranslate('admin.components.customer-sidebar');\nconst StatusTranslate = Locale.getTranslate('admin.components.elements.status');\n\nconst CustomerSidebar = ({\n id,\n canCreateClients,\n contactName,\n companyName,\n emailAddress,\n setupDate,\n isAdmin,\n resellersSupport,\n isActive,\n username,\n allowLogIn,\n provider = undefined,\n hasResellers,\n hasResellerCustomers,\n description,\n isIisAppPoolsPolicyMixed = false,\n}) => {\n const handleToggle = () => {\n redirectPost(`/admin/customer/toggle/id/${id}`);\n };\n\n const handleConvertToReseller = async () => {\n const ConvertCustomersToResellers = await Plesk.require('app/convert-customers-to-resellers');\n new ConvertCustomersToResellers({\n id: 'convertCustomersToReseller',\n cls: 'popup-panel',\n prepareUrl: '/admin/customer/prepare-convert/',\n handlerUrl: '/admin/customer/convert-to-reseller/?redirect=/customer/list/',\n ids: [id],\n });\n };\n\n const handleChangeOwner = async () => {\n const ChangeCustomersOwner = await Plesk.require('app/change-customers-owner');\n new ChangeCustomersOwner({\n id: 'changeOwner',\n cls: 'popup-panel',\n prepareUrl: '/admin/customer/prepare-change-owner/',\n handlerUrl: `/admin/customer/change-owner/?redirect=/customer/overview/id/${id}`,\n ids: [id],\n });\n };\n\n const handleRemove = () => {\n messageBox.show({\n type: messageBox.TYPE_YESNO,\n subtype: messageBox.SUBTYPE_DELETE,\n text: locale.lmsg('buttonRemoveCustomerConfirmationTitle', { name: `<b>${contactName}</b>` }),\n description: locale.lmsg('buttonRemoveCustomerConfirmationDescription'),\n async onYesClick() {\n const { task } = await api.post(prepareUrl('/customer/delete-async/'), { ids: [id] });\n if (task && task.componentType === 'Jsw.Task.ProgressBar.Item') {\n getComponent('asyncProgressBarWrapper').progressDialog(task);\n }\n },\n });\n };\n\n return (\n <>\n <SidePanel id=\"panel-customer-overviewSection\">\n <div className=\"side-panel__item\">\n <Text intent=\"muted\"><Translate content=\"contactName\" />{':'}</Text>\n {' '}\n <b>{contactName}</b>\n </div>\n {companyName ? (\n <div className=\"side-panel__item\">\n <Text intent=\"muted\"><Translate content=\"companyName\" />{':'}</Text>\n {' '}\n <b>{companyName}</b>\n </div>\n ) : null}\n {emailAddress ? (\n <div className=\"side-panel__item\">\n <Text intent=\"muted\"><Translate content=\"emailAddress\" />{':'}</Text>\n {' '}\n <b><a href={`mailto:${emailAddress}`}>{emailAddress}</a></b>\n </div>\n ) : null}\n <div className=\"side-panel__item\">\n <Tooltip title={<Translate content=\"buttonEditContactHint\" />}>\n <Action\n id=\"buttonEditContactInfo\"\n icon={{ src: require('icons/16/plesk/edit-contact-info.png') }}\n href={`/admin/customer/personal-info/id/${id}`}\n >\n <Translate content=\"buttonEditContact\" />\n </Action>\n </Tooltip>\n </div>\n {isAdmin && resellersSupport ? (\n <div className=\"side-panel__item\">\n <Tooltip title={<Translate content=\"buttonConvertToResellerHint\" />}>\n <Action\n id=\"buttonConvertToReseller\"\n icon={{ src: require('icons/16/plesk/convert-to-reseller.png') }}\n onClick={handleConvertToReseller}\n >\n <Translate content=\"buttonConvertToReseller\" />\n </Action>\n </Tooltip>\n </div>\n ) : null}\n <div className=\"side-panel__item\">\n <Text intent=\"muted\"><Translate content=\"setupDate\" />{':'}</Text>\n {' '}\n <b>{setupDate}</b>\n </div>\n <div className=\"side-panel__item\">\n <Text intent=\"muted\"><Translate content=\"status\" />{':'}</Text>\n {' '}\n <b>\n <Status intent={isActive ? 'success' : 'danger'}>\n {isActive ? (\n <StatusTranslate content=\"onStateCustomer\" />\n ) : (\n <StatusTranslate content=\"offStateCustomer\" />\n )}\n </Status>\n </b>\n {' '}\n <AuxiliaryActions>\n <Tooltip\n title={isActive ? (\n <Translate content=\"buttonSuspendHint\" />\n ) : (\n <Translate content=\"buttonActivateHint\" />\n )}\n >\n <a id=\"buttonToggle\" onClick={handleToggle}>\n {isActive ? (\n <Translate content=\"buttonSuspend\" />\n ) : (\n <Translate content=\"buttonActivate\" />\n )}\n </a>\n </Tooltip>\n </AuxiliaryActions>\n </div>\n {provider ? (\n <div className=\"side-panel__item\">\n <Text intent=\"muted\"><Translate content=\"provider\" />{':'}</Text>\n {' '}\n <b>\n {provider.type === 'reseller' && resellersSupport ? (\n <Link to={`/admin/reseller/overview/id/${provider.id}`}>{provider.name}</Link>\n ) : provider.name}\n </b>\n {' '}\n {isAdmin && hasResellers && (resellersSupport || hasResellerCustomers) ? (\n <AuxiliaryActions>\n <a id=\"buttonChangeOwner\" onClick={handleChangeOwner}>\n <Translate content=\"buttonChangeOwner\" />\n </a>\n </AuxiliaryActions>\n ) : null}\n </div>\n ) : null}\n <div className=\"side-panel__item\">\n <Text intent=\"muted\"><Translate content=\"username\" />{':'}</Text>\n {' '}\n <b>{username}</b>\n </div>\n <div className=\"side-panel__item\">\n <Tooltip title={<Translate content=\"buttonChangePasswordHint\" />}>\n <Action\n id=\"buttonChangePassword\"\n icon={{ src: require('icons/16/plesk/change-password.png') }}\n href={`/admin/customer/login-info/id/${id}`}\n >\n <Translate content=\"buttonChangePassword\" />\n </Action>\n </Tooltip>\n </div>\n {allowLogIn ? (\n <div className=\"side-panel__item\">\n <Tooltip title={<Translate content=\"buttonLoginAsCustomerHint\" />}>\n <Action\n id=\"buttonLogin\"\n icon={{ src: require('icons/16/plesk/login-as-customer.png') }}\n href={`/admin/customer/login/id/${id}`}\n >\n <Translate content=\"buttonLoginAsCustomer\" />\n </Action>\n </Tooltip>\n </div>\n ) : null}\n <SidePanelDescription\n type=\"customer\"\n id={id}\n name={contactName}\n descriptions={{ owner: description }}\n />\n </SidePanel>\n {isIisAppPoolsPolicyMixed ? (\n <SidePanel id=\"panel-customer-iisAppPoolSection\">\n <div className=\"side-panel__item\">\n <Tooltip title={<Translate content=\"buttonIisAppPoolHint\" />}>\n <Action\n id=\"buttonIisAppPool\"\n icon={{ src: require('icons/16/plesk/iis-app-pool.png') }}\n href={`/admin/iis-app-pool/settings/id/${id}`}\n >\n <Translate content=\"buttonIisAppPool\" />\n </Action>\n </Tooltip>\n </div>\n </SidePanel>\n ) : null}\n {canCreateClients ? (\n <SidePanel id=\"panel-customer-removeSection\">\n <div className=\"side-panel__item\">\n <Tooltip title={<Translate content=\"buttonRemoveHint\" />}>\n <Action\n id=\"buttonRemove\"\n icon={{ src: require('icons/16/plesk/delete.png') }}\n onClick={handleRemove}\n >\n <Translate content=\"buttonRemove\" />\n </Action>\n </Tooltip>\n </div>\n </SidePanel>\n ) : null}\n </>\n );\n};\n\nCustomerSidebar.propTypes = {\n id: PropTypes.number.isRequired,\n canCreateClients: PropTypes.bool.isRequired,\n contactName: PropTypes.string.isRequired,\n companyName: PropTypes.string.isRequired,\n emailAddress: PropTypes.string.isRequired,\n setupDate: PropTypes.string.isRequired,\n isAdmin: PropTypes.bool.isRequired,\n resellersSupport: PropTypes.bool.isRequired,\n isActive: PropTypes.bool.isRequired,\n username: PropTypes.string.isRequired,\n allowLogIn: PropTypes.bool.isRequired,\n provider: PropTypes.shape({\n id: PropTypes.number.isRequired,\n type: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n }),\n hasResellers: PropTypes.bool.isRequired,\n hasResellerCustomers: PropTypes.bool.isRequired,\n description: PropTypes.string.isRequired,\n isIisAppPoolsPolicyMixed: PropTypes.bool,\n};\n\nexport default CustomerSidebar;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\nimport { Text, Link, AuxiliaryActions } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport { createHandlers as createCustomDescriptionHandlers } from 'helpers/customDescription';\n\nconst Translate = Locale.getTranslate('components.forms.admin-info');\n\nconst SidePanelDescription = ({\n type,\n id,\n name,\n descriptions,\n}) => {\n const { edit: handleEdit, remove: handleRemove } = createCustomDescriptionHandlers({ type, id, name });\n\n return Object.entries(descriptions).map(([type, value]) => (\n <div className=\"side-panel__item\" key={type}>\n <Text intent=\"muted\"><Translate content={`description-${type}`} />{':'}</Text>\n {' '}\n <b>\n <span id={`${type}-description`}>{value}</span>\n </b>\n {' '}\n <AuxiliaryActions>\n <Link id={`${type}-description-edit`} onClick={() => handleEdit(type, value)}>\n {value ? (\n <Translate content=\"edit\" />\n ) : (\n <Translate content=\"add\" />\n )}\n </Link>\n {value ? (\n <Link id={`${type}-description-remove`} onClick={() => handleRemove(type)}>\n <Translate content=\"remove\" />\n </Link>\n ) : null}\n </AuxiliaryActions>\n </div>\n ));\n};\n\nSidePanelDescription.propTypes = {\n type: PropTypes.oneOf(['reseller', 'customer', 'subscription']).isRequired,\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n descriptions: PropTypes.shape({\n admin: PropTypes.string,\n reseller: PropTypes.string,\n owner: PropTypes.string,\n }).isRequired,\n};\n\nexport default SidePanelDescription;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { PopupForm, Locale, messageBox, redirectPost, escapeHtml } from 'jsw';\n\nconst locale = Locale.getSection('components.forms.admin-info');\nconst buttonsLocale = Locale.getSection('components.buttons');\n\nexport class EditPopupForm extends PopupForm {\n _initConfiguration(config) {\n super._initConfiguration(config);\n this._hint = this._getConfigParam('hint', '');\n this._value = this._getConfigParam('value', '');\n this._handler = this._getConfigParam('handler', null);\n this._sendButtonId = this._getConfigParam('sendButtonId', 'btn-send');\n this._cancelButtonId = this._getConfigParam('cancelButtonId', 'btn-cancel');\n }\n\n render() {\n super.render();\n\n this.setBoxType('form-box');\n this.setTitle(this.lmsg('popupTitle'));\n this.setTitleType(this._getConfigParam('titleCls', 'pp-edit-description'));\n\n document.getElementById(this._contentAreaId).innerHTML = (\n `<p>${this._hint}</p>` +\n `<textarea id=\"${this._id}-description\" class=\"js-auto-resize\" rows=\"4\" maxlength=\"255\" cols=\"80\">${escapeHtml(this._value)}</textarea>`\n );\n\n this.addOkButton();\n this.addCancelButton();\n }\n\n addOkButton() {\n this.addRightButton(this.lmsg('buttonOk'), this._onOkClick, true, true, { id: this._sendButtonId });\n }\n\n addCancelButton() {\n this.addRightButton(this.lmsg('buttonCancel'), this._onCancelClick, false, false, { id: this._cancelButtonId });\n }\n\n _onOkClick() {\n this._handler(document.getElementById(`${this._id}-description`).value);\n this.hide();\n }\n\n _onCancelClick() {\n this.hide();\n }\n}\n\nexport const createHandlers = object => {\n const url = {\n reseller: '/admin/reseller/edit-description',\n customer: '/admin/customer/edit-description',\n subscription: '/admin/subscription/edit-description',\n site: '/smb/web/edit-description',\n }[object.type];\n\n if (!url) {\n throw new Error(`Custom description not supported for '${object.type}' type`);\n }\n\n const edit = (type, value) => {\n new EditPopupForm({\n id: 'editDescription',\n cls: 'popup-panel',\n hint: locale.lmsg(`popupHint-${type}`),\n value,\n locale: {\n popupTitle: locale.lmsg(`popupTitle-${object.type}`, {\n descriptionType: locale.lmsg(`description-${type}`),\n name: escapeHtml(object.name),\n }),\n buttonOk: buttonsLocale.lmsg('save'),\n buttonCancel: buttonsLocale.lmsg('cancel'),\n },\n handler(description) {\n redirectPost(url, {\n id: object.id,\n type,\n description,\n });\n },\n });\n };\n\n const remove = type => {\n messageBox.show({\n type: Jsw.messageBox.TYPE_YESNO,\n subtype: 'delete',\n buttonTitles: {\n yes: buttonsLocale.lmsg('yes'),\n no: buttonsLocale.lmsg('no'),\n wait: buttonsLocale.lmsg('wait'),\n },\n text: locale.lmsg('confirmOnRemove'),\n onYesClick() {\n redirectPost(url, {\n id: object.id,\n type,\n description: '',\n });\n },\n });\n };\n\n return { edit, remove };\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\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","module.exports = Jsw.skinUrl + \"/icons/16/plesk/change-password.png?54304f321bc897402075b73230593f04\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/convert-to-reseller.png?92f150ae967d586471eabfbb347d4dfd\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/delete.png?27d654be29d57ad05641c2ff392035fa\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/edit-contact-info.png?052e4fc494a39464dad26f4f40e38eaf\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/iis-app-pool.png?1bcf2ef7b099732f96f82bfb815c5146\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/login-as-customer.png?f61b4adc663106baef7704c16dd4d207\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/subscription-status-locked.png?791d616dde33b19ebd4b7fbf3b305ffe\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/subscription-status-ok.png?6d52f91c87cbdc73b4ef0b5ded92c441\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/subscription-status-suspended.png?7968ea094f0aa3fdced5d59b0c7f3196\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/subscription-status-unsynchronized.png?c075e72041171bb35d0a9b6542518ccf\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/webserver-domain-error.png?8ada2989a2d00386c7f59b862eb7fa9e\";","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\";"],"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","DomainTranslate","SubscriptionTranslate","AdminTranslate","SubscriptionSection","servicePlans","addonPlans","handleFieldChange","techDomainUrl","techDomainVendor","maxDomainLength","settingsEnabled","settingsCollapsed","withCustomer","isWindows","onToggleDomainSettings","selectedAddonPlans","setSelectedAddonPlans","selected","servicePlan","getIn","isCustomServicePlan","isMailOnly","addonPlanSelector","includes","JSON","stringify","subscription","domainInfo","ipSelector","split","TechDomainName","isEnabled","undefined","isDefault","TYPE_TECH","url","vendor","typeName","onTypeChange","onDomainNameChange","FormField","isDisabled","Select","multiple","searchable","defaultValue","onChange","disabled","FormFieldCheckbox","checkedValue","uncheckedValue","Section","collapsible","collapsed","onToggle","FormFieldText","required","autoComplete","FormFieldPassword","multiline","TYPE_CUSTOM","setType","DomainNameSection","types","vertical","handleTypeChange","getId","getName","getValue","setValue","onSelect","fontSize","hidden","readOnly","TechDomainSection","FormFieldDomainName","fieldApi","TechDomainSelector","Cuttable","maxHeight","loading","setLoading","requestedIpAddress","setRequestedIpAddress","setErrors","requestDomainName","async","subdomain","response","fetch","method","body","ip_address","max_length","json","Error","getSubdomainName","error","noIpAddress","Status","progress","Alert","Input","placeholder","e","target","CreateSubscriptionForm","onCancel","onProcess","initialValues","action","maxSysnameSize","techDomain","applicationWizardConfig","render","status","setValues","userNameChanged","setUserNameChanged","setIn","userName","generateUserName","domainName","maxUserNameSize","isTechDomain","UAT","dispatchAction","RenderComponent","onLongTask","StatusMessage","dangerouslySetInnerHTML","__html","useCreateSubscriptionFormInDrawer","pageUrl","drawerUrl","useCreateFormInDrawer","dataUrl","operations","itemActions","columns","data","state","pager","additional","pathbar","searchFilters","searchOveral","disabledSelectHint","isDisabledItem","onRedraw","emptyViewMode","emptyView","defaultProps","JswList","convertToReactComponent","List","propsList","displayName","JswTabs","items","Tabs","active","containerCls","href","index","Tab","Link","to","prepareUrl","JswComponent","setters","containerRef","componentRef","componentProps","containerProps","entries","reduce","res","deps","useLayoutEffect","remove","SubscriptionsList","allowCreateSubscription","customersSupport","isHomonymSearchEnabled","showSubscriberName","isAdmin","currentUserId","createUrl","changeUrl","redirectUrl","showExpirationDate","navigate","useNavigate","navigateHandler","useNavigateCallback","componentType","SmallButton","addCls","handler","bar","Separator","listControl","getComponent","checkNonEmptySelection","redirectPost","ids","getSelectedItemsIds","execGroupOperation","submitHandler","payload","join","skipConfirmation","list","AdditionalActions","cls","subtype","messageBox","SUBTYPE_CONFIRM","text","event","subscriptions","getSelectedItems","relatedDomains","domains","concat","SUBTYPE_DELETE","mouseEvent","formatMessage","escapeHtml","domainDisplayName","count","replace","isAjax","requestUrl","toJsonPayload","task","api","post","addStatusMessage","progressDialog","COLUMN_SELECTION","header","sortable","dataIndex","renderer","item","ce","link","subscriptionStatus","subscriptionStatusIcon","subscriptionStatusDescription","subscriptionActive","subscriptionLocked","subscriptionSynchronized","subscriptionExpired","subscriptionName","planName","errorMessage","getErrorMessage","ipStatus","webserverConfigurationStatus","subscriptionOveruse","overviewUrl","onclick","createSiteDescription","subscriberId","subscriberType","subscriberName","subscriberCompanyName","setupDateString","expirationDateString","manageUrl","parseInt","encodeURIComponent","document","querySelectorAll","hintElement","DynamicPopupHint","Instance","waitMsg","placement","CustomerSubscriptionsPage","tabs","createSubscriptionDrawer","Outlet","withPageLayout","sidebarProps","secondary","CustomerSidebar","StatusTranslate","canCreateClients","contactName","companyName","emailAddress","setupDate","resellersSupport","isActive","username","allowLogIn","provider","hasResellers","hasResellerCustomers","isIisAppPoolsPolicyMixed","SidePanel","Tooltip","Action","Plesk","handlerUrl","AuxiliaryActions","handleToggle","SidePanelDescription","descriptions","owner","handleRemove","show","TYPE_YESNO","onYesClick","edit","handleEdit","createCustomDescriptionHandlers","admin","reseller","buttonsLocale","EditPopupForm","PopupForm","_initConfiguration","config","super","this","_hint","_getConfigParam","_value","_handler","_sendButtonId","_cancelButtonId","setBoxType","setTitle","setTitleType","getElementById","_contentAreaId","innerHTML","_id","addOkButton","addCancelButton","addRightButton","_onOkClick","_onCancelClick","hide","createHandlers","object","customer","site","hint","popupTitle","descriptionType","buttonOk","buttonCancel","Jsw","buttonTitles","yes","no","wait","truncate","str","slice","createDescription","selector","prefix","adminDescription","resellerDescription","ownerDescription","hideResellerTitleDescription","hideOwnerTitleDescription","randomString","random","toString","defaultPostfix","postfix","isUnix","hasNotAllowedSymbols","test","startsWithDigit","toLowerCase","substr","module","exports","skinUrl"],"sourceRoot":""}
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
domains.js
50850 bytes
0644
domains.js.map
160638 bytes
0644
list.js
27441 bytes
0644
list.js.map
85544 bytes
0644
subscriptions.js
43406 bytes
0644
subscriptions.js.map
134788 bytes
0644
N4ST4R_ID | Naxtarrr