Submit
Path:
~
/
/
opt
/
psa
/
admin
/
cp
/
public
/
javascript
/
views
/
admin
/
customer
/
File Content:
list.js.map
{"version":3,"file":"javascript/views/admin/customer/list.js?02aae360b3abe64f9fea","mappings":"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","sources":["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/CreateCustomerForm.js","webpack:///./components/jsw/JswList.js","webpack:///./components/jsw/convertToReactComponent.js","webpack:///./components/lists/CustomersList.js","webpack:///./components/pages/CustomersPage.js","webpack:///./helpers/description.js","webpack:///./helpers/generateUserName.ts","webpack:///./icons/16/plesk/subscription-status-ok.png","webpack:///./icons/16/plesk/subscription-status-suspended.png"],"sourcesContent":["// 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 { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n FormFieldText, Paragraph, Section,\n FormFieldSelect, SelectOption, FormFieldCheckbox,\n getIn, setIn, StatusMessage, FormFieldPassword,\n} from '@plesk/ui-library';\nimport { TYPE_TECH } from '../common/TechDomainName';\nimport { Locale, UAT } from 'jsw';\nimport { useCreateFormInDrawer } from 'hooks';\nimport { generateUserName } from 'helpers/generateUserName';\nimport Form from 'components/Form';\nimport SubscriptionSection from '../common/SubscriptionSection';\n\nconst Translate = Locale.getTranslate('admin.components.forms.customer');\nconst ContactInfoTranslate = Locale.getTranslate('admin.components.forms.admin-panel.form.contact-info');\nconst AdminInfoTranslate = Locale.getTranslate('components.forms.admin-info');\nconst DomainInfoTranslate = Locale.getTranslate('admin.components.forms.admin-panel.form.domain-info-section');\nconst ButtonsTranslate = Locale.getTranslate('components.buttons');\nconst LoginInfoTranslate = Locale.getTranslate('admin.components.forms.admin-panel.form.login-info');\n\nconst CreateCustomerForm = ({\n onCancel,\n onToggleDomainSettings = undefined,\n onProcess = undefined,\n id,\n action,\n values: initialValues,\n countries,\n canCreateSubscription = false,\n servicePlans,\n ipAddresses,\n addonPlans,\n customerSettingsEnabled = false,\n customerSettingsCollapsed = false,\n embeddedForms = undefined,\n maxSysnameSize,\n isWindows,\n techDomain: { url: techDomainUrl, vendor: techDomainVendor, maxDomainLength },\n settingsEnabled = false,\n settingsCollapsed = false,\n className = undefined,\n render = undefined,\n status = [],\n}) => {\n const [values, setValues] = useState(initialValues);\n const [userNameChanged, setUserNameChanged] = useState(canCreateSubscription && !initialValues.subscription.domainInfo);\n\n const showSubscription = () => '1' === getIn(values, 'subscription[domainInfo][createSubscription]');\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 return (\n <Form\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 embeddedForms={showSubscription() ? embeddedForms : []}\n embeddedFormsRender={children => (<Section collapsible>{children}</Section>)}\n submitButton={{\n id: 'btn-send',\n children: <Translate content=\"buttonOk\" />,\n }}\n cancelButton={{\n id: 'btn-cancel',\n children: <ButtonsTranslate content=\"cancel\" />,\n onClick: onCancel,\n }}\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 <Paragraph>\n <Translate content=\"hint\" />\n </Paragraph>\n <Section title={<Translate content=\"contactInfoSection\" />}>\n <FormFieldText\n label={<ContactInfoTranslate content=\"contactName\" />}\n name=\"contactInfoSection[contactInfo][contactName]\"\n required\n />\n <FormFieldText\n label={<ContactInfoTranslate content=\"email\" />}\n name=\"contactInfoSection[contactInfo][email]\"\n required\n />\n </Section>\n {customerSettingsEnabled ? (\n <Section\n id=\"customer-additionalSettings\"\n title={<Translate content=\"additionalInfoSection\" />}\n collapsible\n collapsed={customerSettingsCollapsed}\n >\n <FormFieldText\n label={<ContactInfoTranslate content=\"companyName\" />}\n name=\"contactInfoSection[contactInfo][companyName]\"\n />\n <FormFieldText\n label={<ContactInfoTranslate content=\"phone\" />}\n name=\"contactInfoSection[contactInfo][phone]\"\n />\n <FormFieldText\n label={<ContactInfoTranslate content=\"address\" />}\n multiline\n size=\"xl\"\n name=\"contactInfoSection[contactInfo][address]\"\n />\n <FormFieldText\n label={<ContactInfoTranslate content=\"city\" />}\n name=\"contactInfoSection[contactInfo][city]\"\n />\n <FormFieldText\n label={<ContactInfoTranslate content=\"state\" />}\n name=\"contactInfoSection[contactInfo][state]\"\n />\n <FormFieldText\n label={<ContactInfoTranslate content=\"postalCode\" />}\n name=\"contactInfoSection[contactInfo][postalCode]\"\n />\n <FormFieldSelect\n label={<ContactInfoTranslate content=\"country\" />}\n name=\"contactInfoSection[contactInfo][country]\"\n size=\"lg\"\n >\n {Object.keys(countries).map(id => (\n <SelectOption key={id} value={id}>{countries[id]}</SelectOption>\n ))}\n </FormFieldSelect>\n <FormFieldText\n label={<ContactInfoTranslate content=\"additionalInfo\" />}\n multiline\n size=\"xl\"\n name=\"contactInfoSection[contactInfo][additionalInfo]\"\n description={<ContactInfoTranslate content=\"additionalInfoHint\" />}\n />\n <Section title={<AdminInfoTranslate content=\"adminInfoSection\" />}>\n <FormFieldText\n label={<AdminInfoTranslate content=\"description\" />}\n multiline\n size=\"xl\"\n name=\"adminInfoSection[clientDescription]\"\n description={<AdminInfoTranslate content=\"customerDescriptionHint\" />}\n />\n </Section>\n </Section>\n ) : null}\n <Section\n id=\"customer-panelAccess\"\n title={<Translate content=\"accessToPanelSection\" />}\n description={<Translate content=\"accessToPanelSection\" />}\n collapsible\n >\n <FormFieldText\n name=\"accessToPanelSection[loginInfo][userName]\"\n label={<LoginInfoTranslate content=\"userName\" />}\n required\n autoComplete=\"off\"\n />\n <FormFieldPassword\n name=\"accessToPanelSection[loginInfo][password]\"\n label={<LoginInfoTranslate content=\"password\" />}\n required\n autoComplete=\"new-password\"\n />\n <FormFieldCheckbox\n name=\"accessToPanelSection[loginInfo][isActivationRequired]\"\n label={<LoginInfoTranslate content=\"emailActivation\" />}\n description={<LoginInfoTranslate content=\"emailActivationHint\" />}\n checkedValue=\"1\"\n uncheckedValue=\"0\"\n />\n </Section>\n {canCreateSubscription ? (\n <Section title={<DomainInfoTranslate content=\"domainInfoSection\" />}>\n <FormFieldCheckbox\n name=\"subscription[domainInfo][createSubscription]\"\n label={<DomainInfoTranslate content=\"createSubscription\" />}\n description={<DomainInfoTranslate content=\"createSubscriptionHint\" />}\n checkedValue=\"1\"\n uncheckedValue=\"0\"\n />\n {showSubscription() ? (\n <Section collapsible>\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 withCustomer\n />\n </Section>\n ) : null}\n </Section>\n ) : null}\n </Form>\n );\n};\n\nCreateCustomerForm.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onToggleDomainSettings: PropTypes.func,\n onProcess: PropTypes.func,\n id: PropTypes.string.isRequired,\n action: PropTypes.string.isRequired,\n values: PropTypes.object.isRequired,\n countries: PropTypes.object.isRequired,\n canCreateSubscription: PropTypes.bool,\n servicePlans: PropTypes.object.isRequired,\n ipAddresses: PropTypes.object.isRequired,\n addonPlans: PropTypes.array.isRequired,\n customerSettingsEnabled: PropTypes.bool,\n customerSettingsCollapsed: PropTypes.bool,\n embeddedForms: PropTypes.array,\n maxSysnameSize: PropTypes.number.isRequired,\n isWindows: PropTypes.bool.isRequired,\n techDomain: PropTypes.object.isRequired,\n settingsEnabled: PropTypes.bool,\n settingsCollapsed: PropTypes.bool,\n className: PropTypes.string,\n render: PropTypes.func,\n status: PropTypes.array,\n};\n\nexport const useCreateCustomerFormInDrawer = (pageUrl, drawerUrl) => useCreateFormInDrawer(CreateCustomerForm, 'create-customer', pageUrl, drawerUrl);\n\nexport default CreateCustomerForm;\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 { 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 {\n createElement as ce,\n Locale,\n SmallButton,\n bar,\n getComponent,\n prepareUrl,\n list,\n escapeHtml,\n messageBox,\n DynamicPopupHint,\n api,\n} from 'jsw';\nimport { useNavigateCallback } from 'components/common/Link';\nimport { createDescription } from 'helpers/description';\nimport JswList from '../jsw/JswList';\n\nconst locale = Locale.getSection('admin.components.lists.customers');\nconst subscriptionsLocale = Locale.getSection('admin.components.lists.subscriptions');\n\nconst CustomersList = ({\n data,\n searchFilters,\n allowCreateCustomer = false,\n resellersSupport = false,\n isAdmin = false,\n hasResellers = false,\n hasResellerCustomers = false,\n showOwnerName = false,\n maxSubscriptionsDisplayed,\n dataUrl,\n createUrl,\n redirectUrl,\n}) => {\n const navigate = useNavigateCallback();\n\n const operations = useMemo(() => [\n allowCreateCustomer ? {\n componentType: SmallButton,\n id: 'buttonAddNewCustomer',\n title: locale.lmsg('buttonAddNewCustomer'),\n description: locale.lmsg('hintAddNewCustomer'),\n addCls: 'sb-add-new-customer btn-primary',\n href: createUrl,\n handler: navigate,\n } : null,\n allowCreateCustomer && isAdmin && resellersSupport ? {\n componentType: bar.Separator,\n } : null,\n allowCreateCustomer && isAdmin && resellersSupport ? {\n componentType: SmallButton,\n id: 'buttonConvertCustomersToReseller',\n title: locale.lmsg('buttonConvertCustomersToReseller'),\n description: locale.lmsg('hintConvertCustomersToReseller'),\n addCls: 'sb-convert-to-reseller',\n handler: e => {\n const customersList = getComponent('customers-list');\n if (!customersList.checkNonEmptySelection()) {\n return;\n }\n\n Plesk.require('app/convert-customers-to-resellers', ConvertCustomersToResellers => {\n new ConvertCustomersToResellers({\n id: 'convertCustomersToResellers',\n cls: 'popup-panel',\n prepareUrl: prepareUrl('/customer/prepare-convert/'),\n handlerUrl: prepareUrl(`/customer/convert-to-reseller/?redirect=${redirectUrl}`),\n ids: customersList.getSelectedItemsIds(),\n });\n });\n\n e.preventDefault();\n e.stopPropagation();\n },\n } : null,\n allowCreateCustomer && isAdmin && hasResellers && (resellersSupport || hasResellerCustomers) ? {\n componentType: bar.Separator,\n } : null,\n allowCreateCustomer && isAdmin && hasResellers && (resellersSupport || hasResellerCustomers) ? {\n componentType: SmallButton,\n id: 'buttonChangeOwner',\n title: locale.lmsg('buttonChangeOwner'),\n description: locale.lmsg('hintChangeOwner'),\n addCls: 'sb-move',\n handler: e => {\n const customerList = getComponent('customers-list');\n if (!customerList.checkNonEmptySelection()) {\n return;\n }\n\n Plesk.require('app/change-customers-owner', ChangeCustomersOwner => {\n new ChangeCustomersOwner({\n id: 'changeOwner',\n cls: 'popup-panel',\n prepareUrl: prepareUrl('/customer/prepare-change-owner/'),\n handlerUrl: prepareUrl(`/customer/change-owner/?redirect=${redirectUrl}`),\n ids: customerList.getSelectedItemsIds(),\n });\n });\n\n e.preventDefault();\n e.stopPropagation();\n },\n } : null,\n allowCreateCustomer ? {\n componentType: bar.Separator,\n } : null,\n {\n componentType: list.AdditionalActions,\n description: locale.lmsg('hintChangeStatus'),\n title: locale.lmsg('buttonChangeStatus'),\n operations: [\n {\n componentType: SmallButton,\n id: 'buttonSuspendCustomers',\n title: locale.lmsg('buttonSuspendCustomers'),\n description: locale.lmsg('hintSuspendCustomers'),\n addCls: 'sb-suspend',\n cls: 'sb-btn',\n handler: () => {\n getComponent('customers-list').execGroupOperation({\n url: `/customer/suspend/?redirect=${redirectUrl}`,\n skipConfirmation: true,\n });\n },\n }, {\n componentType: SmallButton,\n id: 'buttonActivateCustomers',\n title: locale.lmsg('buttonActivateCustomers'),\n description: locale.lmsg('hintActivateCustomers'),\n addCls: 'sb-activate',\n cls: 'sb-btn',\n handler: () => {\n getComponent('customers-list').execGroupOperation({\n url: `/customer/activate/?redirect=${redirectUrl}`,\n skipConfirmation: true,\n });\n },\n },\n ],\n },\n allowCreateCustomer ? {\n componentType: bar.Separator,\n } : null,\n allowCreateCustomer ? {\n componentType: SmallButton,\n id: 'buttonRemoveUser',\n title: locale.lmsg('buttonRemoveCustomer'),\n description: locale.lmsg('hintRemoveCustomer'),\n addCls: 'sb-remove-selected',\n handler: event => {\n const list = getComponent('customers-list');\n const customers = list.getSelectedItems();\n\n list.execGroupOperation({\n url: `/customer/delete/?redirect=${redirectUrl}`,\n subtype: messageBox.SUBTYPE_DELETE,\n mouseEvent: event,\n text: locale.formatMessage('confirmOnDelete', {\n name: `<b>${escapeHtml(customers[0]?.customerName)}</b>`,\n count: customers.length,\n }),\n\n toJsonPayload: true,\n submitHandler: async (url, payload) => {\n const { task } = await api.post(prepareUrl('/customer/delete-async/'), { ids: payload.ids });\n if (task && task.componentType === 'Jsw.Task.ProgressBar.Item') {\n getComponent('asyncProgressBarWrapper').progressDialog(task);\n }\n },\n });\n },\n } : null,\n ], [allowCreateCustomer, createUrl, hasResellerCustomers, hasResellers, isAdmin, navigate, redirectUrl, resellersSupport]);\n\n const columns = useMemo(() => [\n list.COLUMN_SELECTION,\n {\n header: locale.lmsg('customerName'),\n sortable: true,\n dataIndex: 'customerName',\n renderer: ({ id, active, status, customerName, companyName, description }) => {\n let statusAlt = 'ok';\n let statusIcon = require('icons/16/plesk/subscription-status-ok.png');\n let statusDescription = locale.lmsg('statusOk');\n if (!active) {\n statusAlt = 'suspended';\n statusIcon = require('icons/16/plesk/subscription-status-suspended.png');\n statusDescription = '1' === status\n ? locale.lmsg('statusInactive')\n : locale.lmsg('statusSuspended');\n }\n return ce('div.b-indent',\n ce('span.b-indent-icon',\n ce('span.tooltipData', escapeHtml(statusDescription)),\n ce('img', { src: statusIcon, alt: statusAlt, title: '' }),\n ),\n ' ',\n ce('a', {\n href: `/admin/customer/overview/id/${id}`,\n onclick: navigate,\n }, escapeHtml(customerName)),\n companyName?.length ? `, ${escapeHtml(companyName)}` : null,\n description?.length ? createDescription('.minor', description) : null,\n );\n },\n }, {\n header: locale.lmsg('subscription'),\n sortable: false,\n dataIndex: 'subscriptions',\n renderer: item => {\n const subscriptions = item.subscriptions\n .slice(0, maxSubscriptionsDisplayed)\n .map(({ domainDisplayName, planName, domainId, subscriptionOveruse }) => (\n `<div class=\"owned-subscription ${subscriptionOveruse ? 'status-overused' : 'status-ok'}\">` +\n `${escapeHtml(domainDisplayName)} (${escapeHtml(planName)})` +\n ` <span class=\"hint hint-info\" id=\"hint-item-${domainId}\"><span>${locale.lmsg('hintInfo')}` +\n '</span></span>' +\n '</div>'\n )).join('');\n\n return maxSubscriptionsDisplayed < item.subscriptions.length\n ? `${subscriptions}<div class=\"owned-subscription status-ok\">...</div>`\n : subscriptions;\n },\n }, {\n header: locale.lmsg('setupDate'),\n sortable: true,\n dataIndex: 'setupDateTimestamp',\n renderer: ({ setupDateString }) => escapeHtml(setupDateString),\n }, showOwnerName && {\n header: locale.lmsg('ownerName'),\n sortable: true,\n dataIndex: 'ownerName',\n renderer: ({ ownerType, ownerId, ownerName, ownerCompanyName }) => {\n let href = null;\n if ('client' === ownerType) {\n href = `/admin/customer/overview/id/${ownerId}`;\n } else if ('reseller' === ownerType && resellersSupport) {\n href = `/admin/reseller/overview/id/${ownerId}`;\n }\n\n return [\n href ? ce('a', { href, onclick: navigate }, escapeHtml(ownerName)) : escapeHtml(ownerName),\n ownerCompanyName ? `, ${escapeHtml(ownerCompanyName)}` : null,\n ];\n },\n }, {\n header: '',\n sortable: false,\n renderer: ({ id, allowLogin }) => {\n if (!allowLogin) {\n return '';\n }\n\n return ce('a.s-btn.sb-login', { href: `/admin/customer/login/id/${id}/all/true` },\n ce('span', locale.lmsg('buttonLogin')),\n );\n },\n },\n ], [maxSubscriptionsDisplayed, navigate, resellersSupport, showOwnerName]);\n\n const onRedraw = useCallback(() => {\n document.querySelectorAll('span.hint.hint-info').forEach(hintElement => {\n new DynamicPopupHint.Instance({\n title: subscriptionsLocale.lmsg('hintTitle'),\n waitMsg: subscriptionsLocale.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 data={data}\n dataUrl={dataUrl}\n searchFilters={searchFilters}\n id=\"customers-list\"\n searchOveral=\"name\"\n disabledSelectHint={locale.lmsg('disabledSelectHint')}\n operations={operations}\n columns={columns}\n onRedraw={onRedraw}\n />\n );\n};\n\nCustomersList.propTypes = {\n data: JswList.propTypes.data.isRequired,\n searchFilters: JswList.propTypes.searchFilters.isRequired,\n allowCreateCustomer: PropTypes.bool,\n resellersSupport: PropTypes.bool,\n isAdmin: PropTypes.bool,\n hasResellers: PropTypes.bool,\n hasResellerCustomers: PropTypes.bool,\n showOwnerName: PropTypes.bool,\n maxSubscriptionsDisplayed: PropTypes.number.isRequired,\n dataUrl: PropTypes.string.isRequired,\n createUrl: PropTypes.string.isRequired,\n redirectUrl: PropTypes.string.isRequired,\n};\n\nexport default CustomersList;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Locale } from 'jsw';\nimport { useCreateCustomerFormInDrawer } from '../forms/CreateCustomerForm';\nimport { withPageLayout } from '../layouts/PageLayout';\nimport CustomersList from '../lists/CustomersList';\n\nconst Translate = Locale.getTranslate('components.pages.customers');\n\nconst CustomersPage = props => {\n const [createCustomerDrawer] = useCreateCustomerFormInDrawer('/admin/customer/list', '/admin/customer/create');\n return (\n <>\n {createCustomerDrawer}\n <p><Translate content=\"hint\" /></p>\n <CustomersList\n dataUrl=\"/admin/customer/list-data\"\n createUrl=\"/admin/customer/create\"\n redirectUrl=\"/admin/customer/list\"\n {...props}\n />\n </>\n );\n};\n\nexport default withPageLayout(CustomersPage);\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/subscription-status-ok.png?6d52f91c87cbdc73b4ef0b5ded92c441\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/subscription-status-suspended.png?7968ea094f0aa3fdced5d59b0c7f3196\";"],"names":["IpAddressTranslate","Locale","getTranslate","IpSelectDropdown","ipAddresses","namePrefix","type","isOtherTypeAvailable","getIpAddressType","props","translate","useTranslate","length","_jsxs","FormFieldSelect","label","_jsx","content","name","children","map","id","ipAddress","publicIpAddress","SelectOption","value","propTypes","PropTypes","isRequired","TYPE_IPV4","TYPE_IPV6","TYPE_SHARED","TYPE_EXCLUSIVE","IpSelectDropdowns","isIPv6Supported","ipv4Addresses","useMemo","filter","isIPv6","isBroken","ipv6Addresses","useCallback","_Fragment","prepareBackendData","ips","Object","keys","forEach","push","DomainTranslate","SubscriptionTranslate","AdminTranslate","SubscriptionSection","values","servicePlans","addonPlans","handleFieldChange","techDomainUrl","techDomainVendor","maxDomainLength","settingsEnabled","settingsCollapsed","withCustomer","isWindows","onToggleDomainSettings","selectedAddonPlans","setSelectedAddonPlans","useState","selected","servicePlan","getIn","isCustomServicePlan","isMailOnly","applicationName","useEffect","addonPlanSelector","includes","JSON","stringify","subscription","domainInfo","ipSelector","split","Boolean","TechDomainName","isEnabled","undefined","isDefault","TYPE_TECH","url","vendor","typeName","onTypeChange","onDomainNameChange","size","FormField","isDisabled","Select","multiple","searchable","defaultValue","onChange","disabled","title","FormFieldCheckbox","description","checkedValue","uncheckedValue","Section","collapsible","collapsed","onToggle","Heading","level","Text","component","intent","FormFieldText","required","autoComplete","FormFieldPassword","multiline","TYPE_CUSTOM","Translate","setType","DomainNameSection","types","key","icon","Icon","vertical","handleTypeChange","getId","getName","getValue","setValue","ItemList","stretchable","selectable","minColumnWidth","gap","onSelect","Item","role","Paragraph","fontSize","hidden","readOnly","TechDomainSection","FormFieldDomainName","fieldApi","TechDomainSelector","Cuttable","maxHeight","loading","setLoading","requestedIpAddress","setRequestedIpAddress","errors","setErrors","requestDomainName","async","subdomain","response","fetch","method","body","ip_address","max_length","json","Error","getSubdomainName","error","noIpAddress","Status","progress","bold","Alert","className","Input","placeholder","e","target","ContactInfoTranslate","AdminInfoTranslate","DomainInfoTranslate","ButtonsTranslate","LoginInfoTranslate","CreateCustomerForm","onCancel","onProcess","action","initialValues","countries","canCreateSubscription","customerSettingsEnabled","customerSettingsCollapsed","embeddedForms","maxSysnameSize","techDomain","render","status","setValues","userNameChanged","setUserNameChanged","showSubscription","setIn","userName","generateUserName","domainName","maxUserNameSize","isTechDomain","UAT","dispatchAction","Form","applyButton","onLongTask","onFieldChange","formPrefix","embeddedFormsRender","submitButton","cancelButton","onClick","StatusMessage","dangerouslySetInnerHTML","__html","useCreateCustomerFormInDrawer","pageUrl","drawerUrl","useCreateFormInDrawer","dataUrl","operations","itemActions","columns","data","state","pager","locale","additional","pathbar","searchFilters","searchOveral","disabledSelectHint","isDisabledItem","onRedraw","emptyViewMode","emptyView","defaultProps","JswList","convertToReactComponent","List","propsList","displayName","JswComponent","setters","containerRef","useRef","componentRef","componentProps","containerProps","entries","reduce","res","deps","current","useLayoutEffect","remove","ref","getSection","subscriptionsLocale","CustomersList","allowCreateCustomer","resellersSupport","isAdmin","hasResellers","hasResellerCustomers","showOwnerName","maxSubscriptionsDisplayed","createUrl","redirectUrl","navigate","useNavigateCallback","componentType","SmallButton","lmsg","addCls","href","handler","bar","Separator","customersList","getComponent","checkNonEmptySelection","Plesk","require","ConvertCustomersToResellers","cls","prepareUrl","handlerUrl","ids","getSelectedItemsIds","preventDefault","stopPropagation","customerList","ChangeCustomersOwner","list","AdditionalActions","execGroupOperation","skipConfirmation","event","customers","getSelectedItems","subtype","messageBox","SUBTYPE_DELETE","mouseEvent","text","formatMessage","escapeHtml","customerName","count","toJsonPayload","submitHandler","payload","task","api","post","progressDialog","COLUMN_SELECTION","header","sortable","dataIndex","renderer","active","companyName","statusAlt","statusIcon","statusDescription","ce","src","alt","onclick","createDescription","item","subscriptions","slice","domainDisplayName","planName","domainId","subscriptionOveruse","join","setupDateString","ownerType","ownerId","ownerName","ownerCompanyName","allowLogin","document","querySelectorAll","hintElement","DynamicPopupHint","Instance","waitMsg","replace","placement","withPageLayout","createCustomerDrawer","truncate","str","selector","prefix","createSiteDescription","adminDescription","resellerDescription","ownerDescription","hideResellerTitleDescription","hideOwnerTitleDescription","randomString","Math","random","toString","defaultPostfix","postfix","isUnix","hasNotAllowedSymbols","test","startsWithDigit","toLowerCase","substr","module","exports","Jsw","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